From faaf77b2ed6609e1ec159f163cb97c79f37df532 Mon Sep 17 00:00:00 2001
From: Administrator <XS@163.COM>
Date: 星期六, 25 四月 2026 23:46:56 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/thread/impl/ZySiemensDualCrnThread.java | 64 ++++++++++++++++++++++++++++++++
1 files changed, 64 insertions(+), 0 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 2f643ae..657ee91 100644
--- a/src/main/java/com/zy/core/thread/impl/ZySiemensDualCrnThread.java
+++ b/src/main/java/com/zy/core/thread/impl/ZySiemensDualCrnThread.java
@@ -176,12 +176,34 @@
if (dualCommand.getTaskMode().intValue() == DualCrnTaskModeType.PICK.id) {
if (crnProtocol.getStatus().equals(DualCrnStatusType.IDLE.id)) {
send = true;
+ } else {
+ logDualCrnWaitLimited("pick_station1_" + crnProtocol.getCrnNo(), 3,
+ "[WCS Trace][鍙屽伐浣嶅叆搴揮 宸ヤ綅1鍙栬揣鍛戒护绛夊緟鍙戦�併�俢rnNo={}, idx={}, taskNo1={}, taskNo2={}, status1={}({}), status2={}({}), taskSend1={}, taskSend2={}, nextTaskMode={}",
+ crnProtocol.getCrnNo(), idx, crnProtocol.getTaskNo(), crnProtocol.getTaskNoTwo(),
+ crnProtocol.getStatus(), crnProtocol.getStatusType(),
+ crnProtocol.getStatusTwo(), crnProtocol.getStatusTypeTwo(),
+ crnProtocol.getTaskSend(), crnProtocol.getTaskSendTwo(), dualCommand.getTaskMode());
}
} else if (dualCommand.getTaskMode().intValue() == DualCrnTaskModeType.PUT.id) {
if (crnProtocol.getStatus().equals(DualCrnStatusType.FETCH_COMPLETE.id)) {
send = true;
+ } else {
+ logDualCrnWaitLimited("put_station1_status_" + crnProtocol.getCrnNo(), 3,
+ "[WCS Trace][鍙屽伐浣嶅叆搴揮 宸ヤ綅1鏀捐揣鍛戒护绛夊緟FETCH_COMPLETE銆俢rnNo={}, idx={}, currentTaskNo={}, status1={}({}), status2={}({}), taskSend1={}, taskSend2={}, taskReceive1={}, taskReceive2={}, loaded1={}, loaded2={}",
+ crnProtocol.getCrnNo(), idx, dualCommand.getTaskNo(),
+ crnProtocol.getStatus(), crnProtocol.getStatusType(),
+ crnProtocol.getStatusTwo(), crnProtocol.getStatusTypeTwo(),
+ crnProtocol.getTaskSend(), crnProtocol.getTaskSendTwo(),
+ crnProtocol.getTaskReceive(), crnProtocol.getTaskReceiveTwo(),
+ crnProtocol.getLoaded(), crnProtocol.getLoadedTwo());
}
}
+ } else {
+ logDualCrnWaitLimited("station1_tasksend_" + crnProtocol.getCrnNo(), 3,
+ "[WCS Trace][鍙屽伐浣嶅叆搴揮 宸ヤ綅1鍛戒护绛夊緟taskSend娓呴浂銆俢rnNo={}, idx={}, taskSend1={}, taskSend2={}, status1={}({}), status2={}({}), nextTaskMode={}",
+ crnProtocol.getCrnNo(), idx, crnProtocol.getTaskSend(), crnProtocol.getTaskSendTwo(),
+ crnProtocol.getStatus(), crnProtocol.getStatusType(),
+ crnProtocol.getStatusTwo(), crnProtocol.getStatusTypeTwo(), dualCommand.getTaskMode());
}
} else {
log.info("宸ヤ綅1浠诲姟==========>{}, 浠诲姟妯″紡---->{}", crnProtocol.getTaskNo(), crnProtocol.getMode());
@@ -192,12 +214,34 @@
if (dualCommand.getTaskMode().intValue() == DualCrnTaskModeType.PICK.id) {
if (crnProtocol.getStatusTwo().equals(DualCrnStatusType.IDLE.id)) {
send = true;
+ } else {
+ logDualCrnWaitLimited("pick_station2_" + crnProtocol.getCrnNo(), 3,
+ "[WCS Trace][鍙屽伐浣嶅叆搴揮 宸ヤ綅2鍙栬揣鍛戒护绛夊緟鍙戦�併�俢rnNo={}, idx={}, taskNo1={}, taskNo2={}, status1={}({}), status2={}({}), taskSend1={}, taskSend2={}, nextTaskMode={}",
+ crnProtocol.getCrnNo(), idx, crnProtocol.getTaskNo(), crnProtocol.getTaskNoTwo(),
+ crnProtocol.getStatus(), crnProtocol.getStatusType(),
+ crnProtocol.getStatusTwo(), crnProtocol.getStatusTypeTwo(),
+ crnProtocol.getTaskSend(), crnProtocol.getTaskSendTwo(), dualCommand.getTaskMode());
}
} else if (dualCommand.getTaskMode().intValue() == DualCrnTaskModeType.PUT.id) {
if (crnProtocol.getStatusTwo().equals(DualCrnStatusType.FETCH_COMPLETE.id)) {
send = true;
+ } else {
+ logDualCrnWaitLimited("put_station2_status_" + crnProtocol.getCrnNo(), 3,
+ "[WCS Trace][鍙屽伐浣嶅叆搴揮 宸ヤ綅2鏀捐揣鍛戒护绛夊緟FETCH_COMPLETE銆俢rnNo={}, idx={}, currentTaskNo={}, status1={}({}), status2={}({}), taskSend1={}, taskSend2={}, taskReceive1={}, taskReceive2={}, loaded1={}, loaded2={}",
+ crnProtocol.getCrnNo(), idx, dualCommand.getTaskNo(),
+ crnProtocol.getStatus(), crnProtocol.getStatusType(),
+ crnProtocol.getStatusTwo(), crnProtocol.getStatusTypeTwo(),
+ crnProtocol.getTaskSend(), crnProtocol.getTaskSendTwo(),
+ crnProtocol.getTaskReceive(), crnProtocol.getTaskReceiveTwo(),
+ crnProtocol.getLoaded(), crnProtocol.getLoadedTwo());
}
}
+ } else {
+ logDualCrnWaitLimited("station2_tasksend_" + crnProtocol.getCrnNo(), 3,
+ "[WCS Trace][鍙屽伐浣嶅叆搴揮 宸ヤ綅2鍛戒护绛夊緟taskSend娓呴浂銆俢rnNo={}, idx={}, taskSend1={}, taskSend2={}, status1={}({}), status2={}({}), nextTaskMode={}",
+ crnProtocol.getCrnNo(), idx, crnProtocol.getTaskSend(), crnProtocol.getTaskSendTwo(),
+ crnProtocol.getStatus(), crnProtocol.getStatusType(),
+ crnProtocol.getStatusTwo(), crnProtocol.getStatusTypeTwo(), dualCommand.getTaskMode());
}
}
@@ -214,6 +258,12 @@
//绛夊緟涓嬩竴涓换鍔�
Object wait = redisUtil.get(RedisKeyType.DUAL_CRN_PICK_WAIT_NEXT_TASK.key + crnProtocol.getCrnNo());
if (wait != null) {
+ logDualCrnWaitLimited("put_wait_lock_" + crnProtocol.getCrnNo(), 2,
+ "[WCS Trace][鍙屽伐浣嶅叆搴揮 鏀捐揣鍛戒护琚彇璐х瓑寰呴攣鎷︿綇銆俢rnNo={}, idx={}, station={}, currentTaskNo={}, status1={}({}), status2={}({}), taskSend1={}, taskSend2={}",
+ crnProtocol.getCrnNo(), idx, station, dualCommand.getTaskNo(),
+ crnProtocol.getStatus(), crnProtocol.getStatusType(),
+ crnProtocol.getStatusTwo(), crnProtocol.getStatusTypeTwo(),
+ crnProtocol.getTaskSend(), crnProtocol.getTaskSendTwo());
return;
}
@@ -256,6 +306,20 @@
}
}
+ private void logDualCrnWaitLimited(String lockKey, int seconds, String format, Object... arguments) {
+ String redisKey = RedisKeyType.LOG_LIMIT.key + "dual_crn_wait_" + lockKey;
+ try {
+ Object lock = redisUtil.get(redisKey);
+ if (lock != null) {
+ return;
+ }
+ redisUtil.set(redisKey, "lock", seconds);
+ } catch (Exception e) {
+ // 璇婃柇鏃ュ織涓嶈兘褰卞搷涓绘祦绋嬨��
+ }
+ News.info(format, arguments);
+ }
+
public boolean sendComm(Integer taskNo, Integer current) {
//涓や釜宸ヤ綅鍙厑璁告斁鐩稿悓绫诲瀷浠诲姟
if (taskNo != null && taskNo > 0) {
--
Gitblit v1.9.1