Browse Source

设备开机复位时将所有正在执行的测试更新为终止状态

master
sige 2 years ago
parent
commit
fc815be875
  1. 8
      src/main/java/com/dreamworks/boditech/driver/task/TaskStartReset.java
  2. 2
      src/main/java/com/dreamworks/boditech/entity/MdbTestTubeRackTestTaskTube.java
  3. 3
      src/main/java/com/dreamworks/boditech/mapper/EmergencyTestTaskMapper.java
  4. 3
      src/main/java/com/dreamworks/boditech/mapper/TestMapper.java
  5. 3
      src/main/java/com/dreamworks/boditech/mapper/TestTubeRackTestTaskMapper.java
  6. 3
      src/main/java/com/dreamworks/boditech/mapper/TestTubeRackTestTaskTubeMapper.java
  7. 8
      src/main/java/com/dreamworks/boditech/service/TestService.java

8
src/main/java/com/dreamworks/boditech/driver/task/TaskStartReset.java

@ -113,6 +113,9 @@ public class TaskStartReset extends TaskBase {
this.analysisPushMotor.moveTo("analysisPushMotorStandby");
this.cleanIncubatorIfError();
// 12. 结束掉所有上次正在执行的任务
this.device.testService.cancelAllTasks();
this.device.setIsReady(true);
LOG.info("[reset] task finished, cost {}s", (System.currentTimeMillis() - startTime)/1000.00);
}
@ -127,8 +130,6 @@ public class TaskStartReset extends TaskBase {
}
ActIncubator incubatorMotor = (ActIncubator)device.getActuator(ActuatorModule.INCUBATOR_MOTOR);
this.analysisScanMotor.moveTo("analysisScanMotorDropCard");
List<Map<String,Object>> slots = this.device.runtimeVariableService.getJson("DeviceIncubatorSlots", List.class);
for ( Map<String,Object> slotInfo : slots ) {
Boolean isFree = (Boolean)slotInfo.get("isFree");
@ -142,9 +143,10 @@ public class TaskStartReset extends TaskBase {
incubatorMotor.moveTo(slot.getExitLocation());
this.analysisPushMotor.moveTo("analysisPushMotorScanStart");
this.analysisPushMotor.moveTo("analysisPushMotorStandby");
this.analysisScanMotor.moveTo("analysisScanMotorDropCard");
this.analysisScanMotor.moveTo("analysisScanMotorStandBy");
}
this.analysisScanMotor.moveTo("analysisScanMotorStandBy");
this.device.runtimeVariableService.setString("DeviceIncubatorSlots", "[]");
LOG.info("[reset] incubator clean finished");
}

2
src/main/java/com/dreamworks/boditech/entity/MdbTestTubeRackTestTaskTube.java

@ -10,6 +10,8 @@ public class MdbTestTubeRackTestTaskTube {
public final static String STATUS_FINISHED = "FINISHED";
// status : ignored
public final static String STATUS_IGNORED = "IGNORED";
// status : canceled
public final static String STATUS_CANCELED = "CANCELED";
// id
public Integer id;

3
src/main/java/com/dreamworks/boditech/mapper/EmergencyTestTaskMapper.java

@ -35,4 +35,7 @@ public interface EmergencyTestTaskMapper {
@Update("UPDATE bdt_emergency_test_tasks SET status = #{status}, execFinishedAt = #{execFinishedAt} WHERE id = #{id}")
void executeCancel(MdbEmergencyTestTask task);
@Update("UPDATE bdt_emergency_test_tasks SET status = 'CANCELED' WHERE status IN ('EXECUTING','WAITING')")
void cancelAllTasks();
}

3
src/main/java/com/dreamworks/boditech/mapper/TestMapper.java

@ -44,4 +44,7 @@ public interface TestMapper {
@Select("SELECT * FROM bdt_tests WHERE batchId=#{batchId} ORDER BY id DESC LIMIT 20")
List<MdbTest> activeBatchList( Long batchId );
@Update("UPDATE bdt_tests SET status = 'CANCELED' WHERE status != 'FINISHED'")
void cancelAllTasks();
}

3
src/main/java/com/dreamworks/boditech/mapper/TestTubeRackTestTaskMapper.java

@ -58,4 +58,7 @@ public interface TestTubeRackTestTaskMapper {
@Select("SELECT * FROM btd_test_tube_rack_test_tasks WHERE status IN ('WAITING','CONFIGURING') ORDER BY id ASC")
List<MdbTestTubeRackTestTask> findAllEditableTasks();
@Update("UPDATE btd_test_tube_rack_test_tasks SET status = 'CANCELED' WHERE status = 'EXECUTING'")
void cancelAllTasks();
}

3
src/main/java/com/dreamworks/boditech/mapper/TestTubeRackTestTaskTubeMapper.java

@ -39,4 +39,7 @@ public interface TestTubeRackTestTaskTubeMapper {
"WHERE id = #{id}"
)
void update(MdbTestTubeRackTestTaskTube tube);
@Update("UPDATE btd_test_tube_rack_test_task_tubes SET status = 'CANCELED' WHERE status IN ('EXECUTING','WAITING')")
void cancelAllTasks();
}

8
src/main/java/com/dreamworks/boditech/service/TestService.java

@ -403,4 +403,12 @@ public class TestService {
entry.finishedAt = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
this.testStepMapper.update(entry);
}
// cancel all tasks
public void cancelAllTasks() {
this.testTubeRackTestTaskMapper.cancelAllTasks();
this.testTubeRackTestTaskTubeMapper.cancelAllTasks();
this.emergencyTestTaskMapper.cancelAllTasks();
this.testMapper.cancelAllTasks();
}
}
Loading…
Cancel
Save