From f4645599f341a039673939fbe2699387ea5b48d2 Mon Sep 17 00:00:00 2001
From: lsh <1>
Date: 星期三, 10 一月 2024 17:22:07 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  238 ++++++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 210 insertions(+), 28 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 f81702f..7c55bb3 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -119,7 +119,7 @@
                 String barcode = barcodeThread.getBarcode();
 
                 if (!Cools.isEmpty(barcode)) {
-                    log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
+//                    log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
                     if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
                         continue;
                     }
@@ -322,7 +322,7 @@
 
                 if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk()) {
 //                    WrkMast wrkMast = wrkMastMapper.selectPickStep(barcode);
-                    WrkMast wrkMast = wrkMastMapper.selectPakInStep3(staProtocol.getWorkNo().intValue());
+                    WrkMast wrkMast = wrkMastMapper.selectPakInStep3(staProtocol.getWorkNo());
                     if (wrkMast == null) {
                         // 鏃犳嫞鏂欐暟鎹�
                         continue;
@@ -449,7 +449,7 @@
 
                         // 涓嬪彂绔欑偣淇℃伅
                         staProtocol.setWorkNo(wrkMast.getWrkNo());
-                        staProtocol.setStaNo(wrkMast.getStaNo());
+                        staProtocol.setStaNo(RouteUtils.CrnStaEnd(wrkMast.getStaNo(),wrkMast.getSourceStaNo()));
                         if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol))) {
                             continue;
                         }
@@ -1393,7 +1393,7 @@
 
             CrnSlave.CrnStn crnStn = null;
             for (CrnSlave.CrnStn crnStn1 : slave.getCrnInStn()){
-                if(crnStn1.getStaNo() == wrkMast.getStaNo()){
+                if(crnStn1.getStaNo().equals(wrkMast.getStaNo())){
                     crnStn = crnStn1;
                     break;
                 } else {
@@ -1665,7 +1665,7 @@
 
             CrnSlave.CrnStn crnStn = null;
             for (CrnSlave.CrnStn crnStn1 : slave.getCrnOutStn()){
-                if(crnStn1.getStaNo() == wrkMast.getSourceStaNo()){
+                if(crnStn1.getStaNo().equals(wrkMast.getSourceStaNo())){
                     crnStn = crnStn1;
                     break;
                 } else {
@@ -3838,11 +3838,12 @@
                 }
 
                 // 鍙湁褰揜GV绛夊緟WCS纭銆佽嚜鍔�
-                if (rgvProtocol.getStatusType() == RgvStatusType.WAITING
+                if (rgvProtocol.getStatusType() == RgvStatusType.WORKING
                         && rgvProtocol.getModeType() == RgvModeType.AUTO
+                        && (rgvProtocol.getStatusType1()==RgvStatusType.WAITING || rgvProtocol.getStatusType2()==RgvStatusType.WAITING )
                 ) {
                     log.info("{}鍙峰皬杞︾瓑寰厀cs纭锛岀姸鎬亄}锛屽弬鏁皗}",rgvProtocol.getRgvNo(),rgvProtocol.getStatusType(),rgvProtocol);
-                    if (rgvProtocol.getTaskNo1()!=0){
+                    if (rgvProtocol.getTaskNo1()!=0&&rgvProtocol.getStatusType1()==RgvStatusType.WAITING){
                         if (rgvProtocol.getTaskNo1()==9999){
                             boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo());
                             if (!rgvComplete){
@@ -3853,7 +3854,7 @@
                             rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute());
                             break;
                         }
-                        WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo1().intValue());
+                        WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo1().longValue());
                         if (Cools.isEmpty(wrkMastSta) || wrkMastSta.getType()!=1 || wrkMastSta.getWrkSts()!=1){
                             log.error("鏈煡鍒板皬杞︽墽琛屼换鍔℃垨鑰呮墽琛屼换鍔$姸鎬佷笉绗﹀悎锛�"+wrkMastSta);
                             continue;
@@ -3868,7 +3869,7 @@
                         BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
                         basRgvMap.setNowRoute(rgvProtocol.getRgvPosI());
                         rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute());
-                    }else if (rgvProtocol.getTaskNo2()!=0){
+                    }else if (rgvProtocol.getTaskNo2()!=0 && rgvProtocol.getStatusType2()==RgvStatusType.WAITING){
                         if (rgvProtocol.getTaskNo2()==9999){
                             boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo());
                             if (!rgvComplete){
@@ -3879,7 +3880,7 @@
                             rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute());
                             break;
                         }
-                        WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo2().intValue());
+                        WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo2().longValue());
                         if (Cools.isEmpty(wrkMastSta) || wrkMastSta.getType()!=2){
                             log.error("鏈煡鍒板皬杞︽墽琛屼换鍔℃垨鑰呮墽琛屼换鍔$姸鎬佷笉绗﹀悎锛�"+wrkMastSta);
                             continue;
@@ -3966,7 +3967,7 @@
     /**
      * 鎵ц灏忚溅鎼繍浠诲姟
      */
-    public synchronized void rgvRunWrkMastEmptyStaPut() {//鏀�
+    public synchronized void rgvRunWrkMastEmptyStaPut() {//鎷嗙洏
         try{
             for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
                 RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
@@ -3983,7 +3984,7 @@
                 // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾湁鐗�//rgv鍙敤
                 if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
                         && rgvProtocol.getModeType() == RgvModeType.AUTO
-                        && rgvProtocol.getLoaded2()==1  //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴
+                        && (rgvProtocol.getLoaded2()==3  || rgvProtocol.getLoaded2()==1 )////0 鏃犵墿锛�1 涓�灞傛棤鐗╀簩灞傛湁鐗� 锛堝彧鑳芥媶鍙狅級 锛�2涓�灞傛湁鐗╀簩灞傛棤鐗� 锛�3  1銆�2灞傞兘鏈夌墿
                 ) {
                     BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
                     if (basRgvMap == null) {
@@ -3994,12 +3995,12 @@
                     List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute());//鑾峰彇娲诲姩鑼冨洿
                     List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route);//鏌ヨ鍙墽琛屼换鍔�
                     for (WrkMastSta wrkMastSta : wrkMastStaList){
-                        if (wrkMastSta.getType()!=2 || (wrkMastSta.getWrkType()!=2 && wrkMastSta.getWrkType()!=4)){// 2:绌烘澘  2:鏀� 4锛氭媶鐩�
+                        if (wrkMastSta.getType()!=2 || wrkMastSta.getWrkType()!=2){// 2:绌烘澘  || 宸ヤ綔绫诲瀷  1:鍙栵紙鍙犵洏锛�  2锛氭媶鐩�  5锛氭弧鍙�  6锛氭弧鏀�
                             continue;
                         }
                         boolean sign = false;
                         if (wrkMastSta.getStaStart()==0 && wrkMastSta.getStaEnd()!=0){//鏀�
-                            sign = rgvPutEmpty(rgvProtocol.getRgvNo(),wrkMastSta);
+                            sign = rgvPutEmpty(rgvProtocol.getRgvNo(),wrkMastSta);//鎷嗙洏
                         }else {
                             continue;
                         }
@@ -4029,7 +4030,73 @@
         }
     }
 
-    public synchronized void rgvRunWrkMastEmptyStaTake() {//鍙�
+    /**
+     * 鎵ц灏忚溅鎼繍浠诲姟
+     */
+    public synchronized void rgvRunWrkMastEmptyStaPutFull() {//婊℃斁
+        try{
+            for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
+                RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
+                RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+                if (rgvProtocol == null) {
+                    continue;
+                }
+                BasRgv basRgv = basRgvService.selectById(rgvSlave.getId());
+                if (basRgv == null) {
+                    log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgvSlave.getId());
+                    continue;
+                }
+
+                // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾湁鐗�//rgv鍙敤
+                if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
+                        && rgvProtocol.getModeType() == RgvModeType.AUTO
+                        &&  (rgvProtocol.getLoaded2()==2  || rgvProtocol.getLoaded2()==3 ) ////0 鏃犵墿锛�1 涓�灞傛棤鐗╀簩灞傛湁鐗�  锛�2涓�灞傛湁鐗╀簩灞傛棤鐗� 锛堝彧鑳芥弧鏀撅級锛�3  1銆�2灞傞兘鏈夌墿
+                ) {
+                    BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
+                    if (basRgvMap == null) {
+                        log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱鍦板浘涓繘琛岀淮鎶わ紒", rgvProtocol.getRgvNo());
+                        continue;
+                    }
+                    basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
+                    List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute());//鑾峰彇娲诲姩鑼冨洿
+                    List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route);//鏌ヨ鍙墽琛屼换鍔�
+                    for (WrkMastSta wrkMastSta : wrkMastStaList){
+                        if (wrkMastSta.getType()!=2 || wrkMastSta.getWrkType()!=6){// 2:绌烘澘  || 宸ヤ綔绫诲瀷  1:鍙栵紙鍙犵洏锛�  2锛氭媶鐩�  5锛氭弧鍙�  6锛氭弧鏀�
+                            continue;
+                        }
+                        boolean sign = false;
+                        if (wrkMastSta.getStaStart()==0 && wrkMastSta.getStaEnd()!=0){//婊℃斁
+                            sign = rgvPutEmptyFull(rgvProtocol.getRgvNo(),wrkMastSta);
+                        }else {
+                            continue;
+                        }
+                        if (sign){
+                            boolean signMap = rgvMapUpdate(basRgvMap, basRgvMap.getStartRoute(), wrkMastSta.getStaEnd());
+                            if (signMap){
+                                wrkMastSta.setWrkSts(2);
+                                try{
+                                    wrkMastStaMapper.updateById(wrkMastSta);
+                                }catch (Exception e){
+                                    log.error("鏇存柊灏忚溅浠诲姟澶辫触");
+                                }
+                                return;
+                            }else {
+                                log.error("3857琛岋紝璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触",wrkMastSta.getWrkNo());
+                            }
+                        }else {
+                            log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
+                        }
+                        break;
+                    }
+                }
+            }
+        }catch (Exception e){
+            log.error("3933琛屾墽琛屽皬杞︽斁绌烘澘浠诲姟涓嬪彂澶辫触");
+            log.error("3933琛�"+e);
+        }
+    }
+
+    public synchronized void rgvRunWrkMastEmptyStaTake() {//鍙犵洏
         try{
             for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
                 RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
@@ -4046,7 +4113,7 @@
                 // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾棤鐗�//rgv鍙敤
                 if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
                         && rgvProtocol.getModeType() == RgvModeType.AUTO
-                        && rgvProtocol.getLoaded2()==0  //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴
+                        &&  (rgvProtocol.getLoaded2()==0  || rgvProtocol.getLoaded2()==1 ) //鐜板満淇敼锛氬彔鐩樻満锛�////0 鏃犵墿锛�1 涓�灞傛棤鐗╀簩灞傛湁鐗╋紙鍙兘鎷嗗彔锛�   锛�2涓�灞傛湁鐗╀簩灞傛棤鐗� 锛堝彧鑳芥弧鏀撅級锛�3  1銆�2灞傞兘鏈夌墿
                 ) {
                     BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
                     if (basRgvMap == null) {
@@ -4057,12 +4124,75 @@
                     basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
                     List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route);
                     for (WrkMastSta wrkMastSta : wrkMastStaList){
-                        if (wrkMastSta.getType()!=2 || wrkMastSta.getWrkType()!=1){// 2:绌烘澘  1:鍙�
+                        if (wrkMastSta.getType()!=2 || wrkMastSta.getWrkType()!=1){// 2:绌烘澘  || 宸ヤ綔绫诲瀷  1:鍙栵紙鍙犵洏锛�  2锛氭媶鐩�  5锛氭弧鍙�  6锛氭弧鏀�
                             continue;
                         }
                         boolean sign = false;
                         if (wrkMastSta.getStaEnd()==0 && wrkMastSta.getStaStart()!=0){//鍙�
-                            sign = rgvTakeEmpty(rgvProtocol.getRgvNo(),wrkMastSta);
+                            sign = rgvTakeEmpty(rgvProtocol.getRgvNo(),wrkMastSta);//鍙犵洏
+                        }else {
+                            continue;
+                        }
+                        if (sign){
+                            boolean signMap = rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), basRgvMap.getStartRoute());
+                            if (signMap){
+                                wrkMastSta.setWrkSts(1);
+                                try{
+                                    wrkMastStaMapper.updateById(wrkMastSta);
+                                }catch (Exception e){
+                                    log.error("鏇存柊灏忚溅浠诲姟澶辫触");
+                                }
+                                return;
+                            }else {
+                                log.error("3879琛岋紝璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触",wrkMastSta.getWrkNo());
+                            }
+                        }else {
+                            log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
+                        }
+                        break;
+                    }
+                }
+            }
+        }catch (Exception e){
+            log.error("3989琛屾墽琛屽皬杞﹀彇绌烘澘浠诲姟涓嬪彂澶辫触");
+            log.error("3989琛�"+e);
+        }
+    }
+
+    public synchronized void rgvRunWrkMastEmptyStaTakeFull() {//婊″彇
+        try{
+            for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
+                RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
+                RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+                if (rgvProtocol == null) {
+                    continue;
+                }
+                BasRgv basRgv = basRgvService.selectById(rgvSlave.getId());
+                if (basRgv == null) {
+                    log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgvSlave.getId());
+                    continue;
+                }
+
+                // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾棤鐗�//rgv鍙敤
+                if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
+                        && rgvProtocol.getModeType() == RgvModeType.AUTO
+                        &&  rgvProtocol.getLoaded2()==0  //鐜板満淇敼锛氬彔鐩樻満锛�////0 鏃犵墿锛�1 涓�灞傛棤鐗╀簩灞傛湁鐗╋紙鍙兘鎷嗗彔锛�   锛�2涓�灞傛湁鐗╀簩灞傛棤鐗� 锛堝彧鑳芥弧鏀撅級锛�3  1銆�2灞傞兘鏈夌墿
+                ) {
+                    BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
+                    if (basRgvMap == null) {
+                        log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱鍦板浘涓繘琛岀淮鎶わ紒", rgvProtocol.getRgvNo());
+                        continue;
+                    }
+                    List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute());
+                    basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
+                    List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route);
+                    for (WrkMastSta wrkMastSta : wrkMastStaList){
+                        if (wrkMastSta.getType()!=2 || wrkMastSta.getWrkType()!=5){// 2:绌烘澘  || 宸ヤ綔绫诲瀷  1:鍙栵紙鍙犵洏锛�  2锛氭媶鐩�  5锛氭弧鍙�  6锛氭弧鏀�
+                            continue;
+                        }
+                        boolean sign = false;
+                        if (wrkMastSta.getStaEnd()==0 && wrkMastSta.getStaStart()!=0){//鍙�
+                            sign = rgvTakeEmptyFull(rgvProtocol.getRgvNo(),wrkMastSta);
                         }else {
                             continue;
                         }
@@ -4174,14 +4304,16 @@
      * */
     public synchronized boolean rgvAvoidanceXY(Integer rgvId){
         try{
+            BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvId);
             //  鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
             RgvCommand rgvCommand = new RgvCommand();
             rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
             rgvCommand.setAckFinish1((short) 0);  // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
             rgvCommand.setTaskNo1((short)9999); // 宸ヤ綅1宸ヤ綔鍙�
-            rgvCommand.setTaskMode1(RgvTaskModeType.GO_ORIGIN); // 宸ヤ綅1浠诲姟妯″紡:  鍥炲師鐐�
+            rgvCommand.setTaskMode1(RgvTaskModeType.X_MOVE); // 宸ヤ綅1浠诲姟妯″紡:  鍥炲師鐐�
+            rgvCommand.setDestinationStaNo1(basRgvMap.getLockStartRoute().shortValue());
             rgvCommand.setCommand((short) 1);   //宸ヤ綅1浠诲姟纭
-            if (!MessageQueue.offer(SlaveType.Crn, rgvId, new Task(9, rgvCommand))) {
+            if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(9, rgvCommand))) {
                 //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱   step=4锛屽伐浣�1鍐欎换鍔★紱     step=5锛屽伐浣�2鍐欎换鍔�   step=9锛屽洖鍘熺偣 9999浠诲姟鍙�
                 log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
                 return false;
@@ -4209,7 +4341,7 @@
             rgvCommand.setSourceStaNo1(wrkMastSta.getStaStart().shortValue());   //宸ヤ綅1璧风偣
             rgvCommand.setDestinationStaNo1(wrkMastSta.getStaEnd().shortValue());   //宸ヤ綅1鐩爣绔欑偣
             rgvCommand.setCommand((short) 1);   //宸ヤ綅1浠诲姟纭
-            if (!MessageQueue.offer(SlaveType.Crn, rgvId, new Task(4, rgvCommand))) {
+            if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) {
                 //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱   step=4锛屽伐浣�1鍐欎换鍔★紱     step=5锛屽伐浣�2鍐欎换鍔�
                 log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
                 return false;
@@ -4234,7 +4366,7 @@
             rgvCommand.setTaskMode1(RgvTaskModeType.FETCH); // 宸ヤ綅1浠诲姟妯″紡:  鍙栬揣
             rgvCommand.setSourceStaNo1(wrkMastSta.getStaStart().shortValue());   //宸ヤ綅1璧风偣
             rgvCommand.setCommand((short) 1);   //宸ヤ綅1浠诲姟纭
-            if (!MessageQueue.offer(SlaveType.Crn, rgvId, new Task(4, rgvCommand))) {
+            if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) {
                 //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱   step=4锛屽伐浣�1鍐欎换鍔★紱     step=5锛屽伐浣�2鍐欎换鍔�
                 log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
                 return false;
@@ -4259,7 +4391,7 @@
             rgvCommand.setTaskMode1(RgvTaskModeType.PUT); // 宸ヤ綅1浠诲姟妯″紡:  鏀捐揣
             rgvCommand.setDestinationStaNo1(wrkMastSta.getStaEnd().shortValue());   //宸ヤ綅1鐩爣绔欑偣
             rgvCommand.setCommand((short) 1);   //宸ヤ綅1浠诲姟纭
-            if (!MessageQueue.offer(SlaveType.Crn, rgvId, new Task(4, rgvCommand))) {
+            if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) {
                 //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱   step=4锛屽伐浣�1鍐欎换鍔★紱     step=5锛屽伐浣�2鍐欎换鍔�
                 log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
                 return false;
@@ -4272,7 +4404,7 @@
     }
 
     /*
-     * 灏忚溅鍙栫┖鏉胯嚦宸ヤ綅浠诲姟
+     * 灏忚溅鍙栫┖鏉胯嚦宸ヤ綅浠诲姟  鍙犵洏
      * */
     public synchronized boolean rgvTakeEmpty(Integer rgvId,WrkMastSta wrkMastSta){
         try{
@@ -4284,7 +4416,7 @@
             rgvCommand.setTaskMode2(RgvTaskModeType.FETCH); // 宸ヤ綅2浠诲姟妯″紡:  鍙栬揣
             rgvCommand.setSourceStaNo2(wrkMastSta.getStaStart().shortValue());   //宸ヤ綅2璧风偣
             rgvCommand.setCommand((short) 2);   //宸ヤ綅2浠诲姟纭
-            if (!MessageQueue.offer(SlaveType.Crn, rgvId, new Task(5, rgvCommand))) {
+            if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(5, rgvCommand))) {
                 //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱   step=4锛屽伐浣�1鍐欎换鍔★紱     step=5锛屽伐浣�2鍐欎换鍔�
                 log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
                 return false;
@@ -4297,7 +4429,7 @@
     }
 
     /*
-     * 灏忚溅鏀剧┖鏉胯嚦杈撻�佺嚎浠诲姟
+     * 灏忚溅鏀剧┖鏉胯嚦杈撻�佺嚎浠诲姟   //鎷嗙洏
      * */
     public synchronized boolean rgvPutEmpty(Integer rgvId,WrkMastSta wrkMastSta){
         try{
@@ -4309,7 +4441,57 @@
             rgvCommand.setTaskMode2(RgvTaskModeType.PUT); // 宸ヤ綅2浠诲姟妯″紡:  鏀捐揣
             rgvCommand.setDestinationStaNo2(wrkMastSta.getStaEnd().shortValue());   //宸ヤ綅2鐩爣绔欑偣
             rgvCommand.setCommand((short) 2);   //宸ヤ綅2浠诲姟纭
-            if (!MessageQueue.offer(SlaveType.Crn, rgvId, new Task(5, rgvCommand))) {
+            if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(5, rgvCommand))) {
+                //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱   step=4锛屽伐浣�1鍐欎换鍔★紱     step=5锛屽伐浣�2鍐欎换鍔�
+                log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
+                return false;
+            } else {
+                return true;
+            }
+        }catch (Exception e){
+            return false;
+        }
+    }
+
+    /*
+     * 灏忚溅鍙栫┖鏉胯嚦宸ヤ綅浠诲姟  婊″彇
+     * */
+    public synchronized boolean rgvTakeEmptyFull(Integer rgvId,WrkMastSta wrkMastSta){
+        try{
+            //  鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+            RgvCommand rgvCommand = new RgvCommand();
+            rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
+            rgvCommand.setAckFinish2((short) 0);  // 宸ヤ綅2浠诲姟瀹屾垚纭浣�
+            rgvCommand.setTaskNo2(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅2宸ヤ綔鍙�
+            rgvCommand.setTaskMode2(RgvTaskModeType.FETCH_5); // 宸ヤ綅2浠诲姟妯″紡:  婊″彇
+            rgvCommand.setSourceStaNo2(wrkMastSta.getStaStart().shortValue());   //宸ヤ綅2璧风偣
+            rgvCommand.setCommand((short) 2);   //宸ヤ綅2浠诲姟纭
+            if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(5, rgvCommand))) {
+                //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱   step=4锛屽伐浣�1鍐欎换鍔★紱     step=5锛屽伐浣�2鍐欎换鍔�
+                log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
+                return false;
+            } else {
+                return true;
+            }
+        }catch (Exception e){
+            return false;
+        }
+    }
+
+    /*
+     * 灏忚溅鏀剧┖鏉胯嚦杈撻�佺嚎浠诲姟   //婊℃斁
+     * */
+    public synchronized boolean rgvPutEmptyFull(Integer rgvId,WrkMastSta wrkMastSta){
+        try{
+            //  鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+            RgvCommand rgvCommand = new RgvCommand();
+            rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
+            rgvCommand.setAckFinish2((short) 0);  // 宸ヤ綅2浠诲姟瀹屾垚纭浣�
+            rgvCommand.setTaskNo2(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅2宸ヤ綔鍙�
+            rgvCommand.setTaskMode2(RgvTaskModeType.PUT_6); // 宸ヤ綅2浠诲姟妯″紡:  婊℃斁
+            rgvCommand.setDestinationStaNo2(wrkMastSta.getStaEnd().shortValue());   //宸ヤ綅2鐩爣绔欑偣
+            rgvCommand.setCommand((short) 2);   //宸ヤ綅2浠诲姟纭
+            if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(5, rgvCommand))) {
                 //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱   step=4锛屽伐浣�1鍐欎换鍔★紱     step=5锛屽伐浣�2鍐欎换鍔�
                 log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
                 return false;
@@ -4359,7 +4541,7 @@
             BasRgvMap basRgvMapOther = basRgvMapMapper.selectById(rgvNoOther);
             List<Integer> integers = RouteUtils.RouteMapCurrentFar(fallMerge, basRgvMapCurrent.getLockStartRoute());
             Integer lockEndRoute = RouteUtils.RouteMapOtherFarStnNo(integers, basRgvMapCurrent.getLockStartRoute());//鍙︿竴鍙板皬杞﹀彲娲诲姩鏈�杩滀綅缃�
-            basRgvMapOther.setStartRoute(lockEndRoute);
+            basRgvMapOther.setEndRoute(lockEndRoute);
             basRgvMapMapper.updateById(basRgvMapOther);
             return true;
         }catch (Exception e){

--
Gitblit v1.9.1