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/WrkMastExecuteServiceImpl.java |   15 
 src/main/java/com/zy/core/thread/JarThread.java                       |    3 
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java           | 1226 +++++++++++++++++++++++++++++++++++++++++++-
 src/main/java/com/zy/asrs/mapper/WrkMastExecuteMapper.java            |   10 
 src/main/resources/mapper/BasJarMastMapper.xml                        |    8 
 src/main/java/com/zy/asrs/service/impl/BasJarMastServiceImpl.java     |    5 
 src/main/java/com/zy/asrs/service/BasJarMastService.java              |    2 
 src/main/resources/mapper/WrkMastExecuteMapper.xml                    |   46 +
 src/main/java/com/zy/asrs/entity/WrkMastExecute.java                  |   15 
 src/main/java/com/zy/core/model/protocol/StaProtocol.java             |    4 
 src/main/java/com/zy/core/model/command/SteCommand.java               |    3 
 src/main/java/com/zy/core/thread/SteThread.java                       |    5 
 src/main/java/com/zy/core/model/protocol/SteProtocol.java             |    4 
 src/main/java/com/zy/asrs/service/WrkMastExecuteService.java          |    6 
 src/main/java/com/zy/core/enums/SlaveType.java                        |    3 
 src/main/java/com/zy/core/MainProcess.java                            |    9 
 src/main/java/com/zy/asrs/mapper/BasJarMastMapper.java                |    4 
 src/main/java/com/zy/core/thread/SiemensDevpThread.java               |  159 +++++
 src/main/java/com/zy/asrs/utils/SteAndJarUtil.java                    |   68 ++
 src/main/java/com/zy/core/enums/SteStatusType.java                    |    7 
 20 files changed, 1,529 insertions(+), 73 deletions(-)

diff --git a/src/main/java/com/zy/asrs/entity/WrkMastExecute.java b/src/main/java/com/zy/asrs/entity/WrkMastExecute.java
index ab3248a..895f5bf 100644
--- a/src/main/java/com/zy/asrs/entity/WrkMastExecute.java
+++ b/src/main/java/com/zy/asrs/entity/WrkMastExecute.java
@@ -102,6 +102,13 @@
     private Integer rgvId;
 
     /**
+     * RGV
+     */
+    @ApiModelProperty(value= "RGV")
+    @TableField("rgv_end_id")
+    private Integer rgvEndId;
+
+    /**
      * 浣滀笟鏃堕棿
      */
     @ApiModelProperty(value= "浣滀笟鏃堕棿")
@@ -134,6 +141,14 @@
 
     /**
      * 宸ヤ綔鐘舵��
+     * 0:鍒濆  wrk_type
+     * 1锛歊GV灏忚溅閬胯銆�2锛氶伩璁╁畬鎴愩��3锛氬紑闂ㄤ腑銆�4锛氬紑闂ㄥ畬鎴愩��5锛氭洿鏂板畬鎴�    //io_type = 1銆�3
+     * 1锛歊GV灏忚溅閬胯銆�2锛氶伩璁╁畬鎴愩��3锛氬叧闂ㄤ腑銆�4锛氬叧闂ㄥ畬鎴愩��5锛氭洿鏂板畬鎴�    //io_type = 2銆�4
+     * 1锛歊GV灏忚溅绉诲姩銆�2锛歊GV灏忚溅鍒颁綅銆�3锛歳gv鍙栬揣銆�4锛歳gv鍙栬揣瀹屾垚銆�5锛歋te绌挎鐗堝叆纭寲缃愩��6锛氬叆缃愬畬鎴愩��7锛氭洿鏂板畬鎴�   //io_type = 5
+     * 1锛歊GV灏忚溅绉诲姩銆�2锛歊GV灏忚溅鍒颁綅銆�3锛歋te绌挎鐗堝彇璐с��4锛氬彇璐у畬鎴愮瓑寰呬笅涓�姝ャ��5锛歋te绌挎鐗堟斁璐ц嚦鍐峰嵈姹犮��6锛氭斁璐у畬鎴愩��7锛氭洿鏂板畬鎴�   //io_type = 6
+     * 1锛歊GV灏忚溅绉诲姩銆�2锛歊GV灏忚溅鍒颁綅銆�3锛歋te绌挎鐗堢Щ鍔ㄤ腑銆�4锛氱Щ鍔ㄥ畬鎴愩��5锛氭洿鏂板畬鎴�   //io_type = 7銆�8
+     * 1锛歋te绌挎鐗堝彇鏀捐揣涓��2锛氭斁璐у畬鎴愮瓑寰呬笅涓�姝ャ��3锛氳緭閫佺嚎浠诲姟涓嬪彂瀹屾垚銆�4锛氭洿鏂板畬鎴�   //io_type = 9
+     * 1锛歊GV灏忚溅绉诲姩銆�2锛歊GV灏忚溅鍒颁綅銆�3锛歋te绌挎鐗堢Щ鍔ㄤ腑銆�4锛氱Щ鍔ㄥ畬鎴愩��5锛氭洿鏂板畬鎴�   //io_type = 10銆�11
      */
     @ApiModelProperty(value= "宸ヤ綔鐘舵��")
     @TableField("wrk_sts")
diff --git a/src/main/java/com/zy/asrs/mapper/BasJarMastMapper.java b/src/main/java/com/zy/asrs/mapper/BasJarMastMapper.java
index 23ed3a8..d2c7770 100644
--- a/src/main/java/com/zy/asrs/mapper/BasJarMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/BasJarMastMapper.java
@@ -6,6 +6,7 @@
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
+import java.util.Date;
 import java.util.List;
 
 @Mapper
@@ -26,4 +27,7 @@
 
     Integer selectJarMastOperationByStatusList(@Param("jarId") Integer jarId,@Param("statusList") List<Integer> statusList);
 
+    Integer updateStatus(@Param("jarId") Integer jarId, @Param("status") Integer status, @Param("statusUpdate") Integer statusUpdate);
+
+
 }
diff --git a/src/main/java/com/zy/asrs/mapper/WrkMastExecuteMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastExecuteMapper.java
index ba97d72..a87b6de 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkMastExecuteMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkMastExecuteMapper.java
@@ -16,11 +16,15 @@
 
     List<WrkMastExecute> getWrkMastByJarId(@Param("jarId") Integer jarId);
 
-    List<WrkMastExecute> sselectWrkMastExecuteByType(@Param("type") Integer type);
+    List<WrkMastExecute> selectWrkMastExecuteByType(@Param("type") Integer type);
 
-    List<WrkMastExecute> sselectWrkMastExecuteByTypeAndIoTyper(@Param("type")Integer type,@Param("ioType")Integer ioType);
+    List<WrkMastExecute> selectWrkMastExecuteByTypeAndIoTyperAndWrkType(@Param("type")Integer type,@Param("ioType")Integer ioType,@Param("wrkType")Integer wrkType);
+
+    List<WrkMastExecute> selectWrkMastExecuteByWrk(@Param("type")Integer type,@Param("ioType")Integer ioType,
+                                                   @Param("wrkType")Integer wrkType,@Param("steNo")Integer steNo,
+                                                   @Param("jarNo")Integer jarNo,@Param("rgvNo")Integer rgvNo);
 
 
-    Integer getWrkMastByJarIdCount(@Param("jarId") Integer jarId);
+    Integer getWrkMastExecuteByJarIdCount(@Param("jarId") Integer jarId);
 
 }
diff --git a/src/main/java/com/zy/asrs/service/BasJarMastService.java b/src/main/java/com/zy/asrs/service/BasJarMastService.java
index b128dfa..924f6af 100644
--- a/src/main/java/com/zy/asrs/service/BasJarMastService.java
+++ b/src/main/java/com/zy/asrs/service/BasJarMastService.java
@@ -33,4 +33,6 @@
 
     Integer selectJarMastOperation(Integer jarId,Integer type);
 
+    Integer updateStatus(Integer jarId,Integer status,Integer statusUpdate);
+
 }
diff --git a/src/main/java/com/zy/asrs/service/WrkMastExecuteService.java b/src/main/java/com/zy/asrs/service/WrkMastExecuteService.java
index 50bd6ef..ada23c3 100644
--- a/src/main/java/com/zy/asrs/service/WrkMastExecuteService.java
+++ b/src/main/java/com/zy/asrs/service/WrkMastExecuteService.java
@@ -11,9 +11,11 @@
 
     List<WrkMastExecute> getWrkMastExecuteByJarNo(Integer jarId);
 
-    List<WrkMastExecute> sselectWrkMastExecuteByType(Integer type);
+    List<WrkMastExecute> selectWrkMastExecuteByType(Integer type);
 
-    List<WrkMastExecute> sselectWrkMastExecuteByTypeAndIoTyper(Integer type,Integer ioType);
+    List<WrkMastExecute> selectWrkMastExecuteByTypeAndIoTyperAndWrkType(Integer type,Integer ioType,Integer wrkType);
+
+    List<WrkMastExecute> selectWrkMastExecuteByWrk(WrkMastExecute wrkMastExecute);
 
     Integer getWrkMastExecuteByJarIdCount(Integer jarId);
 
diff --git a/src/main/java/com/zy/asrs/service/impl/BasJarMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/BasJarMastServiceImpl.java
index ee80b66..d0f5819 100644
--- a/src/main/java/com/zy/asrs/service/impl/BasJarMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/BasJarMastServiceImpl.java
@@ -204,4 +204,9 @@
         return this.baseMapper.selectJarMastOperationByStatusList(jarId,statusList);
     }
 
+    @Override
+    public Integer updateStatus(Integer jarId,Integer status,Integer statusUpdate) {
+        return this.baseMapper.updateStatus(jarId,status,statusUpdate);
+    }
+
 }
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;
+    }
+
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/WrkMastExecuteServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkMastExecuteServiceImpl.java
index 072b583..d540eb7 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkMastExecuteServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkMastExecuteServiceImpl.java
@@ -22,17 +22,22 @@
     }
 
     @Override
-    public List<WrkMastExecute> sselectWrkMastExecuteByType(Integer type) {
-        return this.baseMapper.sselectWrkMastExecuteByType(type);
+    public List<WrkMastExecute> selectWrkMastExecuteByType(Integer type) {
+        return this.baseMapper.selectWrkMastExecuteByType(type);
     }
 
     @Override
-    public List<WrkMastExecute> sselectWrkMastExecuteByTypeAndIoTyper(Integer type,Integer ioType) {
-        return this.baseMapper.sselectWrkMastExecuteByTypeAndIoTyper(type,ioType);
+    public List<WrkMastExecute> selectWrkMastExecuteByTypeAndIoTyperAndWrkType(Integer type,Integer ioType,Integer wrkType) {
+        return this.baseMapper.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(type,ioType,wrkType);
+    }
+
+    @Override
+    public List<WrkMastExecute> selectWrkMastExecuteByWrk(WrkMastExecute wrkMastExecute) {
+        return this.baseMapper.selectWrkMastExecuteByWrk(wrkMastExecute.getType(),wrkMastExecute.getIoType(),wrkMastExecute.getWrkType(),wrkMastExecute.getSteId(),wrkMastExecute.getJarId(),wrkMastExecute.getRgvId());
     }
 
     @Override
     public Integer getWrkMastExecuteByJarIdCount(Integer jarId) {
-        return this.baseMapper.getWrkMastByJarIdCount(jarId);
+        return this.baseMapper.getWrkMastExecuteByJarIdCount(jarId);
     }
 }
diff --git a/src/main/java/com/zy/asrs/utils/SteAndJarUtil.java b/src/main/java/com/zy/asrs/utils/SteAndJarUtil.java
index 91eb37b..22d1cfa 100644
--- a/src/main/java/com/zy/asrs/utils/SteAndJarUtil.java
+++ b/src/main/java/com/zy/asrs/utils/SteAndJarUtil.java
@@ -11,6 +11,74 @@
         return (steNowRow==(short) 1 && (jarNo == 2 || jarNo == 4)) || (steNowRow==(short)3 && (jarNo == 1 || jarNo == 3));
     }
 
+    /**
+     * RGV浣嶇疆姝e鑾峰彇
+     */
+    public static Integer getRgvJarNowRow(Integer jarNo){
+        switch (jarNo){
+            case 1:
+            case 3:
+                return 3;
+            case 2:
+            case 4:
+            case 5:
+            case 6:
+                return 1;
+        }
+        return 2;
+    }
+
+    /**
+     * RGV浣嶇疆姝e鑾峰彇
+     */
+    public static boolean getRgvJarNowRow(Integer staNo,short nowRow){
+        switch (staNo){
+            case 615:
+            case 622:
+            case 628:
+            case 627:
+                return nowRow==(short) 1;
+            case 612:
+            case 619:
+                return nowRow==(short) 2;
+        }
+        return false;
+    }
+
+    /**
+     * RGV浣嶇疆姝e鑾峰彇
+     */
+    public static Integer getRgvStaRow(Integer staNo){
+        switch (staNo){
+            case 615:
+            case 622:
+            case 628:
+            case 627:
+                return  1;
+            case 612:
+            case 619:
+                return  2;
+        }
+        return 0;
+    }
+
+    /**
+     * 鑾峰彇姝e鍐峰嵈妲界~鍖栫綈
+     */
+    public static Integer getRgvJarNo(Integer jarNo){
+        switch (jarNo){
+            case 1:
+            case 2:
+                return  2;
+            case 3:
+            case 4:
+            case 5:
+            case 6:
+                return  4;
+        }
+        return 0;
+    }
+
     public static void main(String[] args) {
 
     }
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index 399f0e7..a0ff888 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -90,19 +90,18 @@
                     mainService.storeEmptyPltLarge();
                     // 鍑哄簱  ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�
                     mainService.ledExecute();
-                    // 鍏朵粬  ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅
+                    // 鍏朵粬   ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅
                     mainService.ledReset();
 
                     /************************************JAR璋冨害************************************/
+                    //JarWrkMastExecute浠诲姟瀹屾垚
+                    mainService.jarWrkMastExecuteGenerateComplete(k);
                     //JarWrkMastExecute浠诲姟鍒涘缓   //纭寲缃�
                     mainService.jarWrkMastExecuteGenerate(k);
-
+                    //JarWrkMastExecute浠诲姟鎵ц
                     mainService.jarWrkMastExecuteAction(k);
                     //Jar浠诲姟鍒涘缓  //瀹屾垚
                     mainService.jarMastGenerate();
-
-
-
 
                     /************************************JAR璋冨害************************************/
 
diff --git a/src/main/java/com/zy/core/enums/SlaveType.java b/src/main/java/com/zy/core/enums/SlaveType.java
index 2896dc6..8372df4 100644
--- a/src/main/java/com/zy/core/enums/SlaveType.java
+++ b/src/main/java/com/zy/core/enums/SlaveType.java
@@ -10,7 +10,8 @@
     Car,
     Rgv,
     Ste,
-    Jar
+    Jar,
+    JarB
     ;
 
     public static SlaveType findInstance(String s){
diff --git a/src/main/java/com/zy/core/enums/SteStatusType.java b/src/main/java/com/zy/core/enums/SteStatusType.java
index c757c52..129e005 100644
--- a/src/main/java/com/zy/core/enums/SteStatusType.java
+++ b/src/main/java/com/zy/core/enums/SteStatusType.java
@@ -2,11 +2,14 @@
 
 public enum SteStatusType {
 
+    OFF_LINE(-1, "鏈煡"),
     IDLE(0, "绌洪棽"),
     MOVING(1, "浣滀笟涓�"),
-    SOS(2, "鎶ヨ"),
+    SOS(2, "鍋滄涓�"),
+    SOS2(3, "鎶ヨ锛氭晠闅滀腑"),
+    SOS3(4, "澶嶄綅涓�"),
     WAITING(10, "绛夊緟纭"),
-    OFF_LINE(-1, "鏈煡"),
+    WAITING2(11, "鏈夌墿寰呬綔涓�"),
     OTHER(100, "鍏跺畠"),
     ;
 
diff --git a/src/main/java/com/zy/core/model/command/SteCommand.java b/src/main/java/com/zy/core/model/command/SteCommand.java
index 365370e..58471f3 100644
--- a/src/main/java/com/zy/core/model/command/SteCommand.java
+++ b/src/main/java/com/zy/core/model/command/SteCommand.java
@@ -32,6 +32,9 @@
 //
     @JSONField(serialize = false)
     private SteTaskModeType taskModeType;
+
+    private Short jarNo;
+
 //
 //    // 璧峰璁惧鍙�
 //    private Short startSsbm;
diff --git a/src/main/java/com/zy/core/model/protocol/StaProtocol.java b/src/main/java/com/zy/core/model/protocol/StaProtocol.java
index 9fd2f8f..b353b8d 100644
--- a/src/main/java/com/zy/core/model/protocol/StaProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/StaProtocol.java
@@ -83,8 +83,8 @@
     private boolean RGV1;//灏忚溅鏃犺揣绌洪棽
     private boolean RGV2;//灏忚溅杈撻�佺嚎鍙栬揣鍒颁綅
     private boolean RGV3;//灏忚溅杩愯涓�
-    private boolean RGV4;//灏忚溅鏀瑰乏渚ц揣鐗╃洰鏍囩珯   鍙�1锛堝乏锛夎揣鐗�
-    private boolean RGV5;//灏忚溅鏀瑰彸渚ц揣鐗╃洰鏍囩珯   鍙�2锛堝彸锛夎揣鐗�
+    private boolean RGV4;//灏忚溅鏀瑰乏渚ц揣鐗╃洰鏍囩珯   鍙�1锛堝乏锛夎揣鐗�  锛堥潰鏈濆叆鏂欏彛锛�
+    private boolean RGV5;//灏忚溅鏀瑰彸渚ц揣鐗╃洰鏍囩珯   鍙�2锛堝彸锛夎揣鐗�  锛堥潰鏈濆叆鏂欏彛锛�
     private boolean RGV6;//涓婁綅鏈烘竻闄ゅ钩绉昏溅璧勬枡
 
     public BasDevp toSqlModel(){
diff --git a/src/main/java/com/zy/core/model/protocol/SteProtocol.java b/src/main/java/com/zy/core/model/protocol/SteProtocol.java
index 4986894..f9734cf 100644
--- a/src/main/java/com/zy/core/model/protocol/SteProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/SteProtocol.java
@@ -33,7 +33,9 @@
      IDLE(0, "绌洪棽"),
      MOVING(1, "浣滀笟涓�"),
      SOS(2, "鎶ヨ"),
-     WAITING(3, "浠诲姟瀹屾垚绛夊緟WCS纭"),
+     WAITING(10, "绛夊緟纭"),
+     OFF_LINE(-1, "鏈煡"),
+     OTHER(100, "鍏跺畠"),
      */
     public Short status;
 
diff --git a/src/main/java/com/zy/core/thread/JarThread.java b/src/main/java/com/zy/core/thread/JarThread.java
index 311d53d..9471b80 100644
--- a/src/main/java/com/zy/core/thread/JarThread.java
+++ b/src/main/java/com/zy/core/thread/JarThread.java
@@ -118,6 +118,9 @@
      */
     private void readStatus(){
         try {
+            if (slave.getId()>4){
+                return;
+            }
             OperateResultExOne<byte[]> result = siemensS7Net.Read("V300", (short) 26);
             if (result.IsSuccess) {
                 if (null == jarProtocol) {
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index cd891bc..3850d4e 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -313,8 +313,8 @@
                     staProtocol.setRGV1(status[0]);  // 鑷姩
                     staProtocol.setRGV2(status[1]);  // 鏈夌墿
                     staProtocol.setRGV3(status[2]); // 鍙叆
-                    staProtocol.setRGV4(status[3]);// 鍙嚭
-                    staProtocol.setRGV5(status[4]);  // 绌烘澘淇″彿
+                    staProtocol.setRGV4(status[3]);//
+                    staProtocol.setRGV5(status[4]);  //
                     staProtocol.setRGV6(status[5]);  // 婊℃墭鐩�
                 }
             }
@@ -541,30 +541,148 @@
     /**
      * 鍐欏叆 ID+鐩爣绔� =====> 鍗曠珯鐐瑰啓鍏�
      */
+    private void write10(StaProtocol staProtocol) throws InterruptedException {
+        if (null == staProtocol) {
+            return;
+        }
+        boolean rgv4 = staProtocol.isRGV4();
+        boolean rgv5 = staProtocol.isRGV5();
+        OperateResult result1 = null;
+        OperateResult result2 = null;
+        String resultV1 = "";
+        String resultV2 = "";
+        switch (staProtocol.getSiteId()){
+            case 623:
+                resultV1 = "1804";
+                resultV2 = "1804";
+                break;
+            case 624:
+                resultV1 = "1810";
+                resultV2 = "1810";
+                break;
+            case 625:
+                resultV1 = "1816";
+                resultV2 = "1816";
+                break;
+            case 626:
+                resultV1 = "1822";
+                resultV2 = "1822";
+                break;
+            default:
+                return;
+        }
+        result1 = siemensS7Net.Write(rgv4?resultV1+".4":resultV1+".3", rgv4?rgv5:rgv4);
+        //纭寲缃愪换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔�
+        try {
+            Thread.sleep(200);
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        }
+
+        int writeCount = 1;
+        do {
+            try{
+                if(!result1.IsSuccess){
+                    log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔�  鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount);
+                    result1 = siemensS7Net.Write(rgv4?resultV1+".4":resultV1+".3", rgv4?rgv5:rgv4);
+                    Thread.sleep(100);
+                    writeCount++;
+                    continue;
+                }
+                OperateResultExOne<byte[]> resultRead1 = siemensS7Net.Read(resultV1, (short) 2);
+                if (resultRead1.IsSuccess) {
+                    boolean[] status = siemensS7Net.getByteTransform().TransBool(resultRead1.Content, 0, 1);
+                    boolean status1 = status[rgv4? 4:3];
+                    if (status1 == rgv4?rgv5:rgv4){
+                        break;
+                    } else {
+                        log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔�  鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount);
+                        result1 = siemensS7Net.Write(rgv4?resultV1+".4":resultV1+".3", rgv4?rgv5:rgv4);
+                        Thread.sleep(100);
+                        writeCount++;
+                        continue;
+                    }
+                } else {
+                    log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔�  鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount);
+                    result1 = siemensS7Net.Write(rgv4?resultV1+".4":resultV1+".3", rgv4?rgv5:rgv4);
+                    Thread.sleep(100);
+                    writeCount++;
+                    continue;
+                }
+            }catch (Exception e){
+                log.error("鍐欏叆RGV鏁版嵁鍚庡洖璇诲嚭閿�,寮傚父锛�"+e);
+            }
+            writeCount++;
+        } while (writeCount<6);
+
+        result2 = siemensS7Net.Write(rgv4?resultV2+".3":resultV2+".4", rgv4?rgv4:rgv5);
+        writeCount = 1;
+        do {
+            try{
+                if(!result2.IsSuccess){
+                    log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔�  鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount);
+                    result2 = siemensS7Net.Write(rgv4?resultV2+".3":resultV2+".4", rgv4?rgv4:rgv5);
+                    Thread.sleep(100);
+                    writeCount++;
+                    continue;
+                }
+                OperateResultExOne<byte[]> resultRead2 = siemensS7Net.Read(resultV2, (short) 1);
+                if (resultRead2.IsSuccess) {
+                    boolean[] status = siemensS7Net.getByteTransform().TransBool(resultRead2.Content, 0, 1);
+                    boolean status1 = status[rgv4? 3:4];
+                    if (status1 ==  rgv4?rgv4:rgv5){
+                        break;
+                    } else {
+                        log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔�  鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount);
+                        result2 = siemensS7Net.Write(rgv4?resultV2+".3":resultV2+".4", rgv4?rgv4:rgv5);
+                        Thread.sleep(100);
+                        writeCount++;
+                        continue;
+                    }
+                } else {
+                    log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔�  鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount);
+                    result2 = siemensS7Net.Write(rgv4?resultV2+".3":resultV2+".4", rgv4?rgv4:rgv5);
+                    Thread.sleep(100);
+                    writeCount++;
+                    continue;
+                }
+            }catch (Exception e){
+                log.error("鍐欏叆RGV鏁版嵁鍚庡洖璇诲嚭閿�,寮傚父锛�"+e);
+            }
+            writeCount++;
+        } while (writeCount<6);
+    }
     private void write9(StaProtocol staProtocol) throws InterruptedException {
         if (null == staProtocol) {
             return;
         }
         short resultS1 = staProtocol.getEndRow();
         OperateResult result1 = null;
+        OperateResult result2 = null;
         String resultV1 = "";
+        String resultV2 = "";
         switch (staProtocol.getSiteId()){
             case 623:
                 resultV1 = "1800";
+                resultV2 = "1812";
                 break;
             case 624:
                 resultV1 = "1806";
+                resultV2 = "1818";
                 break;
             case 625:
                 resultV1 = "1812";
+                resultV2 = "1800";
                 break;
             case 626:
                 resultV1 = "1818";
+                resultV2 = "1806";
                 break;
             default:
                 return;
         }
         result1 = siemensS7Net.Write(resultV1, resultS1);
+        result2 = siemensS7Net.Write(resultV2, resultS1);
         //纭寲缃愪换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔�
         try {
             Thread.sleep(200);
@@ -585,7 +703,7 @@
                 OperateResultExOne<byte[]> resultRead1 = siemensS7Net.Read(resultV1, (short) 2);
                 if (resultRead1.IsSuccess) {
                     short transInt16 = siemensS7Net.getByteTransform().TransInt16(resultRead1.Content, 0);
-                    if (transInt16 == resultS1 || transInt16 == (short) 2 || transInt16 == (short) 3){
+                    if (transInt16 == resultS1){
                         break;
                     } else {
                         log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔�  鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount);
@@ -607,6 +725,41 @@
             writeCount++;
         } while (writeCount<6);
 
+        writeCount = 1;
+        do {
+            try{
+                if(!result2.IsSuccess){
+                    log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔�  鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount);
+                    result2 = siemensS7Net.Write(resultV2, resultS1);
+                    Thread.sleep(100);
+                    writeCount++;
+                    continue;
+                }
+                OperateResultExOne<byte[]> resultRead2 = siemensS7Net.Read(resultV2, (short) 2);
+                if (resultRead2.IsSuccess) {
+                    short transInt16 = siemensS7Net.getByteTransform().TransInt16(resultRead2.Content, 0);
+                    if (transInt16 == resultS1){
+                        break;
+                    } else {
+                        log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔�  鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount);
+                        result2 = siemensS7Net.Write(resultV2, resultS1);
+                        Thread.sleep(100);
+                        writeCount++;
+                        continue;
+                    }
+                } else {
+                    log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔�  鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount);
+                    result2 = siemensS7Net.Write(resultV2, resultS1);
+                    Thread.sleep(100);
+                    writeCount++;
+                    continue;
+                }
+            }catch (Exception e){
+                log.error("鍐欏叆RGV鏁版嵁鍚庡洖璇诲嚭閿�,寮傚父锛�"+e);
+            }
+            writeCount++;
+        } while (writeCount<6);
+
         if (!result1.IsSuccess) {
             staProtocol = station.get(staProtocol.getSiteId());
             OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}", slave.getId(), JSON.toJSON(staProtocol)));
diff --git a/src/main/java/com/zy/core/thread/SteThread.java b/src/main/java/com/zy/core/thread/SteThread.java
index 41ef4d8..4483c28 100644
--- a/src/main/java/com/zy/core/thread/SteThread.java
+++ b/src/main/java/com/zy/core/thread/SteThread.java
@@ -226,7 +226,7 @@
             siemensS7Net.Write("DB100.12", (short) 0);//璧峰鐐逛綅
             siemensS7Net.Write("DB100.14", (short) 0);//鐩殑鐐逛綅
             siemensS7Net.Write("DB100.16.0", false);//浠诲姟寮�濮嬬‘璁や綅
-            siemensS7Net.Write("DB100.16.1", false);//浠诲姟瀹屾垚纭
+//            siemensS7Net.Write("DB100.18", (short) 0);//纭寲缃愬彿
             // 1.浠诲姟鍙�
             OperateResult result0 = siemensS7Net.Write("DB100.2", command.getTaskNo().shortValue());
             try {
@@ -240,8 +240,9 @@
                 OperateResult result1 = siemensS7Net.Write("DB100.4", command.getTaskMode());
                 OperateResult result2 = siemensS7Net.Write("DB100.12", (short) command.getStartLoad().shortValue());//璧峰鐐逛綅
                 OperateResult result3 = siemensS7Net.Write("DB100.14", (short) command.getEndLoad().shortValue());//鐩殑鐐逛綅
+                OperateResult result4 = siemensS7Net.Write("DB100.18", (short) command.getJarNo());//鐩殑鐐逛綅
                 // 3.纭寮�濮嬩换鍔�
-                if (result0.IsSuccess && result1.IsSuccess && result2.IsSuccess && result3.IsSuccess) {
+                if (result0.IsSuccess && result1.IsSuccess && result2.IsSuccess && result3.IsSuccess && result4.IsSuccess) {
                     result = siemensS7Net.Write("DB100.16.0", true);
 
                     try {
diff --git a/src/main/resources/mapper/BasJarMastMapper.xml b/src/main/resources/mapper/BasJarMastMapper.xml
index dd70c8b..9eab836 100644
--- a/src/main/resources/mapper/BasJarMastMapper.xml
+++ b/src/main/resources/mapper/BasJarMastMapper.xml
@@ -101,4 +101,12 @@
         order by jar_loc_digit desc
     </select>
 
+    <update id="updateStatus">
+        update asr_bas_jar_mast
+        set status = #{statusUpdate}
+        where 1=1
+        and jar_id = #{jarId}
+        and status = #{status}
+    </update>
+
 </mapper>
diff --git a/src/main/resources/mapper/WrkMastExecuteMapper.xml b/src/main/resources/mapper/WrkMastExecuteMapper.xml
index ca69ed5..2e3950d 100644
--- a/src/main/resources/mapper/WrkMastExecuteMapper.xml
+++ b/src/main/resources/mapper/WrkMastExecuteMapper.xml
@@ -22,8 +22,39 @@
         <result column="wrk_sts" property="wrkSts" />
         <result column="io_type" property="ioType" />
         <result column="type" property="type" />
+        <result column="rgv_end_id" property="rgvEndId" />
 
     </resultMap>
+
+    <sql id="batchSeq">
+        <if test="type != null">
+            and type = #{type}
+        </if>
+        <if test="ioType != null">
+            and io_type = #{ioType}
+        </if>
+        <if test="wrkType != null">
+            and wrk_type = #{wrkType}
+        </if>
+        <if test="steNo != null">
+            and ste_id = #{steNo}
+        </if>
+        <if test="jarNo != null">
+            and jar_id = #{jarNo}
+        </if>
+        <if test="rgvNo != null">
+            and rgv_id = #{rgvNo}
+        </if>
+        <!--        <choose>-->
+        <!--            <when test="type != null and type != ''">-->
+        <!--                and type = #{type}-->
+        <!--            </when>-->
+        <!--            <otherwise>-->
+        <!--                and (type IS NULL OR type = '')-->
+        <!--            </otherwise>-->
+        <!--        </choose>-->
+
+    </sql>
 
     <select id="getWrkMastExecuteByWrkNo" resultMap="BaseResultMap">
         select top 1 * from jar_wrk_mast_execute
@@ -37,14 +68,25 @@
         and jar_id = #{jarId}
     </select>
 
-    <select id="sselectWrkMastExecuteByType" resultMap="BaseResultMap">
+    <select id="selectWrkMastExecuteByType" resultMap="BaseResultMap">
         select * from jar_wrk_mast_execute
         where 1=1
         and type = #{type}
-        and io_type = #{iotype}
         and wrk_type = 0;
     </select>
 
+    <select id="selectWrkMastExecuteByTypeAndIoTyperAndWrkType" resultMap="BaseResultMap">
+        select * from jar_wrk_mast_execute
+        where 1=1
+        <include refid="batchSeq"></include>
+    </select>
+
+    <select id="selectWrkMastExecuteByWrk" resultMap="BaseResultMap">
+        select * from jar_wrk_mast_execute
+        where 1=1
+        <include refid="batchSeq"></include>
+    </select>
+
     <select id="getWrkMastExecuteByJarIdCount" resultType="Integer">
         select count(1) from jar_wrk_mast_execute
         where 1=1

--
Gitblit v1.9.1