From 2cebd39fd1514c991da647f08124e18a0b02abe9 Mon Sep 17 00:00:00 2001
From: lsh <lsh123456>
Date: 星期三, 26 六月 2024 15:19:44 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 1226 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 1,181 insertions(+), 45 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 788004e..6f1a206 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -4414,7 +4414,7 @@
     }
 
     /**
-     *  Jar浠诲姟鍒涘缓  //瀹屾垚
+     *  Jar浠诲姟鍒涘缓  鍒濆  //瀹屾垚
      */
     public synchronized void jarMastGenerate() {
         for (JarSlave jarSlave : slaveProperties.getJar()) {
@@ -4528,9 +4528,8 @@
             }
 
             //鑷姩銆佺┖闂层�佸彸闂ㄥ叧闂��   Other宸﹂棬鍏抽棴
-            if (jarProtocol.isAutoing() && !jarProtocol.isRightDoor() && jarProtocol.jarErr==0
-                    && jarProtocol.leftDoorOpen==0  && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0  && jarProtocol.rightDoorClose==0
-                    && !jarOtherProtocol.isLeftDoor() && jarOtherProtocol.leftDoorOpen==0  && jarOtherProtocol.leftDoorClose==0){
+            if (jarProtocol.isAutoing() && jarProtocol.jarErr==0
+                    && jarProtocol.leftDoorOpen==0  && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0  && jarProtocol.rightDoorClose==0){
                 if (jarProtocol.statusType == JarStatusType.IDLE || jarProtocol.statusType == JarStatusType.MOVING){
                     BasJarMast basJarMast = new BasJarMast(basJar, wrkMast, jarLocDigit);
                     basJarMast.setJarEnterStaNo(staNo);//鍏ョ~鍖栫綈绔欑偣
@@ -4790,7 +4789,7 @@
             }});
 
             //鍒ゆ柇灏忚溅鐘舵��
-            if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarInSte().get(0).getSteNo(),1)){
+            if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarInSte().get(0).getSteNo(),1,SteStatusType.IDLE)){
                 return false;
             }
 
@@ -4903,7 +4902,7 @@
                 return false;
             }
             //鍒ゆ柇灏忚溅鐘舵��
-            if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarInSte().get(0).getSteNo(),1)){
+            if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarInSte().get(0).getSteNo(),1,SteStatusType.IDLE)){
                 return false;
             }
 
@@ -4932,7 +4931,7 @@
 
                 //闂ㄤ綔涓�  鏃�
                 if (jarProtocol.isAutoing() && jarProtocol.statusType == JarStatusType.WAITING3 && jarProtocol.jarErr==0
-                        && !jarProtocol.isRightDoor() && jarProtocol.isLeftDoor()
+                        && jarProtocol.isRightDoor() && jarProtocol.isLeftDoor()
                         && jarProtocol.leftDoorOpen==0  && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0  && jarProtocol.rightDoorClose==0){
                     //鍏宠繘鏂欓棬
                     if (!jarWrkMastExecuteGenerateExecute(basJar,basJarMastSign,basJar.getJarNo(),new int[]{basJar.getEnterSteNo(),basJar.getEnterRgvNo(),2,1})){
@@ -4975,7 +4974,7 @@
                 return false;
             }
             //鍒ゆ柇灏忚溅鐘舵��
-            if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarInSte().get(0).getSteNo(),2)){
+            if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarInSte().get(0).getSteNo(),2,SteStatusType.IDLE)){
                 return false;
             }
 
@@ -5045,7 +5044,7 @@
                 return false;
             }
             //鍒ゆ柇灏忚溅鐘舵��
-            if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarOutSte().get(0).getSteNo(),2)){
+            if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarOutSte().get(0).getSteNo(),2,SteStatusType.IDLE)){
                 return false;
             }
 
@@ -5116,7 +5115,7 @@
             }
 
             //鍒ゆ柇灏忚溅鐘舵��
-            if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarOutSte().get(0).getSteNo(),2)){
+            if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarOutSte().get(0).getSteNo(),2,SteStatusType.IDLE)){
                 return false;
             }
 
@@ -5165,7 +5164,7 @@
      *  2锛欱闈� 鍑烘枡闈�
      *  3锛氬喎鍗存ЫB闈� 涓婅緭閫佺嚎
      */
-    public synchronized boolean jarWrkMastExecuteGenerateSteStatus(Integer steNo,Integer type) {
+    public synchronized boolean jarWrkMastExecuteGenerateSteStatus(Integer steNo,Integer type,SteStatusType steStatusType) {
         try{
             //鍒ゆ柇灏忚溅鐘舵��
             SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo);
@@ -5176,12 +5175,16 @@
             if (steProtocol == null) {
                 return false;
             }
-            if (steProtocol.getMode() == 0) {
+            if (steProtocol.getMode() != (short)1) {
                 log.error(steNo + "鍙峰皬杞︾绾匡紝鏃犳硶鎿嶄綔");
                 return false;
             }
-            if (!steProtocol.getStatusType().equals(SteStatusType.IDLE)) {
-                log.error(steNo + "鍙峰皬杞︿笉鏄┖闂诧紝鏃犳硶鎿嶄綔");
+            if (steProtocol.getChargeStatus()!=0){
+                log.error(steNo + "鍙峰皬杞﹀湪鍏呯數锛岀瓑寰�....");
+                return false;
+            }
+            if (!steProtocol.getStatusType().equals(steStatusType)) {
+                log.error(steNo + "鍙峰皬杞︾姸鎬佷笉鏄�"+JSON.toJSONString(steStatusType)+"锛岀瓑寰�....");
                 return false;
             }
             switch (type){
@@ -5251,7 +5254,8 @@
             WrkMastExecute wrkMastExecute = new WrkMastExecute(basJarMast);
             wrkMastExecute.setJarId(id);
             wrkMastExecute.setSteId(digit[0]);//绌挎鏉縄D
-            wrkMastExecute.setRgvId(digit[1]);//RGV ID
+            wrkMastExecute.setRgvId(basJar.getEnterRgvNo());//RGV ID  enter
+            wrkMastExecute.setRgvEndId(basJar.getOutRgvNo());//RGV ID  out
             wrkMastExecute.setIoType(digit[2]);//浠诲姟绫诲瀷 0: 鏈煡  1: 寮�杩涙枡闂�  2: 鍏宠繘鏂欓棬  3: 寮�鍑烘枡闂�  4: 鍏冲嚭鏂欓棬  5: 鍏ョ~鍖栫綈  6: 鍏ュ喎鍗存Ы  7: 绌挎杞﹁繘鍐峰嵈妲�  8: 绌挎杞︾寮�鍐峰嵈妲�  9: 鍑哄喎鍗存Ы 10锛欰=>B 11:B=>A
             wrkMastExecute.setType(digit[3]);//璁惧  0: 鏈煡  1: 纭寲缃�  2: 鍐峰嵈妲�  3: 纭寲缃�==>鍐峰嵈妲�
             return wrkMastExecuteService.insert(wrkMastExecute);
@@ -5267,7 +5271,7 @@
     * */
     public synchronized void jarWrkMastExecuteAction(Integer sign) {
         try{
-            List<WrkMastExecute> wrkMastExecuteList = wrkMastExecuteService.sselectWrkMastExecuteByTypeAndIoTyper(0, 0);
+            List<WrkMastExecute> wrkMastExecuteList = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, null,0);
             for (WrkMastExecute wrkMastExecute : wrkMastExecuteList){
                 /*
                 * 浠诲姟绫诲瀷 0: 鏈煡
@@ -5279,20 +5283,45 @@
                 * 10锛欰=>B 11:B=>A
                 * */
                 switch (wrkMastExecute.getIoType()){
-                    case 1:
-                        jarWrkMastExecuteActionExecute1(wrkMastExecute,sign);
+                    case 1://1: 寮�杩涙枡闂�
+                    case 3://3: 寮�鍑烘枡闂�
+                        if (jarWrkMastExecuteActionExecute1(wrkMastExecute,sign)){
+                            break;
+                        }
+                        return;
                     case 2:
-                    case 3:
                     case 4:
+                        if (jarWrkMastExecuteActionExecute2(wrkMastExecute,sign)){
+                            break;
+                        }
+                        return;
                     case 5:
+                        if (jarWrkMastExecuteActionExecute5(wrkMastExecute,sign)){
+                            break;
+                        }
+                        return;
                     case 6:
+                        if (jarWrkMastExecuteActionExecute6(wrkMastExecute,sign)){
+                            break;
+                        }
+                        return;
                     case 7:
                     case 8:
+                        if (jarWrkMastExecuteActionExecute7(wrkMastExecute,sign)){
+                            break;
+                        }
+                        return;
                     case 9:
+                        if (jarWrkMastExecuteActionExecute9(wrkMastExecute,sign)){
+                            break;
+                        }
+                        return;
                     case 10:
                     case 11:
-                    case 12:
-                    case 13:
+                        if (jarWrkMastExecuteActionExecute10(wrkMastExecute,sign)){
+                            break;
+                        }
+                        return;
                 }
             }
         } catch (Exception e){
@@ -5302,19 +5331,8 @@
     }
 
     /**
-     *  JarWrkMastExecute浠诲姟瀹屾垚   //鏈畬鎴�
-     */
-    public synchronized void jarWrkMastExecuteGenerateComplete() {
-        try{
-
-        }catch (Exception e){
-            log.error("灏忚溅澶嶄綅绾跨▼鎶ラ敊锛�"+e);
-        }
-    }
-
-    /**
-     *  JarWrkMastExecute浠诲姟鍒涘缓==>涓嬪彂 //鏈畬鎴�
-     *  寮�杩涙枡闂�
+     *  JarWrkMastExecute浠诲姟==>涓嬪彂 //瀹屾垚
+     *  1銆�3寮�杩涙枡闂�
      *  浠诲姟涓嬪彂
      */
     public synchronized boolean jarWrkMastExecuteActionExecute1(WrkMastExecute wrkMastExecute,Integer sign) {
@@ -5340,10 +5358,10 @@
                 return false;
             }
 
-            //鍒ゆ柇灏忚溅鐘舵��
-            if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1)){
-                return false;
-            }
+//            //鍒ゆ柇灏忚溅鐘舵��
+//            if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1)){
+//                return false;
+//            }
             DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
             StaProtocol staProtocolRGV = devpThread.getStation().get(basJar.getEnterRgvNo());
             if (staProtocolRGV == null) {
@@ -5354,25 +5372,827 @@
             if (staProtocolRGV == null) {
                 return false;
             }
-            if (staProtocolRGV.rgvBoolean(1)){
 
+            StaProtocol staProtocolRGVOther = devpThread.getStation().get(basJar.getOutRgvNo());
+            if (staProtocolRGVOther == null) {
+                return false;
+            } else {
+                staProtocolRGVOther = staProtocolRGVOther.clone();
+            }
+            if (staProtocolRGVOther == null) {
+                return false;
+            }
+
+
+            if (staProtocolRGV.rgvBoolean(1) && staProtocolRGVOther.rgvBoolean(1)){
+                if (staProtocolRGV.getNowRow() != staProtocolRGVOther.getNowRow()){
+                    //绉昏蛋  == > 2
+                    if (jarRgvMoveTake(wrkMastExecute,2)){
+                        log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+                    }
+                    return true;
+                }
                 //闂ㄤ綔涓�  鏃�
                 //鑷姩銆佺┖闂层��  杩涙枡浠叧闂渶鎵撳紑
                 if (jarProtocol.isAutoing() && jarProtocol.jarErr==0
                         && jarProtocol.leftDoorOpen==0  && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0  && jarProtocol.rightDoorClose==0){
-                    if (SteAndJarUtil.steAndJarNowRow(staProtocolRGV.getNowRow() , jarProtocol.getJarNo())){
-                        //绉昏蛋  == > 2
-                    } else {
-                        //鐩存帴寮�闂�
+                    if (!jarProtocol.isLeftDoor() && !jarProtocol.isRightDoor()){
+                        if (SteAndJarUtil.steAndJarNowRow(staProtocolRGV.getNowRow() , jarProtocol.getJarNo())){
+                            //绉昏蛋  == > 2
+                            if (jarRgvMoveTake(wrkMastExecute,2)){
+                                log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                        wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+                            }
+                            wrkMastExecute.setWrkType(1);
+                            wrkMastExecute.setWrkSts(1);
+                            if (wrkMastExecuteService.updateById(wrkMastExecute)){
+                                log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                        wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+                            }
+                        } else {
+                            //鐩存帴寮�闂�/鍏抽棬
+                            if (jarDoorTake(wrkMastExecute,JarTaskModeType.OPEN_THE_DOOR)){
+                                log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                        wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+                            }
+                            wrkMastExecute.setWrkType(1);
+                            wrkMastExecute.setWrkSts(3);
 
+                            if (wrkMastExecuteService.updateById(wrkMastExecute)){
+                                log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                        wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+                            }
+                        }
+                    }else if (jarProtocol.isLeftDoor() && jarProtocol.isRightDoor()){
+                        //鐩存帴瀹屾垚
+                        wrkMastExecute.setWrkType(1);
+                        wrkMastExecute.setWrkSts(4);
+                        if (wrkMastExecuteService.updateById(wrkMastExecute)){
+                            log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                    wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+                        }
                     }
+
+                    return true;
                 }
                 return false;
             } else {
                 log.error("jarWrkMastExecuteActionExecute1===>鎵ц寮傚父===銆婻GV涓嶆弧瓒虫潯浠讹紝绛夊緟===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar.getEnterRgvNo())+";WrkMastExecute:"+JSON.toJSONString(wrkMastExecute));
                 return false;
             }
+        } catch (Exception e){
+            log.error("jarWrkMastExecuteActionExecute1浠诲姟鎵ц涓嬪彂寮傚父==銆媤rkMastExecute={},寮傚父鍘熷洜={}",wrkMastExecute,e.getMessage());
+        }
+        return false;
+    }
 
+    /**
+     *  JarWrkMastExecute浠诲姟==>涓嬪彂 //瀹屾垚
+     *  2銆�4:鍏宠繘鏂欓棬
+     *  浠诲姟涓嬪彂
+     */
+    public synchronized boolean jarWrkMastExecuteActionExecute2(WrkMastExecute wrkMastExecute,Integer sign) {
+        try{
+            List<WrkMastExecute> wrkMastExecuteByJarNo = wrkMastExecuteService.getWrkMastExecuteByJarNo(wrkMastExecute.getJarId());
+            if (wrkMastExecuteByJarNo.size()!=1 || !wrkMastExecuteByJarNo.get(0).getWrkNo().equals(wrkMastExecute.getWrkNo())){
+                return false;
+            }
+
+            // 鑾峰彇纭寲缃愪俊鎭�
+            JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, wrkMastExecute.getJarId());
+            JarProtocol jarProtocol = jarThread.getJarProtocol();
+            if (jarProtocol == null) {
+                return false;
+            }
+            if (jarProtocol.modeType != JarModeType.AUTO){
+                return false;
+            }
+
+            BasJar basJar = basJarMapper.selectByJarNo(jarProtocol.getJarNo());
+            if (Cools.isEmpty(basJar)){
+                log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
+                return false;
+            }
+
+//            //鍒ゆ柇灏忚溅鐘舵��
+//            if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1)){
+//                return false;
+//            }
+
+            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+            StaProtocol staProtocolRGV = devpThread.getStation().get(basJar.getEnterRgvNo());
+            if (staProtocolRGV == null) {
+                return false;
+            } else {
+                staProtocolRGV = staProtocolRGV.clone();
+            }
+            if (staProtocolRGV == null) {
+                return false;
+            }
+
+            StaProtocol staProtocolRGVOther = devpThread.getStation().get(basJar.getOutRgvNo());
+            if (staProtocolRGVOther == null) {
+                return false;
+            } else {
+                staProtocolRGVOther = staProtocolRGVOther.clone();
+            }
+            if (staProtocolRGVOther == null) {
+                return false;
+            }
+
+            if (staProtocolRGV.rgvBoolean(1) && staProtocolRGVOther.rgvBoolean(1)){
+                if (staProtocolRGV.getNowRow() != staProtocolRGVOther.getNowRow()){
+                    //绉昏蛋  == > 2
+                    if (jarRgvMoveTake(wrkMastExecute,2)){
+                        log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+                    }
+                    return true;
+                }
+                //闂ㄤ綔涓�  鏃�
+                //鑷姩銆佺┖闂层��  杩涙枡浠墦寮�闇�鍏抽棴
+                if (jarProtocol.isAutoing() && jarProtocol.jarErr==0
+                        && jarProtocol.leftDoorOpen==0  && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0  && jarProtocol.rightDoorClose==0){
+                    if (jarProtocol.isLeftDoor() && jarProtocol.isRightDoor()){
+                        if (SteAndJarUtil.steAndJarNowRow(staProtocolRGV.getNowRow() , jarProtocol.getJarNo())){
+                            //绉昏蛋  == > 2
+                            if (jarRgvMoveTake(wrkMastExecute,2)){
+                                log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                        wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+                            }
+                            wrkMastExecute.setWrkType(1);
+                            wrkMastExecute.setWrkSts(1);
+
+                            if (wrkMastExecuteService.updateById(wrkMastExecute)){
+                                log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                        wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+                            }
+                        } else {
+                            //鐩存帴鍏抽棬
+                            if (jarDoorTake(wrkMastExecute,JarTaskModeType.CLOSE_THE_DOOR)){
+                                log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                        wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+                            }
+                            wrkMastExecute.setWrkType(1);
+                            wrkMastExecute.setWrkSts(3);
+
+                            if (wrkMastExecuteService.updateById(wrkMastExecute)){
+                                log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                        wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+                            }
+                        }
+                    } else if (!jarProtocol.isLeftDoor() && !jarProtocol.isRightDoor()){
+                        //鐩存帴瀹屾垚
+                        wrkMastExecute.setWrkType(1);
+                        wrkMastExecute.setWrkSts(4);
+                        if (wrkMastExecuteService.updateById(wrkMastExecute)){
+                            log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                    wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+                        }
+                    }
+                    return true;
+                }
+                return false;
+            } else {
+                log.error("jarWrkMastExecuteActionExecute1===>鎵ц寮傚父===銆婻GV涓嶆弧瓒虫潯浠讹紝绛夊緟===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar.getEnterRgvNo())+";WrkMastExecute:"+JSON.toJSONString(wrkMastExecute));
+                return false;
+            }
+        } catch (Exception e){
+            log.error("jarWrkMastExecuteActionExecute1浠诲姟鎵ц涓嬪彂寮傚父==銆媤rkMastExecute={},寮傚父鍘熷洜={}",wrkMastExecute,e.getMessage());
+        }
+        return false;
+    }
+
+    /**
+     *  JarWrkMastExecute浠诲姟==>涓嬪彂 //瀹屾垚
+     *  5:鍏ョ~鍖栫綈
+     *  浠诲姟涓嬪彂
+     */
+    public synchronized boolean jarWrkMastExecuteActionExecute5(WrkMastExecute wrkMastExecute,Integer sign) {
+        try{
+            List<WrkMastExecute> wrkMastExecuteByJarNo = wrkMastExecuteService.getWrkMastExecuteByJarNo(wrkMastExecute.getJarId());
+            if (wrkMastExecuteByJarNo.size()!=1 || !wrkMastExecuteByJarNo.get(0).getWrkNo().equals(wrkMastExecute.getWrkNo())){
+                return false;
+            }
+
+            // 鑾峰彇纭寲缃愪俊鎭�
+            JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, wrkMastExecute.getJarId());
+            JarProtocol jarProtocol = jarThread.getJarProtocol();
+            if (jarProtocol == null) {
+                return false;
+            }
+            if (jarProtocol.modeType != JarModeType.AUTO){
+                return false;
+            }
+
+            BasJar basJar = basJarMapper.selectByJarNo(jarProtocol.getJarNo());
+            if (Cools.isEmpty(basJar)){
+                log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
+                return false;
+            }
+
+//            //鍒ゆ柇灏忚溅鐘舵��
+//            if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1)){
+//                return false;
+//            }
+
+            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+            StaProtocol staProtocolRGV = devpThread.getStation().get(basJar.getEnterRgvNo());
+            if (staProtocolRGV == null) {
+                return false;
+            } else {
+                staProtocolRGV = staProtocolRGV.clone();
+            }
+            if (staProtocolRGV == null) {
+                return false;
+            }
+
+            StaProtocol staProtocolRGVOther = devpThread.getStation().get(basJar.getOutRgvNo());
+            if (staProtocolRGVOther == null) {
+                return false;
+            } else {
+                staProtocolRGVOther = staProtocolRGVOther.clone();
+            }
+            if (staProtocolRGVOther == null) {
+                return false;
+            }
+
+            if (staProtocolRGV.rgvBoolean(1) && staProtocolRGVOther.rgvBoolean(1)){
+                if (staProtocolRGV.getNowRow() != staProtocolRGVOther.getNowRow()){
+                    //绉昏蛋  == > 2
+                    if (jarRgvMoveTake(wrkMastExecute,2)){
+                        log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+                    }
+                    return true;
+                }
+                //闂ㄤ綔涓�  鏃�
+                //鑷姩銆佺┖闂层��  杩涙枡浠墦寮�闇�鍏抽棴
+                if (jarProtocol.isAutoing() && jarProtocol.jarErr==0 && jarProtocol.isLeftDoor() && jarProtocol.isRightDoor()
+                        && jarProtocol.leftDoorOpen==0  && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0  && jarProtocol.rightDoorClose==0){
+
+                    if (SteAndJarUtil.steAndJarNowRow(staProtocolRGV.getNowRow() , jarProtocol.getJarNo())){
+                        //鍒ゆ柇灏忚溅鐘舵��
+                        if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1,SteStatusType.IDLE)){
+                            return false;
+                        }
+                        //璋冭溅  == > 鍙栬揣
+                        if (jarRgvGetTake(wrkMastExecute
+                                ,SteAndJarUtil.getRgvJarNowRow(wrkMastExecute.getJarEnterStaNo())==1
+                                ,SteAndJarUtil.getRgvJarNowRow(wrkMastExecute.getJarEnterStaNo())==2)){
+                            log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                    wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+                        }
+                        wrkMastExecute.setWrkType(1);
+                        wrkMastExecute.setWrkSts(3);
+                        if (wrkMastExecuteService.updateById(wrkMastExecute)){
+                            log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                    wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+                        }
+                    } else {
+                        //璋冭溅  == > endRow
+                        if (jarRgvMoveTake(wrkMastExecute,SteAndJarUtil.getRgvJarNowRow(wrkMastExecute.getJarId()))){
+                            log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                    wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+                        }
+                        wrkMastExecute.setWrkType(1);
+                        wrkMastExecute.setWrkSts(1);
+                        if (wrkMastExecuteService.updateById(wrkMastExecute)){
+                            log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                    wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+                        }
+                    }
+                    return true;
+                }
+                return false;
+            } else {
+                log.error("jarWrkMastExecuteActionExecute1===>鎵ц寮傚父===銆婻GV涓嶆弧瓒虫潯浠讹紝绛夊緟===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar.getEnterRgvNo())+";WrkMastExecute:"+JSON.toJSONString(wrkMastExecute));
+                return false;
+            }
+        } catch (Exception e){
+            log.error("jarWrkMastExecuteActionExecute1浠诲姟鎵ц涓嬪彂寮傚父==銆媤rkMastExecute={},寮傚父鍘熷洜={}",wrkMastExecute,e.getMessage());
+        }
+        return false;
+    }
+
+    /**
+     *  JarWrkMastExecute浠诲姟==>涓嬪彂 //瀹屾垚
+     *  6:鍏ュ喎鍗存Ы
+     *  浠诲姟涓嬪彂
+     */
+    public synchronized boolean jarWrkMastExecuteActionExecute6(WrkMastExecute wrkMastExecute,Integer sign) {
+        try{
+            List<WrkMastExecute> wrkMastExecuteByJarNo = wrkMastExecuteService.getWrkMastExecuteByJarNo(wrkMastExecute.getJarId());
+            if (wrkMastExecuteByJarNo.size()!=1 || !wrkMastExecuteByJarNo.get(0).getWrkNo().equals(wrkMastExecute.getWrkNo())){
+                return false;
+            }
+
+            // 鑾峰彇纭寲缃愪俊鎭�
+            JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, wrkMastExecute.getJarId());
+            JarProtocol jarProtocol = jarThread.getJarProtocol();
+            if (jarProtocol == null) {
+                return false;
+            }
+            if (jarProtocol.modeType != JarModeType.AUTO){
+                return false;
+            }
+
+            BasJar basJar = basJarMapper.selectByJarNo(jarProtocol.getJarNo());
+            if (Cools.isEmpty(basJar)){
+                log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
+                return false;
+            }
+
+//            //鍒ゆ柇灏忚溅鐘舵��
+//            if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1)){
+//                return false;
+//            }
+
+            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+            StaProtocol staProtocolRGV = devpThread.getStation().get(basJar.getEnterRgvNo());
+            if (staProtocolRGV == null) {
+                return false;
+            } else {
+                staProtocolRGV = staProtocolRGV.clone();
+            }
+            if (staProtocolRGV == null) {
+                return false;
+            }
+
+            StaProtocol staProtocolRGVOther = devpThread.getStation().get(basJar.getOutRgvNo());
+            if (staProtocolRGVOther == null) {
+                return false;
+            } else {
+                staProtocolRGVOther = staProtocolRGVOther.clone();
+            }
+            if (staProtocolRGVOther == null) {
+                return false;
+            }
+
+            if (staProtocolRGV.rgvBoolean(1) && staProtocolRGVOther.rgvBoolean(1)){
+                if (staProtocolRGV.getNowRow() != staProtocolRGVOther.getNowRow()){
+                    //绉昏蛋  == > 2
+                    if (jarRgvMoveTake(wrkMastExecute,2)){
+                        log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+                    }
+                    return true;
+                }
+                //闂ㄤ綔涓�  鏃�
+                //鑷姩銆佺┖闂层��
+                if (jarProtocol.isAutoing() && jarProtocol.jarErr==0 && jarProtocol.isLeftDoor() && jarProtocol.isRightDoor()
+                        && jarProtocol.leftDoorOpen==0  && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0  && jarProtocol.rightDoorClose==0){
+
+                    if (SteAndJarUtil.steAndJarNowRow(staProtocolRGV.getNowRow() , jarProtocol.getJarNo())){
+                        //鍒ゆ柇灏忚溅鐘舵��
+                        if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1,SteStatusType.IDLE)){
+                            return false;
+                        }
+                        //璋冭溅  == > 鍙栬揣
+                        if (jarSteTake(wrkMastExecute,SteLocaType.POINT23.id,SteLocaType.POINT21.id,SteTaskModeType.STE_WFQH_12,false)){
+                            log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                    wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+                        }
+                        wrkMastExecute.setWrkType(1);
+                        wrkMastExecute.setWrkSts(3);
+                        if (wrkMastExecuteService.updateById(wrkMastExecute)){
+                            log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                    wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+                        }
+                    } else {
+                        //璋冭溅  == > endRow
+                        if (jarRgvMoveTake(wrkMastExecute,SteAndJarUtil.getRgvJarNowRow(wrkMastExecute.getJarId()))){
+                            log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                    wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+                        }
+                        wrkMastExecute.setWrkType(1);
+                        wrkMastExecute.setWrkSts(1);
+                        if (wrkMastExecuteService.updateById(wrkMastExecute)){
+                            log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                    wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+                        }
+                    }
+                    return true;
+                }
+                return false;
+            } else {
+                log.error("jarWrkMastExecuteActionExecute1===>鎵ц寮傚父===銆婻GV涓嶆弧瓒虫潯浠讹紝绛夊緟===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar.getEnterRgvNo())+";WrkMastExecute:"+JSON.toJSONString(wrkMastExecute));
+                return false;
+            }
+        } catch (Exception e){
+            log.error("jarWrkMastExecuteActionExecute1浠诲姟鎵ц涓嬪彂寮傚父==銆媤rkMastExecute={},寮傚父鍘熷洜={}",wrkMastExecute,e.getMessage());
+        }
+        return false;
+    }
+
+    /**
+     *  JarWrkMastExecute浠诲姟==>涓嬪彂 //瀹屾垚
+     *  7锛氱┛姊溅杩涘喎鍗存Ы\8锛氱┛姊溅绂诲紑鍐峰嵈妲�
+     *  浠诲姟涓嬪彂
+     */
+    public synchronized boolean jarWrkMastExecuteActionExecute7(WrkMastExecute wrkMastExecute,Integer sign) {
+        try{
+            List<WrkMastExecute> wrkMastExecuteByJarNo = wrkMastExecuteService.getWrkMastExecuteByJarNo(wrkMastExecute.getJarId());
+            if (wrkMastExecuteByJarNo.size()!=1 || !wrkMastExecuteByJarNo.get(0).getWrkNo().equals(wrkMastExecute.getWrkNo())){
+                return false;
+            }
+
+            // 鑾峰彇纭寲缃愪俊鎭�
+            JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, wrkMastExecute.getJarId());
+            JarProtocol jarProtocol = jarThread.getJarProtocol();
+            if (jarProtocol == null) {
+                return false;
+            }
+            if (jarProtocol.modeType != JarModeType.AUTO){
+                return false;
+            }
+
+            BasJar basJar = basJarMapper.selectByJarNo(jarProtocol.getJarNo());
+            if (Cools.isEmpty(basJar)){
+                log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
+                return false;
+            }
+
+            // 鑾峰彇纭寲缃愪俊鎭�
+            JarThread jarThreadOther = (JarThread) SlaveConnection.get(SlaveType.Jar, SteAndJarUtil.getRgvJarNo(wrkMastExecute.getJarId()));
+            JarProtocol jarProtocolOther = jarThreadOther.getJarProtocol();
+            if (jarProtocolOther == null) {
+                return false;
+            }
+            if (jarProtocolOther.modeType != JarModeType.AUTO){
+                return false;
+            }
+
+            BasJar basJarOther = basJarMapper.selectByJarNo(jarProtocolOther.getJarNo());
+            if (Cools.isEmpty(basJarOther)){
+                log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocolOther.getJarNo());
+                return false;
+            }
+
+//            //鍒ゆ柇灏忚溅鐘舵��
+//            if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1)){
+//                return false;
+//            }
+
+            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+            StaProtocol staProtocolRGV = devpThread.getStation().get(basJar.getEnterRgvNo());
+            if (staProtocolRGV == null) {
+                return false;
+            } else {
+                staProtocolRGV = staProtocolRGV.clone();
+            }
+            if (staProtocolRGV == null) {
+                return false;
+            }
+
+            StaProtocol staProtocolRGVOther = devpThread.getStation().get(basJar.getOutRgvNo());
+            if (staProtocolRGVOther == null) {
+                return false;
+            } else {
+                staProtocolRGVOther = staProtocolRGVOther.clone();
+            }
+            if (staProtocolRGVOther == null) {
+                return false;
+            }
+
+            if (staProtocolRGV.rgvBoolean(1) && staProtocolRGVOther.rgvBoolean(1)){
+                if (staProtocolRGV.getNowRow() != staProtocolRGVOther.getNowRow()){
+                    //绉昏蛋  == > 2
+                    if (jarRgvMoveTake(wrkMastExecute,2)){
+                        log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+                    }
+                    return true;
+                }
+                //闂ㄤ綔涓�  鏃�
+                //鑷姩銆佺┖闂层��
+                if (jarProtocol.isAutoing() && jarProtocol.jarErr==0 && jarProtocol.isLeftDoor() && jarProtocol.isRightDoor()
+                        && jarProtocol.leftDoorOpen==0  && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0  && jarProtocol.rightDoorClose==0
+                        && jarProtocolOther.isLeftDoor() && jarProtocolOther.isRightDoor()
+                ){
+
+                    if (SteAndJarUtil.steAndJarNowRow(staProtocolRGV.getNowRow() , jarProtocolOther.getJarNo())){
+                        //鍒ゆ柇灏忚溅鐘舵��
+                        if (wrkMastExecute.getIoType()==7){
+                            if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),2,SteStatusType.IDLE)){
+                                //璋冭溅  == > 绉诲姩
+                                if (jarSteTake(wrkMastExecute,SteLocaType.POINT23.id,SteLocaType.POINT26.id,SteTaskModeType.STE_WFQH_12,false)){
+                                    log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                            wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+                                }
+                                wrkMastExecute.setWrkType(1);
+                                wrkMastExecute.setWrkSts(3);
+                                if (wrkMastExecuteService.updateById(wrkMastExecute)){
+                                    log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                            wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+                                }
+                            } else if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),3,SteStatusType.IDLE)){
+                                wrkMastExecute.setWrkType(1);
+                                wrkMastExecute.setWrkSts(4);
+                                if (wrkMastExecuteService.updateById(wrkMastExecute)){
+                                    log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                            wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+                                }
+                            }
+                        } else {
+                            if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),3,SteStatusType.IDLE)){
+                                //璋冭溅  == > 绉诲姩
+                                if (jarSteTake(wrkMastExecute,SteLocaType.POINT26.id,SteLocaType.POINT23.id,SteTaskModeType.STE_WFQH_12,false)){
+                                    log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                            wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+                                }
+                                wrkMastExecute.setWrkType(1);
+                                wrkMastExecute.setWrkSts(3);
+                                if (wrkMastExecuteService.updateById(wrkMastExecute)){
+                                    log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                            wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+                                }
+                            } else if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),2,SteStatusType.IDLE)){
+                                wrkMastExecute.setWrkType(1);
+                                wrkMastExecute.setWrkSts(4);
+                                if (wrkMastExecuteService.updateById(wrkMastExecute)){
+                                    log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                            wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+                                }
+                            }
+                        }
+
+                    } else {
+                        //璋冭溅  == > endRow
+                        if (jarRgvMoveTake(wrkMastExecute,SteAndJarUtil.getRgvJarNowRow(wrkMastExecute.getJarId()))){
+                            log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                    wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+                        }
+                        wrkMastExecute.setWrkType(1);
+                        wrkMastExecute.setWrkSts(1);
+                        if (wrkMastExecuteService.updateById(wrkMastExecute)){
+                            log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                    wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+                        }
+                    }
+                    return true;
+                }
+                return false;
+            } else {
+                log.error("jarWrkMastExecuteActionExecute1===>鎵ц寮傚父===銆婻GV涓嶆弧瓒虫潯浠讹紝绛夊緟===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar.getEnterRgvNo())+";WrkMastExecute:"+JSON.toJSONString(wrkMastExecute));
+                return false;
+            }
+        } catch (Exception e){
+            log.error("jarWrkMastExecuteActionExecute1浠诲姟鎵ц涓嬪彂寮傚父==銆媤rkMastExecute={},寮傚父鍘熷洜={}",wrkMastExecute,e.getMessage());
+        }
+        return false;
+    }
+
+    /**
+     *  JarWrkMastExecute浠诲姟==>涓嬪彂 //瀹屾垚
+     *  9锛氬嚭鍐峰嵈妲�
+     *  浠诲姟涓嬪彂
+     */
+    public synchronized boolean jarWrkMastExecuteActionExecute9(WrkMastExecute wrkMastExecute,Integer sign) {
+        try{
+            List<WrkMastExecute> wrkMastExecuteByJarNo = wrkMastExecuteService.getWrkMastExecuteByJarNo(wrkMastExecute.getJarId());
+            if (wrkMastExecuteByJarNo.size()!=1 || !wrkMastExecuteByJarNo.get(0).getWrkNo().equals(wrkMastExecute.getWrkNo())){
+                return false;
+            }
+
+//            // 鑾峰彇纭寲缃愪俊鎭�
+//            JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, wrkMastExecute.getJarId());
+//            JarProtocol jarProtocol = jarThread.getJarProtocol();
+//            if (jarProtocol == null) {
+//                return false;
+//            }
+//            if (jarProtocol.modeType != JarModeType.AUTO){
+//                return false;
+//            }
+
+            BasJar basJar = basJarMapper.selectByJarNo(wrkMastExecute.getJarId());
+            if (Cools.isEmpty(basJar)){
+                log.error("{}鍙峰喎鍗存Ы鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",wrkMastExecute.getJarId());
+                return false;
+            }
+
+//            // 鑾峰彇纭寲缃愪俊鎭�
+//            JarThread jarThreadOther = (JarThread) SlaveConnection.get(SlaveType.Jar, SteAndJarUtil.getRgvJarNo(wrkMastExecute.getJarId()));
+//            JarProtocol jarProtocolOther = jarThreadOther.getJarProtocol();
+//            if (jarProtocolOther == null) {
+//                return false;
+//            }
+//            if (jarProtocolOther.modeType != JarModeType.AUTO){
+//                return false;
+//            }
+//
+//            BasJar basJarOther = basJarMapper.selectByJarNo(jarProtocolOther.getJarNo());
+//            if (Cools.isEmpty(basJarOther)){
+//                log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocolOther.getJarNo());
+//                return false;
+//            }
+
+//            //鍒ゆ柇灏忚溅鐘舵��
+//            if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1)){
+//                return false;
+//            }
+//
+            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+            StaProtocol staProtocol = devpThread.getStation().get(basJar.getStaNo());
+            if (staProtocol == null) {
+                return false;
+            } else {
+                staProtocol = staProtocol.clone();
+            }
+            if (staProtocol == null) {
+                return false;
+            }
+            if (staProtocol.getWorkNo()!=0 || !staProtocol.isAutoing() || staProtocol.isLoading()){
+                return false;
+            }
+//
+//            StaProtocol staProtocolRGVOther = devpThread.getStation().get(basJar.getOutRgvNo());
+//            if (staProtocolRGVOther == null) {
+//                return false;
+//            } else {
+//                staProtocolRGVOther = staProtocolRGVOther.clone();
+//            }
+//            if (staProtocolRGVOther == null) {
+//                return false;
+//            }
+//
+//            if (staProtocolRGV.rgvBoolean(1) && staProtocolRGVOther.rgvBoolean(1)){
+//                if (staProtocolRGV.getNowRow() != staProtocolRGVOther.getNowRow()){
+//                    //绉昏蛋  == > 2
+//                    if (jarRgvTake(wrkMastExecute,2)){
+//                        log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+//                                wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+//                    }
+//                    return true;
+//                }
+                //闂ㄤ綔涓�  鏃�
+                //鑷姩銆佺┖闂层��
+//                if (jarProtocol.isAutoing() && jarProtocol.jarErr==0 && jarProtocol.isLeftDoor() && jarProtocol.isRightDoor()
+//                        && jarProtocol.leftDoorOpen==0  && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0  && jarProtocol.rightDoorClose==0
+//                ){
+                    //鍒ゆ柇灏忚溅鐘舵��
+                    if (jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),3,SteStatusType.IDLE)){
+                        //璋冭溅  == > 鍙栬揣
+                        if (jarSteTake(wrkMastExecute,SteLocaType.POINT26.id,SteLocaType.POINT24.id,SteTaskModeType.STE_WFQH_12,false)){
+                            log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={},鍐峰嵈妲芥暟鎹�={},sign={}",
+                                    wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(basJar),sign);
+                        }
+                        wrkMastExecute.setWrkType(1);
+                        wrkMastExecute.setWrkSts(1);
+                        if (wrkMastExecuteService.updateById(wrkMastExecute)){
+                            log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},鍐峰嵈妲芥暟鎹�={},sign={}",
+                                    wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(basJar),sign);
+                        }
+                    }
+                    return true;
+//                }
+//                return false;
+//            } else {
+//                log.error("jarWrkMastExecuteActionExecute1===>鎵ц寮傚父===銆婻GV涓嶆弧瓒虫潯浠讹紝绛夊緟===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar.getEnterRgvNo())+";WrkMastExecute:"+JSON.toJSONString(wrkMastExecute));
+//                return false;
+//            }
+        } catch (Exception e){
+            log.error("jarWrkMastExecuteActionExecute1浠诲姟鎵ц涓嬪彂寮傚父==銆媤rkMastExecute={},寮傚父鍘熷洜={}",wrkMastExecute,e.getMessage());
+        }
+        return false;
+    }
+
+    /**
+     *  JarWrkMastExecute浠诲姟==>涓嬪彂 //瀹屾垚
+     *  10锛欰=>B\11锛欱=>A
+     *  浠诲姟涓嬪彂
+     */
+    public synchronized boolean jarWrkMastExecuteActionExecute10(WrkMastExecute wrkMastExecute,Integer sign) {
+        try{
+            List<WrkMastExecute> wrkMastExecuteByJarNo = wrkMastExecuteService.getWrkMastExecuteByJarNo(wrkMastExecute.getJarId());
+            if (wrkMastExecuteByJarNo.size()!=1 || !wrkMastExecuteByJarNo.get(0).getWrkNo().equals(wrkMastExecute.getWrkNo())){
+                return false;
+            }
+
+            // 鑾峰彇纭寲缃愪俊鎭�
+            JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, wrkMastExecute.getJarId());
+            JarProtocol jarProtocol = jarThread.getJarProtocol();
+            if (jarProtocol == null) {
+                return false;
+            }
+            if (jarProtocol.modeType != JarModeType.AUTO){
+                return false;
+            }
+
+            BasJar basJar = basJarMapper.selectByJarNo(jarProtocol.getJarNo());
+            if (Cools.isEmpty(basJar)){
+                log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
+                return false;
+            }
+
+//            //鍒ゆ柇灏忚溅鐘舵��
+//            if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1)){
+//                return false;
+//            }
+
+            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+            StaProtocol staProtocolRGV = devpThread.getStation().get(basJar.getEnterRgvNo());
+            if (staProtocolRGV == null) {
+                return false;
+            } else {
+                staProtocolRGV = staProtocolRGV.clone();
+            }
+            if (staProtocolRGV == null) {
+                return false;
+            }
+
+            StaProtocol staProtocolRGVOther = devpThread.getStation().get(basJar.getOutRgvNo());
+            if (staProtocolRGVOther == null) {
+                return false;
+            } else {
+                staProtocolRGVOther = staProtocolRGVOther.clone();
+            }
+            if (staProtocolRGVOther == null) {
+                return false;
+            }
+
+            if (staProtocolRGV.rgvBoolean(1) && staProtocolRGVOther.rgvBoolean(1)){
+                if (staProtocolRGV.getNowRow() != staProtocolRGVOther.getNowRow()){
+                    //绉昏蛋  == > 2
+                    if (jarRgvMoveTake(wrkMastExecute,2)){
+                        log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+                    }
+                    return true;
+                }
+                //闂ㄤ綔涓�  鏃�
+                //鑷姩銆佺┖闂层��
+                if (jarProtocol.isAutoing() && jarProtocol.jarErr==0 && jarProtocol.isLeftDoor() && jarProtocol.isRightDoor()
+                        && jarProtocol.leftDoorOpen==0  && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0  && jarProtocol.rightDoorClose==0
+                ){
+
+                    if (SteAndJarUtil.steAndJarNowRow(staProtocolRGV.getNowRow() , jarProtocol.getJarNo())){
+                        //鍒ゆ柇灏忚溅鐘舵��
+                        if (wrkMastExecute.getIoType()==10){
+                            if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1,SteStatusType.IDLE)){
+                                //璋冭溅  == > 绉诲姩
+                                if (jarSteTake(wrkMastExecute,SteLocaType.POINT20.id,SteLocaType.POINT23.id,SteTaskModeType.STE_WFQH_12,false)){
+                                    log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                            wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+                                }
+                                wrkMastExecute.setWrkType(1);
+                                wrkMastExecute.setWrkSts(3);
+                                if (wrkMastExecuteService.updateById(wrkMastExecute)){
+                                    log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                            wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+                                }
+                            } else if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),2,SteStatusType.IDLE)){
+                                wrkMastExecute.setWrkType(1);
+                                wrkMastExecute.setWrkSts(4);
+                                if (wrkMastExecuteService.updateById(wrkMastExecute)){
+                                    log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                            wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+                                }
+                            }
+                        } else {
+                            if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),2,SteStatusType.IDLE)){
+                                //璋冭溅  == > 绉诲姩
+                                if (jarSteTake(wrkMastExecute,SteLocaType.POINT23.id,SteLocaType.POINT20.id,SteTaskModeType.STE_WFQH_12,false)){
+                                    log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                            wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+                                }
+                                wrkMastExecute.setWrkType(1);
+                                wrkMastExecute.setWrkSts(3);
+                                if (wrkMastExecuteService.updateById(wrkMastExecute)){
+                                    log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                            wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+                                }
+                            } else if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1,SteStatusType.IDLE)){
+                                wrkMastExecute.setWrkType(1);
+                                wrkMastExecute.setWrkSts(4);
+                                if (wrkMastExecuteService.updateById(wrkMastExecute)){
+                                    log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                            wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+                                }
+                            }
+                        }
+
+                    } else {
+                        //璋冭溅  == > endRow
+                        if (jarRgvMoveTake(wrkMastExecute,SteAndJarUtil.getRgvJarNowRow(wrkMastExecute.getJarId()))){
+                            log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                    wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+                        }
+                        wrkMastExecute.setWrkType(1);
+                        wrkMastExecute.setWrkSts(1);
+                        if (wrkMastExecuteService.updateById(wrkMastExecute)){
+                            log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                    wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+                        }
+                    }
+                    return true;
+                }
+                return false;
+            } else {
+                log.error("jarWrkMastExecuteActionExecute1===>鎵ц寮傚父===銆婻GV涓嶆弧瓒虫潯浠讹紝绛夊緟===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar.getEnterRgvNo())+";WrkMastExecute:"+JSON.toJSONString(wrkMastExecute));
+                return false;
+            }
         } catch (Exception e){
             log.error("jarWrkMastExecuteActionExecute1浠诲姟鎵ц涓嬪彂寮傚父==銆媤rkMastExecute={},寮傚父鍘熷洜={}",wrkMastExecute,e.getMessage());
         }
@@ -5380,9 +6200,9 @@
     }
 
     /*
-     * Rgv  鍔ㄤ綔
+     * Rgv  鍔ㄤ綔  绉诲姩
      * */
-    public synchronized boolean jarRgvTake(WrkMastExecute wrkMastExecute,Integer endRow){
+    public synchronized boolean jarRgvMoveTake(WrkMastExecute wrkMastExecute,Integer endRow){
         try {
             StaProtocol staProtocol = new StaProtocol();
             staProtocol.setSiteId(wrkMastExecute.getRgvId());
@@ -5400,6 +6220,27 @@
     }
 
     /*
+     * Rgv  鍔ㄤ綔  鍙栬揣
+     * */
+    public synchronized boolean jarRgvGetTake(WrkMastExecute wrkMastExecute,boolean RGV4,boolean RGV5){
+        try {
+            StaProtocol staProtocol = new StaProtocol();
+            staProtocol.setSiteId(wrkMastExecute.getRgvId());
+            staProtocol.setRGV4(RGV4);
+            staProtocol.setRGV5(RGV5);
+            // 涓嬪彂绔欑偣淇℃伅
+            if (!MessageQueue.offer(SlaveType.Devp, 2, new Task(10, staProtocol))) {
+                log.error("骞宠 杞gv鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={},浠诲姟鏁版嵁={},涓嬪彂鏁版嵁={}", wrkMastExecute.getRgvId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(staProtocol));
+                return false;
+            }
+            return true;
+        }catch (Exception e){
+            log.error("骞宠 杞gv鍛戒护涓嬪彂澶辫触锛孯gv鍙�={},浠诲姟鏁版嵁={},RGV4={},RGV5={}", wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(RGV4), JSON.toJSON(RGV5));
+        }
+        return false;
+    }
+
+    /*
      * Ste  鍔ㄤ綔
      * */
     public synchronized boolean jarSteTake(WrkMastExecute wrkMastExecute,Integer startLoad,Integer endLoad,SteTaskModeType steTaskModeType,boolean complete){
@@ -5410,6 +6251,7 @@
             steCommand.setEndLoad(endLoad);
             steCommand.setTaskModeType(steTaskModeType);
             steCommand.setComplete(complete);
+            steCommand.setJarNo(wrkMastExecute.getJarId().shortValue());
             if (!MessageQueue.offer(SlaveType.Ste, steCommand.getSteNo(), new Task(2, steCommand))) {
                 log.error("绌挎杞te鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={},浠诲姟鏁版嵁={},涓嬪彂鏁版嵁={},complete={}", steCommand.getSteNo(), JSON.toJSON(wrkMastExecute), JSON.toJSON(steCommand),complete);
                 return false;
@@ -5440,4 +6282,298 @@
         return false;
     }
 
+    /**
+     *  JarWrkMastExecute浠诲姟瀹屾垚   //鏈畬鎴�
+     */
+    public synchronized void jarWrkMastExecuteGenerateComplete(Integer sign) {
+        try{
+            switch (sign){
+                case 1:
+                case 5:
+                case 9:
+                    if (jarWrkMastExecuteGenerateSteComplete(sign)){
+                        break;
+                    }
+                case 2:
+                case 6:
+                case 10:
+                    if (jarWrkMastExecuteGenerateJarComplete(sign)){
+                        break;
+                    }
+                case 3:
+                case 7:
+                case 11:
+                    if (jarWrkMastExecuteGenerateRgvComplete1(sign)){
+                        break;
+                    }
+                case 4:
+                case 8:
+                case 12:
+                    if (jarWrkMastExecuteGenerateRgvComplete2(sign)){
+                        break;
+                    }
+                default:
+                    return;
+            }
+        }catch (Exception e){
+            log.error("灏忚溅澶嶄綅绾跨▼鎶ラ敊锛�"+e);
+        }
+    }
+
+    /**
+     *  JarWrkMastExecute浠诲姟瀹屾垚 ===>Ste   //瀹屾垚
+     */
+    public synchronized boolean jarWrkMastExecuteGenerateSteComplete(Integer sign) {
+        try{
+            for (SteSlave steSlave : slaveProperties.getSte()) {
+                SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steSlave.getId());
+                if (steThread == null) {
+                    continue;
+                }
+                SteProtocol steProtocol = steThread.getSteProtocol();
+                if (steProtocol == null) {
+                    continue;
+                }
+                if (steProtocol.getMode()==(short)1 && steProtocol.taskNo!=0 && steProtocol.getChargeStatus()==0){
+                    if (steProtocol.statusType.equals(SteStatusType.WAITING)){
+
+                    }
+                    WrkMastExecute wrkMastExecute = wrkMastExecuteService.getWrkMastExecuteByWrkNo(steProtocol.getTaskNo().longValue());
+                    if (!Cools.isEmpty(wrkMastExecute)){
+                        switch (wrkMastExecute.getIoType()){
+                            case 6:
+                                if (wrkMastExecute.getWrkSts()==3){//==>4
+                                    //1锛歊GV灏忚溅绉诲姩銆�2锛歊GV灏忚溅鍒颁綅銆�3锛歋te绌挎鐗堝彇璐с��4锛氬彇璐у畬鎴愮瓑寰呬笅涓�姝ャ��5锛歋te绌挎鐗堟斁璐ц嚦鍐峰嵈姹犮��6锛氭斁璐у畬鎴愩��7锛氭洿鏂板畬鎴�   //io_type = 6
+                                    //ste浠诲姟绛夊緟瀹屾垚
+                                    if (steProtocol.statusType.equals(SteStatusType.WAITING2)){
+                                        //ste浠诲姟瀹屾垚
+                                        if (jarSteTake(wrkMastExecute,null,null,null,true)){
+                                            wrkMastExecute.setWrkSts(4);
+                                            if (wrkMastExecuteService.updateById(wrkMastExecute)){
+                                                log.error("绌挎杞te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},绌挎杞︽暟鎹�={},sign={}",
+                                                        wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(steProtocol),sign);
+                                            }
+                                        }
+                                    }
+                                    log.error("绌挎杞te鍛戒护涓嬪彂澶辫触===>涓嬪彂寮傚父锛宩ar鍙�={},浠诲姟鏁版嵁={},绌挎杞︽暟鎹�={},sign={}",
+                                            wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(steProtocol),sign);
+                                    return true;
+                                }
+                            case 5:
+                                if (wrkMastExecute.getWrkSts()==5){
+                                    //1锛歊GV灏忚溅绉诲姩銆�2锛歊GV灏忚溅鍒颁綅銆�3锛歳gv鍙栬揣銆�4锛歳gv鍙栬揣瀹屾垚銆�5锛歋te绌挎鐗堝叆纭寲缃愩��6锛氬叆缃愬畬鎴愩��7锛氭洿鏂板畬鎴�   //io_type = 5
+                                    //ste浠诲姟瀹屾垚
+                                    if (wrkMastExecute.getWrkSts()==3){//==>4
+                                        //1锛歊GV灏忚溅绉诲姩銆�2锛歊GV灏忚溅鍒颁綅銆�3锛歋te绌挎鐗堝彇璐с��4锛氬彇璐у畬鎴愮瓑寰呬笅涓�姝ャ��5锛歋te绌挎鐗堟斁璐ц嚦鍐峰嵈姹犮��6锛氭斁璐у畬鎴愩��7锛氭洿鏂板畬鎴�   //io_type = 6
+                                        //ste浠诲姟绛夊緟瀹屾垚
+                                        if (steProtocol.statusType.equals(SteStatusType.WAITING)){
+                                            //ste浠诲姟瀹屾垚
+                                            if (jarSteTake(wrkMastExecute,null,null,null,true)){
+                                                wrkMastExecute.setWrkSts(6);
+                                                if (wrkMastExecuteService.updateById(wrkMastExecute)){
+                                                    log.error("绌挎杞te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},绌挎杞︽暟鎹�={},sign={}",
+                                                            wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(steProtocol),sign);
+                                                }
+                                            }
+                                        }
+                                        log.error("绌挎杞te鍛戒护涓嬪彂澶辫触===>涓嬪彂寮傚父锛宩ar鍙�={},浠诲姟鏁版嵁={},绌挎杞︽暟鎹�={},sign={}",
+                                                wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(steProtocol),sign);
+                                        return true;
+                                    }
+                                    return true;
+                                }
+                                return false;
+                            case 7:
+                            case 8:
+                            case 10:
+                            case 11:
+                                //1锛歊GV灏忚溅绉诲姩銆�2锛歊GV灏忚溅鍒颁綅銆�3锛歋te绌挎鐗堢Щ鍔ㄤ腑銆�4锛氱Щ鍔ㄥ畬鎴愩��5锛氭洿鏂板畬鎴�
+                                if (wrkMastExecute.getWrkSts()==3){
+                                    //ste浠诲姟瀹屾垚
+                                    if (steProtocol.statusType.equals(SteStatusType.WAITING)){
+                                        //ste浠诲姟瀹屾垚
+                                        if (jarSteTake(wrkMastExecute,null,null,null,true)){
+                                            wrkMastExecute.setWrkSts(4);
+                                            if (wrkMastExecuteService.updateById(wrkMastExecute)){
+                                                log.error("绌挎杞te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},绌挎杞︽暟鎹�={},sign={}",
+                                                        wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(steProtocol),sign);
+                                            }
+                                        }
+                                    }
+                                    log.error("绌挎杞te鍛戒护涓嬪彂澶辫触===>涓嬪彂寮傚父锛宩ar鍙�={},浠诲姟鏁版嵁={},绌挎杞︽暟鎹�={},sign={}",
+                                            wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(steProtocol),sign);
+                                    return true;
+                                }
+                                return false;
+                            case 9:
+                                if (wrkMastExecute.getWrkSts()==1){
+                                    //1锛歋te绌挎鐗堝彇鏀捐揣涓��2锛氭斁璐у畬鎴愮瓑寰呬笅涓�姝ャ��3锛氳緭閫佺嚎浠诲姟涓嬪彂瀹屾垚銆�4锛氭洿鏂板畬鎴�   //io_type = 9
+                                    //ste浠诲姟瀹屾垚
+                                    if (steProtocol.statusType.equals(SteStatusType.WAITING)){
+                                        //ste浠诲姟瀹屾垚
+                                        if (jarSteTake(wrkMastExecute,null,null,null,true)){
+                                            wrkMastExecute.setWrkSts(2);
+                                            if (wrkMastExecuteService.updateById(wrkMastExecute)){
+                                                log.error("绌挎杞te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},绌挎杞︽暟鎹�={},sign={}",
+                                                        wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(steProtocol),sign);
+                                            }
+                                        }
+                                    }
+                                    log.error("绌挎杞te鍛戒护涓嬪彂澶辫触===>涓嬪彂寮傚父锛宩ar鍙�={},浠诲姟鏁版嵁={},绌挎杞︽暟鎹�={},sign={}",
+                                            wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(steProtocol),sign);
+                                    return true;
+                                }
+                            default: return false;
+                        }
+                    }
+                }
+            }
+            return true;
+        }catch (Exception e){
+            log.error("灏忚溅澶嶄綅绾跨▼鎶ラ敊锛�"+e);
+        }
+        return false;
+    }
+
+    /**
+     *  JarWrkMastExecute浠诲姟瀹屾垚 ===>Jar   //瀹屾垚
+     *  //纭寲瀹屾垚 淇敼浠诲姟鐘舵��
+     */
+    public synchronized boolean jarWrkMastExecuteGenerateJarComplete(Integer sign) {
+        try{
+            for (JarSlave jarSlave : slaveProperties.getJar()) {
+                // 鑾峰彇纭寲缃愪俊鎭�
+                JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getId());
+                JarProtocol jarProtocol = jarThread.getJarProtocol();
+                if (jarProtocol == null) {
+                    continue;
+                }
+                if (jarProtocol.modeType != JarModeType.AUTO){
+                    continue;
+                }
+                BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
+                if (Cools.isEmpty(basJar)){
+                    log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
+                    continue;
+                }
+                //WAITING2(4, "纭寲瀹屾垚"),
+                if (jarProtocol.getJarErr()==0 && jarProtocol.getStatusType().equals(JarStatusType.WAITING2)
+                        && jarProtocol.isRightDoor() && jarProtocol.isLeftDoor() ){
+                    List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarSlave.getId(), new ArrayList<Integer>() {{
+                        add(5);//纭寲涓�
+                    }});
+                    if (basJarMastList.isEmpty()){
+                        continue;
+                    }
+                    Integer integer = basJarMastService.updateStatus(jarProtocol.getJarNo(), 5, 6);
+                    if (basJarMastList.size()!=integer){
+                        log.error("{}鍙风~鍖栫綈纭寲瀹屾垚淇敼纭寲妗f鐘舵�佺粨鏋滄暟閲忎笉涓�鑷达紒锛侊紒鏌ヨ璧勬枡鏁伴噺={}锛屾洿鏂拌繑鍥炴暟閲�={}",jarProtocol.getJarNo(),basJarMastList.size(),integer);
+                    }
+                }
+            }
+            return true;
+        }catch (Exception e){
+            log.error("灏忚溅澶嶄綅绾跨▼鎶ラ敊锛�"+e);
+        }
+        return false;
+    }
+
+    /**
+     *  JarWrkMastExecute浠诲姟瀹屾垚 ===>RGV绉诲姩  //瀹屾垚
+     */
+    public synchronized boolean jarWrkMastExecuteGenerateRgvComplete1(Integer sign) {
+        try{
+            WrkMastExecute wrkMastExecuteSou = new WrkMastExecute();
+            wrkMastExecuteSou.setWrkType(1);
+            List<WrkMastExecute> wrkMastExecuteList = wrkMastExecuteService.selectWrkMastExecuteByWrk(wrkMastExecuteSou);
+            for (WrkMastExecute wrkMastExecute : wrkMastExecuteList){
+                if (wrkMastExecute.getIoType() == 9){
+                    continue;
+                }
+                DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 2);
+                StaProtocol staProtocolRGV = devpThread.getStation().get(wrkMastExecute.getRgvId());
+                if (staProtocolRGV == null) {
+                    continue;
+                } else {
+                    staProtocolRGV = staProtocolRGV.clone();
+                }
+                if (staProtocolRGV == null) {
+                    continue;
+                }
+
+                StaProtocol staProtocolRGVEnd = devpThread.getStation().get(wrkMastExecute.getRgvEndId());
+                if (staProtocolRGVEnd == null) {
+                    continue;
+                } else {
+                    staProtocolRGVEnd = staProtocolRGVEnd.clone();
+                }
+                if (staProtocolRGVEnd == null) {
+                    continue;
+                }
+                if (staProtocolRGV.getNowRow() == staProtocolRGVEnd.getNowRow()
+                        && staProtocolRGV.getNowRow() == SteAndJarUtil.getRgvJarNowRow(wrkMastExecute.getJarId())){
+                    wrkMastExecute.setWrkSts(2);
+                    if (wrkMastExecuteService.updateById(wrkMastExecute)){
+                        log.error("骞宠 杞gv鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},骞宠 杞gv鏁版嵁={},sign={}",
+                                wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(staProtocolRGV),sign);
+                        return false;
+                    }
+                    return true;
+                }
+            }
+            return true;
+        }catch (Exception e){
+            log.error("灏忚溅澶嶄綅绾跨▼鎶ラ敊锛�"+e);
+        }
+        return false;
+    }
+
+    /**
+     *  JarWrkMastExecute浠诲姟瀹屾垚 ===>RGV鍙栬揣  //瀹屾垚
+     */
+    public synchronized boolean jarWrkMastExecuteGenerateRgvComplete2(Integer sign) {
+        try{
+            WrkMastExecute wrkMastExecuteSou = new WrkMastExecute();
+            wrkMastExecuteSou.setWrkType(3);
+            wrkMastExecuteSou.setIoType(5);
+            List<WrkMastExecute> wrkMastExecuteList = wrkMastExecuteService.selectWrkMastExecuteByWrk(wrkMastExecuteSou);
+            for (WrkMastExecute wrkMastExecute : wrkMastExecuteList){
+                DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 2);
+                StaProtocol staProtocolRGV = devpThread.getStation().get(wrkMastExecute.getRgvId());
+                if (staProtocolRGV == null) {
+                    continue;
+                } else {
+                    staProtocolRGV = staProtocolRGV.clone();
+                }
+                if (staProtocolRGV == null) {
+                    continue;
+                }
+
+                StaProtocol staProtocolRGVEnd = devpThread.getStation().get(wrkMastExecute.getRgvEndId());
+                if (staProtocolRGVEnd == null) {
+                    continue;
+                } else {
+                    staProtocolRGVEnd = staProtocolRGVEnd.clone();
+                }
+                if (staProtocolRGVEnd == null) {
+                    continue;
+                }
+                if (staProtocolRGV.getNowRow() == staProtocolRGVEnd.getNowRow()
+                        && staProtocolRGV.getNowRow() == SteAndJarUtil.getRgvJarNowRow(wrkMastExecute.getJarId())){
+                    wrkMastExecute.setWrkSts(4);
+                    if (wrkMastExecuteService.updateById(wrkMastExecute)){
+                        log.error("骞宠 杞gv鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},骞宠 杞gv鏁版嵁={},sign={}",
+                                wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(staProtocolRGV),sign);
+                        return false;
+                    }
+                    return true;
+                }
+            }
+            return true;
+        }catch (Exception e){
+            log.error("灏忚溅澶嶄綅绾跨▼鎶ラ敊锛�"+e);
+        }
+        return false;
+    }
+
 }

--
Gitblit v1.9.1