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