From 34879ff4b298a5b6785edced123e1371cbed5d11 Mon Sep 17 00:00:00 2001
From: Administrator <XS@163.COM>
Date: 星期二, 28 四月 2026 13:59:39 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/network/real/ZyDualCrnRealConnect.java |   18 +++++++++++++++++-
 1 files changed, 17 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/zy/core/network/real/ZyDualCrnRealConnect.java b/src/main/java/com/zy/core/network/real/ZyDualCrnRealConnect.java
index 6255898..143e510 100644
--- a/src/main/java/com/zy/core/network/real/ZyDualCrnRealConnect.java
+++ b/src/main/java/com/zy/core/network/real/ZyDualCrnRealConnect.java
@@ -216,6 +216,7 @@
         RedisUtil redisUtil = SpringUtils.getBean(RedisUtil.class);
         redisUtil.set(RedisKeyType.DUAL_CRN_SEND_COMMAND_LOCK.key + deviceConfig.getDeviceNo() + "_" + command.getStation(), "lock", 1);
         CommandResponse response = new CommandResponse(false);
+        boolean confirmCommand = command != null && DualCrnTaskModeType.CONFIRM.id.equals(command.getTaskMode());
          try {
              if (null == command) {
                  News.error("鍙屽伐浣嶅爢鍨涙満鍐欏叆鍛戒护涓虹┖");
@@ -271,7 +272,22 @@
                     short destinationPosX = siemensNet.getByteTransform().TransInt16(resultRead.Content, 10);
                     short destinationPosY = siemensNet.getByteTransform().TransInt16(resultRead.Content, 12);
                     short destinationPosZ = siemensNet.getByteTransform().TransInt16(resultRead.Content, 14);
-                    if (taskNo == 0 || taskMode == 0 || sourcePosX == 0 || sourcePosY == 0 || sourcePosZ == 0 || destinationPosX == 0 || destinationPosY == 0 || destinationPosZ == 0) {
+                    boolean payloadReady;
+                    if (confirmCommand) {
+                        // CONFIRM 鍛戒护鏈韩涓嶆惡甯﹀簱浣嶅潗鏍囷紝闆跺潗鏍囨槸鍚堟硶鍊笺��
+                        payloadReady = taskNo == command.getTaskNo().shortValue()
+                                && taskMode == command.getTaskMode().shortValue();
+                    } else {
+                        payloadReady = taskNo != 0
+                                && taskMode != 0
+                                && sourcePosX != 0
+                                && sourcePosY != 0
+                                && sourcePosZ != 0
+                                && destinationPosX != 0
+                                && destinationPosY != 0
+                                && destinationPosZ != 0;
+                    }
+                    if (!payloadReady) {
                         result = siemensNet.Write(address, array);
                     } else {
                         break;

--
Gitblit v1.9.1