From fe024501537f84baa38d3f09367b757a5719b77a Mon Sep 17 00:00:00 2001
From: Junjie <DELL@qq.com>
Date: 星期五, 28 十一月 2025 16:44:30 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/thread/impl/ZyRgvThread.java        |    5 ++++-
 src/main/java/com/zy/asrs/utils/Utils.java                    |   27 +++++++++++++++++++++++++++
 src/main/java/com/zy/core/thread/impl/ZyStationThread.java    |    5 ++++-
 src/main/java/com/zy/core/thread/impl/ZySiemensCrnThread.java |    4 +++-
 4 files changed, 38 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index cf9784b..3c7d165 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -4,7 +4,12 @@
 import com.alibaba.fastjson.JSONObject;
 import com.core.common.Arith;
 import com.core.common.Cools;
+import com.core.common.SpringUtils;
+import com.zy.common.utils.RedisUtil;
+import com.zy.core.enums.RedisKeyType;
+
 import java.text.DecimalFormat;
+import java.util.HashMap;
 
 public class Utils {
 
@@ -80,4 +85,26 @@
             return false;
         }
     }
+
+    //鑾峰彇璁惧鏃ュ織閲囬泦鏃堕棿
+    public static int getDeviceLogCollectTime() {
+        int defaultTime = 200;
+        RedisUtil redisUtil = SpringUtils.getBean(RedisUtil.class);
+        if (redisUtil == null) {
+            return defaultTime;
+        }
+
+        Object object = redisUtil.get(RedisKeyType.SYSTEM_CONFIG_MAP.key);
+        if (object == null) {
+            return defaultTime;
+        }
+
+        HashMap<String, String> systemConfigMap = (HashMap<String, String>) object;
+        String deviceLogCollectTime = systemConfigMap.get("deviceLogCollectTime");
+        if(deviceLogCollectTime == null){
+            return defaultTime;
+        }
+
+        return Integer.parseInt(deviceLogCollectTime);
+    }
 }
diff --git a/src/main/java/com/zy/core/thread/impl/ZyRgvThread.java b/src/main/java/com/zy/core/thread/impl/ZyRgvThread.java
index 656b4dd..461f6e8 100644
--- a/src/main/java/com/zy/core/thread/impl/ZyRgvThread.java
+++ b/src/main/java/com/zy/core/thread/impl/ZyRgvThread.java
@@ -10,6 +10,7 @@
 import com.zy.asrs.entity.DeviceDataLog;
 import com.zy.asrs.service.BasRgvService;
 import com.zy.asrs.service.BasRgvOptService;
+import com.zy.asrs.utils.Utils;
 import com.zy.common.utils.RedisUtil;
 import com.zy.core.cache.MessageQueue;
 import com.zy.core.cache.OutputQueue;
@@ -38,6 +39,7 @@
     private RedisUtil redisUtil;
     private ZyRgvConnectDriver zyRgvConnectDriver;
     private RgvProtocol rgvProtocol;
+    private int deviceLogCollectTime = 200;
 
     public ZyRgvThread(DeviceConfig deviceConfig, RedisUtil redisUtil) {
         this.deviceConfig = deviceConfig;
@@ -51,6 +53,7 @@
         initRgv();
         while (true) {
             try {
+                deviceLogCollectTime = Utils.getDeviceLogCollectTime();
                 int step = 1;
                 Task task = MessageQueue.poll(SlaveType.Rgv, deviceConfig.getDeviceNo());
                 if (task != null) {
@@ -117,7 +120,7 @@
             rgvProtocol.setLastCommandTime(System.currentTimeMillis());
         }
 
-        if (System.currentTimeMillis() - rgvProtocol.getDeviceDataLog() > 200) {
+        if (System.currentTimeMillis() - rgvProtocol.getDeviceDataLog() > deviceLogCollectTime) {
             DeviceDataLog deviceDataLog = new DeviceDataLog();
             deviceDataLog.setOriginData(JSON.toJSONString(s));
             deviceDataLog.setWcsData(JSON.toJSONString(rgvProtocol));
diff --git a/src/main/java/com/zy/core/thread/impl/ZySiemensCrnThread.java b/src/main/java/com/zy/core/thread/impl/ZySiemensCrnThread.java
index f411914..0bb8c61 100644
--- a/src/main/java/com/zy/core/thread/impl/ZySiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/impl/ZySiemensCrnThread.java
@@ -43,6 +43,7 @@
     private RedisUtil redisUtil;
     private ZyCrnConnectDriver zyCrnConnectDriver;
     private CrnProtocol crnProtocol;
+    private int deviceLogCollectTime = 200;
     private boolean resetFlag = false;
 
     public ZySiemensCrnThread(DeviceConfig deviceConfig, RedisUtil redisUtil) {
@@ -57,6 +58,7 @@
         this.initCrn();
         while (true) {
             try {
+                deviceLogCollectTime = Utils.getDeviceLogCollectTime();
                 int step = 1;
                 Task task = MessageQueue.poll(SlaveType.Crn, deviceConfig.getDeviceNo());
                 if (task != null) {
@@ -172,7 +174,7 @@
             crnProtocol.setLastCommandTime(System.currentTimeMillis());
         }
 
-        if (System.currentTimeMillis() - crnProtocol.getDeviceDataLog() > 200) {
+        if (System.currentTimeMillis() - crnProtocol.getDeviceDataLog() > deviceLogCollectTime) {
             //淇濆瓨鏁版嵁璁板綍
             DeviceDataLog deviceDataLog = new DeviceDataLog();
             deviceDataLog.setOriginData(JSON.toJSONString(crnStatus));
diff --git a/src/main/java/com/zy/core/thread/impl/ZyStationThread.java b/src/main/java/com/zy/core/thread/impl/ZyStationThread.java
index ea8e40f..9552cc0 100644
--- a/src/main/java/com/zy/core/thread/impl/ZyStationThread.java
+++ b/src/main/java/com/zy/core/thread/impl/ZyStationThread.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.zy.asrs.entity.BasDevp;
 import com.zy.asrs.service.BasDevpService;
+import com.zy.asrs.utils.Utils;
 import com.zy.core.network.DeviceConnectPool;
 import com.zy.core.thread.StationThread;
 import com.alibaba.fastjson.JSON;
@@ -42,6 +43,7 @@
     private DeviceConfig deviceConfig;
     private RedisUtil redisUtil;
     private ZyStationConnectDriver zyStationConnectDriver;
+    private int deviceLogCollectTime = 200;
     private long deviceDataLogTime = System.currentTimeMillis();
 
     public ZyStationThread(DeviceConfig deviceConfig, RedisUtil redisUtil) {
@@ -53,6 +55,7 @@
     @SuppressWarnings("InfiniteLoopStatement")
     public void run() {
         this.connect();
+        deviceLogCollectTime = Utils.getDeviceLogCollectTime();
 
         //璁惧璇诲彇
         Thread readThread = new Thread(() -> {
@@ -134,7 +137,7 @@
 
         OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), deviceConfig.getDeviceNo()));
 
-        if (System.currentTimeMillis() - deviceDataLogTime > 1000 * 1) {
+        if (System.currentTimeMillis() - deviceDataLogTime > deviceLogCollectTime) {
             //淇濆瓨鏁版嵁璁板綍
             DeviceDataLog deviceDataLog = new DeviceDataLog();
             deviceDataLog.setOriginData(JSON.toJSONString(zyStationStatusEntities));

--
Gitblit v1.9.1