From 18d942a236b4cf522256e4e095de395a472d9932 Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期六, 29 三月 2025 10:05:42 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/thread/impl/NyShuttleThread.java  |   17 +++++++++++++++++
 src/main/java/com/zy/asrs/utils/Utils.java                  |   21 ++++++++++++++++++++-
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |    2 +-
 src/main/java/com/zy/core/thread/ShuttleThread.java         |    2 ++
 4 files changed, 40 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index a08f26f..2713265 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -716,7 +716,7 @@
                 }
             }
 
-            //妫�娴嬫ゼ灞傛槸鍚︽湁绌挎杞�
+            //妫�娴嬫ゼ灞傛槸鍚︽湁鍙敤绌挎杞�
             boolean checkLevHasShuttle = Utils.checkLevHasShuttle(liftSta.getLev());
             if (!checkLevHasShuttle) {
                 if (wrkMast.getShuttleNo() != null) {
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index 3f6b511..bf3ea83 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -5,7 +5,9 @@
 import com.core.common.Cools;
 import com.core.common.SpringUtils;
 import com.zy.asrs.entity.LocMast;
+import com.zy.asrs.entity.WrkMast;
 import com.zy.asrs.service.LocMastService;
+import com.zy.asrs.service.WrkMastService;
 import com.zy.common.model.NavigateNode;
 import com.zy.common.model.enums.NavigationMapType;
 import com.zy.common.utils.NavigatePositionConvert;
@@ -142,9 +144,10 @@
         return list;
     }
 
-    //妫�娴嬫ゼ灞傛槸鍚︽湁绌挎杞�
+    //妫�娴嬫ゼ灞傛槸鍚︽湁鍙敤绌挎杞�
     public static boolean checkLevHasShuttle(Integer lev) {
         SlaveProperties slaveProperties = SpringUtils.getBean(SlaveProperties.class);
+        WrkMastService wrkMastService = SpringUtils.getBean(WrkMastService.class);
         for (ShuttleSlave shuttle : slaveProperties.getShuttle()) {
             //鑾峰彇鍥涘悜绌挎杞︾嚎绋�
             ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttle.getId());
@@ -160,6 +163,22 @@
                 continue;
             }
 
+            //灏忚溅姝e湪鍏呯數
+            if (shuttleThread.isCharging()) {
+                continue;
+            }
+
+            //灏忚溅鏈夊厖鐢典换鍔�
+            WrkMast chargeWorking = wrkMastService.selectChargeWorking(shuttleProtocol.getShuttleNo());
+            if (chargeWorking != null) {//宸叉湁鍏呯數浠诲姟
+                continue;
+            }
+
+            //灏忚溅澶勪簬鏁呴殰鐘舵��
+            if (shuttleThread.isFault()) {
+                continue;
+            }
+
             if (lev == Utils.getLev(currentLocNo)) {
                 return true;//鎸囧畾妤煎眰鏈夌┛姊溅
             }
diff --git a/src/main/java/com/zy/core/thread/ShuttleThread.java b/src/main/java/com/zy/core/thread/ShuttleThread.java
index 3ddda33..993d0d1 100644
--- a/src/main/java/com/zy/core/thread/ShuttleThread.java
+++ b/src/main/java/com/zy/core/thread/ShuttleThread.java
@@ -45,6 +45,8 @@
 
     boolean isChargingCompleted();//鏄惁鍏呯數瀹屾垚
 
+    boolean isFault();//鏄惁鏁呴殰
+
     List<NavigateNode> getMoveAdvancePath();//鑾峰彇绌挎杞︿换鍔¤矾寰�
 
     int generateDeviceTaskNo(int taskNo, ShuttleTaskNoType type);//鐢熸垚纭欢璁惧宸ヤ綔鍙�
diff --git a/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java b/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java
index ce3f72e..b7aacc2 100644
--- a/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java
+++ b/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java
@@ -715,6 +715,23 @@
     }
 
     @Override
+    public boolean isFault() {
+        if (this.shuttleProtocol.getErrorCode() == null
+                || this.shuttleProtocol.getMode() == null
+                || this.shuttleProtocol.getExtend() == null
+        ) {
+            return false;
+        }
+
+        InnerSuhttleExtend extend = (InnerSuhttleExtend) this.shuttleProtocol.getExtend();
+        boolean res = this.shuttleProtocol.getMode() == 0
+                && !this.shuttleProtocol.getErrorCode().equals("0")
+                && extend.getSuspendState() == 1
+                ;
+        return res;
+    }
+
+    @Override
     public List<NavigateNode> getMoveAdvancePath() {
         ObjectMapper objectMapper = SpringUtils.getBean(ObjectMapper.class);
         NavigateMapData navigateMapData = SpringUtils.getBean(NavigateMapData.class);

--
Gitblit v1.9.1