From b63790fa580ea78777f16bff6bc79373d675dd10 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期四, 21 八月 2025 16:50:47 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/ForkMainServiceImpl.java |   30 +++++++++++++++++-------------
 1 files changed, 17 insertions(+), 13 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/ForkMainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/ForkMainServiceImpl.java
index c69b0b5..7386072 100644
--- a/src/main/java/com/zy/asrs/service/impl/ForkMainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/ForkMainServiceImpl.java
@@ -15,11 +15,13 @@
 import com.zy.core.action.ForkLiftAction;
 import com.zy.core.action.ShuttleAction;
 import com.zy.core.cache.SlaveConnection;
+import com.zy.core.dispatcher.ForkLiftDispatchUtils;
 import com.zy.core.dispatcher.ShuttleDispatchUtils;
 import com.zy.core.enums.*;
 import com.zy.core.model.command.*;
 import com.zy.core.model.protocol.ForkLiftProtocol;
 import com.zy.core.model.protocol.ForkLiftStaProtocol;
+import com.zy.core.model.protocol.LiftStaProtocol;
 import com.zy.core.model.protocol.ShuttleProtocol;
 import com.zy.core.thread.ForkLiftThread;
 import com.zy.core.thread.ShuttleThread;
@@ -35,7 +37,6 @@
 
 /**
  * 绔嬩綋浠撳簱WCS绯荤粺涓绘祦绋嬩笟鍔�
- * Created by vincent on 2020/8/6
  */
 @Slf4j
 @Service("forkMainService")
@@ -62,8 +63,6 @@
     @Autowired
     private ConfigService configService;
     @Autowired
-    private NavigateMapUtils navigateMapUtils;
-    @Autowired
     private NavigateMapData navigateMapData;
     @Autowired
     private NavigateUtils navigateUtils;
@@ -79,6 +78,8 @@
     private BasShuttleChargeService basShuttleChargeService;
     @Autowired
     private DeviceConfigService deviceConfigService;
+    @Autowired
+    private ForkLiftDispatchUtils forkLiftDispatchUtils;
 
     /**
      * 鍒濆鍖栧疄鏃跺湴鍥�
@@ -897,7 +898,7 @@
                             News.error("鎻愬崌鏈哄凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅澶辫触锛屼絾鏈壘鍒板伐浣滄。銆傛彁鍗囨満鍙�={}锛屽伐浣滃彿={}", forkLiftProtocol.getLiftNo(), forkLiftProtocol.getWrkNo());
                         }
                     }else {
-                        boolean checkPreviewDispatchForkLift = commonService.checkWorkNoContainMk(forkLiftProtocol.getWrkNo(), WrkIoType.FORKLIFT_MOVE.id);
+                        boolean checkPreviewDispatchForkLift = commonService.checkWorkNoContainMk(forkLiftProtocol.getWrkNo(), WrkIoType.PREVIEW_LIFT_MOVE.id);
                         if (checkPreviewDispatchForkLift) {
                             //灞炰簬鎻愬崌鏈洪璋冨害绉诲姩浠诲姟
                             //鏃犲伐浣滄。鏀拺锛岀洿鎺ョ‘璁ゅ畬鎴�
@@ -1490,24 +1491,25 @@
                 return false;
             }
 
-            //鑾峰彇婧愯緭閫佺珯
-            ForkLiftStaProtocol liftSta = ForkLiftUtils.getLiftStaByStaNo(wrkMast.getSourceStaNo());
-            if (liftSta == null) {
-                return false;//鎵句笉鍒扮珯鐐�
+            //鎼滅储鏈�杩戜笖鏃犳晠闅滄彁鍗囨満
+            ForkLiftStaProtocol recentLiftStation = forkLiftDispatchUtils.getRecentLiftStation(shuttleProtocol.getShuttleNo(), Utils.getLev(wrkMast.getLocNo()));
+            if(recentLiftStation == null) {
+                News.info("{}鍙峰皬杞︼紝{}鐩爣搴撲綅锛屾病鏈夊彲鐢ㄧ┖闂茶緭閫佺珯鐐�", shuttleProtocol.getShuttleNo(), wrkMast.getLocNo());
+                return false;
             }
 
-            if (liftSta.getHasTray()) {
+            if (recentLiftStation.getHasTray()) {
                 News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛屾簮绔欏瓨鍦ㄦ墭鐩�", wrkMast.getWrkNo());
                 return false;
             }
 
-            if (liftSta.getHasCar()) {
+            if (recentLiftStation.getHasCar()) {
                 News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛屾簮绔欏瓨鍦ㄥ皬杞�", wrkMast.getWrkNo());
                 return false;
             }
 
             //鑾峰彇鐩爣杈撻�佺珯
-            ForkLiftStaProtocol liftStaTarget = ForkLiftUtils.getLiftStaByStaNo(wrkMast.getStaNo());
+            ForkLiftStaProtocol liftStaTarget = ForkLiftUtils.getLiftStaByLev(recentLiftStation.getLiftNo(), Utils.getLev(wrkMast.getLocNo()));
             if (liftStaTarget == null) {
                 return false;//鎵句笉鍒扮珯鐐�
             }
@@ -1529,7 +1531,7 @@
             assignCommand.setAuto(true);//鑷姩妯″紡
 
             //璁$畻杩戠偣浣嶇疆
-            String endLocation = navigateUtils.calcEndLocation(shuttleProtocol.getCurrentLocNo(), liftSta.getLocNo(), NavigationMapType.getMapTypes(NavigationMapType.NORMAL), null, null, 1);
+            String endLocation = navigateUtils.calcEndLocation(shuttleProtocol.getCurrentLocNo(), recentLiftStation.getLocNo(), NavigationMapType.getMapTypes(NavigationMapType.NORMAL), null, null, 1);
             if (endLocation == null) {
                 News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛屽皬杞﹁繎鐐逛綅缃绠楀け璐�", wrkMast.getWrkNo());
                 return false;
@@ -1554,6 +1556,8 @@
             assignCommand.setCommands(commands);
 
             wrkMast.setWrkSts(WrkStsType.MOVE_NEARBY.sts);//灏忚溅绉诲姩鍒版彁鍗囨満涓�  301.鐢熸垚灏忚溅绉诲簱浠诲姟 ==> 302.灏忚溅绉诲姩鑷宠繎鐐逛腑
+            wrkMast.setSourceStaNo(recentLiftStation.getStaNo());
+            wrkMast.setStaNo(liftStaTarget.getStaNo());
             wrkMast.setModiTime(now);
             wrkMast.setSystemMsg("");//娓呯┖娑堟伅
             if (wrkMastService.updateById(wrkMast)) {
@@ -2000,7 +2004,7 @@
             }
 
             //绉诲姩
-            int workNo = commonService.getWorkNo(WrkIoType.FORKLIFT_MOVE.id);//鑾峰彇浠诲姟鍙�
+            int workNo = commonService.getWorkNo(WrkIoType.PREVIEW_LIFT_MOVE.id);//鑾峰彇浠诲姟鍙�
 
             //鑾峰彇鎻愬崌鏈哄懡浠�
             ForkLiftCommand liftCommand = forkLiftThread.getMoveCommand(workNo, forkLiftProtocol.getLev(), Utils.getLev(wrkMast.getSourceLocNo()));

--
Gitblit v1.9.1