From 5a552bd8462b50b11ffd6730e456657366f37484 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期一, 31 七月 2023 16:03:21 +0800
Subject: [PATCH] 提升机、穿梭车finished方法

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  213 +++++-----------------------------------------------
 1 files changed, 22 insertions(+), 191 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 769aec2..dee35a0 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -1480,40 +1480,26 @@
                     && shuttleProtocol.getTaskNo() != 0
                     && shuttleProtocol.getBusyStatus() == 0
             ) {
-                //鏍囪澶嶄綅
-                shuttleProtocol.setPakMk(true);
-
-                ShuttleAssignCommand assignCommand = shuttleProtocol.getAssignCommand();
-
                 //灏嗕换鍔℃。鏍囪涓哄畬鎴�
                 WrkMast wrkMast = wrkMastMapper.selectByWorkNo(shuttleProtocol.getTaskNo().intValue());
-                ShuttleAssignCommand moveAssignCommand = null;//閬胯鍛戒护
                 if (wrkMast != null) {
                     switch (wrkMast.getWrkSts().intValue()) {
-                        case 9://9.灏忚溅鍏ュ簱鎼繍涓� ==> 14.鍏ュ簱瀹屾垚
-                            wrkMast.setWrkSts(14L);
+                        case 5://5.灏忚溅鎼繍涓� ==> 9.鍏ュ簱瀹屾垚
+                            wrkMast.setWrkSts(9L);
                             //浠诲姟鍙锋竻闆�
                             shuttleProtocol.setTaskNo((short) 0);
                             break;
-                        case 5://5.杩佺Щ灏忚溅鑷虫彁鍗囨満鍙� ==> 6.杩佺Щ灏忚溅鑷虫彁鍗囨満鍙e畬鎴�
-                            wrkMast.setWrkSts(6L);
-                            break;
-                        case 22://22.杩佺Щ灏忚溅鑷虫彁鍗囨満鍙� ==> 23.杩佺Щ灏忚溅鑷虫彁鍗囨満鍙e畬鎴�
+                        case 22://22.灏忚溅鎼繍涓� ==> 23.灏忚溅鎼繍瀹屾垚
                             wrkMast.setWrkSts(23L);
                             break;
-                        case 26://26.灏忚溅鍑哄簱鎼繍涓� ==> 27.灏忚溅鍑哄簱鎼繍瀹屾垚
-                            //浠诲姟鎵ц瀹屽悗锛屽皬杞﹁繘鍏ョЩ寮�鎻愬崌鏈哄彛绔欑偣浣嶇疆锛屼互鍏嶅潬钀�
-                            //鎼滅储涓�鏉℃病鏈夊皬杞︾殑绌哄贩閬擄紝骞惰皟搴﹀皬杞�
-                            int distLev = Utils.getLev(wrkMast.getSourceLocNo());//閬胯妤煎眰
-                            String startLocNo = "180020" + distLev;
-                            moveAssignCommand = Utils.searchEmptyGroupToMoveShuttle(distLev, shuttleThread.getSlave().getId(), shuttleThread, startLocNo);
-                            if (moveAssignCommand == null) {//璋冨害灏忚溅鍛戒护涓虹┖
-                                continue;
-                            }
-
-                            wrkMast.setWrkSts(27L);
-                            //浠诲姟鍙锋竻闆�
-                            shuttleProtocol.setTaskNo((short) 0);
+                        case 102://102.灏忚溅鍒版彁鍗囨満涓� ==> 103.灏忚溅鍒版彁鍗囨満瀹屾垚
+                            wrkMast.setWrkSts(103L);
+                            break;
+                        case 106://106.灏忚溅杩佸嚭鎻愬崌鏈轰腑 ==> 107.灏忚溅杩佸嚭鎻愬崌鏈哄畬鎴�
+                            wrkMast.setWrkSts(107L);
+                            break;
+                        case 108://108.灏忚溅绉诲姩涓� ==> 109.灏忚溅绉诲姩瀹屾垚
+                            wrkMast.setWrkSts(109L);
                             break;
                         default:
                     }
@@ -1528,83 +1514,11 @@
                         //浠诲姟鎸囦护娓呴浂
                         shuttleProtocol.setAssignCommand(null);
                         News.info("鍥涘悜绌挎杞﹀凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅銆傚洓鍚戠┛姊溅鍙�={}", shuttleProtocol.getShuttleNo());
-
-                        if (wrkMast.getWrkSts() == 27) {
-                            if (moveAssignCommand != null) {
-                                try {
-                                    Thread.sleep(4000);
-                                    //涓嬪彂浠诲姟
-                                    shuttleProtocol.setPakMk(true);
-                                    MessageQueue.offer(SlaveType.Shuttle, shuttleThread.getSlave().getId(), new Task(3, moveAssignCommand));
-                                } catch (InterruptedException e) {
-                                    throw new RuntimeException(e);
-                                }
-                            }
-                        }
-
                     } else {
                         News.error("鍥涘悜绌挎杞﹀凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅澶辫触锛屼絾鏈壘鍒板伐浣滄。銆傚洓鍚戠┛姊溅鍙�={}锛屽伐浣滃彿={}", shuttleProtocol.getShuttleNo(), shuttleProtocol.getTaskNo());
                     }
                 }
 
-                if (assignCommand != null) {
-                    if (assignCommand.getTaskMode().intValue() == ShuttleTaskModeType.AVOID.id) {
-                        //閬胯浠诲姟
-                        //璁剧疆鍥涘悜绌挎杞︿负绌洪棽鐘舵��
-                        shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.IDLE);
-                        //浠诲姟鍙锋竻闆�
-                        shuttleProtocol.setTaskNo((short) 0);
-                        //婧愬簱浣嶆竻闆�
-                        shuttleProtocol.setSourceLocNo(null);
-                        //鐩爣搴撲綅娓呴浂
-                        shuttleProtocol.setLocNo(null);
-                        //浠诲姟鎸囦护娓呴浂
-                        shuttleProtocol.setAssignCommand(null);
-                        News.info("鍥涘悜绌挎杞﹂伩璁╀换鍔″凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅銆傚洓鍚戠┛姊溅鍙�={}", shuttleProtocol.getShuttleNo());
-                    }
-                }
-
-            }
-
-            //鍥涘悜绌挎杞︾姸鎬佷负鍏呯數鐘舵��
-            if (shuttleProtocol.getProtocolStatus() == ShuttleProtocolStatusType.CHARGING_WAITING.id  //鍏呯數鏍囪瘑
-                    && shuttleProtocol.getTaskNo() != 0) {
-                //鏌ヨ鏄惁鏈夊厖鐢典换鍔�
-                WrkCharge wrkCharge = wrkChargeMapper.selectByWorkNo(shuttleProtocol.getTaskNo().intValue());
-                if (wrkCharge != null) {
-                    switch (wrkCharge.getWrkSts().intValue()) {
-                        case 52://鍥涘悜绌挎杞﹁縼绉诲埌鎻愬崌鏈哄彛
-                            wrkCharge.setWrkSts(53L);//杩佺Щ瀹屾垚
-                            shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.CHARGING);
-                            break;
-                        case 56://灏忚溅鍘诲厖鐢垫々涓�
-                            wrkCharge.setWrkSts(57L);//鍒拌揪鍏呯數妗�
-                            break;
-                        default:
-                    }
-
-                    if (wrkChargeMapper.updateById(wrkCharge) > 0) {
-                        if (wrkCharge.getWrkSts() == 60) {
-                            //璁剧疆鍥涘悜绌挎杞︿负绌洪棽鐘舵��
-                            shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.IDLE);
-                        }
-                        if (wrkCharge.getWrkSts() != 57) {
-                            //浠诲姟鍙锋竻闆�
-                            shuttleProtocol.setTaskNo((short) 0);
-                            //婧愬簱浣嶆竻闆�
-                            shuttleProtocol.setSourceLocNo(null);
-                            //鐩爣搴撲綅娓呴浂
-                            shuttleProtocol.setLocNo(null);
-                            //鏍囪澶嶄綅
-                            shuttleProtocol.setPakMk(true);
-                            //浠诲姟鎸囦护娓呴浂
-                            shuttleProtocol.setAssignCommand(null);
-                        }
-                        News.info("鍥涘悜绌挎杞﹀凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅銆傚洓鍚戠┛姊溅鍙�={}", shuttleProtocol.getShuttleNo());
-                    } else {
-                        News.error("鍥涘悜绌挎杞﹀凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅澶辫触锛屼絾鏈壘鍒板伐浣滄。銆傚洓鍚戠┛姊溅鍙�={}锛屽伐浣滃彿={}", shuttleProtocol.getShuttleNo(), shuttleProtocol.getTaskNo());
-                    }
-                }
             }
 
         }
@@ -1904,63 +1818,18 @@
                     && !liftProtocol.getBusy()
             ) {
 
-                DevpThread devpThread = null;
-                Integer devpId = null;
-                for (DevpSlave devp : slaveProperties.getDevp()){
-                    // 鑾峰彇鍏ュ簱绔欎俊鎭�
-                    devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
-                    devpId = devp.getId();
-                }
-
                 //灏嗕换鍔℃。鏍囪涓哄畬鎴�
-                WrkMast wrkMast = wrkMastMapper.selectByWorkNo372428(liftProtocol.getTaskNo().intValue());
+                WrkMast wrkMast = wrkMastMapper.selectByWorkNo324104(liftProtocol.getTaskNo().intValue());
                 if (wrkMast != null) {
-                    //鍒ゆ柇鎻愬崌鏈烘槸鍚﹀埌杈句换鍔℃ゼ灞�
-                    String locNo = wrkMast.getIoType() < 101 ? wrkMast.getLocNo() : wrkMast.getSourceLocNo();
-                    int lev = Utils.getLev(locNo);//浠诲姟鐩爣妤煎眰
-
-                    //鏍囪澶嶄綅
-                    liftProtocol.setPakMk(true);
-
                     switch (wrkMast.getWrkSts().intValue()) {
                         case 3://3.鎻愬崌鏈烘惉杩愪腑 ==> 4.鎻愬崌鏈烘惉杩愬畬鎴�
-                            if (liftProtocol.getLev().intValue() != lev) {
-                                continue;//鎻愬崌鏈烘病鏈夊埌杈剧洰鏍�
-                            }
-                            //缁欑洰鏍囩珯璁剧疆宸ヤ綔鍙�
-                            StaProtocol staProtocol = devpThread.getStation().get(wrkMast.getStaNo());//鐩爣绔�
-                            staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());
-                            staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
-                            boolean result = MessageQueue.offer(SlaveType.Devp, devpId, new Task(2, staProtocol));
-                            if (!result) {
-                                throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
-                            }
                             wrkMast.setWrkSts(4L);
-                            //浠诲姟鍙锋竻闆�
-                            liftProtocol.setTaskNo((short) 0);
-                            wrkMast.setLiftNo(null);//鎻愬崌鏈鸿В閿�
                             break;
-                        case 7://7.鎻愬崌鏈鸿縼绉诲皬杞︿腑 ==> 8.鎻愬崌鏈鸿縼绉诲皬杞﹀畬鎴�
-                            if (liftProtocol.getLev().intValue() != lev) {
-                                continue;//鎻愬崌鏈烘病鏈夊埌杈剧洰鏍�
-                            }
-                            wrkMast.setWrkSts(8L);
-                            break;
-                        case 24://24.鎻愬崌鏈鸿縼绉诲皬杞︿腑 ==> 25.鎻愬崌鏈鸿縼绉诲皬杞﹀畬鎴�
-                            if (liftProtocol.getLev().intValue() != lev) {
-                                continue;//鎻愬崌鏈烘病鏈夊埌杈剧洰鏍�
-                            }
+                        case 24://24.鎻愬崌鏈烘惉杩愪腑 ==> 25.鎻愬崌鏈烘惉杩愬畬鎴�
                             wrkMast.setWrkSts(25L);
                             break;
-                        case 28://28.鎻愬崌鏈烘惉杩愪腑 ==> 29.鎻愬崌鏈烘惉杩愬畬鎴�
-//                            if (liftProtocol.getPositionArrivalFeedback().intValue() != 2) {
-//                                continue;//鎻愬崌鏈烘槸鍚﹁揪鍒拌緭閫佺嚎妤煎眰
-//                            }
-                            wrkMast.setWrkSts(29L);
-                            wrkMast.setWrkSts(34L);//34.鍑哄簱瀹屾垚锛屾殏鏃跺厛鐩存帴瀹屾垚鍑哄簱宸ヤ綔妗o紝鍚庣画闇�瑕佹牴鎹緭閫佺嚎缁欏嚭鐨勭姸鎬佹潵纭畾34.鍑哄簱瀹屾垚鐘舵��
-                            //浠诲姟鍙锋竻闆�
-                            liftProtocol.setTaskNo((short) 0);
-                            wrkMast.setLiftNo(null);//鎻愬崌鏈鸿В閿�
+                        case 104://104.鎻愬崌鏈烘惉杩愪腑 ==> 105.鎻愬崌鏈烘惉杩愬畬鎴�
+                            wrkMast.setWrkSts(105L);
                             break;
                         default:
                     }
@@ -1974,50 +1843,6 @@
                     } else {
                         News.error("鎻愬崌鏈哄凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅澶辫触锛屼絾鏈壘鍒板伐浣滄。銆傛彁鍗囨満鍙�={}锛屽伐浣滃彿={}", liftProtocol.getLiftNo(), liftProtocol.getTaskNo());
                     }
-                }
-
-                //鏌ヨ鏄惁鏈夊厖鐢典换鍔�
-                WrkCharge wrkCharge = wrkChargeMapper.selectByWorkNo(liftProtocol.getTaskNo().intValue());
-                if (wrkCharge != null) {
-                    //鏍囪澶嶄綅
-                    liftProtocol.setPakMk(true);
-                    
-                    switch (wrkCharge.getWrkSts().intValue()) {
-                        case 54://鎻愬崌鏈烘惉杩愪腑
-                            wrkCharge.setWrkSts(55L);//鎻愬崌鏈烘惉杩愬畬鎴�
-                            break;
-                        default:
-                    }
-
-                    if (wrkChargeMapper.updateById(wrkCharge) > 0) {
-                        //璁剧疆鎻愬崌鏈轰负绌洪棽鐘舵��
-                        liftProtocol.setProtocolStatus(LiftProtocolStatusType.IDLE);
-                        //浠诲姟鍙锋竻闆�
-                        liftProtocol.setTaskNo((short) 0);
-                        //鏍囪澶嶄綅
-                        liftProtocol.setPakMk(true);
-                        //浠诲姟鎸囦护娓呴浂
-                        liftProtocol.setAssignCommand(null);
-                        News.info("鎻愬崌鏈哄凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅銆傛彁鍗囨満鍙�={}", liftProtocol.getLiftNo());
-                    } else {
-                        News.error("鎻愬崌鏈哄凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅澶辫触锛屼絾鏈壘鍒板伐浣滄。銆傛彁鍗囨満鍙�={}锛屽伐浣滃彿={}", liftProtocol.getLiftNo(), liftProtocol.getTaskNo());
-                    }
-                }
-
-                //涓嶆槸鍏ュ嚭搴撹皟搴︿换鍔°�佸伐浣滄。浠诲姟锛岃繘琛屾彁鍗囨満鐨勫浣�
-                if (liftProtocol.getAssignCommand() != null) {
-                    //璁剧疆鎻愬崌鏈轰负绌洪棽鐘舵��
-                    liftProtocol.setProtocolStatus(LiftProtocolStatusType.IDLE);
-                    //鍒ゆ柇鏄惁涓哄洓鍚戠┛姊溅璋冨害鎻愬崌鏈猴紝濡傛槸鍒欐棤闇�娓呯悊浠诲姟鍙�
-//                    if (!liftProtocol.getSecurityMk()) {
-//                        //浠诲姟鍙锋竻闆�
-//                        liftProtocol.setTaskNo((short) 0);
-//                    }
-                    //鏍囪澶嶄綅
-                    liftProtocol.setPakMk(true);
-                    //浠诲姟鎸囦护娓呴浂
-                    liftProtocol.setAssignCommand(null);
-                    News.info("鎻愬崌鏈哄凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅銆傛彁鍗囨満鍙�={}", liftProtocol.getLiftNo());
                 }
 
             }
@@ -3209,6 +3034,11 @@
             if (basLift.getPoint() == null) {
                 return false;//娌℃湁璁剧疆鎻愬崌鏈虹偣浣嶅潗鏍�
             }
+            //鍒ゆ柇鎻愬崌鏈烘槸鍚︽湁鍏朵粬浠诲姟
+            WrkMast liftWrkMast = wrkMastMapper.selectLiftWrkMast(basLift.getLiftNo());
+            if (liftWrkMast != null) {
+                return false;//褰撳墠鎻愬崌鏈哄瓨鍦ㄦ湭瀹屾垚浠诲姟锛岀瓑寰呬笅涓�娆¤疆璇�
+            }
             NavigateNode liftNode = new NavigateNode(basLift.getPoint().getX(), basLift.getPoint().getY());
             liftNode.setZ(basLift.getPoint().getZ());
 
@@ -3231,7 +3061,7 @@
             assignCommand.setNodes(result.getNodes());
 
             wrkMast.setWrkSts(102L);//灏忚溅绉诲姩鍒版彁鍗囨満涓�  101.鐢熸垚灏忚溅绉诲簱浠诲姟 ==> 102.灏忚溅鍒版彁鍗囨満涓�
-            wrkMast.setLiftNo(basLift.getLiftNo());//鎻愬崌鏈哄彿
+            wrkMast.setLiftNo(basLift.getLiftNo());//鎻愬崌鏈哄彿(閿佸畾鎻愬崌鏈洪槻姝㈣鍏朵粬浠诲姟鎶㈠崰)
             wrkMast.setModiTime(now);
             if (wrkMastMapper.updateById(wrkMast) > 0) {
                 //涓嬪彂浠诲姟
@@ -3451,6 +3281,7 @@
             assignCommand.setNodes(result.getNodes());
 
             wrkMast.setWrkSts(108L);//灏忚溅绉诲姩鍒扮洰鏍囧簱浣嶄腑  107.灏忚溅杩佸嚭鎻愬崌鏈哄畬鎴� ==> 108.灏忚溅绉诲姩涓�
+            wrkMast.setLiftNo(null);//閲婃斁鎻愬崌鏈�
             wrkMast.setModiTime(now);
             if (wrkMastMapper.updateById(wrkMast) > 0) {
                 //涓嬪彂浠诲姟

--
Gitblit v1.9.1