diff --git a/ruoyi-admin/src/main/java/com/ruoyi/device/ddj/domain/MsgDdj.java b/ruoyi-admin/src/main/java/com/ruoyi/device/ddj/domain/MsgDdj.java index 07e89b1..7d3f56d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/device/ddj/domain/MsgDdj.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/device/ddj/domain/MsgDdj.java @@ -107,6 +107,8 @@ public class MsgDdj extends BaseEntity private String plcDbReadAddress; private String plcDbWriteAddress; + private Integer height; + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/device/ssj/domain/DeviceSsj.java b/ruoyi-admin/src/main/java/com/ruoyi/device/ssj/domain/DeviceSsj.java index bf6400d..973967a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/device/ssj/domain/DeviceSsj.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/device/ssj/domain/DeviceSsj.java @@ -86,6 +86,15 @@ public class DeviceSsj extends BaseEntity @Excel(name="输送线模式 1-入库 2-出库") private int model; + private int height; + + private int jxdw; + + private int sbzt; + + private int spare1; + + } 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 0009904..bde7735 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/ScheduleThread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/ScheduleThread.java @@ -90,10 +90,12 @@ public class ScheduleThread { for (DeviceSsj deviceSsj : deviceSsjs) { ssjList.put(deviceSsj.getDeviceCode(), deviceSsj); } - - + String ipAddress = deviceSsjs.get(0).getIpAddress(); + String[] split = ipAddress.split(":"); + String ip = split[0]; + int port = Convert.toInt(split[1]); //plc输送机读取线程 - PlcSsjRead plcSsjRead = new PlcSsjRead(ssjList, new PlcConnectInfo(deviceSsjs.get(0).getIpAddress(), Convert.toInt(deviceSsjs.get(0).getPort()))); + PlcSsjRead plcSsjRead = new PlcSsjRead(ssjList, new PlcConnectInfo(ip, port)); Thread plcSsjReadThread = new Thread(plcSsjRead); plcSsjReadCustomThread = new CustomThread(plcSsjReadThread, plcSsjRead); @@ -167,12 +169,14 @@ public class ScheduleThread { */ public void stopAllThread() { plcSsjReadCustomThread.runnable.isRun = false; + plcSsjReadCustomThread.thread.interrupt(); plcDdj1ReadCustomThread.runnable.isRun = false; - /* plcDdj2ReadCustomThread.runnable.isRun = false; + plcDdj1ReadCustomThread.thread.interrupt(); + plcDdj2ReadCustomThread.runnable.isRun = false; plcDdj3ReadCustomThread.runnable.isRun = false; plcDdj4ReadCustomThread.runnable.isRun = false; plcDdj5ReadCustomThread.runnable.isRun = false; - plcDdj6ReadCustomThread.runnable.isRun = false;*/ + plcDdj6ReadCustomThread.runnable.isRun = false; plcReadInit(); isRun = false; } @@ -182,7 +186,9 @@ public class ScheduleThread { */ public void stopAllThread2() { monitoringCustomThread.runnable.isRun = false; + monitoringCustomThread.thread.interrupt(); ddj1CustomThread.runnable.isRun = false; + ddj1CustomThread.thread.interrupt(); /*ddj2CustomThread.runnable.isRun = false; ddj3CustomThread.runnable.isRun = false; ddj4CustomThread.runnable.isRun = false; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/ddj/PlcDdjRead.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/ddj/PlcDdjRead.java index 281af70..a1bf4e0 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/ddj/PlcDdjRead.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/ddj/PlcDdjRead.java @@ -55,7 +55,6 @@ public class PlcDdjRead extends Thread { } } catch (InterruptedException e) { Thread.currentThread().interrupt(); - return; } catch (Exception e) { log.info("********IP:" + this.ip + " port:" + this.port + "端口号 " + e.getMessage()); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/ssj/PlcSsjRead.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/ssj/PlcSsjRead.java index 488a062..6ca7c73 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/ssj/PlcSsjRead.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/ssj/PlcSsjRead.java @@ -54,7 +54,7 @@ public class PlcSsjRead implements Runnable { for (String ssjCode : deviceSsjMap.keySet()) { DeviceSsj ssjDevice = deviceSsjMap.get(ssjCode); switch (ssjDevice.getType()) { - case "1": + /*case "1": readPlcLineSsj(ssjDevice); break; case "2": @@ -62,7 +62,7 @@ public class PlcSsjRead implements Runnable { break; case "3": readPlcOtherSsj(ssjDevice); - break; + break;*/ case "4": readPlcRoadWaySsj(ssjDevice); break; @@ -109,10 +109,15 @@ public class PlcSsjRead implements Runnable { String ddsx1 = "0"; if (read2.IsSuccess) { ddsx1 = SoftBasic.ByteToHexString(read2.Content); - ssjDevice.setKx(ParseUtil.optInt(0, ddsx1)); - ssjDevice.setDw(ParseUtil.optInt(2, ddsx1)); - ssjDevice.setRkqq(ParseUtil.optInt(4, ddsx1)); - ssjDevice.setTaskNo(ParseUtil.optDInt(6, ddsx1)); + ssjDevice.setDw(ParseUtil.optInt(0, ddsx1)); + ssjDevice.setKx(ParseUtil.optInt(2, ddsx1)); + ssjDevice.setTaskNo(ParseUtil.optDInt(4, ddsx1)); + ssjDevice.setSbzt(ParseUtil.optInt(8, ddsx1)); + ssjDevice.setRkqq(ParseUtil.optInt(10, ddsx1)); + ssjDevice.setHeight(ParseUtil.optInt(12, ddsx1)); + ssjDevice.setException(ParseUtil.optInt(14, ddsx1)); + ssjDevice.setJxdw(ParseUtil.optInt(16, ddsx1)); + ssjDevice.setSpare1(ParseUtil.optInt(18, ddsx1)); } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/BaseDdjThread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/BaseDdjThread.java index 9ff1f9b..fc05748 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/BaseDdjThread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/BaseDdjThread.java @@ -46,7 +46,7 @@ public abstract class BaseDdjThread implements Runnable, DdjThreadInterface { public boolean isRun = true; @Override - public abstract HashMap getParamMap(String trayCode); + public abstract HashMap getParamMap(String trayCode,Integer height); @Override @@ -168,7 +168,7 @@ public abstract class BaseDdjThread implements Runnable, DdjThreadInterface { MydoJob inJob = null; if (CollUtil.isEmpty(mydoJobs)) { //请求wms获取任务 并生成队列 - AjaxResult result = apiService.selectMydoJobByTrayCodeAndEntranceId(getParamMap(ddj.getTrayCode())); + AjaxResult result = apiService.selectMydoJobByTrayCodeAndEntranceId(getParamMap(ddj.getTrayCode(),ddj.getHeight())); if (result.isSuccess()) { inJob = BeanUtil.toBean(result.get("data"), MydoJob.class); inJob.setStatus(TASK_STATUS_CREATE); @@ -255,7 +255,7 @@ public abstract class BaseDdjThread implements Runnable, DdjThreadInterface { private void generateInBoundPickQueue(MsgDdj ddj) { List roadSsjList = ssjList.get("roadSsjList"); for (DeviceSsj ssj : roadSsjList) { - if (ssj.getDw() == 1 && ssj.getTaskNo() > 0) { + if (ssj.getDw() == 1 && ssj.getTaskNo() > 0 && ssj.getHeight() > 0 && ssj.getRkqq()==1) { DdjDeviceExecutionQueue ddjQueue = ddjDeviceExecutionQueueService.selectDdjDeviceExecutionQueueByRwh(Convert.toLong(ssj.getTaskNo()), ddj.getId()); if (ObjUtil.isNull(ddjQueue)) { DdjDeviceExecutionQueue ddjDeviceExecutionQueue = new DdjDeviceExecutionQueue(); @@ -276,6 +276,7 @@ public abstract class BaseDdjThread implements Runnable, DdjThreadInterface { ddjDeviceExecutionQueue.setScsj(DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss")); ddjDeviceExecutionQueue.setMlfs(3); ddjDeviceExecutionQueue.setSpare1("0"); + ddjDeviceExecutionQueue.setSpare2(Convert.toStr(ssj.getHeight())); ddjDeviceExecutionQueueService.insertDdjDeviceExecutionQueue(ddjDeviceExecutionQueue); } } @@ -298,6 +299,7 @@ public abstract class BaseDdjThread implements Runnable, DdjThreadInterface { if (ObjUtil.isNotNull(mydoJob)){ //回传完成信号 ddjTaskFinish(rwh, ddj.getId(),1); + ddj.setHeight(Convert.toInt(ddjDeviceExecutionQueue.getSpare2())); } } } @@ -310,6 +312,7 @@ public abstract class BaseDdjThread implements Runnable, DdjThreadInterface { if (ddjDeviceExecutionQueue.getRwlx()==1){ //完成队列 ddjTaskFinish(rwh, ddj.getId(),2); + ddj.setHeight(0); } } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/DdjThreadInterface.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/DdjThreadInterface.java index 8342528..9403ac0 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/DdjThreadInterface.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/DdjThreadInterface.java @@ -11,7 +11,7 @@ public interface DdjThreadInterface { * @param trayCode 托盘代码 * @return 参数映射 */ - HashMap getParamMap(String trayCode); + HashMap getParamMap(String trayCode,Integer height); /** * 获取出库任务参数 diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj1Thread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj1Thread.java index 6e0c1dc..4766343 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj1Thread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj1Thread.java @@ -19,6 +19,9 @@ import static com.ruoyi.common.Constant.WAREHOUSE_01; @Slf4j public class Ddj1Thread extends BaseDdjThread { + public volatile boolean isRun = true; + + @Override public void init() { super.init(); @@ -57,7 +60,7 @@ public class Ddj1Thread extends BaseDdjThread { } @Override - public HashMap getParamMap(String trayCode) { + public HashMap getParamMap(String trayCode,Integer height) { HashMap paramMap = new HashMap<>(); paramMap.put("trayCode", trayCode); paramMap.put("warehouseId",WAREHOUSE_01); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj2Thread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj2Thread.java index 41a7aab..244ab95 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj2Thread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj2Thread.java @@ -56,7 +56,7 @@ public class Ddj2Thread extends BaseDdjThread { } @Override - public HashMap getParamMap(String trayCode) { + public HashMap getParamMap(String trayCode,Integer height) { HashMap paramMap = new HashMap<>(); paramMap.put("trayCode", trayCode); paramMap.put("warehouseId",WAREHOUSE_01); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj3Thread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj3Thread.java index dda1a67..9275d3f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj3Thread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj3Thread.java @@ -55,7 +55,7 @@ public class Ddj3Thread extends BaseDdjThread { } @Override - public HashMap getParamMap(String trayCode) { + public HashMap getParamMap(String trayCode,Integer height) { HashMap paramMap = new HashMap<>(); paramMap.put("trayCode", trayCode); paramMap.put("warehouseId",WAREHOUSE_01); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj4Thread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj4Thread.java index 238fa83..7d44ed6 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj4Thread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj4Thread.java @@ -46,7 +46,7 @@ public class Ddj4Thread extends BaseDdjThread { @Override - public HashMap getParamMap(String trayCode) { + public HashMap getParamMap(String trayCode,Integer height) { HashMap paramMap = new HashMap<>(); paramMap.put("trayCode", trayCode); paramMap.put("warehouseId",WAREHOUSE_02); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj5Thread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj5Thread.java index 353af84..322a86f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj5Thread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj5Thread.java @@ -46,7 +46,7 @@ public class Ddj5Thread extends BaseDdjThread { } @Override - public HashMap getParamMap(String trayCode) { + public HashMap getParamMap(String trayCode,Integer height) { HashMap paramMap = new HashMap<>(); paramMap.put("trayCode", trayCode); paramMap.put("warehouseId",WAREHOUSE_02); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj6Thread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj6Thread.java index f9adb0c..eed2f10 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj6Thread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj6Thread.java @@ -46,7 +46,7 @@ public class Ddj6Thread extends BaseDdjThread { @Override - public HashMap getParamMap(String trayCode) { + public HashMap getParamMap(String trayCode,Integer height) { HashMap paramMap = new HashMap<>(); paramMap.put("trayCode", trayCode); paramMap.put("warehouseId",WAREHOUSE_02); diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index cc6e3c0..b90b439 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -16,7 +16,7 @@ ruoyi: # 开发环境配置 server: # 服务器的HTTP端口,默认为8080 - port: 8081 + port: 10012 servlet: # 应用的访问路径 context-path: / diff --git a/ruoyi-admin/src/main/resources/mapper/device/DeviceSsjMapper.xml b/ruoyi-admin/src/main/resources/mapper/device/DeviceSsjMapper.xml index 0c57cd0..2d29e28 100644 --- a/ruoyi-admin/src/main/resources/mapper/device/DeviceSsjMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/device/DeviceSsjMapper.xml @@ -22,10 +22,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + - select id, device_code , name , type, ip_address, plc_db_read_address, is_active, create_time, plc_db_write_address, rkqq, kx, dw, tray_code, task_no,exception,tray_size,allow_put from device_ssj + select id, device_code , name , type, ip_address, plc_db_read_address, is_active, create_time, plc_db_write_address, rkqq, kx, dw, tray_code, task_no,exception,tray_size,allow_put,height,jxdw,sbzt,spare1 from device_ssj