From 8f7d698f2d161fecf30304a07ed5f705d7b864fc Mon Sep 17 00:00:00 2001 From: shenzhouyu Date: Wed, 29 Apr 2026 10:22:53 +0800 Subject: [PATCH] =?UTF-8?q?3in1=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xujie/devicecollector/dao/DeviceGatherDao.java | 8 ++++---- .../com/xujie/devicecollector/runner/DeviceRunner.java | 3 ++- .../service/impl/DeviceGatherServiceImpl.java | 4 ++-- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/glue-modbus-collector/src/main/java/com/xujie/devicecollector/dao/DeviceGatherDao.java b/glue-modbus-collector/src/main/java/com/xujie/devicecollector/dao/DeviceGatherDao.java index 0db9c71..29c42ed 100644 --- a/glue-modbus-collector/src/main/java/com/xujie/devicecollector/dao/DeviceGatherDao.java +++ b/glue-modbus-collector/src/main/java/com/xujie/devicecollector/dao/DeviceGatherDao.java @@ -53,13 +53,13 @@ public interface DeviceGatherDao extends BaseMapper { /** * 查询卷号是否已存在 */ - @Select("select count(1) from device_gather where roll_no = #{rollNo}") - int countByRollNo(@Param("rollNo") String rollNo); + @Select("select count(1) from device_gather where roll_no = #{rollNo} and seq_no = #{seqNo}") + int countByRollNo(@Param("rollNo") String rollNo, @Param("seqNo") String seqNo); /** * 查询是否存在active为N的数据 */ - @Select("select count(1) from device_gather where active = 'N' and status='扫描卷'") - int countActiveN(); + @Select("select count(1) from device_gather where active = 'N' and status='扫描卷'and seq_no = #{seqNo}") + int countActiveN(@Param("seqNo") String seqNo); } diff --git a/glue-modbus-collector/src/main/java/com/xujie/devicecollector/runner/DeviceRunner.java b/glue-modbus-collector/src/main/java/com/xujie/devicecollector/runner/DeviceRunner.java index 9852474..91586ad 100644 --- a/glue-modbus-collector/src/main/java/com/xujie/devicecollector/runner/DeviceRunner.java +++ b/glue-modbus-collector/src/main/java/com/xujie/devicecollector/runner/DeviceRunner.java @@ -147,7 +147,7 @@ public class DeviceRunner implements CommandLineRunner { // - 大卷B分切信号:0x502 int cuta = 500; int cutb = 502; - int cutab = 508; + int cutab = 506; int bit1 = collectUtil.readHoldingRegister(ip, port, cuta); logger.info("卷A分切信号:{}", bit1); // 卷B分切信号 @@ -190,6 +190,7 @@ public class DeviceRunner implements CommandLineRunner { String rollNo = (String) redisTemplate.opsForValue().get("device:" + ip); // 触发分切,执行方法扫描卷处理 deviceGatherService.scanRollNo(deviceInfo, rollNo, nextRollNo); + collectUtil.writeHoldingRegister(ip, port, cutab, 0); } } } diff --git a/glue-modbus-collector/src/main/java/com/xujie/devicecollector/service/impl/DeviceGatherServiceImpl.java b/glue-modbus-collector/src/main/java/com/xujie/devicecollector/service/impl/DeviceGatherServiceImpl.java index 29dd107..e0c965b 100644 --- a/glue-modbus-collector/src/main/java/com/xujie/devicecollector/service/impl/DeviceGatherServiceImpl.java +++ b/glue-modbus-collector/src/main/java/com/xujie/devicecollector/service/impl/DeviceGatherServiceImpl.java @@ -90,8 +90,8 @@ public class DeviceGatherServiceImpl implements DeviceGatherService { private void handleData(String seqNo, String site, String rollNo, String ip) { boolean rollNoNotZero = !"0".equals(rollNo); - boolean rollNoNotExists = deviceGatherDao.countByRollNo(rollNo) == 0; - boolean noActiveN = deviceGatherDao.countActiveN() == 0; + boolean rollNoNotExists = deviceGatherDao.countByRollNo(rollNo,seqNo) == 0; + boolean noActiveN = deviceGatherDao.countActiveN(seqNo) == 0; if (rollNoNotExists && rollNoNotZero && noActiveN) { updateDeviceGather(ip, rollNo);