diff --git a/src/main/java/com/iflytop/digester/DigestionTaskTheadManager.java b/src/main/java/com/iflytop/digester/DigestionTaskTheadManager.java index e2ef30d..40c67fc 100644 --- a/src/main/java/com/iflytop/digester/DigestionTaskTheadManager.java +++ b/src/main/java/com/iflytop/digester/DigestionTaskTheadManager.java @@ -6,6 +6,7 @@ import com.iflytop.digester.deviceinstance.Device; import com.iflytop.digester.model.MdbDigestionSolution; import com.iflytop.digester.model.MdbDigestionTask; import com.iflytop.digester.model.MdbRuntimeLog; +import com.iflytop.digester.underframework.UfCmdSnippetExecutor; import com.iflytop.digester.underframework.dao.model.UfMdbNotification; import com.iflytop.digester.underframework.dao.model.UfMdbOption; import com.iflytop.digester.underframework.dao.record.UfActiveRecord; @@ -118,12 +119,13 @@ public class DigestionTaskTheadManager { this.startNewDigestion(actionJsonTree.get("parameters")); return; } else if ( "DoorOpen".equals(actionName) ) { - Device.getInstance().door.open(); + UfCmdSnippetExecutor.execute("TubeRackPutInPrepare"); this.sendMessageToTransBot("DoorOpenDone", new HashMap<>()); return ; } else if ( "DoorClose".equals(actionName) ) { Device.getInstance().door.close(); this.sendMessageToTransBot("DoorCloseDone", new HashMap<>()); + this.startDemoDigestion(); return ; } @@ -150,6 +152,35 @@ public class DigestionTaskTheadManager { task.executeAction(actionName, actionParams); } + // 启动演示消解任务 + private void startDemoDigestion() { + var digestion = UfActiveRecord.findOne(MdbDigestionSolution.class, Map.of("name", "消解演示")); + if ( null == digestion ) { + return; + } + + var tubes = new ArrayList>(); + for (int i = 0; i<16; i++ ) { + var tube = new HashMap(); + tube.put("no", "DEMO-TUBE-" + Integer.toString(i)); + tubes.add(tube); + } + + var task = new MdbDigestionTask(); + task.digestionId = digestion.id; + task.outTaskId = "DEMO-01"; + task.batchNo = "DEMO-01"; + task.tubes = UfJsonHelper.objectToJson(tubes); + task.status = "pending"; + task.message = "等待中"; + task.startedAt = (int)(System.currentTimeMillis() / 1000); + task.startedBy = ""; + task.mode = "auto"; + task.save(); + + this.startTask(task); + } + // start new digestion private void startNewDigestion( JsonNode params ) { String taskId = params.get("batchNo").asText();