diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/ScheduleThread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/ScheduleThread.java index b0325c8a..1a49778f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/ScheduleThread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/ScheduleThread.java @@ -30,7 +30,8 @@ import java.util.concurrent.ConcurrentHashMap; public class ScheduleThread { public CustomThread plcSsjReadCustomThread; - public CustomThread plcDdjReadCustomThread; + public CustomThread plcDdj1ReadCustomThread; + public CustomThread plcDdj2ReadCustomThread; public CustomThread floor1BothWayInSsjCustomThread; public CustomThread floor1BothWayOutSsjCustomThread; @@ -102,28 +103,27 @@ public class ScheduleThread { } - //plc输送机读取线程 - PlcSsjRead plcSsjRead = new PlcSsjRead(ssjList, new PlcConnectInfo("127.0.0.1", 102)); - Thread plcSsjReadThread = new Thread(plcSsjRead); - plcSsjReadCustomThread = new CustomThread(plcSsjReadThread, plcSsjRead); - //plc堆垛机读取现场 ConcurrentHashMap ddjList = new ConcurrentHashMap<>(); List msgDdjs = msgDdjService.selectMsgDdjList(new MsgDdj()); for (MsgDdj msgDdj : msgDdjs) { switch (msgDdj.getId()){ case 1: msgDdj.setPlcDbReadAddress("DB41.0"); + PlcDdjRead plcDdjRead1 = new PlcDdjRead(ddjList, new PlcConnectInfo("127.0.0.1", 102)); + Thread plcDdjReadThread1 = new Thread(plcDdjRead1); + plcDdj1ReadCustomThread = new CustomThread(plcDdjReadThread1, plcDdjRead1); break; case 2: msgDdj.setPlcDbReadAddress("DB42.0"); + PlcDdjRead plcDdjRead2 = new PlcDdjRead(ddjList, new PlcConnectInfo("127.0.0.2", 102)); + Thread plcDdjReadThread2 = new Thread(plcDdjRead2); + plcDdj2ReadCustomThread = new CustomThread(plcDdjReadThread2, plcDdjRead2); break; + } ddjList.put("ddj" + msgDdj.getId(), msgDdj); } - PlcDdjRead plcDdjRead = new PlcDdjRead(ddjList, new PlcConnectInfo("127.0.0.1", 102)); - Thread plcDdjReadThread = new Thread(plcDdjRead); - plcDdjReadCustomThread = new CustomThread(plcDdjReadThread, plcDdjRead); } @@ -132,7 +132,8 @@ public class ScheduleThread { */ public void startAllThread() { plcSsjReadCustomThread.getThread().start(); - plcDdjReadCustomThread.getThread().start(); + plcDdj1ReadCustomThread.getThread().start(); + plcDdj2ReadCustomThread.getThread().start(); isRun = true; } @@ -156,7 +157,8 @@ public class ScheduleThread { */ public void stopAllThread() { plcSsjReadCustomThread.runnable.isRun = false; - plcDdjReadCustomThread.runnable.isRun = false; + plcDdj1ReadCustomThread.runnable.isRun = false; + plcDdj2ReadCustomThread.runnable.isRun = false; plcReadInit(); isRun = false; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/Ddj1Thread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/Ddj1Thread.java index 62bc9920..0e0f3c26 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/Ddj1Thread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/Ddj1Thread.java @@ -186,6 +186,15 @@ public class Ddj1Thread implements Runnable { //正常下发 if (ddj.getYxxf() == 1 && ddj.getCzfs() == 5 && ddj.getSbzt() == 0) { Long rwh = ddj.getRwh(); + DdjDeviceExecutionQueue ddjDeviceExecutionQueueRunningParam = new DdjDeviceExecutionQueue(); + ddjDeviceExecutionQueueRunningParam.setDdjxf("1"); + ddjDeviceExecutionQueueRunningParam.setDevId(ddj.getId()); + List ddjDeviceExecutionRunningQueues = ddjDeviceExecutionQueueService.selectDdjDeviceExecutionQueueList(ddjDeviceExecutionQueueRunningParam); + if (CollUtil.isNotEmpty(ddjDeviceExecutionRunningQueues)) { + log.error("堆垛机有正在执行的任务 {}" , ddjDeviceExecutionRunningQueues.get(0).getRwh()); + return; + } + //对堆垛机执行队列中无已下发队列 DdjDeviceExecutionQueue ddjDeviceExecutionQueueParam = new DdjDeviceExecutionQueue(); ddjDeviceExecutionQueueParam.setDdjxf("0");