From b67a6892ccfe6d71dc0ad2b75b2c66c18c4f6628 Mon Sep 17 00:00:00 2001
From: Administrator <XS@163.COM>
Date: 星期六, 25 四月 2026 22:22:52 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/utils/CrnOperateProcessUtils.java | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 53 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/zy/core/utils/CrnOperateProcessUtils.java b/src/main/java/com/zy/core/utils/CrnOperateProcessUtils.java
index b2441e2..ca02361 100644
--- a/src/main/java/com/zy/core/utils/CrnOperateProcessUtils.java
+++ b/src/main/java/com/zy/core/utils/CrnOperateProcessUtils.java
@@ -218,6 +218,12 @@
if (!stationProtocol.isInEnable()) {
News.taskInfo(stationProtocol.getTaskNo(), "鍙栬揣绔欑偣:{} 娌℃湁鍙叆淇″彿", stationObjModel.getStationId());
+ logTraceLimited("crn_in_wait_signal_" + crnNo + "_" + stationObjModel.getStationId(), 3,
+ "[WCS Trace][鍫嗗灈鏈哄叆搴揮 鍙栬揣绔欑偣涓嶅彲鍏ャ�俢rnNo={}锛宻tationId={}锛宻tationTaskNo={}锛宎utoing={}锛宭oading={}锛宨nEnable={}锛宱utEnable={}锛宺unBlock={}锛宐arcode={}锛宼argetStaNo={}锛宑rnStatus={}锛宑rnTaskNo={}锛宑rnAlarm={}",
+ crnNo, stationObjModel.getStationId(), stationProtocol.getTaskNo(),
+ stationProtocol.isAutoing(), stationProtocol.isLoading(), stationProtocol.isInEnable(),
+ stationProtocol.isOutEnable(), stationProtocol.isRunBlock(), stationProtocol.getBarcode(),
+ stationProtocol.getTargetStaNo(), crnProtocol.getStatus(), crnProtocol.getTaskNo(), crnProtocol.getAlarm());
continue;
}
@@ -254,6 +260,10 @@
String sourceLocNo = Utils.getLocNo(stationObjModel.getDeviceRow(), stationObjModel.getDeviceBay(), stationObjModel.getDeviceLev());
CrnCommand command = crnThread.getPickAndPutCommand(sourceLocNo, wrkMast.getLocNo(), wrkMast.getWrkNo(), crnNo);
+ logTraceLimited("crn_in_dispatch_" + wrkMast.getWrkNo(), 3,
+ "[WCS Trace][鍫嗗灈鏈哄叆搴揮 鍑嗗涓嬪彂鍫嗗灈鏈哄叆搴撳懡浠ゃ�俢rnNo={}锛寃rkNo={}锛宻ourceStationId={}锛宻ourceLocNo={}锛宼argetLocNo={}锛宻tationTaskNo={}锛宑rnStatus={}锛宑rnTaskNo={}锛宑rnAlarm={}",
+ crnNo, wrkMast.getWrkNo(), stationObjModel.getStationId(), sourceLocNo, wrkMast.getLocNo(),
+ stationProtocol.getTaskNo(), crnProtocol.getStatus(), crnProtocol.getTaskNo(), crnProtocol.getAlarm());
wrkMast.setWrkSts(WrkStsType.INBOUND_RUN.sts);
wrkMast.setCrnNo(crnNo);
@@ -336,6 +346,12 @@
if (!stationProtocol.isOutEnable()) {
News.info("鏀捐揣绔欑偣:{} 娌℃湁鍙嚭淇″彿", stationObjModel.getStationId());
+ logTraceLimited("crn_out_wait_signal_" + crnNo + "_" + stationObjModel.getStationId(), 3,
+ "[WCS Trace][鍫嗗灈鏈哄嚭搴揮 鏀捐揣绔欑偣涓嶅彲鍑恒�俢rnNo={}锛宻tationId={}锛寃rkNo={}锛宎utoing={}锛宭oading={}锛宨nEnable={}锛宱utEnable={}锛宺unBlock={}锛宻tationTaskNo={}锛宼argetStaNo={}锛宑rnStatus={}锛宑rnTaskNo={}锛宑rnAlarm={}",
+ crnNo, stationObjModel.getStationId(), wrkMast.getWrkNo(),
+ stationProtocol.isAutoing(), stationProtocol.isLoading(), stationProtocol.isInEnable(),
+ stationProtocol.isOutEnable(), stationProtocol.isRunBlock(), stationProtocol.getTaskNo(),
+ stationProtocol.getTargetStaNo(), crnProtocol.getStatus(), crnProtocol.getTaskNo(), crnProtocol.getAlarm());
continue;
}
@@ -361,6 +377,11 @@
String targetLocNo = Utils.getLocNo(stationObjModel.getDeviceRow(), stationObjModel.getDeviceBay(), stationObjModel.getDeviceLev());
CrnCommand command = crnThread.getPickAndPutCommand(wrkMast.getSourceLocNo(), targetLocNo, wrkMast.getWrkNo(), crnNo);
+ logTraceLimited("crn_out_dispatch_" + wrkMast.getWrkNo(), 3,
+ "[WCS Trace][鍫嗗灈鏈哄嚭搴揮 鍑嗗涓嬪彂鍫嗗灈鏈哄嚭搴撳懡浠ゃ�俢rnNo={}锛寃rkNo={}锛宼argetStationId={}锛宻ourceLocNo={}锛宼argetLocNo={}锛宑rnStatus={}锛宑rnTaskNo={}锛宑rnAlarm={}",
+ crnNo, wrkMast.getWrkNo(), stationObjModel.getStationId(),
+ wrkMast.getSourceLocNo(), targetLocNo, crnProtocol.getStatus(),
+ crnProtocol.getTaskNo(), crnProtocol.getAlarm());
wrkMast.setWrkSts(WrkStsType.OUTBOUND_RUN.sts);
wrkMast.setCrnNo(crnNo);
@@ -852,6 +873,15 @@
}
public void submitCrnIoTasks(MainProcessLane lane, long minIntervalMs) {
+ mainProcessTaskSubmitter.submitSerialTask(
+ MainProcessLane.CRN_SCAN,
+ "submitCrnIoTasks",
+ minIntervalMs,
+ () -> submitCrnIoTasksInternal(lane, minIntervalMs)
+ );
+ }
+
+ private void submitCrnIoTasksInternal(MainProcessLane lane, long minIntervalMs) {
List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<>());
for (BasCrnp basCrnp : basCrnps) {
if (basCrnp == null || basCrnp.getCrnNo() == null) {
@@ -873,6 +903,15 @@
}
public void submitCrnIoExecuteFinishTasks(MainProcessLane lane, long minIntervalMs) {
+ mainProcessTaskSubmitter.submitSerialTask(
+ MainProcessLane.CRN_SCAN,
+ "submitCrnIoExecuteFinishTasks",
+ minIntervalMs,
+ () -> submitCrnIoExecuteFinishTasksInternal(lane, minIntervalMs)
+ );
+ }
+
+ private void submitCrnIoExecuteFinishTasksInternal(MainProcessLane lane, long minIntervalMs) {
List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<>());
for (BasCrnp basCrnp : basCrnps) {
if (basCrnp == null || basCrnp.getCrnNo() == null) {
@@ -889,6 +928,20 @@
}
}
+ private void logTraceLimited(String lockKey, int seconds, String format, Object... arguments) {
+ String redisKey = RedisKeyType.LOG_LIMIT.key + "wcs_trace_" + 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 checkShallowLocStatus(String locNo, Integer taskNo) {
String checkDeepLocOutTaskBlockReport = "Y";
--
Gitblit v1.9.1