diff --git a/src/src/main/java/com/my/graphiteDigesterBg/step/StepMoveErrorTubesToErrorSlot.java b/src/src/main/java/com/my/graphiteDigesterBg/step/StepMoveErrorTubesToErrorSlot.java index 701d58b..53241c5 100644 --- a/src/src/main/java/com/my/graphiteDigesterBg/step/StepMoveErrorTubesToErrorSlot.java +++ b/src/src/main/java/com/my/graphiteDigesterBg/step/StepMoveErrorTubesToErrorSlot.java @@ -2,15 +2,25 @@ package com.my.graphiteDigesterBg.step; import com.my.graphiteDigesterBg.diframe.DiTaskStepBase; import com.my.graphiteDigesterBg.diframe.TaskStep; import com.my.graphiteDigesterBg.move.MoveTubeToErrorRackSlot; +import com.my.graphiteDigesterBg.resource.ResHeatingTubeRackSlot; import com.my.graphiteDigesterBg.resource.ResHeatingTubeRackSlotManager; import com.my.graphiteDigesterBg.task.TaskDigestion; +import java.util.ArrayList; +import java.util.List; @TaskStep(name="MoveErrorTubesToErrorSlot") public class StepMoveErrorTubesToErrorSlot extends DiTaskStepBase { @Override public void run() { var task = (TaskDigestion)this.getTask(); var slot = task.getSlot(); - var errorTubes = task.errorTubeIndexes; + List errorTubes = task.errorTubeIndexes; + if ( null == errorTubes ) { + errorTubes = new ArrayList<>(); + } + + if ( !ResHeatingTubeRackSlot.LOCATION_LIQUID_PLATE.equals(slot.rackPosition) ) { + throw new RuntimeException("试管架未在加液区位置,无法将试管移至异常处理区域"); + } var slotMan = task.getResourceManager(ResHeatingTubeRackSlotManager.class); var errorSlot = slotMan.getErrorSlot(); @@ -26,8 +36,5 @@ public class StepMoveErrorTubesToErrorSlot extends DiTaskStepBase { move.errorTubeIndex = emptyTubeIndexList.get(i); move.run(); } - - throw new RuntimeException("无法正常加液"); - // @TODO: 取出收需要标记响应位置为空, 不然后面加液会出错 ~~~ } }