From aac2fb45f7ba34c0ce516b6c39821983958228bb Mon Sep 17 00:00:00 2001 From: sige Date: Fri, 5 Jul 2024 21:13:45 +0800 Subject: [PATCH] 1 --- .../java/com/iflytop/a800/task/TubeRackTask.java | 28 +++++++++++++++++----- 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/iflytop/a800/task/TubeRackTask.java b/src/main/java/com/iflytop/a800/task/TubeRackTask.java index c08d997..74d8bc7 100644 --- a/src/main/java/com/iflytop/a800/task/TubeRackTask.java +++ b/src/main/java/com/iflytop/a800/task/TubeRackTask.java @@ -10,6 +10,7 @@ import com.iflytop.a800.resource.TestTube; import com.iflytop.a800.resource.TestTubeRack; import com.iflytop.uf.UfActiveRecord; import com.iflytop.uf.model.UfMdbDictItem; +import com.iflytop.uf.model.UfMdbNotification; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -26,20 +27,29 @@ public class TubeRackTask extends TaskBase { @Override public void run() { - this.taskModel.status = UfMdbDictItem.getValue("TUBE_RACK_TASK_STATUS", "PROCESSING"); - this.taskModel.save(); + this.updateTaskModelStatus("PROCESSING"); var device = Device.getInstance(); var feeder = device.feeder; var taskMan = TaskManager.getInstance(); - feeder.feed(); this.samplingTubes = new ArrayList<>(); TestTubeRack tubeRack = new TestTubeRack(); - tubeRack.type = feeder.readTubeRackType(); + + try { + feeder.feed(); + tubeRack.type = feeder.readTubeRackType(); + this.taskModel.tubeType = tubeRack.type; + this.taskModel.save(); + } catch ( RuntimeException e ) { + this.updateTaskModelStatus("ERROR"); + UfMdbNotification.error(e.getMessage()); + feeder.exit(); + this.taskFinish(); + return ; + } + tubeRack.tubes = new ArrayList<>(); - this.taskModel.tubeType = tubeRack.type; - this.taskModel.save(); for (int i = 0; i < 10; i++) { var tube = new TestTube(); tube.index = i; @@ -112,4 +122,10 @@ public class TubeRackTask extends TaskBase { } this.setStatus("READY"); } + + // 更新试管架任务状态 + private void updateTaskModelStatus( String status ) { + this.taskModel.status = UfMdbDictItem.getValue("TUBE_RACK_TASK_STATUS", status); + this.taskModel.save(); + } }