From a26319dbd65d12d72364d1d367714b2da051b845 Mon Sep 17 00:00:00 2001 From: liuhanqing Date: Fri, 4 Jul 2025 11:54:16 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E8=B0=83=E5=BA=A6?= =?UTF-8?q?=E7=BA=BF=E7=A8=8B=20=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ThreadOperationController.java | 4 +- .../com/ruoyi/schedule/ScheduleThread.java | 5 +- .../ruoyi/schedule/plcRead/ssj/PlcRead.java | 203 +++++++++--------- .../schedule/plcRead/ssj/domain/Ssj.java | 30 --- .../scheduleTask/ssj/InSsjThread.java | 31 ++- .../scheduleTask/ssj/OutSsjThread.java | 26 ++- .../scheduleTask/ssj/PickSsjTread.java | 29 ++- 7 files changed, 171 insertions(+), 157 deletions(-) delete mode 100644 ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/ssj/domain/Ssj.java diff --git a/ruoyi-admin/src/main/java/com/ruoyi/device/operation/controller/ThreadOperationController.java b/ruoyi-admin/src/main/java/com/ruoyi/device/operation/controller/ThreadOperationController.java index 3b29d17..73c45d0 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/device/operation/controller/ThreadOperationController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/device/operation/controller/ThreadOperationController.java @@ -22,7 +22,7 @@ public class ThreadOperationController { * @return */ @RequestMapping("/startAllThread") - @PreAuthorize("@ss.hasPermi('device:operation:start')") + //@PreAuthorize("@ss.hasPermi('device:operation:start')") public AjaxResult startAllThread() { scheduleThread.startAllThread(); return AjaxResult.success(); @@ -34,7 +34,7 @@ public class ThreadOperationController { * @return */ @RequestMapping("/stopAllThread") - @PreAuthorize("@ss.hasPermi('device:operation:stop')") + //@PreAuthorize("@ss.hasPermi('device:operation:stop')") public AjaxResult stopAllThread() { scheduleThread.stopAllThread(); return AjaxResult.success(); 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 2765717..9a2775a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/ScheduleThread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/ScheduleThread.java @@ -5,7 +5,6 @@ import com.ruoyi.device.ssj.service.IDeviceSsjService; import com.ruoyi.schedule.plcRead.ssj.domain.PlcConnectInfo; import com.ruoyi.schedule.plcRead.ssj.PlcRead; import com.ruoyi.schedule.plcRead.ssj.domain.CustomThread; -import com.ruoyi.schedule.plcRead.ssj.domain.Ssj; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -25,8 +24,8 @@ public class ScheduleThread { */ @PostConstruct public void init() { - String ip = "192.168.0.1"; - int port = 80; + String ip = "127.0.0.1"; + int port = 102; PlcConnectInfo ssjPlcConnectInfo = new PlcConnectInfo(ip, port); ConcurrentHashMaplist = new ConcurrentHashMap<>(); //获取要去取的输送机 diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/ssj/PlcRead.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/ssj/PlcRead.java index 06af88a..e9926db 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/ssj/PlcRead.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/ssj/PlcRead.java @@ -8,11 +8,10 @@ import HslCommunication.Profinet.Siemens.SiemensPLCS; import HslCommunication.Profinet.Siemens.SiemensS7Net; import com.ruoyi.device.ssj.domain.DeviceSsj; import com.ruoyi.schedule.plcRead.ssj.domain.PlcConnectInfo; -import com.ruoyi.schedule.plcRead.ssj.domain.Ssj; import com.ruoyi.schedule.plcRead.util.ParseUtil; import lombok.extern.slf4j.Slf4j; +import org.apache.poi.ss.formula.functions.Offset; -import java.util.List; import java.util.concurrent.ConcurrentHashMap; @Slf4j @@ -38,7 +37,8 @@ public class PlcRead implements Runnable { while (running && !Thread.currentThread().isInterrupted()) { try { if (IsConnect()) { - + int step = 20; + int baseOffset = 0; for (String ssjCode : deviceMap.keySet()) { DeviceSsj ssjDevice = deviceMap.get(ssjCode); String readAddress = ""; @@ -47,362 +47,363 @@ public class PlcRead implements Runnable { switch (ssjDevice.getDeviceCode()) { case "G5011": // 处理 G5011 - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G5012": // 处理 G5012 - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G5016": // 处理 G5016 - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G5017": // 处理 G5017 - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G5002": // 处理 G5002 - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G5003": // 处理 G5003 - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G5007": // 处理 G5007 - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G5008": // 处理 G5008 - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G3011": // 处理 G3011 - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G3012": // 处理 G3012 - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G4007": // 处理 G4007 - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G4008": // 处理 G4008 - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G4016": // 处理 G4016 - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G4017": // 处理 G4017 - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G4011": // 处理 G4011 - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G4012": // 处理 G4012 - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G4002": // 处理 G4002 - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G4003": // 处理 G4003 - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G3002": // 处理 G3002 - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G3003": // 处理 G3003 - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G2002": // 处理 G2002 - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G2003": // 处理 G2003 - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G1011": // 处理 G1011 - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G3016": // 处理 G3016 - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G3017": // 处理 G3017 - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G3007": // 处理 G3007 - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G3008": // 处理 G3008 - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G1007": // 处理 G1007 - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G1008": // 处理 G1008 - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G1005": // 处理 G1005 - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G1001": // 处理 G1001 - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G1002": // 处理 G1002 - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G2010": // 处理 G2010 - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G2011": // 处理 G2011 - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G1003": // 处理 G1003 - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G1009": // 处理 G1009 - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G2012": // 处理 G2012 - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G3009": // 处理 G3009 - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G3018": // 处理 G3018 - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G4009": // 处理 G4009 - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G4018": // 处理 G4018 - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G5009": // 处理 G5009 - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G5018": // 处理 G5018 - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G5013": - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G5014": - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G5015": - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G5004": - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G5005": - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G5006": - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G4013": - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G4014": - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G4015": - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G4004": - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G4005": - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G4006": - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G1012": - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G3004": - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G3005": - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G3006": - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G3013": - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G3014": - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G3015": - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G1006": - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G2004": - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G2005": - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G2006": - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G2007": - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G2008": - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G2009": - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G1004": - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G1010": - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G2001": - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G3001": - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G3010": - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G4001": - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G4010": - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G5001": - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; case "G5010": - readAddress = ""; + readAddress = "DB501." + baseOffset; writeAddress = ""; break; default: continue; } + baseOffset +=step; ssjDevice.setPlcDbReadAddress(readAddress); ssjDevice.setPlcDbWriteAddress(writeAddress); @@ -443,15 +444,15 @@ public class PlcRead implements Runnable { * @param ssjDevice */ private void readPlcOtherSsj(DeviceSsj ssjDevice) { - OperateResultExOne read2 = readWriteNet.Read(ssjDevice.getPlcDbReadAddress(), Short.parseShort("18")); + OperateResultExOne read2 = readWriteNet.Read(ssjDevice.getPlcDbReadAddress(), Short.parseShort("24")); String ddsx1 = "0"; if (read2.IsSuccess) { ddsx1 = SoftBasic.ByteToHexString(read2.Content); ssjDevice.setKx(ParseUtil.optInt(0, ddsx1)); - ssjDevice.setDw(ParseUtil.optInt(1, ddsx1)); - ssjDevice.setRkqq(ParseUtil.optInt(2, ddsx1)); - ssjDevice.setTrayCode(ParseUtil.optString(3, ddsx1)); - ssjDevice.setTaskNo(ParseUtil.optDInt(4, ddsx1)); + ssjDevice.setDw(ParseUtil.optInt(2, ddsx1)); + ssjDevice.setRkqq(ParseUtil.optInt(4, ddsx1)); + ssjDevice.setTaskNo(ParseUtil.optDInt(6, ddsx1)); + ssjDevice.setTrayCode(ParseUtil.optString(10, ddsx1)); } } @@ -461,15 +462,15 @@ public class PlcRead implements Runnable { * @param ssjDevice */ private void readPlcInSsj(DeviceSsj ssjDevice) { - OperateResultExOne read2 = readWriteNet.Read(ssjDevice.getPlcDbReadAddress(), Short.parseShort("18")); + OperateResultExOne read2 = readWriteNet.Read(ssjDevice.getPlcDbReadAddress(), Short.parseShort("24")); String ddsx1 = "0"; if (read2.IsSuccess) { ddsx1 = SoftBasic.ByteToHexString(read2.Content); ssjDevice.setKx(ParseUtil.optInt(0, ddsx1)); - ssjDevice.setDw(ParseUtil.optInt(1, ddsx1)); - ssjDevice.setRkqq(ParseUtil.optInt(2, ddsx1)); - ssjDevice.setTrayCode(ParseUtil.optString(3, ddsx1)); - ssjDevice.setTaskNo(ParseUtil.optDInt(4, ddsx1)); + ssjDevice.setDw(ParseUtil.optInt(2, ddsx1)); + ssjDevice.setRkqq(ParseUtil.optInt(4, ddsx1)); + ssjDevice.setTaskNo(ParseUtil.optDInt(6, ddsx1)); + ssjDevice.setTrayCode(ParseUtil.optString(10, ddsx1)); } } @@ -479,15 +480,15 @@ public class PlcRead implements Runnable { * @param ssjDevice */ private void readPlcPickSsj(DeviceSsj ssjDevice) { - OperateResultExOne read2 = readWriteNet.Read(ssjDevice.getPlcDbReadAddress(), Short.parseShort("18")); + OperateResultExOne read2 = readWriteNet.Read(ssjDevice.getPlcDbReadAddress(), Short.parseShort("24")); String ddsx1 = "0"; if (read2.IsSuccess) { ddsx1 = SoftBasic.ByteToHexString(read2.Content); ssjDevice.setKx(ParseUtil.optInt(0, ddsx1)); - ssjDevice.setDw(ParseUtil.optInt(1, ddsx1)); - ssjDevice.setRkqq(ParseUtil.optInt(2, ddsx1)); - ssjDevice.setTrayCode(ParseUtil.optString(3, ddsx1)); - ssjDevice.setTaskNo(ParseUtil.optDInt(4, ddsx1)); + ssjDevice.setDw(ParseUtil.optInt(2, ddsx1)); + ssjDevice.setRkqq(ParseUtil.optInt(4, ddsx1)); + ssjDevice.setTaskNo(ParseUtil.optDInt(6, ddsx1)); + ssjDevice.setTrayCode(ParseUtil.optString(10, ddsx1)); } } @@ -497,15 +498,15 @@ public class PlcRead implements Runnable { * @param ssjDevice */ private void readPlcOutSsj(DeviceSsj ssjDevice) { - OperateResultExOne read2 = readWriteNet.Read(ssjDevice.getPlcDbReadAddress(), Short.parseShort("18")); + OperateResultExOne read2 = readWriteNet.Read(ssjDevice.getPlcDbReadAddress(), Short.parseShort("24")); String ddsx1 = "0"; if (read2.IsSuccess) { ddsx1 = SoftBasic.ByteToHexString(read2.Content); ssjDevice.setKx(ParseUtil.optInt(0, ddsx1)); - ssjDevice.setDw(ParseUtil.optInt(1, ddsx1)); - ssjDevice.setRkqq(ParseUtil.optInt(2, ddsx1)); - ssjDevice.setTrayCode(ParseUtil.optString(3, ddsx1)); - ssjDevice.setTaskNo(ParseUtil.optDInt(4, ddsx1)); + ssjDevice.setDw(ParseUtil.optInt(2, ddsx1)); + ssjDevice.setRkqq(ParseUtil.optInt(4, ddsx1)); + ssjDevice.setTaskNo(ParseUtil.optDInt(6, ddsx1)); + ssjDevice.setTrayCode(ParseUtil.optString(10, ddsx1)); } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/ssj/domain/Ssj.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/ssj/domain/Ssj.java deleted file mode 100644 index 3211d8a..0000000 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/ssj/domain/Ssj.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.ruoyi.schedule.plcRead.ssj.domain; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -@Data -@AllArgsConstructor -@NoArgsConstructor -public class Ssj { - private String deviceCode; - - private String plcReadAddress; - - private String plcWriteAddress; - //输送机类型:1-出库 2-拣选 3-入库 4-其他 - private String type; - - //空闲 0-否 1-是 - private Integer empty; - //到位 0-否 1-是 - private Integer inPlace; - //入库请求 0-否 1-是 - private Integer entryRequest; - //条码 - private String trayCode; - //任务号 - private Integer taskNo; - -} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/InSsjThread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/InSsjThread.java index ec51086..587c31c 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/InSsjThread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/InSsjThread.java @@ -12,11 +12,13 @@ import com.ruoyi.api.domain.wcs2wms.MydoJob; import com.ruoyi.api.service.IApiService; import com.ruoyi.device.ssj.domain.DeviceSsj; import com.ruoyi.schedule.plcRead.ssj.PlcRead; -import com.ruoyi.schedule.plcRead.ssj.domain.Ssj; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; +import javax.annotation.PostConstruct; import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.concurrent.ConcurrentHashMap; @@ -25,7 +27,7 @@ import java.util.concurrent.ConcurrentHashMap; @Component public class InSsjThread { - public ConcurrentHashMap deviceMap; + public HashMap> ssjCodeList; @Resource private IApiService apiService; @@ -33,15 +35,26 @@ public class InSsjThread { private IAgvQueueService agvQueueService; - public void run(){ - for (String ssjCode : PlcRead.deviceMap.keySet()) { - DeviceSsj deviceSsj = PlcRead.deviceMap.get(ssjCode); - if ("3".equals(deviceSsj.getType())){ - inDispatch(deviceSsj); - } - } + @PostConstruct + public void init() { + //todo 获取设备编码列表 + ssjCodeList = new HashMap<>(); } + public void run() { + for (String type : ssjCodeList.keySet()) { + if ("in".equals(type)) { + for (String ssjCode : ssjCodeList.get(type)) { + if (PlcRead.deviceMap.containsKey(ssjCode)) { + inDispatch(PlcRead.deviceMap.get(ssjCode)); + } else { + log.error("设备不存在 ssjCode{}", ssjCode); + } + } + } + } + + } public void inDispatch(DeviceSsj inSsjDevice) { diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/OutSsjThread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/OutSsjThread.java index 80d346d..b8accc1 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/OutSsjThread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/OutSsjThread.java @@ -9,11 +9,13 @@ import com.ruoyi.api.domain.wcs2wms.MydoJob; import com.ruoyi.api.service.IApiService; import com.ruoyi.device.ssj.domain.DeviceSsj; import com.ruoyi.schedule.plcRead.ssj.PlcRead; -import com.ruoyi.schedule.plcRead.ssj.domain.Ssj; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; +import javax.annotation.PostConstruct; import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.concurrent.ConcurrentHashMap; @@ -22,18 +24,30 @@ import java.util.concurrent.ConcurrentHashMap; @Component public class OutSsjThread { - public ConcurrentHashMap deviceMap; + public HashMap> ssjCodeList; @Resource private IApiService apiService; @Resource private IAgvQueueService agvQueueService; + + @PostConstruct + public void init() { + //todo 获取设备编码列表 + ssjCodeList = new HashMap<>(); + } + public void run() { - for (String ssjCode : PlcRead.deviceMap.keySet()) { - DeviceSsj deviceSsj = PlcRead.deviceMap.get(ssjCode); - if ("1".equals(deviceSsj.getType())){ - outDispatch(deviceSsj); + for (String type : ssjCodeList.keySet()) { + if ("out".equals(type)) { + for (String ssjCode : ssjCodeList.get(type)) { + if (PlcRead.deviceMap.containsKey(ssjCode)) { + outDispatch(PlcRead.deviceMap.get(ssjCode)); + } else { + log.error("设备不存在 ssjCode{}", ssjCode); + } + } } } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/PickSsjTread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/PickSsjTread.java index 15b4b49..404cc62 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/PickSsjTread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/PickSsjTread.java @@ -7,11 +7,14 @@ import com.ruoyi.api.domain.wcs2wms.MydoJob; import com.ruoyi.api.service.IApiService; import com.ruoyi.device.ssj.domain.DeviceSsj; import com.ruoyi.schedule.plcRead.ssj.PlcRead; -import com.ruoyi.schedule.plcRead.ssj.domain.Ssj; import lombok.extern.slf4j.Slf4j; +import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; +import javax.annotation.PostConstruct; import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.concurrent.ConcurrentHashMap; @@ -20,18 +23,32 @@ import java.util.concurrent.ConcurrentHashMap; @Component public class PickSsjTread { - public ConcurrentHashMap deviceMap; + public HashMap> ssjCodeList; @Resource private IApiService apiService; @Resource private IAgvQueueService agvQueueService; + + @PostConstruct + public void init() { + //todo 获取设备编码列表 + ssjCodeList = new HashMap<>(); + } + + + @Scheduled(fixedDelay = 5000) public void run(){ - for (String ssjCode : PlcRead.deviceMap.keySet()) { - DeviceSsj deviceSsj = PlcRead.deviceMap.get(ssjCode); - if ("2".equals(deviceSsj.getType())){ - pickDispatch(deviceSsj); + for (String type : ssjCodeList.keySet()) { + if ("pick".equals(type)) { + for (String ssjCode : ssjCodeList.get(type)) { + if (PlcRead.deviceMap.containsKey(ssjCode)) { + pickDispatch(PlcRead.deviceMap.get(ssjCode)); + } else { + log.error("设备不存在 ssjCode{}", ssjCode); + } + } } } }