From e83761d390b593cff8b7c17144529e92eb482bd6 Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期三, 16 四月 2025 16:38:04 +0800
Subject: [PATCH] 1

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  374 ++++++++++++++++++++++++++++------------------------
 1 files changed, 200 insertions(+), 174 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 6a8848d..2b97ce7 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -26,14 +26,15 @@
 import com.zy.core.model.command.LiftCommand;
 import com.zy.core.model.command.ShuttleAssignCommand;
 import com.zy.core.model.command.ShuttleCommand;
-import com.zy.core.model.protocol.*;
+import com.zy.core.model.protocol.ForkLiftStaProtocol;
+import com.zy.core.model.protocol.LiftProtocol;
+import com.zy.core.model.protocol.ShuttleProtocol;
+import com.zy.core.model.protocol.StaProtocol;
 import com.zy.core.properties.SlaveProperties;
 import com.zy.core.thread.DevpThread;
-import com.zy.core.thread.ForkLiftThread;
 import com.zy.core.thread.LiftThread;
 import com.zy.core.thread.ShuttleThread;
 import com.zy.core.thread.impl.FyDevpThread;
-import com.zy.system.entity.Config;
 import com.zy.system.service.ConfigService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -355,6 +356,8 @@
             if (!dispatchShuttle) {
                 News.info("{}浠诲姟锛岃皟搴﹀皬杞﹀け璐�", wrkMast.getWrkNo());
                 return;
+            } else {
+                News.info("{}浠诲姟锛屾棤鎻愬崌鏈哄璋冨害灏忚溅鎴愬姛", wrkMast.getWrkNo());
             }
 
             wrkMast.setWrkSts(WrkStsType.OUTBOUND_SHUTTLE_RUN.sts);
@@ -370,6 +373,13 @@
      * 鍑哄簱鍒板嚭搴撳彛
      */
     public synchronized void stnToOutStn() {
+        ShuttleThread shuttleThread1 = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, 1);
+        ShuttleThread shuttleThread2 = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, 2);
+        ShuttleProtocol status1 = shuttleThread1.getStatus();
+        ShuttleProtocol status2 = shuttleThread2.getStatus();
+        List<String> loc = new ArrayList<>();
+        loc.add(status1.getCurrentLocNo());
+        loc.add(status2.getCurrentLocNo());
         DevpSlave devpSlave = slaveProperties.getDevp().get(0);
         // 閬嶅巻鍫嗗灈鏈哄嚭搴撶珯
         DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devpSlave.getId());
@@ -389,11 +399,25 @@
                         if (wrkMast == null) {
                             continue;
                         }
-//                        boolean dispatchShuttle = shuttleDispatchUtils.shuttleMoveGenerate(wrkMast.getWrkNo(), shuttleProtocol.getCurrentLocNo(), wrkMast.getSourceLocNo(), wrkMast.getShuttleNo(), null, true);
-//                        if (!dispatchShuttle) {
-//                            News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}灏忚溅锛岃皟搴﹁嚦鍙栬揣鐐瑰け璐�", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
-//                            continue;
-//                        }
+
+                        String sourceLocNo = "1200305";
+                        String locNo = "1100105";
+                        if (wrkMast.getStaNo() == 1013) {
+                            sourceLocNo = "1200301";
+                            locNo = "1100101";
+                            if (loc.contains(locNo)) {
+                                locNo = "1000101";
+                            }
+                        } else {
+                            if (loc.contains(locNo)) {
+                                locNo = "1000105";
+                            }
+                        }
+
+                        boolean dispatchShuttle = shuttleDispatchUtils.shuttleMoveGenerate(wrkMast.getWrkNo(), sourceLocNo, locNo, wrkMast.getShuttleNo(), null, false);
+                        if (!dispatchShuttle) {
+                            News.taskInfo(wrkMast.getWrkNo(), "{}灏忚溅锛屾尓杞﹁皟搴﹁嚦鍙栬揣鐐瑰け璐�", wrkMast.getShuttleNo());
+                        }
 
                         staProtocol.setWorkNo(Short.parseShort(String.valueOf(wrkMast.getWrkNo())));
                         staProtocol.setStaNo(Short.parseShort(String.valueOf(wrkMast.getStaNo())));
@@ -401,13 +425,13 @@
                         News.info("杈撻�佺嚎鍏ュ簱鍛戒护涓嬪彂锛屼换鍔℃暟鎹�={}", JSON.toJSON(wrkMast));
                         wrkMast.setWrkSts(WrkStsType.OUTBOUND_DEVP_RUN.sts);
                         wrkMast.setModiTime(new Date());
+                        wrkMast.setShuttleNo(null);
                         wrkMastService.updateById(wrkMast);
                     }
                 }
             }
         }
     }
-
 
 
     /**
@@ -569,176 +593,175 @@
     /**
      * 鍑哄簱  ===>>  鍥涘悜绌挎杞﹀嚭搴撲綔涓氫笅鍙�
      */
-    public synchronized void shuttleOutExecute() {
-        try {
-            List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().in("wrk_sts", WrkStsType.NEW_OUTBOUND.sts));
-            for (WrkMast wrkMast : wrkMasts) {
-                boolean step1 = this.shuttleOutExecuteStep1(wrkMast);//灏忚溅鎼嚭搴撲腑
-                if (!step1) {
-                    continue;
-                }
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
+//    public synchronized void shuttleOutExecute() {
+//        try {
+//            List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().in("wrk_sts", WrkStsType.NEW_OUTBOUND.sts));
+//            for (WrkMast wrkMast : wrkMasts) {
+//                boolean step1 = this.shuttleOutExecuteStep1(wrkMast);//灏忚溅鎼嚭搴撲腑
+//                if (!step1) {
+//                    continue;
+//                }
+//            }
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//        }
+//    }
 
     /**
      * 鍑哄簱-灏忚溅鎼嚭搴撲腑
      * 濡傞渶涓绘柟娉曟墽琛宑ontinue锛岃杩斿洖false
      * ps:杩斿洖鍊紅rue骞朵笉浠h〃璇ユ柟娉曟墽琛屾垚鍔燂紝杩斿洖鍊间粎鍋氭爣璁扮敤浜庝富鏂规硶鏄惁鎵цcontinue
      */
-    public boolean shuttleOutExecuteStep1(WrkMast wrkMast) {
-        //101.鐢熸垚鍑哄簱浠诲姟 => 102.灏忚溅鎼繍涓�
-        if (wrkMast.getWrkSts() == WrkStsType.NEW_OUTBOUND.sts) {
-            Integer liftNo = wrkMast.getLiftNo();
-            if (liftNo == null) {
-                //閫氳繃杈撻�佺嚎绔欏彿鑾峰彇鎻愬崌鏈哄彿
-                liftNo = ForkLiftUtils.getConveyorBindLiftNo(wrkMast.getStaNo());
-                if (liftNo == null) {
-                    News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛屾湭鎵惧埌鍖归厤鐨勬彁鍗囨満", wrkMast.getWrkNo());
-                    return false;
-                }
-
-                //鍒ゆ柇鎻愬崌鏈烘槸鍚︽湁鍏朵粬浠诲姟
-                WrkMast liftWrkMast = wrkMastService.selectLiftWrkMast(liftNo);
-                if (liftWrkMast != null) {
-                    if (!liftWrkMast.getWrkNo().equals(wrkMast.getWrkNo())) {//鎻愬崌鏈轰换鍔″拰褰撳墠浠诲姟涓嶇浉鍚�
-                        News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満瀛樺湪鏈畬鎴愪换鍔★紝绂佹娲惧彂", wrkMast.getWrkNo(), liftNo);
-                        return false;
-                    }
-                }
-
-                wrkMast.setLiftNo(liftNo);
-                wrkMast.setModiTime(new Date());
-                wrkMastService.updateById(wrkMast);
-                return false;
-            }
-
-            ForkLiftThread forkLiftThread = (ForkLiftThread) SlaveConnection.get(SlaveType.ForkLift, liftNo);
-            if (forkLiftThread == null) {
-                return false;
-            }
-            ForkLiftProtocol forkLiftProtocol = forkLiftThread.getStatus();
-            if (forkLiftProtocol == null) {
-                return false;
-            }
-
-            //鍒ゆ柇鎻愬崌鏈烘槸鍚﹀浜庡嚭搴撴ā寮�
-            if (!forkLiftProtocol.getIOModeType().equals(ForkLiftIoModeType.OUT)) {
-                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛屾彁鍗囨満涓嶅浜庡嚭搴撴ā寮忥紝绂佹鍑哄簱", wrkMast.getWrkNo());
-                return false;
-            }
-
-            //鑾峰彇婧愮珯
-            ForkLiftStaProtocol liftSta = ForkLiftUtils.getLiftStaByLev(liftNo, Utils.getLev(wrkMast.getSourceLocNo()));
-            if (liftSta == null) {
-                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛岀己灏戠珯鐐逛俊鎭紝绂佹娲惧彂", wrkMast.getWrkNo());
-                return false;
-            }
-
-            if (liftSta.getHasCar()) {
-                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}绔欑偣瀛樺湪灏忚溅锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), liftSta.getStaNo());
-                return false;
-            }
-
-            if (liftSta.getHasTray()) {
-                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}绔欑偣鏈夋墭鐩橈紝绂佹娲惧彂", wrkMast.getWrkNo(), liftSta.getStaNo());
-                return false;
-            }
-
-            if (wrkMast.getShuttleNo() == null) {//娌℃湁缁戝畾灏忚溅锛岃繘琛岃皟搴�
-                //寮哄埗棰勭暀涓�鍙板皬杞︾粰鍏ュ簱浠诲姟
-                int lev = Utils.getLev(wrkMast.getSourceLocNo());
-                //鑾峰彇褰撳墠妤煎眰鏈夊嚑鍙板彲鐢ㄥ皬杞�
-                int shuttleCount = shuttleDispatchUtils.getShuttleCountByLev(lev);
-                if (shuttleCount >= 2) {//鍙湁鍙敤灏忚溅鏁伴噺澶т簬2锛屾墠杩涜鍏ュ簱浠诲姟棰勭暀灏忚溅
-                    int shuttleWrkInObligateCount = 1;//棰勭暀灏忚溅鏁伴噺
-                    Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "shuttleWrkInObligateCount").eq("status", 1));
-                    if (config != null) {
-                        shuttleWrkInObligateCount = Integer.parseInt(config.getValue());
-                    }
-                    //鍙敤鍑哄簱灏忚溅鏁伴噺(缁欏叆搴撲换鍔¢鐣欎竴鍙拌溅)
-                    int useShuttleCount = shuttleCount - shuttleWrkInObligateCount;
-                    //鏌ヨ妤煎眰宸插垎閰嶈溅杈嗙殑鍑哄簱浠诲姟鏁伴噺
-                    List<WrkMast> wrkMasts = wrkMastService.selectShuttleOutWrkByLev(lev);
-                    if (wrkMasts.size() >= useShuttleCount) {
-                        News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛屽綋鍓嶆ゼ灞傚彲鐢ㄥ皬杞}鍙帮紝鍑哄簱浠诲姟宸插垎閰峽}鍙帮紝绯荤粺绛夊緟涓��", wrkMast.getWrkNo(), useShuttleCount, wrkMasts.size());
-                        return false;
-                    }
-                }
-                boolean result = shuttleDispatchUtils.searchDispatchShuttle(wrkMast.getWrkNo(), null, wrkMast.getSourceLocNo(), null);//璋冨害灏忚溅鍒拌揣鐗╂墍鍦ㄥ簱浣嶈繘琛屽彇璐�
-                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛岃皟搴﹀皬杞}绯荤粺绛夊緟涓��", wrkMast.getWrkNo(), result ? "鎴愬姛" : "澶辫触");
-                return false;
-            }
-
-            //鑾峰彇鍥涘悜绌挎杞︾嚎绋�
-            ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, wrkMast.getShuttleNo());
-            if (shuttleThread == null) {
-                return false;
-            }
-            ShuttleProtocol shuttleProtocol = shuttleThread.getStatus();
-            if (shuttleProtocol == null) {
-                return false;
-            }
-            if (!shuttleThread.isIdle()) {
-                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}灏忚溅锛屽繖纰屼腑", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
-                return false;
-            }
-
-            //鍒ゆ柇灏忚溅鏄惁鍒拌揪璐х墿搴撲綅
-            if (!shuttleProtocol.getCurrentLocNo().equals(wrkMast.getSourceLocNo())) {
-                //灏忚溅涓嶅湪杈撻�佺珯鐐逛綅缃�
-                shuttleDispatchUtils.dispatchShuttle(wrkMast.getWrkNo(), wrkMast.getSourceLocNo(), wrkMast.getShuttleNo());//璋冨害灏忚溅鍒拌揣鐗╂墍鍦ㄥ簱浣嶈繘琛屽彇璐�
-                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}灏忚溅锛屾湭鍒拌揪杈撻�佺珯鐐癸紝绯荤粺绛夊緟涓�", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
-                return false;
-            }
-
-            ShuttleAssignCommand assignCommand = new ShuttleAssignCommand();
-            assignCommand.setShuttleNo(shuttleProtocol.getShuttleNo()); // 鍥涘悜绌挎杞︾紪鍙�
-            assignCommand.setTaskMode(ShuttleTaskModeType.TRANSPORT.id);//灏忚溅绉诲簱浠诲姟
-            assignCommand.setTaskNo(wrkMast.getWrkNo());//浠诲姟鍙�
-            assignCommand.setAuto(true);//鑷姩妯″紡
-
-            //鑾峰彇灏忚溅鍒拌緭閫佺珯鐐硅璧板懡浠�
-            List<ShuttleCommand> commands = shuttleOperaUtils.getStartToTargetCommands(wrkMast.getSourceLocNo(), liftSta.getLocNo(), NavigationMapType.DFX.id, assignCommand, shuttleThread);
-            if (commands == null) {
-                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}灏忚溅锛岃矾寰勮绠楀け璐�", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
-                return false;
-            }
-
-            List<ShuttleCommand> liftCommand = shuttleOperaUtils.getShuttleLiftCommand(assignCommand, shuttleThread, true);
-            if (liftCommand == null) {
-                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}灏忚溅鑾峰彇椤跺崌鍛戒护澶辫触", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
-                return false;
-            }
-
-            List<ShuttleCommand> liftCommand2 = shuttleOperaUtils.getShuttleLiftCommand(assignCommand, shuttleThread, false);
-            if (liftCommand2 == null) {
-                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}灏忚溅鑾峰彇涓嬮檷鍛戒护澶辫触", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
-                return false;
-            }
-
-            commands.add(0, liftCommand.get(0));
-            commands.add(liftCommand2.get(0));
-            assignCommand.setCommands(commands);
-
-            wrkMast.setWrkSts(WrkStsType.OUTBOUND_SHUTTLE_RUN.sts);//灏忚溅鎼繍涓�  101.鐢熸垚鍑哄簱浠诲姟 ==> 102.灏忚溅鎼繍涓�
-            wrkMast.setSourceStaNo(liftSta.getStaNo());
-            wrkMast.setModiTime(new Date());
-            wrkMast.setSystemMsg("");//娓呯┖娑堟伅
-            if (wrkMastService.updateById(wrkMast)) {
-                //涓嬪彂浠诲姟
-                shuttleAction.assignWork(shuttleProtocol.getShuttleNo(), assignCommand);
-                //瑙﹀彂閫氱煡
-                notifyUtils.notify(String.valueOf(SlaveType.Shuttle), shuttleProtocol.getShuttleNo(), String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.SHUTTLE_TRANSPORT);
-                return false;
-            }
-            return false;
-        }
-        return true;
-    }
-
+//    public boolean shuttleOutExecuteStep1(WrkMast wrkMast) {
+//        //101.鐢熸垚鍑哄簱浠诲姟 => 102.灏忚溅鎼繍涓�
+//        if (wrkMast.getWrkSts() == WrkStsType.NEW_OUTBOUND.sts) {
+//            Integer liftNo = wrkMast.getLiftNo();
+//            if (liftNo == null) {
+//                //閫氳繃杈撻�佺嚎绔欏彿鑾峰彇鎻愬崌鏈哄彿
+//                liftNo = ForkLiftUtils.getConveyorBindLiftNo(wrkMast.getStaNo());
+//                if (liftNo == null) {
+//                    News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛屾湭鎵惧埌鍖归厤鐨勬彁鍗囨満", wrkMast.getWrkNo());
+//                    return false;
+//                }
+//
+//                //鍒ゆ柇鎻愬崌鏈烘槸鍚︽湁鍏朵粬浠诲姟
+//                WrkMast liftWrkMast = wrkMastService.selectLiftWrkMast(liftNo);
+//                if (liftWrkMast != null) {
+//                    if (!liftWrkMast.getWrkNo().equals(wrkMast.getWrkNo())) {//鎻愬崌鏈轰换鍔″拰褰撳墠浠诲姟涓嶇浉鍚�
+//                        News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満瀛樺湪鏈畬鎴愪换鍔★紝绂佹娲惧彂", wrkMast.getWrkNo(), liftNo);
+//                        return false;
+//                    }
+//                }
+//
+//                wrkMast.setLiftNo(liftNo);
+//                wrkMast.setModiTime(new Date());
+//                wrkMastService.updateById(wrkMast);
+//                return false;
+//            }
+//
+//            ForkLiftThread forkLiftThread = (ForkLiftThread) SlaveConnection.get(SlaveType.ForkLift, liftNo);
+//            if (forkLiftThread == null) {
+//                return false;
+//            }
+//            ForkLiftProtocol forkLiftProtocol = forkLiftThread.getStatus();
+//            if (forkLiftProtocol == null) {
+//                return false;
+//            }
+//
+//            //鍒ゆ柇鎻愬崌鏈烘槸鍚﹀浜庡嚭搴撴ā寮�
+//            if (!forkLiftProtocol.getIOModeType().equals(ForkLiftIoModeType.OUT)) {
+//                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛屾彁鍗囨満涓嶅浜庡嚭搴撴ā寮忥紝绂佹鍑哄簱", wrkMast.getWrkNo());
+//                return false;
+//            }
+//
+//            //鑾峰彇婧愮珯
+//            ForkLiftStaProtocol liftSta = ForkLiftUtils.getLiftStaByLev(liftNo, Utils.getLev(wrkMast.getSourceLocNo()));
+//            if (liftSta == null) {
+//                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛岀己灏戠珯鐐逛俊鎭紝绂佹娲惧彂", wrkMast.getWrkNo());
+//                return false;
+//            }
+//
+//            if (liftSta.getHasCar()) {
+//                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}绔欑偣瀛樺湪灏忚溅锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), liftSta.getStaNo());
+//                return false;
+//            }
+//
+//            if (liftSta.getHasTray()) {
+//                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}绔欑偣鏈夋墭鐩橈紝绂佹娲惧彂", wrkMast.getWrkNo(), liftSta.getStaNo());
+//                return false;
+//            }
+//
+//            if (wrkMast.getShuttleNo() == null) {//娌℃湁缁戝畾灏忚溅锛岃繘琛岃皟搴�
+//                //寮哄埗棰勭暀涓�鍙板皬杞︾粰鍏ュ簱浠诲姟
+//                int lev = Utils.getLev(wrkMast.getSourceLocNo());
+//                //鑾峰彇褰撳墠妤煎眰鏈夊嚑鍙板彲鐢ㄥ皬杞�
+//                int shuttleCount = shuttleDispatchUtils.getShuttleCountByLev(lev);
+//                if (shuttleCount >= 2) {//鍙湁鍙敤灏忚溅鏁伴噺澶т簬2锛屾墠杩涜鍏ュ簱浠诲姟棰勭暀灏忚溅
+//                    int shuttleWrkInObligateCount = 1;//棰勭暀灏忚溅鏁伴噺
+//                    Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "shuttleWrkInObligateCount").eq("status", 1));
+//                    if (config != null) {
+//                        shuttleWrkInObligateCount = Integer.parseInt(config.getValue());
+//                    }
+//                    //鍙敤鍑哄簱灏忚溅鏁伴噺(缁欏叆搴撲换鍔¢鐣欎竴鍙拌溅)
+//                    int useShuttleCount = shuttleCount - shuttleWrkInObligateCount;
+//                    //鏌ヨ妤煎眰宸插垎閰嶈溅杈嗙殑鍑哄簱浠诲姟鏁伴噺
+//                    List<WrkMast> wrkMasts = wrkMastService.selectShuttleOutWrkByLev(lev);
+//                    if (wrkMasts.size() >= useShuttleCount) {
+//                        News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛屽綋鍓嶆ゼ灞傚彲鐢ㄥ皬杞}鍙帮紝鍑哄簱浠诲姟宸插垎閰峽}鍙帮紝绯荤粺绛夊緟涓��", wrkMast.getWrkNo(), useShuttleCount, wrkMasts.size());
+//                        return false;
+//                    }
+//                }
+//                boolean result = shuttleDispatchUtils.searchDispatchShuttle(wrkMast.getWrkNo(), null, wrkMast.getSourceLocNo(), null);//璋冨害灏忚溅鍒拌揣鐗╂墍鍦ㄥ簱浣嶈繘琛屽彇璐�
+//                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛岃皟搴﹀皬杞}绯荤粺绛夊緟涓��", wrkMast.getWrkNo(), result ? "鎴愬姛" : "澶辫触");
+//                return false;
+//            }
+//
+//            //鑾峰彇鍥涘悜绌挎杞︾嚎绋�
+//            ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, wrkMast.getShuttleNo());
+//            if (shuttleThread == null) {
+//                return false;
+//            }
+//            ShuttleProtocol shuttleProtocol = shuttleThread.getStatus();
+//            if (shuttleProtocol == null) {
+//                return false;
+//            }
+//            if (!shuttleThread.isIdle()) {
+//                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}灏忚溅锛屽繖纰屼腑", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
+//                return false;
+//            }
+//
+//            //鍒ゆ柇灏忚溅鏄惁鍒拌揪璐х墿搴撲綅
+//            if (!shuttleProtocol.getCurrentLocNo().equals(wrkMast.getSourceLocNo())) {
+//                //灏忚溅涓嶅湪杈撻�佺珯鐐逛綅缃�
+//                shuttleDispatchUtils.dispatchShuttle(wrkMast.getWrkNo(), wrkMast.getSourceLocNo(), wrkMast.getShuttleNo());//璋冨害灏忚溅鍒拌揣鐗╂墍鍦ㄥ簱浣嶈繘琛屽彇璐�
+//                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}灏忚溅锛屾湭鍒拌揪杈撻�佺珯鐐癸紝绯荤粺绛夊緟涓�", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
+//                return false;
+//            }
+//
+//            ShuttleAssignCommand assignCommand = new ShuttleAssignCommand();
+//            assignCommand.setShuttleNo(shuttleProtocol.getShuttleNo()); // 鍥涘悜绌挎杞︾紪鍙�
+//            assignCommand.setTaskMode(ShuttleTaskModeType.TRANSPORT.id);//灏忚溅绉诲簱浠诲姟
+//            assignCommand.setTaskNo(wrkMast.getWrkNo());//浠诲姟鍙�
+//            assignCommand.setAuto(true);//鑷姩妯″紡
+//
+//            //鑾峰彇灏忚溅鍒拌緭閫佺珯鐐硅璧板懡浠�
+//            List<ShuttleCommand> commands = shuttleOperaUtils.getStartToTargetCommands(wrkMast.getSourceLocNo(), liftSta.getLocNo(), NavigationMapType.DFX.id, assignCommand, shuttleThread);
+//            if (commands == null) {
+//                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}灏忚溅锛岃矾寰勮绠楀け璐�", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
+//                return false;
+//            }
+//
+//            List<ShuttleCommand> liftCommand = shuttleOperaUtils.getShuttleLiftCommand(assignCommand, shuttleThread, true);
+//            if (liftCommand == null) {
+//                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}灏忚溅鑾峰彇椤跺崌鍛戒护澶辫触", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
+//                return false;
+//            }
+//
+//            List<ShuttleCommand> liftCommand2 = shuttleOperaUtils.getShuttleLiftCommand(assignCommand, shuttleThread, false);
+//            if (liftCommand2 == null) {
+//                News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}灏忚溅鑾峰彇涓嬮檷鍛戒护澶辫触", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
+//                return false;
+//            }
+//
+//            commands.add(0, liftCommand.get(0));
+//            commands.add(liftCommand2.get(0));
+//            assignCommand.setCommands(commands);
+//
+//            wrkMast.setWrkSts(WrkStsType.OUTBOUND_SHUTTLE_RUN.sts);//灏忚溅鎼繍涓�  101.鐢熸垚鍑哄簱浠诲姟 ==> 102.灏忚溅鎼繍涓�
+//            wrkMast.setSourceStaNo(liftSta.getStaNo());
+//            wrkMast.setModiTime(new Date());
+//            wrkMast.setSystemMsg("");//娓呯┖娑堟伅
+//            if (wrkMastService.updateById(wrkMast)) {
+//                //涓嬪彂浠诲姟
+//                shuttleAction.assignWork(shuttleProtocol.getShuttleNo(), assignCommand);
+//                //瑙﹀彂閫氱煡
+//                notifyUtils.notify(String.valueOf(SlaveType.Shuttle), shuttleProtocol.getShuttleNo(), String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.SHUTTLE_TRANSPORT);
+//                return false;
+//            }
+//            return false;
+//        }
+//        return true;
+//    }
     public synchronized void liftInExecute() {
         try {
             List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().in("wrk_sts", WrkStsType.NEW_INBOUND.sts, WrkStsType.INBOUND_DEVICE_RUN.sts, WrkStsType.INBOUND_LIFT_RUN_COMPLETE.sts).in("source_sta_no", 1012, 1022));
@@ -969,7 +992,8 @@
             }
 
             wrkMast.setWrkSts(WrkStsType.INBOUND_SHUTTLE_RUN.sts);
-            wrkMast.setLiftNo(null);
+            // TODO 娴嬭瘯涓彂鐜颁笉鑳借В绂侊紝鍥犱负鎻愬崌鏈洪噷瀛樺湪鎵樼洏锛屽氨涓嶈兘瑙g锛屼笉鐒跺彟涓�杈嗗皬杞﹀彲鑳戒細杩戞彁鍗囨満
+            //wrkMast.setLiftNo(null);
             wrkMast.setSystemMsg("");//娓呯┖娑堟伅
             wrkMast.setModiTime(now);
             if (wrkMastService.updateById(wrkMast)) {
@@ -1032,6 +1056,8 @@
             if (!dispatchShuttle) {
                 News.info("{}浠诲姟锛岃皟搴﹀皬杞﹀け璐�", wrkMast.getWrkNo());
                 return false;
+            } else {
+                News.info("{}浠诲姟锛屾棤鎻愬崌鏈哄璋冨害灏忚溅鎴愬姛", wrkMast.getWrkNo());
             }
 
             wrkMast.setWrkSts(WrkStsType.OUTBOUND_SHUTTLE_RUN.sts);

--
Gitblit v1.9.1