From 1b007b8d43f82cf86e3cf5f2a316f30bae51deb2 Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期五, 23 五月 2025 12:53:40 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/shuttle_rcs' into shuttle_rcs

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   26 +++++++++++++++++++++++---
 1 files changed, 23 insertions(+), 3 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 31e2682..c21959d 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -309,6 +309,12 @@
                 return false;
             }
 
+            boolean checkLocPathIsAvailable = navigateUtils.checkLocPathIsAvailable(wrkMast.getSourceLocNo(), liftSta.getLocNo());
+            if(!checkLocPathIsAvailable) {
+                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛屾湭璁$畻鍒板彲鎵ц璺緞锛岀瓑寰呬腑", wrkMast.getWrkNo());
+                return false;
+            }
+
             if (wrkMast.getShuttleNo() == null) {//娌℃湁缁戝畾灏忚溅锛岃繘琛岃皟搴�
                 //寮哄埗棰勭暀涓�鍙板皬杞︾粰鍏ュ簱浠诲姟
                 int lev = Utils.getLev(wrkMast.getSourceLocNo());
@@ -531,6 +537,12 @@
 
         //灏忚溅绉诲姩鑷崇珯鐐�  501.鐢熸垚绉诲簱浠诲姟 ==> 502.灏忚溅鎼繍涓�
         if (wrkMast.getWrkSts() == WrkStsType.NEW_LOC_MOVE.sts) {
+            boolean checkLocPathIsAvailable = navigateUtils.checkLocPathIsAvailable(wrkMast.getSourceLocNo(), wrkMast.getLocNo());
+            if(!checkLocPathIsAvailable) {
+                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛屾湭璁$畻鍒板彲鎵ц璺緞锛岀瓑寰呬腑", wrkMast.getWrkNo());
+                return false;
+            }
+
             if (wrkMast.getShuttleNo() == null) {//娌℃湁缁戝畾灏忚溅锛岃繘琛岃皟搴�
                 boolean result = shuttleDispatchUtils.dispatchShuttle(wrkMast.getWrkNo(), wrkMast.getSourceLocNo());//璋冨害灏忚溅鍒拌揣鐗╃偣杩涜鍙栬揣
                 News.info("{}浠诲姟锛岃皟搴﹀皬杞}绯荤粺绛夊緟涓�", wrkMast.getWrkNo(), result ? "鎴愬姛" : "澶辫触");
@@ -1302,7 +1314,7 @@
                 return false;
             }
 
-            if (!shuttleProtocol.getCurrentLocNo().equals(wrkMast.getLocNo())) {
+            if (!wrkMast.getLocNo().equals(shuttleProtocol.getCurrentLocNo())) {
                 return false;
             }
 
@@ -1883,7 +1895,7 @@
     public void outTaskPreviewDispatchForkLift() {
         List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
                 .in("wrk_sts"
-                        , WrkStsType.OUTBOUND_SHUTTLE_RUN.sts
+                        , WrkStsType.OUTBOUND_SHUTTLE_RUN_COMPLETE.sts
                 ));
         for (WrkMast wrkMast : wrkMasts) {
             if(wrkMast.getShuttleNo() == null){
@@ -1922,6 +1934,12 @@
                 continue;
             }
 
+            //瀛樺湪璋冨害閿�
+            Object object = redisUtil.get(RedisKeyType.OUT_TASK_PREVIEW_DISPATCH_FORKLIFT.key + forkLiftProtocol.getLiftNo());
+            if (object != null) {
+                continue;
+            }
+
             //鍒ゆ柇鎻愬崌鏈烘槸鍚︽湁鍏朵粬浠诲姟
             WrkMast liftWrkMast = wrkMastService.selectLiftWrkMast(wrkMast.getLiftNo());
             if (liftWrkMast != null) {
@@ -1933,7 +1951,7 @@
             }
 
             //鎻愬崌鏈轰笉鍦ㄥ嚭搴撳眰
-            if (forkLiftProtocol.getLev() != Utils.getLev(wrkMast.getSourceLocNo())) {
+            if (forkLiftProtocol.getLev().equals(Utils.getLev(wrkMast.getSourceLocNo()))) {
                 continue;
             }
 
@@ -1953,6 +1971,8 @@
             assignCommand.setTaskMode(ForkLiftTaskModeType.MOVE.id.shortValue());
 
             forkLiftAction.assignWork(forkLiftProtocol.getLiftNo(), assignCommand);
+
+            redisUtil.set(RedisKeyType.OUT_TASK_PREVIEW_DISPATCH_FORKLIFT.key + forkLiftProtocol.getLiftNo(), "lock", 30);//30绉掍笉鍐嶈皟搴�
         }
     }
 

--
Gitblit v1.9.1