From c4bcb806f606fc5080b40af20562d6837889f496 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期一, 31 七月 2023 16:46:35 +0800
Subject: [PATCH] 穿梭车入库

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  297 ++++++++++++-------------------------------------
 src/main/java/com/zy/asrs/mapper/WrkMastMapper.java         |    2 
 src/main/java/com/zy/common/utils/NyShuttleOperaUtils.java  |   34 +++--
 src/main/resources/mapper/WrkMastMapper.xml                 |    4 
 src/main/java/com/zy/core/MainProcess.java                  |   13 -
 5 files changed, 102 insertions(+), 248 deletions(-)

diff --git a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
index b4de01c..79098eb 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
@@ -44,7 +44,7 @@
 
     List<WrkMast> selectAll(@Param("staNo")Integer staNo);
 
-    WrkMast selectRackInStep48(Short workNo,Integer staNo);
+    WrkMast selectRackInStep4(Short workNo,Integer staNo);
 
     WrkMast selectByWorkNo(Integer workNo);
 
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 dee35a0..d645c25 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -661,7 +661,7 @@
     /**
      * 鍏ュ簱  ===>>  鍥涘悜绌挎杞﹀叆搴撲綔涓氫笅鍙�
      */
-    public synchronized void shuttleIoInExecute() {
+    public synchronized void shuttleInExecute() {
         // 鏍规嵁杈撻�佺嚎plc閬嶅巻
         for (DevpSlave devp : slaveProperties.getDevp()) {
             // 閬嶅巻鍏ュ簱绔�
@@ -675,235 +675,88 @@
                     staProtocol = staProtocol.clone();
                 }
                 Short workNo = staProtocol.getWorkNo();
+                BasDevp basDevp = basDevpService.selectById(staProtocol.getSiteId());
+                if (basDevp == null) {
+                    continue;//绔欑偣淇℃伅涓嶅瓨鍦�
+                }
 
                 // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢锛岃嚜鍔ㄣ�佹湁鐗┿�佸洓鍚戠┛姊溅鍙彇淇″彿
-                if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isShuttleTakeEnable()) {
-                    WrkMast wrkMast = wrkMastMapper.selectRackInStep48(workNo, staProtocol.getSiteId());
-                    if (wrkMast != null) {
-                        if (wrkMast.getWrkSts() == 4 || wrkMast.getWrkSts() == 8) {
-                            ShuttleThread shuttleThread = null;
-                            ShuttleProtocol shuttleProtocol = null;
-                            HashMap<String, Object> searchIdleShuttle = null;
+                if (!(staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isShuttleTakeEnable())) {
+                    continue;
+                }
 
-                            LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, 1);
-                            LiftProtocol liftProtocol = liftThread.getLiftProtocol();
+                WrkMast wrkMast = wrkMastMapper.selectRackInStep4(workNo, staProtocol.getSiteId());
+                if (wrkMast == null) {
+                    continue;
+                }
 
-                            if (wrkMast.getWrkSts() == 4) {
-                                if (wrkMast.getShuttleNo() == null) {
-                                    //瀵绘壘鏈�杩戜笖绌洪棽鐨勫洓鍚戠┛姊溅
-                                    searchIdleShuttle = this.searchIdleShuttle(wrkMast);
-                                    shuttleThread = (ShuttleThread) searchIdleShuttle.get("result");
-                                    wrkMast.setShuttleNo(shuttleThread.getSlave().getId());//缁欏伐浣滄。鍒嗛厤鍥涘悜绌挎杞﹀彿
-                                    wrkMastMapper.updateById(wrkMast);
-                                    shuttleProtocol = shuttleThread.getShuttleProtocol();
-                                    if (!shuttleProtocol.isIdle()) {
-                                        continue;
-                                    }
-                                }else {
-                                    //鐩存帴浣跨敤浠诲姟淇濆瓨涓殑灏忚溅
-                                    shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, wrkMast.getShuttleNo());
-                                    shuttleProtocol = shuttleThread.getShuttleProtocol();
-                                    if (!shuttleProtocol.isIdle(workNo)) {
-                                        continue;
-                                    }
-                                }
-                            }else if(wrkMast.getWrkSts() == 8){//鐘舵��8锛岄渶瑕佸悜灏忚溅涓嬪彂鍛戒护浠庢彁鍗囨満绉诲姩鍑哄幓锛岄渶瑕佸垽鏂彁鍗囨満鐘舵槸鍚︾┖闂层�佹彁鍗囨満鏄惁鍒拌揪鐩爣妤煎眰銆佺洰鏍囨ゼ灞傜珯鐐规槸鍚﹀瓨鍦ㄣ�佺洰鏍囨ゼ灞傜珯鐐规槸鍚︾粰鍑烘彁鍗囨満鍒颁綅淇″彿
-                                //鐘舵��8锛岀瓑寰呭懡浠よ繘琛屽叆搴撴惉杩愬姩浣�
-
-                                //鍒ゆ柇鎻愬崌鏈烘槸鍚︾┖闂�
-                                if (!liftProtocol.isIdleNoTask()) {
-                                    try {
-                                        Thread.sleep(1000);//浼戠湢1s
-                                    } catch (InterruptedException e) {
-                                        throw new RuntimeException(e);
-                                    }
-                                    continue;//鎻愬崌鏈哄繖
-                                }
-                                //鍒ゆ柇鎻愬崌鏈轰换鍔″彿鍜屽綋鍓嶅伐浣滄。浠诲姟鍙锋槸鍚︿竴鑷�
-                                if (liftProtocol.getTaskNo().intValue() != 0 && liftProtocol.getTaskNo().intValue() != wrkMast.getWrkNo()) {
-                                    continue;
-                                }
-
-                                //鍒ゆ柇鎻愬崌鏈烘ゼ灞傛槸鍚﹀埌浣嶏紝鍒ゆ柇绔欑偣鏄惁缁欏嚭鎻愬崌鏈哄埌浣嶄俊鍙�
-                                String locNo = wrkMast.getLocNo();
-                                int lev = Utils.getLev(locNo);//鐩爣浜岀淮鐮佹墍鍦ㄦゼ灞�
-                                int liftLev = liftProtocol.getLev().intValue();//鎻愬崌鏈烘墍鍦ㄦゼ灞�
-                                if (liftLev != lev) {
-                                    continue;//鎻愬崌鏈轰笉鍦ㄧ洰鏍囨ゼ灞傝烦杩�
-                                }
-
-                                Integer staNo = Utils.levToOutInStaNo(lev >= 2 ? lev + 1 : lev);
-                                //鑾峰彇鐩爣绔欎俊鎭�
-                                StaProtocol staProtocol1 = devpThread.getStation().get(staNo);
-                                if (staProtocol1 == null) {
-                                    continue;//绔欑偣淇℃伅涓嶅瓨鍦�
-                                }
-                                if (!staProtocol1.isLiftArrival()) {
-                                    continue;//绔欑偣鎻愬崌鏈哄埌浣嶄俊鍙穎alse
-                                }
-
-                                Integer shuttleNo = wrkMast.getShuttleNo();//鍥涘悜绌挎杞﹀彿
-                                shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttleNo);
-                                shuttleProtocol = shuttleThread.getShuttleProtocol();
-                                if (!shuttleProtocol.isIdle(workNo)) {
-                                    continue;
-                                }
-                            }
-
-                            if (shuttleThread == null) {
-                                continue;
-                            }
-
-                            if (shuttleProtocol == null) {
-                                continue;
-                            }
-
-                            wrkMast.setShuttleNo(shuttleProtocol.getShuttleNo().intValue());//缁欏伐浣滄。鍒嗛厤鍥涘悜绌挎杞﹀彿
-
-                            //鍒嗛厤浠诲姟鍙�
-                            shuttleProtocol.setTaskNo(wrkMast.getWrkNo().shortValue());
-                            //鍒嗛厤婧愬簱浣�
-                            shuttleProtocol.setSourceLocNo(wrkMast.getSourceLocNo());
-
-                            //鍒涘缓鍒嗛厤鍛戒护
-                            ShuttleAssignCommand assignCommand = new ShuttleAssignCommand();
-                            assignCommand.setShuttleNo(shuttleProtocol.getShuttleNo());//鍥涘悜绌挎杞﹀彿
-                            assignCommand.setTaskNo(wrkMast.getWrkNo().shortValue());//浠诲姟鍙�
-                            assignCommand.setTaskMode(ShuttleTaskModeType.PAK_IN.id.shortValue());//鍏ュ嚭搴撴ā寮�
-                            String currentLocNo = shuttleProtocol.getCurrentLocNo();
-                            assignCommand.setSourceLocNo(currentLocNo);//婧愬簱浣�(灏忚溅褰撳墠浣嶇疆)
-
-                            String locNo = wrkMast.getLocNo();//褰撳墠宸ヤ綔妗e簱浣嶅彿
-                            Integer currentLev = wrkMast.getWrkSts() == 4 ? Utils.getLev(currentLocNo) : liftProtocol.getLev();//灏忚溅褰撳墠灞傞珮
-
-                            //鎻愬崌鏈哄彛绔欑偣搴撲綅鍙�
-                            String liftSiteLocNo = Utils.levToOutInStaLocNo(currentLev);
-
-                            if (wrkMast.getWrkSts() == 4) {
-                                if (currentLev == Utils.getLev(locNo)) {
-                                    //灏忚溅鍜岀洰鏍囧湪鍚屼竴妤煎眰
-                                    //鐩存帴璁$畻杞﹀埌鎻愬崌鏈哄彇璐у啀鍒板簱浣嶈矾寰勬寚浠�
-                                    List<ShuttleCommand> commands = this.shuttleAssignCommand(wrkMast.getWrkSts() == 4 ? currentLocNo : liftSiteLocNo, liftSiteLocNo, locNo, assignCommand, shuttleThread);
-                                    if (commands == null) {
-                                        continue;//鎵句笉鍒拌矾寰勭瓑寰呬笅涓�娆�
-                                    }
-//                                    assignCommand.setCommands(commands);
-                                    //鍒嗛厤鐩爣搴撲綅
-                                    shuttleProtocol.setLocNo(wrkMast.getLocNo());
-                                    //鐩爣搴撲綅
-                                    assignCommand.setLocNo(wrkMast.getLocNo());
-                                    wrkMast.setWrkSts(9L);//灏忚溅鍏ュ簱涓�
-                                }else {
-                                    //灏忚溅鍜岀洰鏍囦笉鍦ㄥ悓涓�妤煎眰
-                                    //灏忚溅绉诲姩鍒版彁鍗囨満鍙o紝璁$畻璺緞
-                                    List<ShuttleCommand> commands = this.shuttleAssignCommand(currentLocNo, liftSiteLocNo, NavigationMapType.NONE.id, assignCommand, shuttleThread);
-                                    if (commands == null) {
-                                        continue;//鏈壘鍒拌矾寰�
-                                    }
-
-                                    //鑾峰彇褰撳墠灏忚溅鎵�鍦ㄦゼ灞傜殑绔欑偣淇℃伅
-                                    BasDevp basDevp = basDevpService.queryByLocNo(liftSiteLocNo);
-                                    Short endStartCode = Short.parseShort(basDevp.getQrCodeValue());//绔欑偣浜岀淮鐮�
-
-//                                    //澧炲姞绉诲姩杩涙彁鍗囨満鍛戒护
-//                                    ShuttleCommand moveCommand = shuttleThread.getMoveCommand(endStartCode, liftProtocol.getBarcode(), 1600, ShuttleRunDirection.TOP.id, null, null, 500);
-//                                    commands.add(moveCommand);
-
-                                    //鍒嗛厤鐩爣搴撲綅
-                                    shuttleProtocol.setLocNo(liftSiteLocNo);
-                                    //鐩爣搴撲綅
-                                    assignCommand.setLocNo(liftSiteLocNo);
-//                                    assignCommand.setCommands(commands);
-                                    wrkMast.setWrkSts(5L);//灏忚溅杩佺Щ鐘舵��
-                                }
-                            } else if (wrkMast.getWrkSts() == 8) {
-                                //鐩存帴璁$畻杞﹀埌鎻愬崌鏈哄彇璐у啀鍒板簱浣嶈矾寰勬寚浠�
-                                List<ShuttleCommand> commands = this.shuttleAssignCommand(wrkMast.getWrkSts() == 4 ? currentLocNo : liftSiteLocNo, liftSiteLocNo, locNo, assignCommand, shuttleThread);
-                                if (commands == null) {
-                                    continue;//鎵句笉鍒拌矾寰勭瓑寰呬笅涓�娆�
-                                }
-
-                                //姝ゆ椂杞﹀湪鎻愬崌鏈哄唴閮紝涓嬭揪涓�姝ユ寚浠よ杞︾Щ鍔ㄥ埌鎻愬崌鏈哄彛
-                                Integer staNo = Utils.levToOutInStaNo(currentLev >= 2 ? currentLev + 1 : currentLev);//绔欑偣鍙�
-                                BasDevp basDevp = basDevpService.selectById(staNo);
-
-//                                short startCode = liftProtocol.getBarcode();//鎻愬崌鏈哄唴閮ㄤ簩缁寸爜
-//                                Short distCode = Short.parseShort(basDevp.getQrCodeValue());//鎻愬崌鏈哄彛绔欑偣浜岀淮鐮�
-//                                Short runDirection = ShuttleRunDirection.BOTTOM.id;//杩愯鏂瑰悜
-//                                //鑾峰彇鍛戒护
-//                                ShuttleCommand moveCommand = shuttleThread.getMoveCommand(startCode, distCode, 1600, runDirection, null, null, 500);
-//                                commands.add(0, moveCommand);//灏嗚鎸囦护娣诲姞鍒伴槦澶�
-
-//                                assignCommand.setCommands(commands);
-                                //鍒嗛厤鐩爣搴撲綅
-                                shuttleProtocol.setLocNo(wrkMast.getLocNo());
-                                //鐩爣搴撲綅
-                                assignCommand.setLocNo(wrkMast.getLocNo());
-                                wrkMast.setWrkSts(9L);//灏忚溅鍏ュ簱涓�
-                            }
-
-//                            if (wrkMast.getWrkSts() == 8 || Boolean.parseBoolean(searchIdleShuttle.get("sameLay").toString())) {
-//                                //鍚屼竴灞傜洿鎺ュ彇璐ф棤闇�缁忚繃鎻愬崌鏈�
-//                                //鐩存帴璁$畻杞﹀埌鎻愬崌鏈哄彇璐у啀鍒板簱浣嶈矾寰勬寚浠�
-//                                List<ShuttleCommand> commands = this.shuttleAssignCommand(wrkMast.getWrkSts() == 4 ? currentLocNo : liftSiteLocNo, liftSiteLocNo, locNo, assignCommand, shuttleThread);
-//                                if (commands == null) {
-//                                    continue;//鎵句笉鍒拌矾寰勭瓑寰呬笅涓�娆�
-//                                }
-//                                if (wrkMast.getWrkSts() == 8) {
-//                                    //姝ゆ椂杞﹀湪鎻愬崌鏈哄唴閮紝涓嬭揪涓�姝ユ寚浠よ杞︾Щ鍔ㄥ埌鎻愬崌鏈哄彛
-//                                    Integer staNo = Utils.levToOutInStaNo(currentLev >= 2 ? currentLev + 1 : currentLev);//绔欑偣鍙�
-//                                    BasDevp basDevp = basDevpService.selectById(staNo);
-//
-//                                    short startCode = liftProtocol.getBarcode();//鎻愬崌鏈哄唴閮ㄤ簩缁寸爜
-//                                    Short distCode = Short.parseShort(basDevp.getQrCodeValue());//鎻愬崌鏈哄彛绔欑偣浜岀淮鐮�
-//                                    Short runDirection = ShuttleRunDirection.BOTTOM.id;//杩愯鏂瑰悜
-//                                    //鑾峰彇鍛戒护
-//                                    ShuttleCommand moveCommand = shuttleThread.getMoveCommand(startCode, distCode, 1600, runDirection, startCode, 1600, 500);
-//                                    commands.add(0, moveCommand);//灏嗚鎸囦护娣诲姞鍒伴槦澶�
-//                                }
-//                                assignCommand.setCommands(commands);
-//                                //鍒嗛厤鐩爣搴撲綅
-//                                shuttleProtocol.setLocNo(wrkMast.getLocNo());
-//                                //鐩爣搴撲綅
-//                                assignCommand.setLocNo(wrkMast.getLocNo());
-//                                wrkMast.setWrkSts(9L);//灏忚溅鍏ュ簱涓�
-//                            }else {
-//                                //涓嶅悓灞傦紝灏嗙洰鏍囧簱浣嶅垎閰嶆垚鎻愬崌鏈哄簱浣嶅彿
-//
-//                                //灏忚溅绉诲姩鍒版彁鍗囨満鍙o紝璁$畻璺緞
-//                                List<ShuttleCommand> commands = this.shuttleAssignCommand(currentLocNo, liftSiteLocNo, NavigationMapType.NONE.id, assignCommand, shuttleThread);
-//                                if (commands == null) {
-//                                    continue;//鏈壘鍒拌矾寰�
-//                                }
-//
-//                                //鑾峰彇褰撳墠灏忚溅鎵�鍦ㄦゼ灞傜殑绔欑偣淇℃伅
-//                                BasDevp basDevp = basDevpService.queryByLocNo(liftSiteLocNo);
-//                                Short endStartCode = Short.parseShort(basDevp.getQrCodeValue());//绔欑偣浜岀淮鐮�
-//
-//                                //澧炲姞绉诲姩杩涙彁鍗囨満鍛戒护
-//                                ShuttleCommand moveCommand = shuttleThread.getMoveCommand(endStartCode, liftProtocol.getBarcode(), 1600, ShuttleRunDirection.TOP.id, endStartCode, 1600, 500);
-//                                commands.add(moveCommand);
-//
-//                                //鍒嗛厤鐩爣搴撲綅
-//                                shuttleProtocol.setLocNo(liftSiteLocNo);
-//                                //鐩爣搴撲綅
-//                                assignCommand.setLocNo(liftSiteLocNo);
-//                                assignCommand.setCommands(commands);
-//                                wrkMast.setWrkSts(5L);//灏忚溅杩佺Щ鐘舵��
-//                            }
-
-                            if (wrkMastMapper.updateById(wrkMast) > 0) {
-                                //涓嬪彂浠诲姟
-                                MessageQueue.offer(SlaveType.Shuttle, assignCommand.getShuttleNo().intValue(), new Task(3, assignCommand));
-                            }
-                        }
-
-                    }
+                boolean step1 = this.shuttleInExecuteStep1(wrkMast, basDevp);//灏忚溅鎼叆搴撲腑
+                if (!step1) {
+                    continue;
                 }
 
             }
         }
 
+    }
+
+    /**
+     * 鍏ュ簱-灏忚溅鎼叆搴撲腑
+     * 濡傞渶涓绘柟娉曟墽琛宑ontinue锛岃杩斿洖false
+     * ps:杩斿洖鍊紅rue骞朵笉浠h〃璇ユ柟娉曟墽琛屾垚鍔燂紝杩斿洖鍊间粎鍋氭爣璁扮敤浜庝富鏂规硶鏄惁鎵цcontinue
+     */
+    public boolean shuttleInExecuteStep1(WrkMast wrkMast, BasDevp basDevp) {
+        if (wrkMast.getWrkSts() == 4) {
+            if (wrkMast.getShuttleNo() == null) {//娌℃湁缁戝畾灏忚溅锛岃繘琛岃皟搴�
+                dispatchShuttle(wrkMast.getWrkNo(), basDevp.getLocNo());//璋冨害灏忚溅鍒拌揣鐗╂墍鍦ㄨ緭閫佺珯鐐硅繘琛屽彇璐�
+                return false;
+            }
+
+            //鑾峰彇鍥涘悜绌挎杞︾嚎绋�
+            ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, wrkMast.getShuttleNo());
+            if (shuttleThread == null) {
+                return false;
+            }
+            ShuttleProtocol shuttleProtocol = shuttleThread.getShuttleProtocol();
+            if (shuttleProtocol == null) {
+                return false;
+            }
+            if (!shuttleProtocol.isIdle()) {
+                return false;
+            }
+
+            //鍒ゆ柇灏忚溅鏄惁鍒拌揪杈撻�佺珯鐐瑰簱浣�
+            if (!shuttleProtocol.getCurrentLocNo().equals(basDevp.getLocNo())) {
+                //灏忚溅涓嶅湪杈撻�佺珯鐐逛綅缃�
+                dispatchShuttle(wrkMast.getWrkNo(), basDevp.getLocNo());//璋冨害灏忚溅鍒拌揣鐗╂墍鍦ㄨ緭閫佺珯鐐硅繘琛屽彇璐�
+                return false;
+            }
+
+            //灏忚溅宸叉姷杈捐緭閫佺珯鐐逛綅缃紝杩涜鎼繍璐х墿
+            NyShuttleOperaResult result = NyShuttleOperaUtils.getShuttleTransportCommands(wrkMast.getShuttleNo(), wrkMast.getWrkNo(), shuttleProtocol.getCurrentLocNo(), basDevp.getLocNo(), wrkMast.getLocNo());
+            if (result == null) {//璺緞璁$畻澶辫触
+                return false;
+            }
+
+            //鍒涘缓鍒嗛厤鍛戒护
+            ShuttleAssignCommand assignCommand = new ShuttleAssignCommand();
+            assignCommand.setShuttleNo(shuttleProtocol.getShuttleNo());//鍥涘悜绌挎杞﹀彿
+            assignCommand.setTaskNo(wrkMast.getWrkNo().shortValue());//浠诲姟鍙�
+            assignCommand.setTaskMode(ShuttleTaskModeType.PAK_IN.id.shortValue());//鍏ュ簱妯″紡
+            assignCommand.setSourceLocNo(shuttleProtocol.getCurrentLocNo());//婧愬簱浣�(灏忚溅褰撳墠浣嶇疆)
+            assignCommand.setCommands(result.getCommands());//杩愯鍛戒护
+            assignCommand.setNodes(result.getNodes());//璺緞鑺傜偣
+
+            wrkMast.setWrkSts(5L);//4.鎻愬崌鏈烘惉杩愬畬鎴� => 5.灏忚溅鎼繍涓�
+            wrkMast.setModiTime(new Date());
+            if (wrkMastMapper.updateById(wrkMast) > 0) {
+                //涓嬪彂浠诲姟
+                MessageQueue.offer(SlaveType.Shuttle, assignCommand.getShuttleNo().intValue(), new Task(3, assignCommand));
+            }
+
+            return false;
+        }
+        return true;
     }
 
     //鑾峰彇璧风偣-缁堢偣鎸囦护
@@ -1104,7 +957,7 @@
     /**
      * 鍑哄簱  ===>>  鍥涘悜绌挎杞﹀嚭搴撲綔涓氫笅鍙�
      */
-    public synchronized void shuttleIoOutExecute() {
+    public synchronized void shuttleOutExecute() {
         for (WrkMast wrkMast : wrkMastMapper.selectBy2125()) {
             //鎻愬彇涓�鏉″緟鍑哄簱浠诲姟
             if (wrkMast != null) {
diff --git a/src/main/java/com/zy/common/utils/NyShuttleOperaUtils.java b/src/main/java/com/zy/common/utils/NyShuttleOperaUtils.java
index 6fdcd57..f5e4876 100644
--- a/src/main/java/com/zy/common/utils/NyShuttleOperaUtils.java
+++ b/src/main/java/com/zy/common/utils/NyShuttleOperaUtils.java
@@ -23,26 +23,32 @@
      * @param targetPoint 鐩爣鐐癸紙璐х墿鐩爣浣嶇疆锛�
      */
     public static NyShuttleOperaResult getShuttleTransportCommands(Integer shuttleNo, Integer wrkNo, String startPoint, String middlePoint, String targetPoint) {
-        //璁$畻璧风偣鍒颁腑闂寸偣鍛戒护
-        NyShuttleOperaResult result1 = getStartToTargetCommands(shuttleNo, wrkNo, startPoint, middlePoint);
-        //璁$畻涓棿鐐瑰埌鐩爣鐐瑰懡浠�
-        NyShuttleOperaResult result2 = getStartToTargetCommands(shuttleNo, wrkNo, middlePoint, targetPoint);
-        if (result1 == null || result2 == null) {
-            //涓や釜璁$畻缁撴灉蹇呴』涓嶄负绌猴紝鍚﹀垯璁$畻澶辫触
-            return null;
-        }
-
         //琛岃蛋璺緞
         ArrayList<NavigateNode> nodes = new ArrayList<>();
-        nodes.addAll(result1.getNodes());
-        nodes.addAll(result2.getNodes());
-
         //鍛戒护闆嗗悎
         ArrayList<NyShuttleHttpCommand> commands = new ArrayList<>();
-        commands.addAll(result1.getCommands());
+
+        if (!startPoint.equals(middlePoint)) {//璧风偣鍜屼腑闂寸偣涓嶄竴鑷达紝闇�瑕佽绠楄捣鐐瑰埌涓棿鐐硅矾寰�
+            //璁$畻璧风偣鍒颁腑闂寸偣鍛戒护
+            NyShuttleOperaResult result1 = getStartToTargetCommands(shuttleNo, wrkNo, startPoint, middlePoint);
+            if (result1 == null) {
+                //璁$畻缁撴灉蹇呴』涓嶄负绌猴紝鍚﹀垯璁$畻澶辫触
+                return null;
+            }
+            nodes.addAll(result1.getNodes());
+            commands.addAll(result1.getCommands());
+        }
+
+        //璁$畻涓棿鐐瑰埌鐩爣鐐瑰懡浠�
+        NyShuttleOperaResult result2 = getStartToTargetCommands(shuttleNo, wrkNo, middlePoint, targetPoint);
+        if (result2 == null) {
+            //璁$畻缁撴灉蹇呴』涓嶄负绌猴紝鍚﹀垯璁$畻澶辫触
+            return null;
+        }
+        nodes.addAll(result2.getNodes());
         //褰撳皬杞﹁璧板埌涓棿鐐瑰悗锛岄渶瑕佷笅鍙戜竴鏉¢《鍗囧懡浠ゅ皢璐х墿杩涜鎼繍
         commands.add(NyHttpUtils.getPalletLiftCommand(shuttleNo, wrkNo, true));
-        commands.addAll(result2.getCommands());
+        commands.addAll(result2.getCommands());//涓棿鐐瑰埌鐩爣鐐圭Щ鍔ㄥ懡浠�
         //褰撳皬杞﹁璧板埌鐩爣鐐瑰悗锛岄渶瑕佷笅鍙戜竴鏉′笅闄嶅懡浠ゅ皢璐х墿鏀剧疆
         commands.add(NyHttpUtils.getPalletLiftCommand(shuttleNo, wrkNo, false));
         return result(commands, nodes);
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index e34999f..b3b1831 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -41,9 +41,6 @@
                         continue;
                     }
 
-//                    // 婕旂ず
-//                    mainService.demo();
-
                     // 鍏ュ簱  ===>> 鍏ュ簱绔欏埌鍫嗗灈鏈虹珯锛屾牴鎹潯鐮佹壂鎻忕敓鎴愬叆搴撳伐浣滄。
                     mainService.generateStoreWrkFile(); // 缁勬墭
 //                    mainService.generateStoreWrkFile0(); // WMS鍏ュ簱
@@ -53,14 +50,12 @@
 
                     //鍒濆鍖栧疄鏃跺湴鍥�
                     mainService.initRealtimeBasMap();
-//                    //浠巖edis涓噸鍚换鍔�
-//                    mainService.restartTaskFromRedis();
                     // 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱
                     mainService.stnToCrnStnPick();
-//                    // 鍏ュ簱  ===>>  鍥涘悜绌挎杞﹀叆搴撲綔涓氫笅鍙�
-//                    mainService.shuttleIoInExecute();
-//                    // 鍑哄簱  ===>>  鍥涘悜绌挎杞﹀嚭搴撲綔涓氫笅鍙�
-//                    mainService.shuttleIoOutExecute();
+                    // 鍏ュ簱  ===>>  鍥涘悜绌挎杞﹀叆搴撲綔涓氫笅鍙�
+                    mainService.shuttleInExecute();
+                    // 鍑哄簱  ===>>  鍥涘悜绌挎杞﹀嚭搴撲綔涓氫笅鍙�
+                    mainService.shuttleOutExecute();
                     //鍥涘悜绌挎杞︿换鍔″畬鎴�
                     mainService.shuttleFinished();
                     //鎻愬崌鏈轰换鍔�
diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml
index 894aeb2..11a9514 100644
--- a/src/main/resources/mapper/WrkMastMapper.xml
+++ b/src/main/resources/mapper/WrkMastMapper.xml
@@ -106,11 +106,11 @@
         and source_sta_no=#{staNo}
     </select>
     
-    <select id="selectRackInStep48" resultMap="BaseResultMap">
+    <select id="selectRackInStep4" resultMap="BaseResultMap">
         select top 1 *
         from dbo.asr_wrk_mast
         where 1=1
-        and ((wrk_sts = 4) or (wrk_sts = 8 and shuttle_no is not null))
+        and wrk_sts = 4
         and sta_no = #{staNo}
         and wrk_no=#{workNo}
         and io_type in (1,10,53)

--
Gitblit v1.9.1