From 3c31d811aff765b8c5e67c22035b413e0cffb38f Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期二, 24 三月 2026 13:07:30 +0800
Subject: [PATCH] #V5 beta
---
src/main/java/com/zy/core/utils/StationOperateProcessUtils.java | 26 ++++++++++++++++++++++++++
1 files changed, 26 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/zy/core/utils/StationOperateProcessUtils.java b/src/main/java/com/zy/core/utils/StationOperateProcessUtils.java
index 94b122b..40e4e19 100644
--- a/src/main/java/com/zy/core/utils/StationOperateProcessUtils.java
+++ b/src/main/java/com/zy/core/utils/StationOperateProcessUtils.java
@@ -1434,6 +1434,9 @@
}
StationTaskIdleTrack idleTrack = touchStationTaskIdleTrack(stationProtocol.getTaskNo(), stationProtocol.getStationId());
+ if (shouldSkipIdleRecoverForRecentDispatch(stationProtocol.getTaskNo(), stationProtocol.getStationId())) {
+ return;
+ }
if (idleTrack == null || !idleTrack.isTimeout(STATION_IDLE_RECOVER_SECONDS)) {
return;
}
@@ -1521,6 +1524,29 @@
|| Objects.equals(wrkMast.getWrkSts(), WrkStsType.STATION_RUN.sts);
}
+ private boolean shouldSkipIdleRecoverForRecentDispatch(Integer taskNo, Integer stationId) {
+ if (stationMoveCoordinator == null || taskNo == null || taskNo <= 0 || stationId == null) {
+ return false;
+ }
+ StationMoveSession session = stationMoveCoordinator.loadSession(taskNo);
+ if (session == null || !session.isActive() || session.getLastIssuedAt() == null) {
+ return false;
+ }
+ if (!Objects.equals(stationId, session.getCurrentStationId())
+ && !Objects.equals(stationId, session.getDispatchStationId())) {
+ return false;
+ }
+ long elapsedMs = System.currentTimeMillis() - session.getLastIssuedAt();
+ long thresholdMs = STATION_IDLE_RECOVER_SECONDS * 1000L;
+ if (elapsedMs >= thresholdMs) {
+ return false;
+ }
+ saveStationTaskIdleTrack(new StationTaskIdleTrack(taskNo, stationId, System.currentTimeMillis()));
+ News.info("杈撻�佺珯鐐逛换鍔″垰瀹屾垚鍛戒护涓嬪彂锛屽凡璺宠繃鍋滅暀閲嶇畻銆傜珯鐐瑰彿={}锛屽伐浣滃彿={}锛岃窛涓婃涓嬪彂={}ms锛宺outeVersion={}",
+ stationId, taskNo, elapsedMs, session.getRouteVersion());
+ return true;
+ }
+
private void resetSegmentMoveCommandsBeforeReroute(Integer taskNo) {
if (redisUtil == null || taskNo == null || taskNo <= 0) {
return;
--
Gitblit v1.9.1