From 1ef1063281497f32fcfa4f14b07d99399c0bb765 Mon Sep 17 00:00:00 2001
From: jinglun-cloud <jinglun2019@foxmail.com>
Date: 星期四, 07 五月 2026 15:04:17 +0800
Subject: [PATCH] refactor(设备运动): 重构条码设备运动逻辑,提取运动常量并优化代码结构
---
src/main/java/com/zy/core/move/StationMoveSessionRegistry.java | 22 ++++++++++++++++++++--
1 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/zy/core/move/StationMoveSessionRegistry.java b/src/main/java/com/zy/core/move/StationMoveSessionRegistry.java
index db95c1b..b8b89b0 100644
--- a/src/main/java/com/zy/core/move/StationMoveSessionRegistry.java
+++ b/src/main/java/com/zy/core/move/StationMoveSessionRegistry.java
@@ -4,6 +4,7 @@
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.zy.common.utils.RedisUtil;
import com.zy.core.enums.RedisKeyType;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -11,6 +12,7 @@
import java.util.List;
import java.util.Objects;
+@Slf4j
@Component
public class StationMoveSessionRegistry {
@@ -65,11 +67,27 @@
public synchronized boolean canDispatchRoute(Integer taskNo, Integer routeVersion) {
StationMoveSession session = load(taskNo);
- if (session == null || routeVersion == null || !Objects.equals(routeVersion, session.getRouteVersion())) {
+ if (session == null) {
+ log.warn("canDispatchRoute rejected: session=null, taskNo={}, routeVersion={}", taskNo, routeVersion);
return false;
}
- return StationMoveSession.STATUS_WAITING.equals(session.getStatus())
+ if (routeVersion == null) {
+ log.warn("canDispatchRoute rejected: routeVersion=null, taskNo={}, session.routeVersion={}, session.status={}",
+ taskNo, session.getRouteVersion(), session.getStatus());
+ return false;
+ }
+ if (!Objects.equals(routeVersion, session.getRouteVersion())) {
+ log.warn("canDispatchRoute rejected: routeVersion mismatch, taskNo={}, cmdRouteVersion={}, sessionRouteVersion={}, session.status={}, session.cancelReason={}",
+ taskNo, routeVersion, session.getRouteVersion(), session.getStatus(), session.getCancelReason());
+ return false;
+ }
+ boolean dispatchable = StationMoveSession.STATUS_WAITING.equals(session.getStatus())
|| StationMoveSession.STATUS_RUNNING.equals(session.getStatus());
+ if (!dispatchable) {
+ log.warn("canDispatchRoute rejected: status not dispatchable, taskNo={}, routeVersion={}, session.status={}, session.cancelReason={}",
+ taskNo, routeVersion, session.getStatus(), session.getCancelReason());
+ }
+ return dispatchable;
}
public synchronized boolean shouldSkipOutOrderDecision(Integer taskNo, Integer currentStationId) {
--
Gitblit v1.9.1