From 463b9e4b68b8ab62a11c6985081fd5d62692cc79 Mon Sep 17 00:00:00 2001
From: cpT <1@123>
Date: 星期四, 29 一月 2026 19:42:07 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/thread/impl/ZySiemensDualCrnThread.java |   31 ++++++++++++++++++++++++++-----
 1 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/impl/ZySiemensDualCrnThread.java b/src/main/java/com/zy/core/thread/impl/ZySiemensDualCrnThread.java
index a9eb174..7bf7e62 100644
--- a/src/main/java/com/zy/core/thread/impl/ZySiemensDualCrnThread.java
+++ b/src/main/java/com/zy/core/thread/impl/ZySiemensDualCrnThread.java
@@ -67,7 +67,7 @@
                 try {
                     deviceLogCollectTime = Utils.getDeviceLogCollectTime();
                     readStatus();
-                    Thread.sleep(100);
+                    Thread.sleep(50);
                 } catch (Exception e) {
                     log.error("DualCrnThread Fail", e);
                 }
@@ -92,6 +92,7 @@
                         map.put("commands", commandList);
                         map.put("idx", 1);
                         redisUtil.set(RedisKeyType.DUAL_CRN_COMMAND_.key + command.getTaskNo(), JSON.toJSONString(map, SerializerFeature.DisableCircularReferenceDetect), 60 * 60 * 24);
+                        redisUtil.set(RedisKeyType.DUAL_CRN_COMMAND_STATION_TASK_NO.key + crnProtocol.getCrnNo() + "_" + command.getStation(), command.getTaskNo(), 60 * 60 * 24);
                         sendCommand(command);
                     } else if (step == 3) {
                         sendCommand((DualCrnCommand) task.getData());
@@ -123,8 +124,18 @@
                         }
                     }
 
-                    if(crnProtocol.getTaskNo() > 0 && crnProtocol.getStatus() == DualCrnStatusType.IDLE.id) {
-                        Integer taskNo = crnProtocol.getTaskNo();
+                    if(crnProtocol.getTaskNo() == 0 && crnProtocol.getStatus().equals(DualCrnStatusType.FETCH_COMPLETE.id)) {
+                        Integer taskNo = null;
+                        Object stationObj = redisUtil.get(RedisKeyType.DUAL_CRN_COMMAND_STATION_TASK_NO.key + crnProtocol.getCrnNo() + "_" + 1);
+                        if(stationObj != null) {
+                            taskNo = Integer.parseInt(String.valueOf(stationObj));
+                        }
+
+                        if (taskNo == null) {
+                            News.error("鍙屽伐浣嶅爢鍨涙満锛屽伐浣�1绌洪棽绛夊緟涓嬪彂鍛戒护锛屼絾鏈壘鍒板伐浣滃彿銆傚爢鍨涙満鍙�={}", crnProtocol.getCrnNo());
+                            continue;
+                        }
+
                         Object commandObj = redisUtil.get(RedisKeyType.DUAL_CRN_COMMAND_.key + taskNo);
                         if (commandObj == null) {
                             News.error("鍙屽伐浣嶅爢鍨涙満锛屽伐浣�1绌洪棽绛夊緟涓嬪彂鍛戒护锛屼絾鏈壘鍒板懡浠ゃ�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crnProtocol.getCrnNo(), taskNo);
@@ -181,8 +192,18 @@
                         redisUtil.set(RedisKeyType.DUAL_CRN_COMMAND_.key + taskNo, commandMap.toJSONString(), 60 * 60 * 24);
                     }
 
-                    if(crnProtocol.getTaskNoTwo() > 0 && crnProtocol.getStatusTwo() == DualCrnStatusType.IDLE.id) {
-                        Integer taskNo = crnProtocol.getTaskNoTwo();
+                    if(crnProtocol.getTaskNoTwo() == 0 && crnProtocol.getStatusTwo().equals(DualCrnStatusType.FETCH_COMPLETE.id)) {
+                        Integer taskNo = null;
+                        Object stationObj = redisUtil.get(RedisKeyType.DUAL_CRN_COMMAND_STATION_TASK_NO.key + crnProtocol.getCrnNo() + "_" + 2);
+                        if(stationObj != null) {
+                            taskNo = Integer.parseInt(String.valueOf(stationObj));
+                        }
+
+                        if (taskNo == null) {
+                            News.error("鍙屽伐浣嶅爢鍨涙満锛屽伐浣�1绌洪棽绛夊緟涓嬪彂鍛戒护锛屼絾鏈壘鍒板伐浣滃彿銆傚爢鍨涙満鍙�={}", crnProtocol.getCrnNo());
+                            continue;
+                        }
+
                         Object commandObj = redisUtil.get(RedisKeyType.DUAL_CRN_COMMAND_.key + taskNo);
                         if (commandObj == null) {
                             News.error("鍙屽伐浣嶅爢鍨涙満锛屽伐浣�2绌洪棽绛夊緟涓嬪彂鍛戒护锛屼絾鏈壘鍒板懡浠ゃ�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crnProtocol.getCrnNo(), taskNo);

--
Gitblit v1.9.1