From e710639b11abb7bcc239c654f12edd3e262d82e8 Mon Sep 17 00:00:00 2001 From: liuhanqing Date: Fri, 21 Nov 2025 10:35:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=A0=86=E5=9E=9B=E6=9C=BA?= =?UTF-8?q?=E8=AF=BB=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/schedule/ScheduleThread.java | 40 ++++++++----------- .../schedule/plcRead/ddj/PlcDdjRead.java | 13 +++--- 2 files changed, 21 insertions(+), 32 deletions(-) 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 5ac238c..2a70400 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/ScheduleThread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/ScheduleThread.java @@ -1,5 +1,6 @@ package com.ruoyi.schedule; +import cn.hutool.core.convert.Convert; import com.ruoyi.common.domain.CustomThread; import com.ruoyi.common.domain.PlcConnectInfo; import com.ruoyi.device.ddj.domain.MsgDdj; @@ -100,46 +101,37 @@ public class ScheduleThread { ConcurrentHashMap ddjList = new ConcurrentHashMap<>(); List msgDdjs = msgDdjService.selectMsgDdjList(new MsgDdj()); for (MsgDdj msgDdj : msgDdjs) { + msgDdj.setPlcDbReadAddress(msgDdj.getPlcDbReadAddress()); + PlcDdjRead plcDdjRead = new PlcDdjRead(msgDdj, new PlcConnectInfo(msgDdj.getIp(), Convert.toInt(msgDdj.getPort()))); 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); + Thread plcDdjReadThread1 = new Thread(plcDdjRead); + plcDdj1ReadCustomThread = new CustomThread(plcDdjReadThread1, plcDdjRead); 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); + Thread plcDdjReadThread2 = new Thread(plcDdjRead); + plcDdj2ReadCustomThread = new CustomThread(plcDdjReadThread2, plcDdjRead); break; case 3: - msgDdj.setPlcDbReadAddress("DB42.0"); - PlcDdjRead plcDdjRead3 = new PlcDdjRead(ddjList, new PlcConnectInfo("127.0.0.3", 102)); - Thread plcDdjReadThread3 = new Thread(plcDdjRead3); - plcDdj3ReadCustomThread = new CustomThread(plcDdjReadThread3, plcDdjRead3); + Thread plcDdjReadThread3 = new Thread(plcDdjRead); + plcDdj3ReadCustomThread = new CustomThread(plcDdjReadThread3, plcDdjRead); break; case 4: - msgDdj.setPlcDbReadAddress("DB42.0"); - PlcDdjRead plcDdjRead4 = new PlcDdjRead(ddjList, new PlcConnectInfo("127.0.0.4", 102)); - Thread plcDdjReadThread4 = new Thread(plcDdjRead4); - plcDdj4ReadCustomThread = new CustomThread(plcDdjReadThread4, plcDdjRead4); + Thread plcDdjReadThread4 = new Thread(plcDdjRead); + plcDdj4ReadCustomThread = new CustomThread(plcDdjReadThread4, plcDdjRead); break; case 5: - msgDdj.setPlcDbReadAddress("DB42.0"); - PlcDdjRead plcDdjRead5 = new PlcDdjRead(ddjList, new PlcConnectInfo("127.0.0.5", 102)); - Thread plcDdjReadThread5 = new Thread(plcDdjRead5); - plcDdj5ReadCustomThread = new CustomThread(plcDdjReadThread5, plcDdjRead5); + Thread plcDdjReadThread5 = new Thread(plcDdjRead); + plcDdj5ReadCustomThread = new CustomThread(plcDdjReadThread5, plcDdjRead); break; case 6: - msgDdj.setPlcDbReadAddress("DB42.0"); - PlcDdjRead plcDdjRead6 = new PlcDdjRead(ddjList, new PlcConnectInfo("127.0.0.6", 102)); - Thread plcDdjReadThread6 = new Thread(plcDdjRead6); - plcDdj6ReadCustomThread = new CustomThread(plcDdjReadThread6, plcDdjRead6); + Thread plcDdjReadThread6 = new Thread(plcDdjRead); + plcDdj6ReadCustomThread = new CustomThread(plcDdjReadThread6, plcDdjRead); break; } ddjList.put("ddj" + msgDdj.getId(), msgDdj); } + PlcDdjRead.deviceDdjMap = ddjList; } /** 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 f96758f..281af70 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 @@ -27,8 +27,10 @@ public class PlcDdjRead extends Thread { private final int port; private boolean success = false; - public PlcDdjRead(ConcurrentHashMap deviceDdjMap, PlcConnectInfo plcConnectInfo) { - PlcDdjRead.deviceDdjMap = deviceDdjMap; + private MsgDdj msgDdj; + + public PlcDdjRead( MsgDdj msgDdj, PlcConnectInfo plcConnectInfo) { + this.msgDdj = msgDdj; this.ip = plcConnectInfo.getIp(); this.port = plcConnectInfo.getPort(); } @@ -46,12 +48,7 @@ public class PlcDdjRead extends Thread { while (isRun) { try { if (IsConnect()) { - for (String key : deviceDdjMap.keySet()) { - MsgDdj msgDdj = deviceDdjMap.get(key); - if (msgDdj != null) { - readPlcDdj(msgDdj); - } - } + readPlcDdj(msgDdj); Thread.sleep(1000); } else { reConnect();