From 50435a81915932eda06b7f1afd48f9ff1ae84f19 Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期四, 10 四月 2025 17:50:28 +0800
Subject: [PATCH] 1

---
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/ShuttleDispatcher.java |   20 +++++++++++++++++---
 1 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/ShuttleDispatcher.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/ShuttleDispatcher.java
index 1971cbf..f8964a1 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/ShuttleDispatcher.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/ShuttleDispatcher.java
@@ -84,6 +84,10 @@
                 continue;
             }
 
+            if (shuttleProtocol.getCurrentLocNo() == null) {
+                continue;
+            }
+
             int shuttleLev = Utils.getLev(shuttleProtocol.getCurrentLocNo());
             if (shuttleLev == lev) {
                 currentLevDevices.add(device);
@@ -107,9 +111,15 @@
             resThread = this.searchDiffLevShuttle(diffLevDeviceMap, locNo, task);
         }
 
-        Task result = generateMoveTask(resThread.getDevice(), locNo);
-        if (result != null) {
-            return resThread.getDevice();
+        if (resThread != null) {
+            if (resThread.getStatus().getCurrentLocNo().equals(locNo)) {
+                return resThread.getDevice();
+            }
+
+            Task result = generateMoveTask(resThread.getDevice(), locNo);
+            if (result != null) {
+                return resThread.getDevice();
+            }
         }
 
         News.info("{}鐩爣搴撲綅娌℃湁鎼滅储鍒板彲鐢ㄧ┛姊溅", locNo);
@@ -136,6 +146,10 @@
                 continue;
             }
 
+            if (shuttleProtocol.getCurrentLocNo() == null) {
+                continue;
+            }
+
             int shuttleLev = Utils.getLev(shuttleProtocol.getCurrentLocNo());
             if (shuttleLev == lev) {
                 currentLevDevices.add(device);

--
Gitblit v1.9.1