From fc815be875097fcf4fec06611926dfc0259bc0c1 Mon Sep 17 00:00:00 2001 From: sige Date: Fri, 5 Jan 2024 15:42:59 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E5=BC=80=E6=9C=BA=E5=A4=8D?= =?UTF-8?q?=E4=BD=8D=E6=97=B6=E5=B0=86=E6=89=80=E6=9C=89=E6=AD=A3=E5=9C=A8?= =?UTF-8?q?=E6=89=A7=E8=A1=8C=E7=9A=84=E6=B5=8B=E8=AF=95=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E4=B8=BA=E7=BB=88=E6=AD=A2=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/dreamworks/boditech/driver/task/TaskStartReset.java | 8 +++++--- .../dreamworks/boditech/entity/MdbTestTubeRackTestTaskTube.java | 2 ++ .../com/dreamworks/boditech/mapper/EmergencyTestTaskMapper.java | 3 +++ src/main/java/com/dreamworks/boditech/mapper/TestMapper.java | 3 +++ .../dreamworks/boditech/mapper/TestTubeRackTestTaskMapper.java | 3 +++ .../boditech/mapper/TestTubeRackTestTaskTubeMapper.java | 3 +++ src/main/java/com/dreamworks/boditech/service/TestService.java | 8 ++++++++ 7 files changed, 27 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/dreamworks/boditech/driver/task/TaskStartReset.java b/src/main/java/com/dreamworks/boditech/driver/task/TaskStartReset.java index a11ba82..b4efcc1 100644 --- a/src/main/java/com/dreamworks/boditech/driver/task/TaskStartReset.java +++ b/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> slots = this.device.runtimeVariableService.getJson("DeviceIncubatorSlots", List.class); for ( Map 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"); } diff --git a/src/main/java/com/dreamworks/boditech/entity/MdbTestTubeRackTestTaskTube.java b/src/main/java/com/dreamworks/boditech/entity/MdbTestTubeRackTestTaskTube.java index 2435d74..501ed55 100644 --- a/src/main/java/com/dreamworks/boditech/entity/MdbTestTubeRackTestTaskTube.java +++ b/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; diff --git a/src/main/java/com/dreamworks/boditech/mapper/EmergencyTestTaskMapper.java b/src/main/java/com/dreamworks/boditech/mapper/EmergencyTestTaskMapper.java index 9cd1942..47b12e7 100644 --- a/src/main/java/com/dreamworks/boditech/mapper/EmergencyTestTaskMapper.java +++ b/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(); } diff --git a/src/main/java/com/dreamworks/boditech/mapper/TestMapper.java b/src/main/java/com/dreamworks/boditech/mapper/TestMapper.java index 3abc1db..9de7df2 100644 --- a/src/main/java/com/dreamworks/boditech/mapper/TestMapper.java +++ b/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 activeBatchList( Long batchId ); + + @Update("UPDATE bdt_tests SET status = 'CANCELED' WHERE status != 'FINISHED'") + void cancelAllTasks(); } diff --git a/src/main/java/com/dreamworks/boditech/mapper/TestTubeRackTestTaskMapper.java b/src/main/java/com/dreamworks/boditech/mapper/TestTubeRackTestTaskMapper.java index d0f860d..ee78d5f 100644 --- a/src/main/java/com/dreamworks/boditech/mapper/TestTubeRackTestTaskMapper.java +++ b/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 findAllEditableTasks(); + + @Update("UPDATE btd_test_tube_rack_test_tasks SET status = 'CANCELED' WHERE status = 'EXECUTING'") + void cancelAllTasks(); } diff --git a/src/main/java/com/dreamworks/boditech/mapper/TestTubeRackTestTaskTubeMapper.java b/src/main/java/com/dreamworks/boditech/mapper/TestTubeRackTestTaskTubeMapper.java index 096b5b6..a789c7c 100644 --- a/src/main/java/com/dreamworks/boditech/mapper/TestTubeRackTestTaskTubeMapper.java +++ b/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(); } diff --git a/src/main/java/com/dreamworks/boditech/service/TestService.java b/src/main/java/com/dreamworks/boditech/service/TestService.java index 1780cff..2643d1f 100644 --- a/src/main/java/com/dreamworks/boditech/service/TestService.java +++ b/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(); + } }