From 7cd8c743cb1f377a3102d9a154669fb2bc10535c Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期一, 26 六月 2023 18:10:58 +0800
Subject: [PATCH] lift

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   85 +++++++++++++++++++++++++++++++++++++-----
 1 files changed, 74 insertions(+), 11 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 0ab1ebe..3e5142c 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -684,13 +684,17 @@
                                 //鐘舵��8锛岀瓑寰呭懡浠よ繘琛屽叆搴撴惉杩愬姩浣�
 
                                 //鍒ゆ柇鎻愬崌鏈烘槸鍚︾┖闂�
-                                if (!liftProtocol.isIdle()) {
+                                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;
                                 }
 
                                 //鍒ゆ柇鎻愬崌鏈烘ゼ灞傛槸鍚﹀埌浣嶏紝鍒ゆ柇绔欑偣鏄惁缁欏嚭鎻愬崌鏈哄埌浣嶄俊鍙�
@@ -986,13 +990,17 @@
                     }else if(wrkMast.getWrkSts() == 25) {//鐘舵��25锛岄渶瑕佸悜灏忚溅涓嬪彂鍛戒护浠庢彁鍗囨満绉诲姩鍑哄幓锛岄渶瑕佸垽鏂彁鍗囨満鐘舵槸鍚︾┖闂层�佹彁鍗囨満鏄惁鍒拌揪鐩爣妤煎眰銆佺洰鏍囨ゼ灞傜珯鐐规槸鍚﹀瓨鍦ㄣ�佺洰鏍囨ゼ灞傜珯鐐规槸鍚︾粰鍑烘彁鍗囨満鍒颁綅淇″彿
 
                         //鍒ゆ柇鎻愬崌鏈烘槸鍚︾┖闂�
-                        if (!liftProtocol.isIdle()) {
+                        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;
                         }
 
                         //鍒ゆ柇鎻愬崌鏈烘ゼ灞傛槸鍚﹀埌浣嶏紝鍒ゆ柇绔欑偣鏄惁缁欏嚭鎻愬崌鏈哄埌浣嶄俊鍙�
@@ -1071,7 +1079,7 @@
                             BasDevp basDevp = basDevpService.queryByLocNo(liftSiteLocNo);
                             Short endStartCode = Short.parseShort(basDevp.getQrCodeValue());//绔欑偣浜岀淮鐮�
 
-                            String disLocNo = "190020" + Utils.getLev(liftSiteLocNo);//閬胯浣嶇疆
+                            String disLocNo = "2000202" + Utils.getLev(liftSiteLocNo);//閬胯浣嶇疆
                             LocMast locMast1 = locMastService.queryByLoc(disLocNo);
                             if (locMast1 == null) {
                                 continue;//鎵句笉鍒板簱浣�
@@ -1158,6 +1166,21 @@
                         ShuttleCommand moveCommand = shuttleThread.getMoveCommand(startCode, distCode, 1400, commands.get(0).getRunDirection(), startCode, 1400, 500);
                         commands.add(0, moveCommand);//灏嗚鎸囦护娣诲姞鍒伴槦澶�
 
+                        //鑾峰彇褰撳墠灏忚溅鎵�鍦ㄦゼ灞傜殑绔欑偣淇℃伅
+                        BasDevp basDevp = basDevpService.queryByLocNo(liftSiteLocNo);
+                        Short endStartCode = Short.parseShort(basDevp.getQrCodeValue());//绔欑偣浜岀淮鐮�
+
+                        String disLocNo = "2000202" + Utils.getLev(liftSiteLocNo);//閬胯浣嶇疆
+                        LocMast locMast1 = locMastService.queryByLoc(disLocNo);
+                        if (locMast1 == null) {
+                            continue;//鎵句笉鍒板簱浣�
+                        }
+                        short disCode = Short.parseShort(locMast1.getQrCodeValue());
+                        //浠诲姟鎵ц瀹屽悗锛屽皬杞﹁繘鍏ョЩ寮�鎻愬崌鏈哄彛绔欑偣浣嶇疆锛屼互鍏嶅潬钀�
+                        ShuttleCommand moveCommand2 = shuttleThread.getMoveCommand(endStartCode, disCode, 1400, ShuttleRunDirection.BOTTOM.id, endStartCode, 1400, 500);
+                        commands.add(moveCommand2);
+
+
                         //鍒嗛厤鐩爣搴撲綅
                         shuttleProtocol.setLocNo(wrkMast.getSourceLocNo());
                         //鍒嗛厤浠诲姟鍙�
@@ -1197,7 +1220,7 @@
             //鑾峰彇鍥涘悜绌挎杞︾嚎绋�
             ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttle.getId());
             ShuttleProtocol shuttleProtocol = shuttleThread.getShuttleProtocol();
-            if (shuttleProtocol == null) {
+            if (shuttleProtocol == null || shuttleProtocol.getShuttleNo() == null) {
                 continue;
             }
             if (!shuttleProtocol.isIdle()) {
@@ -1411,8 +1434,13 @@
                 continue;
             }
 
-            //鍒ゆ柇鎻愬崌鏈烘槸鍚﹀浜庣┖闂茬姸鎬�
-            if (!liftProtocol.isIdle()) {
+
+//            if (!liftProtocol.isIdle()) {
+//                continue;
+//            }
+
+            //鍒ゆ柇鎻愬崌鏈烘槸鍚﹀浜庣┖闂茬姸鎬侊紝娌℃湁鍒ゆ柇浠诲姟鍙凤紝鍙兘鎻愬崌鏈哄浜庣┖闂诧紝浣嗘槸杩樻湁浠诲姟鏈畬鎴�
+            if (!liftProtocol.isIdleNoTask()) {
                 continue;
             }
 
@@ -1434,6 +1462,15 @@
             }
 
             if (wrkMast.getWrkSts() == 2) {//2.璁惧涓婅蛋
+                if (liftProtocol.getTaskNo().intValue() != 0) {
+                    //瀛樺湪鏈畬鎴愪换鍔″彿
+                    continue;
+                }
+                if (liftProtocol.getPlatShuttleCheck()) {
+                    //鎻愬崌鏈烘鏃舵湁鍥涘悜杞︼紝鍙兘鏈夋湭瀹屾垚鐨勪换鍔★紝绂佹鍒嗛厤鏂颁换鍔�
+                    continue;
+                }
+
                 //宸ヤ綔妗g洰鏍囧簱浣嶅彿
                 String wrkMastLocNo = wrkMast.getLocNo();
                 //宸ヤ綔妗g洰鏍囧簱浣嶆ゼ灞�
@@ -1478,6 +1515,10 @@
 
                 wrkMast.setWrkSts(3L);//3.鎻愬崌鏈烘惉杩愪腑
             } else if (wrkMast.getWrkSts() == 6) {//6.杩佺Щ灏忚溅鑷虫彁鍗囨満鍙e畬鎴� => 7.鎻愬崌鏈鸿縼绉诲皬杞︿腑
+                if (liftProtocol.getTaskNo().intValue() != 0 && liftProtocol.getTaskNo().intValue() != wrkMast.getWrkNo()) {
+                    //鎻愬崌鏈哄瓨鍦ㄦ湭瀹屾垚浠诲姟锛屼笖鎻愬崌鏈轰换鍔″彿鍜屽綋鍓嶅伐浣滄。浠诲姟鍙蜂笉涓�鑷�
+                    continue;
+                }
                 liftProtocol.setShuttleNo(wrkMast.getShuttleNo().shortValue());//璁剧疆鍥涘悜绌挎杞﹀彿
 
                 //鍒ゆ柇灏忚溅鏄惁鍦ㄦ彁鍗囨満鍐咃紝涓斿浜庣┖闂茬姸鎬�
@@ -1494,6 +1535,10 @@
                 }
                 if (shuttleProtocol.getCurrentCode().intValue() != liftProtocol.getBarcode().intValue()) {
                     continue;//灏忚溅褰撳墠浜岀淮鐮佸拰鎻愬崌鏈哄唴閮ㄤ簩缁寸爜涓嶄竴鑷达紝涓嶅厑璁告墽琛�
+                }
+                if (!liftProtocol.getPlatShuttleCheck()) {
+                    //鎻愬崌鏈烘湭妫�娴嬪埌灏忚溅锛岀姝㈡墽琛�
+                    continue;
                 }
 
                 //宸ヤ綔妗g洰鏍囧簱浣嶅彿
@@ -1514,6 +1559,10 @@
 
                 wrkMast.setWrkSts(7L);//6.杩佺Щ灏忚溅鑷虫彁鍗囨満鍙e畬鎴� => 7.鎻愬崌鏈鸿縼绉诲皬杞︿腑
             } else if(wrkMast.getWrkSts() == 23) {//23.杩佺Щ灏忚溅鑷虫彁鍗囨満鍙e畬鎴� => 24.鎻愬崌鏈鸿縼绉诲皬杞︿腑
+                if (liftProtocol.getTaskNo().intValue() != 0 && liftProtocol.getTaskNo().intValue() != wrkMast.getWrkNo()) {
+                    //鎻愬崌鏈哄瓨鍦ㄦ湭瀹屾垚浠诲姟锛屼笖鎻愬崌鏈轰换鍔″彿鍜屽綋鍓嶅伐浣滄。浠诲姟鍙蜂笉涓�鑷�
+                    continue;
+                }
                 liftProtocol.setShuttleNo(wrkMast.getShuttleNo().shortValue());//璁剧疆鍥涘悜绌挎杞﹀彿
 
                 //鍒ゆ柇灏忚溅鏄惁鍦ㄦ彁鍗囨満鍐咃紝涓斿浜庣┖闂茬姸鎬�
@@ -1531,6 +1580,10 @@
                 }
                 if (shuttleProtocol.getCurrentCode().intValue() != liftProtocol.getBarcode().intValue()) {
                     continue;//灏忚溅褰撳墠浜岀淮鐮佸拰鎻愬崌鏈哄唴閮ㄤ簩缁寸爜涓嶄竴鑷达紝涓嶅厑璁告墽琛�
+                }
+                if (!liftProtocol.getPlatShuttleCheck()) {
+                    //鎻愬崌鏈烘湭妫�娴嬪埌灏忚溅锛岀姝㈡墽琛�
+                    continue;
                 }
 
                 //宸ヤ綔妗g洰鏍囧簱浣嶅彿
@@ -1551,6 +1604,15 @@
 
                 wrkMast.setWrkSts(24L);//23.杩佺Щ灏忚溅鑷虫彁鍗囨満鍙e畬鎴� => 24.鎻愬崌鏈鸿縼绉诲皬杞︿腑
             } else if (wrkMast.getWrkSts() == 27) {//27.灏忚溅鍑哄簱鎼繍瀹屾垚
+                if (liftProtocol.getTaskNo().intValue() != 0 && liftProtocol.getTaskNo().intValue() != wrkMast.getWrkNo()) {
+                    //鎻愬崌鏈哄瓨鍦ㄦ湭瀹屾垚浠诲姟锛屼笖鎻愬崌鏈轰换鍔″彿鍜屽綋鍓嶅伐浣滄。浠诲姟鍙蜂笉涓�鑷�
+                    continue;
+                }
+                if (liftProtocol.getPlatShuttleCheck()) {
+                    //鎻愬崌鏈烘鏃舵湁鍥涘悜杞︼紝鍙兘鏈夋湭瀹屾垚鐨勪换鍔★紝绂佹鍒嗛厤鏂颁换鍔�
+                    continue;
+                }
+
                 //宸ヤ綔妗f簮搴撲綅鍙�
                 String wrkMastLocNo = wrkMast.getSourceLocNo();
                 //宸ヤ綔妗f簮搴撲綅妤煎眰
@@ -1632,6 +1694,9 @@
                     && !liftProtocol.getRunning()
             ) {
 
+                //鏍囪澶嶄綅
+                liftProtocol.setPakMk(true);
+
                 DevpThread devpThread = null;
                 Integer devpId = null;
                 for (DevpSlave devp : slaveProperties.getDevp()){
@@ -1664,6 +1729,8 @@
                         case 28://28.鎻愬崌鏈烘惉杩愪腑 ==> 29.鎻愬崌鏈烘惉杩愬畬鎴�
                             wrkMast.setWrkSts(29L);
                             wrkMast.setWrkSts(34L);//34.鍑哄簱瀹屾垚锛屾殏鏃跺厛鐩存帴瀹屾垚鍑哄簱宸ヤ綔妗o紝鍚庣画闇�瑕佹牴鎹緭閫佺嚎缁欏嚭鐨勭姸鎬佹潵纭畾34.鍑哄簱瀹屾垚鐘舵��
+                            //浠诲姟鍙锋竻闆�
+                            liftProtocol.setTaskNo((short) 0);
                             break;
                         default:
                     }
@@ -1671,13 +1738,9 @@
                     if (wrkMastMapper.updateById(wrkMast) > 0) {
                         //璁剧疆鎻愬崌鏈轰负绌洪棽鐘舵��
                         liftProtocol.setProtocolStatus(LiftProtocolStatusType.IDLE);
-                        //浠诲姟鍙锋竻闆�
-                        liftProtocol.setTaskNo((short) 0);
-                        //鏍囪澶嶄綅
-                        liftProtocol.setPakMk(true);
                         //浠诲姟鎸囦护娓呴浂
                         liftProtocol.setAssignCommand(null);
-                        News.info("鎻愬崌鏈哄凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅銆傛彁鍗囨満鍙�={}", liftProtocol.getLiftNo());
+                        News.info("鎻愬崌鏈哄凡纭涓斾换鍔″畬鎴愮姸鎬併�傛彁鍗囨満鍙�={}", liftProtocol.getLiftNo());
                     } else {
                         News.error("鎻愬崌鏈哄凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅澶辫触锛屼絾鏈壘鍒板伐浣滄。銆傛彁鍗囨満鍙�={}锛屽伐浣滃彿={}", liftProtocol.getLiftNo(), liftProtocol.getTaskNo());
                     }

--
Gitblit v1.9.1