From 8bec7ee843170eb04f0da49ffc8c5c5d889a87fd Mon Sep 17 00:00:00 2001
From: yxFwq <1>
Date: 星期三, 10 七月 2024 15:00:38 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 5252 +++++++++++++++++++++++++++++++++++------------------------
 1 files changed, 3,106 insertions(+), 2,146 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 4e57430..5dd7668 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -6,14 +6,12 @@
 import com.baomidou.mybatisplus.mapper.Wrapper;
 import com.core.common.Cools;
 import com.core.common.DateUtils;
+import com.core.common.R;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
 import com.zy.asrs.mapper.*;
 import com.zy.asrs.service.*;
-import com.zy.asrs.utils.CodeDetectionUtil;
-import com.zy.asrs.utils.RouteUtils;
-import com.zy.asrs.utils.Utils;
-import com.zy.asrs.utils.VersionUtils;
+import com.zy.asrs.utils.*;
 import com.zy.common.model.LocTypeDto;
 import com.zy.common.model.MatDto;
 import com.zy.common.model.SearchLocParam;
@@ -25,27 +23,23 @@
 import com.zy.common.utils.RgvUtils;
 import com.zy.core.CrnThread;
 import com.zy.core.DevpThread;
+import com.zy.core.Slave;
 import com.zy.core.cache.MessageQueue;
 import com.zy.core.cache.SlaveConnection;
 import com.zy.core.enums.*;
 import com.zy.core.model.*;
-import com.zy.core.model.command.CrnCommand;
-import com.zy.core.model.command.LedCommand;
-import com.zy.core.model.command.RgvCommand;
-import com.zy.core.model.protocol.CrnProtocol;
-import com.zy.core.model.protocol.RgvProtocol;
-import com.zy.core.model.protocol.StaProtocol;
+import com.zy.core.model.command.*;
+import com.zy.core.model.cpmmandParam.CrnCommandParam;
+import com.zy.core.model.protocol.*;
 import com.zy.core.properties.SlaveProperties;
-import com.zy.core.thread.BarcodeThread;
-import com.zy.core.thread.LedThread;
-import com.zy.core.thread.RgvThread;
-import com.zy.core.thread.SiemensDevpThread;
+import com.zy.core.thread.*;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
+import springfox.documentation.spring.web.json.Json;
 
 import java.util.*;
 import java.util.concurrent.TimeUnit;
@@ -61,6 +55,8 @@
 public class MainServiceImpl {
 
     public static final long COMMAND_TIMEOUT = 5 * 1000;
+//    private static final int[][] execute = new int[][]{{1,4},{2,4},{3,4},{4,4},{5,6},{6,6},{7,4},{8,4},{9,3},{10,4},{11,4}};
+    private static final int[][] execute = new int[][]{{1,4},{2,4},{3,4},{4,4},{5,6},{6,6},{7,4},{8,4},{9,3},{10,4},{11,4}};
 
     @Autowired
     private CommonService commonService;
@@ -106,10 +102,21 @@
     private WrkMastCrnMapper wrkMastCrnMapper;
     @Autowired
     private WrkMastSplitTwinMapper wrkMastSplitTwinMapper;
+    @Autowired
+    private WrkMastSplitTwinService wrkMastSplitTwinService;
+    @Autowired
+    private BasJarMastService basJarMastService;
+    @Autowired
+    private WrkMastExecuteService wrkMastExecuteService;
+    @Autowired
+    private BasJarService basJarService;
+    @Autowired
+    private BasJarMapper basJarMapper;
 
     @Value("${wms.url}")
     private String wmsUrl;
-    private WrkMastSplitTwinServiceImpl wrkMastSplitTwinService;
+
+
 
     /**
      * 缁勬墭
@@ -618,62 +625,6 @@
     }
 
     /**
-     * 缁勬墭
-     * 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿閫氱煡妗佹灦鐮佸灈
-     */
-    public synchronized void generateStoreWrkFileFull2LouM() {
-        // 鏍规嵁杈撻�佺嚎plc閬嶅巻
-        for (DevpSlave devp : slaveProperties.getDevp()) {
-            // 閬嶅巻鐮佸灈鍙�
-            for (DevpSlave.Sta driveSta : devp.getDriveSta()) {
-                // 鑾峰彇鏉$爜鎵弿浠俊鎭�
-                BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, driveSta.getBarcode());
-                if (barcodeThread == null) {
-                    continue;
-                }
-                String barcode = barcodeThread.getBarcode();
-
-                if (!Cools.isEmpty(barcode) && !barcode.equals("") && !barcode.equals("      ")) {
-                    if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
-                        continue;
-                    }
-                } else {
-                    continue;
-                }
-
-                // 鑾峰彇鐮佸灈鍙d俊鎭�
-                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
-                StaProtocol staProtocol = devpThread.getStation().get(driveSta.getStaNo());
-                if (staProtocol == null) {
-                    continue;
-                } else {
-                    staProtocol = staProtocol.clone();
-                }
-                // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
-                if (staProtocol.isAutoing()
-                        && staProtocol.isLoading()
-                        && staProtocol.isInEnable()
-                        && staProtocol.isEmptyMk()
-                        && (staProtocol.getWorkNo() == 0 || (staProtocol.getWorkNo()>9899 && staProtocol.getWorkNo()<10000) )
-                ) {
-                    try {
-                        BasDevp basDevp = basDevpService.selectById(driveSta.getStaNo());
-                        if (basDevp.getReportSign()>0){
-                            continue;
-                        }
-                        basDevp.setBarcode(barcode);
-                        basDevp.setReportSign(1);
-                        basDevpService.updateById(basDevp);
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                    }
-                }
-            }
-        }
-    }
-
-    /**
      * wms鍏ュ簱
      * 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿鐢熸垚鍏ュ簱宸ヤ綔妗o紝宸ヤ綔鐘舵�� 1 ==>> 2
      */
@@ -1028,164 +979,6 @@
     }
 
     /**
-     * 2妤�212鍛煎彨绌烘澘
-     */
-    public synchronized void stnToCrnStnPick3Auto(Integer sign) {
-        try{
-            SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 2);
-            StaProtocol staProtocol = devpThread.getStation().get(212);
-            if (staProtocol == null) {
-                return;
-            } else {
-                staProtocol = staProtocol.clone();
-            }
-            if (staProtocol.isAutoing() && !staProtocol.isLoading() && staProtocol.getWorkNo()==0 ){
-                switch (sign){
-                    //鎵ц灏忚溅璐х墿鎼繍浠诲姟
-                    case 1:
-                    case 4:
-                        stnToCrnStnPick3();
-                        return;
-                    //鎵ц灏忚溅绌烘澘鎼繍浠诲姟
-                    case 2://鏀�//鎷嗙洏
-                    case 5://鏀�//鎷嗙洏
-                        stnToCrnStnPick4();
-                        return;
-                    default:
-                        return;
-                }
-            } else if (staProtocol.isAutoing() && staProtocol.isLoading()){
-                switch (sign){
-                    case 3://婊℃斁
-                    case 6://婊℃斁
-                        stnToCrnStnPick5();
-                        return;
-                    default:
-                        return;
-                }
-            }
-        }catch (Exception e){
-            log.error("2妤�212鍛煎彨绌烘澘"+e);
-        }
-    }
-    /**
-     * 2妤�212鍛煎彨绌烘澘
-     */
-    public synchronized void stnToCrnStnPick3() {
-        WrkMast wrkMast = wrkMastMapper.selectWrkMastUnstackingOne212();
-        if (Cools.isEmpty(wrkMast) || wrkMast.getWrkSts()!=61){//61銆佺瓑寰呯┖鏉�
-            return;
-        }
-        for (DevpSlave devp : slaveProperties.getDevp()) {
-            for (DevpSlave.Sta driveSta : devp.getDriveSta()) {
-                if (driveSta.getStaNo()!=215){
-                    continue;
-                }
-                // 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭�
-                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
-                StaProtocol staProtocol = devpThread.getStation().get(driveSta.getStaNo());
-                if (staProtocol == null) {
-                    continue;
-                } else {
-                    staProtocol = staProtocol.clone();
-                }
-                if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo()==0
-                        || (staProtocol.getWorkNo()>9899 && staProtocol.getWorkNo()<10000)) ){
-                    boolean result1 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocol));
-
-                    staProtocol.setWorkNo(wrkMast.getWrkNo()-1);
-                    staProtocol.setStaNo(driveSta.getStaNo()==215? 217:221);
-                    boolean result2 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                    if (!result2) {
-                        log.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
-                    }
-                    wrkMast.setWrkSts(62L);
-                    wrkMastMapper.updateById(wrkMast);
-
-                    boolean result3 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(4, staProtocol));
-                    return;
-                }
-            }
-        }
-    }
-
-    /**
-     * 2妤�212鍛煎彨绌烘澘
-     */
-    public synchronized void stnToCrnStnPick4() {
-        WrkMast wrkMast = wrkMastMapper.selectWrkMastUnstackingOne212();
-        if (Cools.isEmpty(wrkMast) || wrkMast.getWrkSts()!=62){//62銆佺瓑寰呭皬杞︽惉杩�
-            return;
-        }
-        for (DevpSlave devp : slaveProperties.getDevp()) {
-            for (DevpSlave.Sta driveSta : devp.getInSta()) {
-                if (driveSta.getStaNo()!=217){
-                    continue;
-                }
-                // 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭�
-                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
-                StaProtocol staProtocol = devpThread.getStation().get(driveSta.getStaNo());
-                if (staProtocol == null) {
-                    continue;
-                } else {
-                    staProtocol = staProtocol.clone();
-                }
-                StaProtocol staProtocol212 = devpThread.getStation().get(212);
-                if (staProtocol212 == null) {
-                    continue;
-                } else {
-                    staProtocol212 = staProtocol212.clone();
-                }
-                if (staProtocol212.isAutoing() && !staProtocol212.isLoading() && staProtocol212.getWorkNo()==0){
-                    if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo()==0
-                            || (staProtocol.getWorkNo()>9899 && staProtocol.getWorkNo()<10000) || staProtocol.getWorkNo()==wrkMast.getWrkNo()-1) ){
-//                        boolean result1 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocol));
-
-                        staProtocol.setWorkNo(wrkMast.getWrkNo());
-                        staProtocol.setStaNo(212);
-                        boolean result2 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                        if (!result2) {
-                            log.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
-                        }
-                        wrkMast.setWrkSts(63L);
-                        wrkMastMapper.updateById(wrkMast);
-
-//                        boolean result3 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(4, staProtocol));
-                        return;
-                    }
-                }
-            }
-        }
-    }
-
-    /**
-     * 2妤�212鍛煎彨绌烘澘
-     */
-    public synchronized void stnToCrnStnPick5() {
-        WrkMast wrkMast = wrkMastMapper.selectWrkMastUnstackingOne212();
-        if (Cools.isEmpty(wrkMast) || wrkMast.getWrkSts()!=63){//63銆佺瓑寰呭畬鎴�
-            return;
-        }
-
-        // 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭�
-        SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 2);
-        StaProtocol staProtocol = devpThread.getStation().get(212);
-        if (staProtocol == null) {
-            return;
-        } else {
-            staProtocol = staProtocol.clone();
-        }
-        if (staProtocol.isAutoing() && staProtocol.isLoading()){
-//            boolean result1 = MessageQueue.offer(SlaveType.Devp, 2, new Task(3, staProtocol));
-
-            wrkMast.setWrkSts(64L);
-            wrkMastMapper.updateById(wrkMast);
-
-//            boolean result3 = MessageQueue.offer(SlaveType.Devp, 2, new Task(4, staProtocol));
-            return;
-        }
-    }
-    /**
      * 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱  鎷嗗灈浣嶇疆
      */
     public synchronized void storeEmptyPlt4() {
@@ -1372,6 +1165,7 @@
         }
         return false;
     }
+
     public synchronized boolean crnStnToOutStnTwo(CrnSlave.CrnStn crnStn ,Integer conStation) {
         try{
             Date now = new Date();
@@ -1493,6 +1287,7 @@
         }
         return false;
     }
+
     public synchronized boolean crnStnToOutStnThree(CrnSlave.CrnStn crnStn ) {
         try{
             // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
@@ -1696,8 +1491,6 @@
                             && crnProtocol.getTaskNo() == 0
                             && crnProtocol.getLoaded() == 0
                             && crnProtocol.getForkPos() == 0) {
-//                        sign[0] = 1;
-//                        sign[1] = 1;
                         /*
                         * 浠诲姟鎷嗗垎鐗规畩澶勭悊
                         * */
@@ -1708,16 +1501,10 @@
                             sign[0] = 1;
                             sign[1] = 1;
                         }
-                    }else if (crnProtocol.getStatusTypeTwo() == CrnStatusType.IDLE
-                            && crnProtocol.getTaskNoTwo() == 0
-                            && crnProtocol.getLoadedTwo() == 0
-                            && crnProtocol.getForkPosTwo() == 0){
-                        sign[0] = 1;
-                        sign[1] = 2;
                     }
                 }
 
-                if (sign[0]==1 && sign[1] == 1){
+                if (sign[0]==1){
                     // 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡
                     if (crnProtocol.getLastIo().equals("I")) {
                         if (basCrnp.getInEnable().equals("Y")) {
@@ -1782,126 +1569,6 @@
         }
     }
 
-    /**
-     * 鎼滅储RGV杞︺�傞�氳繃鐩爣绔欐悳绱㈠摢鍙拌溅鍙敤
-     */
-    public synchronized Integer searchRgvNo(Integer staNo) {
-        try{
-            BasDevp basDevp = basDevpService.selectById(staNo);
-            if (basDevp == null) {
-                return null;//鐩爣绔欎笉瀛樺湪
-            }
-            //璺緞鍊�
-            int path = basDevp.getLocType3().intValue();
-
-            ArrayList<RgvThread> list = new ArrayList<>();
-            for (RgvSlave rgv : slaveProperties.getRgv()) {
-                // 鑾峰彇RGV淇℃伅
-                RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
-                RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
-                if (rgvProtocol == null) {
-
-                    continue;
-                }
-                BasRgv basRgv = basRgvService.selectById(rgv.getId());
-                if (basRgv == null) {
-                    log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgv.getId());
-                    continue;
-                }
-
-                list.add(rgvThread);
-            }
-
-            if (list.size() > 1) {
-                //瓒呰繃涓ゅ彴杞︼紝鎸夌収閰嶇疆鐨勮鍒欒繘琛屽垎閰�
-                for (RgvThread rgvThread : list) {
-                    //鑾峰彇杞﹁締閰嶇疆鐨勮矾寰勮鍒�
-                    BasRgvPath basRgvPath = basRgvPathService.selectByRgvNo(rgvThread.getSlave().getId());
-                    if (basRgvPath == null) {
-                        continue;
-                    }
-                    //鐩爣绔欐槸鍚﹀寘鍚綋鍓嶈矾寰勪腑
-                    List<Integer> rgvPath = JSON.parseArray(basRgvPath.getPath(), Integer.class);
-                    if (rgvPath.contains(path)) {
-                        //褰撳墠璺緞涓寘鍚洰鏍囩珯锛屽垯閫夊畾杩欏彴杞�
-                        return rgvThread.getSlave().getId();
-                    }
-                }
-            }else {
-                //灏忎簬鎴栫瓑浜�1鍙拌溅锛屽垎閰嶅叏璺緞
-                BasRgvPath basRgvPath = basRgvPathService.selectByRgvNo(0);//鑾峰彇榛樿璺緞
-                if (basRgvPath == null) {
-                    return null;
-                }
-                List<Integer> rgvPath = JSON.parseArray(basRgvPath.getPath(), Integer.class);
-                if (rgvPath.contains(path)) {
-                    //褰撳墠璺緞涓寘鍚洰鏍囩珯锛屽垯閫夊畾杩欏彴杞�
-                    return list.get(0).getSlave().getId();
-                }
-            }
-
-            return null;
-        }catch (Exception e){
-            log.error("鎼滅储RGV杞︺�傞�氳繃鐩爣绔欐悳绱㈠摢鍙拌溅鍙敤"+e);
-            return null;
-        }
-    }
-
-    /**
-     * 鍥炲師鐐癸紝鍫嗗灈鏈烘病鏈夋墽琛屼腑浠诲姟锛岃澶囧瓨鍦ㄥ叆搴撲换鍔℃椂鍙洖鍘熺偣
-     */
-    public synchronized void crnRebackHp(CrnProtocol crnProtocol, CrnThread crnThread) {
-//        for (CrnSlave crn : slaveProperties.getCrn()) {
-//            // 鑾峰彇鍫嗗灈鏈轰俊鎭�
-//            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
-//            CrnProtocol crnProtocol = crnThread.getCrnProtocol();
-//            if (crnProtocol == null) {
-//                continue;
-//            }
-//            BasCrnp basCrnp = basCrnpService.selectById(crn.getId());
-//            if (basCrnp == null) {
-//                log.error("{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crn.getId());
-//                continue;
-//            }
-        if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO) {
-            if (crnProtocol.getBay() == 1 && crnProtocol.getLevel() == 1) {
-                return;
-            }
-
-            // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�3,12
-            if (wrkMastMapper.selectWorking(crnProtocol.getCrnNo()) != null) {
-                return;
-            }
-
-            //鍫嗗灈鏈烘湁鎵ц涓换鍔★紝杩囨护3,4,11,12
-            if (wrkMastMapper.selectCrnWorking(crnProtocol.getCrnNo()) != null) {
-                return;
-            }
-
-            //杈撻�佺嚎娌℃湁鍏ュ簱浠诲姟锛岃繃婊�2
-            if (wrkMastMapper.selectDevWorking(crnProtocol.getCrnNo()) == null) {
-                return;
-            }
-            log.info("鍫嗗灈鏈哄彫鍥炲師鐐�==>>" + crnProtocol.getCrnNo() + "鍙峰爢鍨涙満鏈夊叆搴撲换鍔�,鍙洖鍘熺偣");
-            // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-            CrnCommand crnCommand = new CrnCommand();
-            crnCommand.setCrnNo(crnProtocol.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
-            crnCommand.setTaskNo((short) 63333); // 宸ヤ綔鍙�
-            crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
-            crnCommand.setTaskMode(CrnTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡:  鍥炲師鐐�
-            crnCommand.setSourcePosX((short) 0);     // 婧愬簱浣嶆帓
-            crnCommand.setSourcePosY((short) 0);     // 婧愬簱浣嶅垪
-            crnCommand.setSourcePosZ((short) 0);     // 婧愬簱浣嶅眰
-            crnCommand.setDestinationPosX((short) 0);     // 鐩爣搴撲綅鎺�
-            crnCommand.setDestinationPosY((short) 0);     // 鐩爣搴撲綅鍒�
-            crnCommand.setDestinationPosZ((short) 0);     // 鐩爣搴撲綅灞�
-            if (!MessageQueue.offer(SlaveType.Crn, crnProtocol.getCrnNo(), new Task(2, crnCommand))) {
-                log.error("鍫嗗灈鏈哄洖鍘熺偣鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={}锛屼换鍔℃暟鎹�={}", crnProtocol.getCrnNo(), JSON.toJSON(crnCommand));
-            }
-            crnThread.setBackHpFlag(true);
-        }
-//        }
-    }
 
     /**
      * 鍏ュ簱  ===>>  鍫嗗灈鏈虹珯鍒板簱浣�
@@ -2008,7 +1675,7 @@
             crnCommand.setDestinationPosY(locMast.getBay1().shortValue());     // 鐩爣搴撲綅鍒�
             crnCommand.setDestinationPosZ(locMast.getLev1().shortValue());     // 鐩爣搴撲綅灞�
             if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
-                log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
+                log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSONString(crnCommand));
             } else {
 
 //                long startTime = System.currentTimeMillis();
@@ -2041,10 +1708,13 @@
      */
     public synchronized void crnStnToLoc1Big(CrnSlave slave, CrnProtocol crnProtocol, Integer crnStation) {
         List<WrkMast> wrkMasts = wrkMastMapper.selectPakInStep12(slave.getId());
+        Integer crnStation1 = crnStation;//璁板綍
         for(WrkMast wrkMast : wrkMasts){
             if (wrkMast == null) {
                 continue;
             }
+
+            crnStation=crnStation1;//鍒锋柊
 
             CrnSlave.CrnStn crnStn = null;
             for (CrnSlave.CrnStn crnStn1 : slave.getCrnInStn()){
@@ -2110,6 +1780,10 @@
                 break;
             }
 
+            if (locMast.getBay1()==81){
+                crnStation=2;
+            }
+
 
             // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
             if (wrkMastMapper.selectWorking(slave.getId()) != null) {
@@ -2173,7 +1847,7 @@
             crnCommand.setDestinationPosY((short)0);     // 鐩爣搴撲綅鍒�
             crnCommand.setDestinationPosZ((short)0);     // 鐩爣搴撲綅灞�
             if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(crnStation==1? 2:5, crnCommand))) {
-                log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
+                log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSONString(crnCommand));
             } else {
                 // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�
                 Date now = new Date();
@@ -2314,7 +1988,7 @@
             crnCommand.setDestinationPosY(locMast.getBay1().shortValue());     // 鐩爣搴撲綅鍒�
             crnCommand.setDestinationPosZ(locMast.getLev1().shortValue());     // 鐩爣搴撲綅灞�
             if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
-                log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
+                log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSONString(crnCommand));
             } else {
                 // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�
                 Date now = new Date();
@@ -2471,7 +2145,7 @@
             crnCommand.setDestinationPosY(locMast.getBay1().shortValue());     // 鐩爣搴撲綅鍒�
             crnCommand.setDestinationPosZ(locMast.getLev1().shortValue());     // 鐩爣搴撲綅灞�
             if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(crnStation==1? 2:5, crnCommand))) {
-                log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
+                log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSONString(crnCommand));
             } else {
                 // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�
                 Date now = new Date();
@@ -2606,7 +2280,7 @@
                     crnCommand.setDestinationPosY(crnStn.getBay().shortValue());     // 鐩爣搴撲綅鍒�
                     crnCommand.setDestinationPosZ(crnStn.getLev().shortValue());     // 鐩爣搴撲綅灞�
                     if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
-                        log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
+                        log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSONString(crnCommand));
                     } else {
                         // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
                         Date now = new Date();
@@ -2772,7 +2446,7 @@
                 crnCommand.setDestinationPosY(crnStn.getBay().shortValue());     // 鐩爣搴撲綅鍒�
                 crnCommand.setDestinationPosZ(crnStn.getLev().shortValue());     // 鐩爣搴撲綅灞�
                 if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(crnStation==1? 2:5, crnCommand))) {
-                    log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
+                    log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSONString(crnCommand));
                 } else {
                     // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
                     Date now = new Date();
@@ -2892,7 +2566,7 @@
                     crnCommand.setDestinationPosY(crnStn.getBay().shortValue());     // 鐩爣搴撲綅鍒�
                     crnCommand.setDestinationPosZ(crnStn.getLev().shortValue());     // 鐩爣搴撲綅灞�
                     if (!MessageQueue.offer(SlaveType.Crn, wrkMastCrn.getCrnNo(), new Task(2, crnCommand))) {
-                        log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMastCrn.getCrnNo(), JSON.toJSON(crnCommand));
+                        log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMastCrn.getCrnNo(), JSON.toJSONString(crnCommand));
                     } else {
                         // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
                         Date now = new Date();
@@ -2931,10 +2605,13 @@
      */
     public synchronized void locToCrnStn1Big(CrnSlave slave, CrnProtocol crnProtocol, Integer crnStation) {
         List<WrkMast> wrkMasts = wrkMastMapper.selectPakOutStep12(slave.getId());
+        Integer crnStation1 = crnStation;
         for (WrkMast wrkMast : wrkMasts) {
             if (wrkMast == null) {
                 continue;
             }
+
+            crnStation = crnStation1;
 
             CrnSlave.CrnStn crnStn = null;
             for (CrnSlave.CrnStn crnStn1 : slave.getCrnOutStn()){
@@ -3016,6 +2693,10 @@
                     break;
                 }
 
+                if (sourceSta.getBay1().shortValue()==81){
+                    crnStation = 2;
+                }
+
                 // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
                 if (Utils.isDeepLoc(slaveProperties, wrkMast.getSourceLocNo())) {
                     String shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getSourceLocNo());
@@ -3072,192 +2753,96 @@
 //                        return;
                 }
 
-                // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
-                CrnCommand crnCommand = new CrnCommand();
-                crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
-                crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
-                crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
-                crnCommand.setTaskMode(CrnTaskModeType.SEPARATE_TAKE); // 浠诲姟妯″紡:  鍗曞彇璐�
-                crnCommand.setSourcePosX(sourceSta.getRow1().shortValue());     // 婧愬簱浣嶆帓
-                crnCommand.setSourcePosY(sourceSta.getBay1().shortValue());     // 婧愬簱浣嶅垪
-                crnCommand.setSourcePosZ(sourceSta.getLev1().shortValue());     // 婧愬簱浣嶅眰
-                crnCommand.setDestinationPosX((short)0);     // 鐩爣搴撲綅鎺�
-                crnCommand.setDestinationPosY((short)0);     // 鐩爣搴撲綅鍒�
-                crnCommand.setDestinationPosZ((short)0);     // 鐩爣搴撲綅灞�
-                if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(crnStation==1? 2:5, crnCommand))) {
-                    log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
-                } else {
-                    // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
-                    Date now = new Date();
-                    wrkMast.setWrkSts(12L);
-                    wrkMast.setCrnStrTime(now);
-                    wrkMast.setModiTime(now);
-                    WrkMastSplitTwin wrkMastSplitTwin = new WrkMastSplitTwin(wrkMast,crnStation,now);
-                    wrkMastSplitTwin.setWrkSts(1);
-                    wrkMastSplitTwin.setWrkStart(wrkMast.getSourceLocNo());
-                    wrkMastSplitTwin.setWrkEnd(wrkMast.getSourceStaNo().toString());
-                    wrkMastSplitTwin.setStartRow(sourceSta.getRow1());
-                    wrkMastSplitTwin.setStartBay(sourceSta.getBay1());
-                    wrkMastSplitTwin.setStartLev(sourceSta.getLev1());
-                    wrkMastSplitTwin.setEndRow(crnStn.getRow());
-                    wrkMastSplitTwin.setEndBay(crnStn.getBay());
-                    wrkMastSplitTwin.setEndLev(crnStn.getLev());
-                    wrkMastSplitTwin.setWrkType(1);
-                    wrkMastSplitTwin.setIoType(2);
-                    if (wrkMastMapper.updateById(wrkMast) == 0) {
-                        log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+                if (true){
+                    // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
+                    CrnCommand crnCommand = new CrnCommand();
+                    crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
+                    crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+                    crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
+                    crnCommand.setTaskMode(CrnTaskModeType.SEPARATE_TAKE); // 浠诲姟妯″紡:  鍗曞彇璐�
+                    crnCommand.setSourcePosX(sourceSta.getRow1().shortValue());     // 婧愬簱浣嶆帓
+                    crnCommand.setSourcePosY(sourceSta.getBay1().shortValue());     // 婧愬簱浣嶅垪
+                    crnCommand.setSourcePosZ(sourceSta.getLev1().shortValue());     // 婧愬簱浣嶅眰
+                    crnCommand.setDestinationPosX((short)0);     // 鐩爣搴撲綅鎺�
+                    crnCommand.setDestinationPosY((short)0);     // 鐩爣搴撲綅鍒�
+                    crnCommand.setDestinationPosZ((short)0);     // 鐩爣搴撲綅灞�
+                    if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(crnStation==1? 2:5, crnCommand))) {
+                        log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSONString(crnCommand));
+                    } else {
+                        // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
+                        Date now = new Date();
+                        wrkMast.setWrkSts(12L);
+                        wrkMast.setCrnStrTime(now);
+                        wrkMast.setModiTime(now);
+                        WrkMastSplitTwin wrkMastSplitTwin = new WrkMastSplitTwin(wrkMast,crnStation,now);
+                        wrkMastSplitTwin.setWrkSts(1);
+                        wrkMastSplitTwin.setWrkStart(wrkMast.getSourceLocNo());
+                        wrkMastSplitTwin.setWrkEnd(wrkMast.getSourceStaNo().toString());
+                        wrkMastSplitTwin.setStartRow(sourceSta.getRow1());
+                        wrkMastSplitTwin.setStartBay(sourceSta.getBay1());
+                        wrkMastSplitTwin.setStartLev(sourceSta.getLev1());
+                        wrkMastSplitTwin.setEndRow(crnStn.getRow());
+                        wrkMastSplitTwin.setEndBay(crnStn.getBay());
+                        wrkMastSplitTwin.setEndLev(crnStn.getLev());
+                        wrkMastSplitTwin.setWrkType(1);
+                        wrkMastSplitTwin.setIoType(2);
+                        if (wrkMastMapper.updateById(wrkMast) == 0) {
+                            log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+                        }
+
+                        if (wrkMastSplitTwinMapper.insert(wrkMastSplitTwin)==0){
+                            log.error("鍒涘缓 鍫嗗灈鏈烘墽琛屼换鍔� 澶辫触锛侊紒锛屽伐浣滃彿={}锛屽爢鍨涙満鍙�={}", wrkMast.getWrkNo(),wrkMast.getCrnNo());
+                        }
+                        break;
                     }
-
-                    if (wrkMastSplitTwinMapper.insert(wrkMastSplitTwin)==0){
-                        log.error("鍒涘缓 鍫嗗灈鏈烘墽琛屼换鍔� 澶辫触锛侊紒锛屽伐浣滃彿={}锛屽爢鍨涙満鍙�={}", wrkMast.getWrkNo(),wrkMast.getCrnNo());
-                    }
-                    break;
                 }
+//                else {
+//                    // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
+//                    CrnCommandParam crnCommandParam = new CrnCommandParam();
+//                    CrnCommand crnCommand = new CrnCommand();
+//                    crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
+//                    crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+//                    crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
+//                    crnCommand.setTaskMode(CrnTaskModeType.SEPARATE_TAKE); // 浠诲姟妯″紡:  鍗曞彇璐�
+//                    crnCommand.setSourcePosX(sourceSta.getRow1().shortValue());     // 婧愬簱浣嶆帓
+//                    crnCommand.setSourcePosY(sourceSta.getBay1().shortValue());     // 婧愬簱浣嶅垪
+//                    crnCommand.setSourcePosZ(sourceSta.getLev1().shortValue());     // 婧愬簱浣嶅眰
+//                    crnCommand.setDestinationPosX((short)0);     // 鐩爣搴撲綅鎺�
+//                    crnCommand.setDestinationPosY((short)0);     // 鐩爣搴撲綅鍒�
+//                    crnCommand.setDestinationPosZ((short)0);     // 鐩爣搴撲綅灞�
+//                    if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(crnStation==1? 2:5, crnCommand))) {
+//                        log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSONString(crnCommand));
+//                    } else {
+//                        // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
+//                        Date now = new Date();
+//                        wrkMast.setWrkSts(12L);
+//                        wrkMast.setCrnStrTime(now);
+//                        wrkMast.setModiTime(now);
+//                        WrkMastSplitTwin wrkMastSplitTwin = new WrkMastSplitTwin(wrkMast,crnStation,now);
+//                        wrkMastSplitTwin.setWrkSts(1);
+//                        wrkMastSplitTwin.setWrkStart(wrkMast.getSourceLocNo());
+//                        wrkMastSplitTwin.setWrkEnd(wrkMast.getSourceStaNo().toString());
+//                        wrkMastSplitTwin.setStartRow(sourceSta.getRow1());
+//                        wrkMastSplitTwin.setStartBay(sourceSta.getBay1());
+//                        wrkMastSplitTwin.setStartLev(sourceSta.getLev1());
+//                        wrkMastSplitTwin.setEndRow(crnStn.getRow());
+//                        wrkMastSplitTwin.setEndBay(crnStn.getBay());
+//                        wrkMastSplitTwin.setEndLev(crnStn.getLev());
+//                        wrkMastSplitTwin.setWrkType(1);
+//                        wrkMastSplitTwin.setIoType(2);
+//                        if (wrkMastMapper.updateById(wrkMast) == 0) {
+//                            log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+//                        }
+//
+//                        if (wrkMastSplitTwinMapper.insert(wrkMastSplitTwin)==0){
+//                            log.error("鍒涘缓 鍫嗗灈鏈烘墽琛屼换鍔� 澶辫触锛侊紒锛屽伐浣滃彿={}锛屽爢鍨涙満鍙�={}", wrkMast.getWrkNo(),wrkMast.getCrnNo());
+//                        }
+//                        break;
+//                    }
+//                }
             }
         }
 
-    }
-
-    /**
-     * 鏌ユ壘宸ヤ綔鐘舵�佷负2锛堣澶囦笂璧帮級,涓擱GV鍏ュ簱鎺ラ┏绔欑鍚堢殑鐨勫叆搴撳伐浣滄。锛屾彁鍙栧嚭鏈�澶�2绗�
-     * @param slave
-     * @return
-     */
-    public synchronized List<WrkMast> getRgvInTask(RgvSlave slave){
-        List<WrkMast> wrkMastTask = new ArrayList<>();
-        List<Integer> staNos = new ArrayList<>();
-        for (RgvSlave.RgvStn rgvStn : slave.getRgvInSStn()) {
-            staNos.add(rgvStn.getStaNo());
-        }
-        if(staNos.size() < 1){
-            return null;
-        }
-        List<WrkMast> wrkMasts = wrkMastMapper.selectRgvInStep1(slave.getId(), staNos);
-        for(WrkMast wrkMast : wrkMasts){
-            Integer plcId = 0;
-            for (RgvSlave.RgvStn rgvStn : slave.getRgvInSStn()) {
-                if(rgvStn.getStaNo() == wrkMast.getRgvSstaNo()){
-                    plcId = rgvStn.getDevpPlcId();
-                    break;
-                }
-            }
-
-            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, plcId);
-            //鍒ゆ柇RGV鍏ュ簱婧愮珯鐐癸紝鑷姩銆佹湁鐗╋紝鏈変换鍔″彿锛屽彲鍑�
-            boolean flag1 = false;
-            StaProtocol staProtocol1 = devpThread.getStation().get(wrkMast.getRgvSstaNo());
-            if (staProtocol1 == null) {
-                continue;
-            } else {
-                staProtocol1 = staProtocol1.clone();
-            }
-            // 鏌ヨ绔欑偣璇︾粏淇℃伅
-            BasDevp staDetl1 = basDevpService.selectById(wrkMast.getRgvSstaNo());
-            if (staDetl1 == null) {
-                log.error("RGV鍏ュ簱 ===>> 杈撻�佹満婧愮珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", wrkMast.getRgvSstaNo());
-                continue;
-            }
-            if (staProtocol1.isAutoing() && staProtocol1.isLoading() && staProtocol1.getWorkNo().intValue() == wrkMast.getWrkNo()
-                    && staProtocol1.isOutEnable() && staDetl1.getOutEnable() != null && staDetl1.getOutEnable().equals("Y")) {
-                flag1 = true;
-            }
-
-            //鍒ゆ柇RGV鍏ュ簱鐩爣绔欑偣锛岃嚜鍔ㄣ�佹棤鐗╋紝娌℃湁浠诲姟鍙凤紝鍙叆
-            boolean flag2 = false;
-            StaProtocol staProtocol2 = devpThread.getStation().get(wrkMast.getRgvDstaNo());
-            if (staProtocol2 == null) {
-                continue;
-            } else {
-                staProtocol2 = staProtocol2.clone();
-            }
-            // 鏌ヨ绔欑偣璇︾粏淇℃伅
-            BasDevp staDetl2 = basDevpService.selectById(wrkMast.getRgvSstaNo());
-            if (staDetl2 == null) {
-                log.error("RGV鍏ュ簱 ===>> 杈撻�佹満婧愮珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", wrkMast.getRgvSstaNo());
-                continue;
-            }
-            if (staProtocol2.isAutoing() && staProtocol2.isLoading() && staProtocol2.getWorkNo().intValue() == wrkMast.getWrkNo()
-                    && staProtocol2.isInEnable() && staDetl2.getCanining() != null && staDetl2.getCanining().equals("Y")) {
-                flag2 = true;
-            }
-
-            if(flag1 && flag2){
-                wrkMastTask.add(wrkMast);
-                if(wrkMastTask.size() >= 2) break;
-            }
-        }
-        return wrkMastTask;
-    }
-
-    /**
-     * 鏌ユ壘宸ヤ綔鐘舵�佷负14锛堝嚭搴撳畬鎴愶級,涓擱GV鍑哄簱鎺ラ┏绔欑鍚堢殑鐨勫嚭搴撳伐浣滄。锛屾彁鍙栧嚭鏈�澶�2绗�
-     * @param slave
-     * @return
-     */
-    public synchronized List<WrkMast> getRgvOutTask(RgvSlave slave){
-        List<WrkMast> wrkMastTask = new ArrayList<>();
-        List<Integer> staNos = new ArrayList<>();
-        for (RgvSlave.RgvStn rgvStn : slave.getRgvOutSStn()) {
-            staNos.add(rgvStn.getStaNo());
-        }
-        if(staNos.size() < 1){
-            return null;
-        }
-        List<WrkMast> wrkMasts = wrkMastMapper.selectRgvOutStep1(slave.getId(), staNos);
-        for(WrkMast wrkMast : wrkMasts){
-            Integer plcId = 0;
-            for (RgvSlave.RgvStn rgvStn : slave.getRgvOutSStn()) {
-                if(rgvStn.getStaNo() == wrkMast.getRgvSstaNo()){
-                    plcId = rgvStn.getDevpPlcId();
-                    break;
-                }
-            }
-
-            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, plcId);
-            //鍒ゆ柇RGV鍑哄簱婧愮珯鐐癸紝鑷姩銆佹湁鐗╋紝鏈変换鍔″彿锛屽彲鍑�
-            boolean flag1 = false;
-            StaProtocol staProtocol1 = devpThread.getStation().get(wrkMast.getRgvSstaNo());
-            if (staProtocol1 == null) {
-                continue;
-            } else {
-                staProtocol1 = staProtocol1.clone();
-            }
-            // 鏌ヨ绔欑偣璇︾粏淇℃伅
-            BasDevp staDetl1 = basDevpService.selectById(wrkMast.getRgvSstaNo());
-            if (staDetl1 == null) {
-                log.error("RGV鍑哄簱 ===>> 杈撻�佹満婧愮珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", wrkMast.getRgvSstaNo());
-                continue;
-            }
-            if (staProtocol1.isAutoing() && staProtocol1.isLoading() && staProtocol1.getWorkNo().intValue() == wrkMast.getWrkNo()
-                    && staProtocol1.isOutEnable() && staDetl1.getOutEnable() != null && staDetl1.getOutEnable().equals("Y")) {
-                flag1 = true;
-            }
-
-            //鍒ゆ柇RGV鍑哄簱鐩爣绔欑偣锛岃嚜鍔ㄣ�佹棤鐗╋紝娌℃湁浠诲姟鍙凤紝鍙叆
-            boolean flag2 = false;
-            StaProtocol staProtocol2 = devpThread.getStation().get(wrkMast.getRgvDstaNo());
-            if (staProtocol2 == null) {
-                continue;
-            } else {
-                staProtocol2 = staProtocol2.clone();
-            }
-            // 鏌ヨ绔欑偣璇︾粏淇℃伅
-            BasDevp staDetl2 = basDevpService.selectById(wrkMast.getRgvSstaNo());
-            if (staDetl2 == null) {
-                log.error("RGV鍑哄簱 ===>> 杈撻�佹満婧愮珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", wrkMast.getRgvSstaNo());
-                continue;
-            }
-            if (staProtocol2.isAutoing() && staProtocol2.isLoading() && staProtocol2.getWorkNo().intValue() == wrkMast.getWrkNo()
-                    && staProtocol2.isInEnable() && staDetl2.getCanining() != null && staDetl2.getCanining().equals("Y")) {
-                flag2 = true;
-            }
-
-            if(flag1 && flag2){
-                wrkMastTask.add(wrkMast);
-                if(wrkMastTask.size() >= 2) break;
-            }
-        }
-        return wrkMastTask;
     }
 
     /**
@@ -3314,7 +2899,7 @@
         crnCommand.setDestinationPosY(sta.getBay1().shortValue());     // 鐩爣搴撲綅鍒�
         crnCommand.setDestinationPosZ(sta.getLev1().shortValue());     // 鐩爣搴撲綅灞�
         if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
-            log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
+            log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSONString(crnCommand));
         } else {
             // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
             Date now = new Date();
@@ -3353,6 +2938,7 @@
             }
         }
     }
+
     public synchronized boolean storeFinishedExecuteOne(CrnSlave crn) {
         try{
             // 鑾峰彇鍫嗗灈鏈轰俊鎭�
@@ -3418,6 +3004,7 @@
         }
         return false;
     }
+
     public synchronized boolean storeFinishedExecuteTwo(CrnSlave crn) {
         try{
             // 鑾峰彇鍫嗗灈鏈轰俊鎭�
@@ -3509,6 +3096,7 @@
         }
         return false;
     }
+
     public synchronized boolean storeFinishedExecuteThree(CrnSlave crn) {
         try{
             // 鑾峰彇鍫嗗灈鏈轰俊鎭�
@@ -4028,6 +3616,7 @@
             }
         }
     }
+
     /**
      * 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐�
      */
@@ -4558,27 +4147,6 @@
         }
     }
 
-//    /**
-//     * 鍒濆鍖朢GV鍦板浘
-//     */
-//    public synchronized void initRgvMap() {
-//        Object data = redisUtil.get("rgv_map");
-//        if (data == null) {
-//            //閲嶆柊鑾峰彇鍏ㄨ矾寰勫湴鍥�
-//            BasRgvPath basRgvPath = basRgvPathService.selectByRgvNo(0);//鑾峰彇榛樿璺緞
-//            if (basRgvPath != null) {
-//                ArrayList<RgvNode> rgvNodes = new ArrayList<>();
-//                List<Integer> rgvPath = JSON.parseArray(basRgvPath.getPath(), Integer.class);
-//                for (Integer integer : rgvPath) {
-//                    RgvNode rgvNode = new RgvNode(integer);
-//                    rgvNodes.add(rgvNode);
-//                }
-//                //灏嗘暟鎹簱鍦板浘鏁版嵁瀛樺叆redis
-//                redisUtil.set("rgv_map", JSON.toJSONString(rgvNodes));
-//            }
-//        }
-//    }
-
     /**
      * 鍫嗗灈鏈烘紨绀�  ===>> 搴撲綅绉昏浆
      */
@@ -4681,1552 +4249,6 @@
     }
 
     /**
-     * 鍫嗗灈鏈哄懡浠や笅鍙戝悗锛屽紓姝ヤ慨鏀瑰伐浣滄。鐘舵��
-     */
-    public synchronized void crnIoWrkMast() {
-        for (CrnSlave crn : slaveProperties.getCrn()) {
-            // 鑾峰彇鍫嗗灈鏈轰俊鎭�
-            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
-            CrnProtocol crnProtocol = crnThread.getCrnProtocol();
-            if (crnProtocol == null) {
-                continue;
-            }
-            Date now = new Date();
-            // 鍫嗗灈鏈烘鍦ㄨ繍琛�
-            if (crnProtocol.getStatusType() != CrnStatusType.IDLE && crnProtocol.getTaskNo() != 0 && crnProtocol.getModeType() == CrnModeType.AUTO) {
-                // 鑾峰彇宸ヤ綔妗�
-                WrkMast wrkMast = wrkMastMapper.selectById(crnProtocol.getTaskNo());
-                if (wrkMast == null) {
-                    continue;
-                }
-                // 鍏ュ簱
-                if (wrkMast.getWrkSts() == 1 || wrkMast.getWrkSts() == 2) {
-                    log.warn("鍫嗗灈鏈洪潪绌洪棽鎯呭喌涓嬶紝寮�濮嬩慨鏀瑰伐浣滄。鐘舵�併�俒id:{},鏃堕棿锛歿}] >>>>> 鍫嗗灈鏈哄綋鍓嶇姸鎬佷负锛歿}銆備换鍔″彿:{}", crn.getId(), DateUtils.convert(now, DateUtils.yyyyMMddHHmmsssss_F), crnProtocol.getStatusType().desc, crnProtocol.getTaskNo());
-                    // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�
-                    wrkMast.setWrkSts(3L);
-                    wrkMast.setCrnStrTime(now);
-                    wrkMast.setModiTime(now);
-                    if (wrkMastMapper.updateById(wrkMast) == 0) {
-                        log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
-                    }
-                    log.warn("淇敼宸ヤ綔妗g姸鎬佹垚鍔熴�俒鏃堕棿锛歿}] >>>>> 浠诲姟鍙�:{}", DateUtils.convert(now, DateUtils.yyyyMMddHHmmsssss_F), wrkMast.getWrkNo());
-                }
-                // 鍑哄簱銆佺Щ搴�
-                if (wrkMast.getWrkSts() == 11) {
-                    log.warn("鍫嗗灈鏈洪潪绌洪棽鎯呭喌涓嬶紝寮�濮嬩慨鏀瑰伐浣滄。鐘舵�併�俒id:{},鏃堕棿锛歿}] >>>>> 鍫嗗灈鏈哄綋鍓嶇姸鎬佷负锛歿}銆備换鍔″彿:{}", crn.getId(), DateUtils.convert(now, DateUtils.yyyyMMddHHmmsssss_F), crnProtocol.getStatusType().desc, crnProtocol.getTaskNo());
-                    // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
-                    wrkMast.setWrkSts(12L);
-                    wrkMast.setCrnStrTime(now);
-                    wrkMast.setModiTime(now);
-                    if (wrkMastMapper.updateById(wrkMast) == 0) {
-                        log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
-                    }
-                    log.warn("淇敼宸ヤ綔妗g姸鎬佹垚鍔熴�俒鏃堕棿锛歿}] >>>>> 浠诲姟鍙�:{}", DateUtils.convert(now, DateUtils.yyyyMMddHHmmsssss_F), wrkMast.getWrkNo());
-                }
-
-
-            }
-
-        }
-    }
-
-    /**
-     * 鍏ュ嚭搴撴ā寮忓垏鎹㈠嚱鏁�
-     */
-    public synchronized void ioConvert() {
-        try {
-            // 鏍规嵁杈撻�佺嚎plc閬嶅巻
-            for (DevpSlave devp : slaveProperties.getDevp()) {
-                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
-
-                for (DevpSlave.Sta inSta : devp.getInSta()) {
-                    if (inSta.getStaNo() == 2) {
-                        continue;
-                    }
-                    WrkMast pakout = wrkMastMapper.selectWorkingPakout(inSta.getStaNo());
-                    switch (inSta.getStaNo()) {
-                        case 203://1F
-                            if (pakout != null) {
-                                if (devpThread.ioModeOf2F != IoModeType.PAKOUT_MODE) {
-                                    // 鍑哄簱鍒囨崲涓�
-                                    devpThread.ioModeOf2F = IoModeType.PAKOUT_BOOTING;
-                                    WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo());
-                                    if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading()
-                                            && !devpThread.getStation().get(inSta.getStaNo() + 1).isLoading()
-                                            && devpThread.getStation().get(inSta.getStaNo() + 1).getWorkNo() == 0) {
-                                        // 鍑哄簱妯″紡
-                                        devpThread.ioModeOf2F = IoModeType.PAKOUT_MODE;
-                                    }
-                                }
-                            } else {
-                                // 鍏ュ簱妯″紡
-                                devpThread.ioModeOf2F = IoModeType.PAKIN_MODE;
-                            }
-                            break;
-                        case 401://1F
-                            if (pakout != null) {
-                                if (devpThread.ioModeOf4F != IoModeType.PAKOUT_MODE) {
-                                    // 鍑哄簱鍒囨崲涓�
-                                    devpThread.ioModeOf4F = IoModeType.PAKOUT_BOOTING;
-                                    WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo());
-                                    if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading()
-                                            && !devpThread.getStation().get(inSta.getStaNo() + 1).isLoading()
-                                            && devpThread.getStation().get(inSta.getStaNo() + 1).getWorkNo() == 0) {
-                                        // 鍑哄簱妯″紡
-                                        devpThread.ioModeOf4F = IoModeType.PAKOUT_MODE;
-                                    }
-                                }
-                            } else {
-                                // 鍏ュ簱妯″紡
-                                devpThread.ioModeOf4F = IoModeType.PAKIN_MODE;
-                            }
-                            break;
-                    }
-                }
-
-            }
-
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-
-
-    }
-
-//    /**
-//     * 鍏朵粬  ===>> 鐮佸灈浣嶈嚜鍔ㄨˉ鍏呯┖鏉匡細椹卞姩鎷嗙洏鏈鸿緭鍑烘墭鐩�
-//     */
-//    public synchronized void dischargingMachineOutputTray() {
-//        try {
-//            List<WrkMast> wrkMasts = wrkMastMapper.selectDischargingMachineOutputTray();
-//            if (Cools.isEmpty(wrkMasts) || wrkMasts.size()>3){
-//                return;
-//            }
-//
-//            // 鑾峰彇鍏ュ簱绔欎俊鎭�
-//            SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
-//            StaProtocol staProtocol = devpThread.getStation().get(213);
-//            if (staProtocol == null) {
-//                log.error("鐮佸灈浣嶈嚜鍔ㄨˉ鍏呯┖鏉匡細椹卞姩鎷嗙洏鏈鸿緭鍑烘墭鐩橈紝浠诲姟涓嬪彂澶辫触锛岀珯鐐规煡璇㈠け璐�");
-//                return;
-//            } else {
-//                staProtocol = staProtocol.clone();
-//            }
-//
-//            if (!staProtocol.isLoading()){
-//                log.info("鐮佸灈浣嶈嚜鍔ㄨˉ鍏呯┖鏉匡細椹卞姩鎷嗙洏鏈鸿緭鍑烘墭鐩橈紝浠诲姟涓嬪彂澶辫触锛岀珯鐐规棤鐗╋紝姝e湪鑷姩璋冨嚭绌烘澘锛�");
-//                int i = wrkMastMapper.selectConfigCount10468N();
-//                if (i==1){
-//                    wrkMastMapper.updateConfig10468Y();
-//                }
-//                return;
-//            }else {
-//                int i = wrkMastMapper.selectConfigCount10468N();
-//                if (i==0){
-//                    return;
-//                }
-//            }
-//            StaProtocol staProtocol214 = devpThread.getStation().get(214);
-//            // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
-//            if (staProtocol.isAutoing() && staProtocol.getWorkNo() == 0 && staProtocol.isPakMk() && staProtocol214.getWorkNo()==0) {
-//                staProtocol.setWorkNo((short)9999);
-//                staProtocol.setStaNo((short)214);
-//                devpThread.setPakMk(staProtocol.getSiteId(), false);
-//                boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol));
-//                if (!result) {
-//                    throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触==>鐮佸灈浣嶈嚜鍔ㄨˉ鍏呯┖鏉匡細椹卞姩鎷嗙洏鏈鸿緭鍑烘墭鐩橈紒");
-//                }
-//                log.info("鐮佸灈浣嶈嚜鍔ㄨˉ鍏呯┖鏉匡細椹卞姩鎷嗙洏鏈鸿緭鍑烘墭鐩橈紝浠诲姟涓嬪彂鎴愬姛锛氬伐浣滃彿9999銆佺洰鏍囩珯214锛�");
-//            }else {
-//                log.error("鐮佸灈浣嶈嚜鍔ㄨˉ鍏呯┖鏉匡細椹卞姩鎷嗙洏鏈鸿緭鍑烘墭鐩橈紝浠诲姟涓嬪彂澶辫触锛岀珯鐐圭姸鎬佷笉绗﹀悎锛�");
-//            }
-//        }catch (Exception e){
-//            e.printStackTrace();
-//            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-//        }
-//    }
-
-//    /**
-//     * 鍏朵粬  ===>> 鎷嗙洏鏈哄绌烘澘鎵爜锛岄┍鍔ㄦ墭鐩樺悜鐮佸灈浣嶏紝涓嶅叆搴�
-//     */
-//    public synchronized void scanBarcodeEmptyBoard() {
-//        try {
-//
-//        }catch (Exception e){
-//            e.printStackTrace();
-//            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-//        }
-//    }
-
-    /**
-     * 鍏朵粬  ===>> 鐮佸灈瀹屾垚椹卞姩鎵樼洏杩涘叆涓嬩竴姝ワ紙鍏ュ簱鍓嶆壂鐮侊級
-     */
-    public synchronized void stackingCompletionDriveTray() {
-        try {
-            int[] staNos=new int[]{215,219};//(2妤间袱涓叆搴撶爜鍨涚珯)
-            for (int staNo : staNos){
-                BasDevp basDevp = basDevpService.selectById(staNo);
-                if ((basDevp.getWrkNo()!=0 && (basDevp.getWrkNo()<9900 || basDevp.getWrkNo()>9999)) || Cools.isEmpty(basDevp.getBarcode())){
-                    continue;
-                }
-                Integer zpallet = waitPakinMapper.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet", basDevp.getBarcode()).eq("status","N"));
-                if (zpallet<=0){
-                    continue;
-                }
-                // 鑾峰彇鍏ュ簱绔欎俊鎭�
-                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
-                StaProtocol staProtocol = devpThread.getStation().get(staNo);
-                if (staProtocol == null) {
-                    continue;
-                } else {
-                    staProtocol = staProtocol.clone();
-                }
-
-                // 鍏ュ嚭搴撴ā寮忓垽鏂�
-//                if ( inSta.getStaNo()==203 && devpThread.ioModeOf2F != IoModeType.PAKIN_MODE) { continue; }
-//                if (inSta.getStaNo() == 203 && devpThread.ioModeOf2F == IoModeType.PAKOUT_MODE) {
-//                    continue;
-//                }
-
-                if (!staProtocol.isLoading()){
-                    log.info("{}绔欑偣鏃犵墿锛屾鍦ㄨ嚜鍔ㄨ皟鍑虹┖鏉匡紒",staNo);
-                    continue;
-                }
-                // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
-                if (staProtocol.isAutoing()
-                        && staProtocol.isLoading()
-                        && staProtocol.isInEnable()
-                        && !staProtocol.isEmptyMk()
-                        && (basDevp.getWrkNo()==0 || (basDevp.getWrkNo()>=9900 && basDevp.getWrkNo()<=9999))
-                ) {//&& staProtocol.isPakMk() && !Cools.isEmpty(barcode)) {
-                    int workNo = commonService.getWorkNo(5);
-                    staProtocol.setWorkNo(workNo);
-                    staProtocol.setStaNo(staNo + 2);
-                    devpThread.setPakMk(staProtocol.getSiteId(), false);
-                    boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol));
-                    if (!result) {
-                        throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触==>椹卞姩鐮佸灈浣嶆墭鐩樺墠杩涘け璐ワ紒");
-                    }
-
-                }
-            }
-        }catch (Exception e){
-//            e.printStackTrace();
-//            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-            log.error("鍏朵粬  ===>> 鐮佸灈瀹屾垚椹卞姩鎵樼洏杩涘叆涓嬩竴姝ワ紙鍏ュ簱鍓嶆壂鐮侊級"+e);
-        }
-    }
-    /**
-     * 鍏朵粬  ===>> 鐮佸灈瀹屾垚椹卞姩鎵樼洏杩涘叆涓嬩竴姝�
-     */
-    public synchronized void stackingCompletionDriveTray2() {
-        try {
-            int[] staNos=new int[]{131,135};//(2涓叆搴撶珯鐐癸紝1妤�2涓嚭搴撶爜鍨涚珯,鏍规嵁鐜板満淇敼)
-            for (int staNo : staNos){
-                BasDevp basDevp = basDevpService.selectById(staNo);
-                if (Cools.isEmpty(basDevp) || basDevp.getReportSign()!=1){
-                    continue;
-                }
-                if (basDevp.getWrkNo()!=0 && (basDevp.getWrkNo()<9900 || basDevp.getWrkNo()>9999)){
-                    continue;
-                }
-                WrkMast wrkMast = wrkMastMapper.selectWrkMastUnstackingOne202(staNo);
-                if (Cools.isEmpty(wrkMast)){
-                    continue;
-                }
-                // 鑾峰彇绔欑偣淇℃伅
-                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
-                StaProtocol staProtocol = devpThread.getStation().get(staNo);
-                if (staProtocol == null) {
-                    continue;
-                } else {
-                    staProtocol = staProtocol.clone();
-                }
-
-                // 鍏ュ嚭搴撴ā寮忓垽鏂�
-//                if ( inSta.getStaNo()==203 && devpThread.ioModeOf2F != IoModeType.PAKIN_MODE) { continue; }
-//                if (inSta.getStaNo() == 203 && devpThread.ioModeOf2F == IoModeType.PAKOUT_MODE) {
-//                    continue;
-//                }
-
-                if (!staProtocol.isLoading()){
-                    log.info("{}绔欑偣鏃犵墿锛屽紓甯革紒",staNo);
-                    continue;
-                }
-                // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
-                if (staProtocol.isAutoing()
-                        && staProtocol.isLoading()
-                        && staProtocol.isInEnable()
-                        && (staProtocol.getWorkNo() == 0 || (staProtocol.getWorkNo()>9899 && staProtocol.getWorkNo()<10000))
-                ) {//&& staProtocol.isPakMk() && !Cools.isEmpty(barcode)) {
-
-                    //浠诲姟瀹屾垚
-                    boolean result1 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(3, staProtocol));
-                    Thread.sleep(100);
-
-                    staProtocol.setWorkNo(wrkMast.getWrkNo());
-                    staProtocol.setStaNo(144);
-                    devpThread.setPakMk(staProtocol.getSiteId(), false);
-                    boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol));
-                    if (!result) {
-                        throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触==>椹卞姩鐮佸灈浣嶆墭鐩樺墠杩涘け璐ワ紒");
-                    }
-                    wrkMast.setWrkSts(52L);
-                    wrkMastMapper.updateById(wrkMast);
-                    Thread.sleep(100);
-
-                    //浠诲姟瀹屾垚
-                    boolean result2 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(4, staProtocol));
-
-                }
-            }
-        }catch (Exception e){
-//            e.printStackTrace();
-//            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-            log.error("鍏朵粬  ===>> 鐮佸灈瀹屾垚椹卞姩鎵樼洏杩涘叆涓嬩竴姝�"+e);
-        }
-    }
-
-    /**
-     * 鍏朵粬  ===>> 鐮佸灈瀹屾垚椹卞姩鎵樼洏杩涘叆涓嬩竴姝�
-     */
-    public synchronized void stackingCompletionDriveTrayOk2() {
-        for (DevpSlave devp : slaveProperties.getDevp()) {
-            // 閬嶅巻鎷f枡鍏ュ簱鍙�
-            for (DevpSlave.Sta pickSta : devp.getPickSta2()) {
-
-                // 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭�
-                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
-                StaProtocol staProtocol = devpThread.getStation().get(pickSta.getStaNo());
-                if (staProtocol == null) {
-                    continue;
-                } else {
-                    staProtocol = staProtocol.clone();
-                }
-
-                if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isPakMk()  && staProtocol.getWorkNo()!=0 && staProtocol.isOutEnable()) {//
-                    WrkMast wrkMast = wrkMastMapper.selectPakInStep3(staProtocol.getWorkNo());
-
-                    if (wrkMast == null) {
-                        log.error("绔欑偣鍙�"+staProtocol.getSiteId()+"鏈煡璇㈠埌宸ヤ綔妗f锛�");
-                        // 鏃犳嫞鏂欐暟鎹�
-                        continue;
-                    }
-                    if (Cools.isEmpty(wrkMast.getSheetNo()) || !wrkMast.getSheetNo().equals("2") || wrkMast.getIoType()<100 || wrkMast.getWrkSts()!=14){
-                        continue;
-                    }
-                    if (wrkMast.getIoType()==101){
-                        //浠诲姟瀹屾垚
-                        boolean result1 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(3, staProtocol));
-                        wrkMast.setSheetNo("3");
-                        wrkMastMapper.updateById(wrkMast);
-                    }else {
-                        if ((wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107)
-                                || Cools.isEmpty(wrkMast.getStaNo()) || Cools.isEmpty(wrkMast.getSourceStaNo())) {
-                            continue;
-                        }
-                        //浠诲姟瀹屾垚
-                        boolean result1 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(3, staProtocol));
-                        wrkMast.setSheetNo("3");
-                        wrkMastMapper.updateById(wrkMast);
-
-                        try{
-                            Thread.sleep(100);
-                        }catch (Exception e){
-
-                        }
-
-                        boolean result2 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(4, staProtocol));
-
-                    }
-                }
-            }
-        }
-    }
-    /**
-     * 鍏朵粬  ===>> 璐存爣瀹屾垚椹卞姩鎵樼洏杩涘叆涓嬩竴姝�
-     */
-    public synchronized void stackingCompletionDriveTray3() {
-        try {
-            int[] staNos=new int[]{144};//(1妤�1涓创鏍囦綅,鏍规嵁鐜板満淇敼)
-            for (int staNo : staNos){
-                BasDevp basDevp = basDevpService.selectById(staNo);
-                if ((basDevp.getWrkNo()<9900 || basDevp.getWrkNo()>9999) && basDevp.getWrkNo()!=32222){
-                    continue;
-                }
-                WrkMast wrkMast = wrkMastMapper.selectWrkMastUnstackingOne202(staNo);
-                if (Cools.isEmpty(wrkMast)){
-                    continue;
-                }
-                // 鑾峰彇绔欑偣淇℃伅
-                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
-                StaProtocol staProtocol = devpThread.getStation().get(staNo);
-                if (staProtocol == null) {
-                    continue;
-                } else {
-                    staProtocol = staProtocol.clone();
-                }
-
-                // 鍏ュ嚭搴撴ā寮忓垽鏂�
-//                if ( inSta.getStaNo()==203 && devpThread.ioModeOf2F != IoModeType.PAKIN_MODE) { continue; }
-//                if (inSta.getStaNo() == 203 && devpThread.ioModeOf2F == IoModeType.PAKOUT_MODE) {
-//                    continue;
-//                }
-
-                if (!staProtocol.isLoading()){
-                    log.info("{}绔欑偣鏃犵墿锛屽紓甯革紒",staNo);
-                    continue;
-                }
-                if (!staProtocol.getWorkNo().equals(wrkMast.getWrkNo())){
-                    log.info("绔欑偣宸ヤ綔鍙�={} 涓庤创鏍囧伐浣滃彿={} 涓嶄竴鑷达紝寮傚父锛�",staProtocol.getWorkNo(),wrkMast.getWrkNo().shortValue());
-                }
-                // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
-                if (staProtocol.isAutoing()
-                        && staProtocol.isLoading()
-                ) {//&& staProtocol.isPakMk() && !Cools.isEmpty(barcode)) {
-
-                    staProtocol.setWorkNo(wrkMast.getWrkNo());
-                    staProtocol.setStaNo(wrkMast.getStaNo());
-                    devpThread.setPakMk(staProtocol.getSiteId(), false);
-                    boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol));
-                    if (!result) {
-                        throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触==>椹卞姩鐮佸灈浣嶆墭鐩樺墠杩涘け璐ワ紒");
-                    }
-                    wrkMast.setWrkSts(55L);
-                    wrkMastMapper.updateById(wrkMast);
-
-                }
-            }
-        }catch (Exception e){
-//            e.printStackTrace();
-//            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-            log.error("鍏朵粬  ===>> 璐存爣瀹屾垚椹卞姩鎵樼洏杩涘叆涓嬩竴姝�"+e);
-        }
-    }
-
-    /**
-     * 鍏朵粬  ===>> 閫�璐х爜鍨涘畬鎴愭墭鐩樼户缁笅涓�姝�
-     */
-    public synchronized void stackingCompletionDriveTrayOk3() {
-        try {
-            int[] staNos=new int[]{118};
-            for (int staNo : staNos){
-                BasDevp basDevp = basDevpService.selectById(staNo);
-                if (Cools.isEmpty(basDevp) || basDevp.getWrkNo()!=0 || basDevp.getReportSign()!=3){
-                    continue;
-                }
-                WrkMast wrkMast = wrkMastMapper.selectWrkMastUnstackingOne145(145);
-                if (Cools.isEmpty(wrkMast)){
-                    continue;
-                }
-                // 鑾峰彇绔欑偣淇℃伅
-                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
-                StaProtocol staProtocol = devpThread.getStation().get(staNo);
-                if (staProtocol == null) {
-                    continue;
-                } else {
-                    staProtocol = staProtocol.clone();
-                }
-
-                StaProtocol staProtocol147 = devpThread.getStation().get(147);
-                if (staProtocol147 == null) {
-                    continue;
-                } else {
-                    staProtocol147 = staProtocol147.clone();
-                }
-
-                if (!staProtocol.isLoading()){
-                    log.info("{}绔欑偣鏃犵墿锛屽紓甯革紒",staNo);
-                    continue;
-                }
-
-                if (staProtocol147.isLoading()){
-                    log.info("{}绔欑偣鏈夌墿锛�",staProtocol147.getSiteId());
-                    continue;
-                }
-                // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
-                if (staProtocol.isAutoing()
-                        && staProtocol.isLoading()
-                        && !staProtocol.isEmptyMk()
-                ) {
-
-                    boolean result3 = MessageQueue.offer(SlaveType.Devp, 1, new Task(3, staProtocol147));
-
-                    staProtocol.setWorkNo(wrkMast.getWrkNo());
-                    staProtocol.setStaNo(wrkMast.getStaNo());
-                    devpThread.setPakMk(staProtocol.getSiteId(), false);
-                    boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol));
-                    if (!result) {
-                        throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触==>椹卞姩鐮佸灈浣嶆墭鐩樺墠杩涘け璐ワ紒");
-                    }
-
-                    wrkMast.setSheetNo("5");
-                    wrkMastMapper.updateById(wrkMast);
-
-                    boolean result4 = MessageQueue.offer(SlaveType.Devp, 1, new Task(3, staProtocol147));
-
-                }
-            }
-        }catch (Exception e){
-//            e.printStackTrace();
-//            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-            log.error("鍏朵粬  ===>> 閫�璐х爜鍨涘畬鎴愭墭鐩樼户缁笅涓�姝�"+e);
-        }
-    }
-
-    /**
-     * 鍏朵粬  ===>> 鎷嗗灈瀹屾垚缁х画涓嬩竴姝�  杩愯閫斾腑鑷姩閬胯绌烘澘
-     */
-    public synchronized void stackingCompletionDriveTray4() {
-        try {
-            int[] staNos=new int[]{134};//(134鏈変换鍔★紝135绌洪棽锛屽垯閬胯)
-            for (int staNo : staNos){
-                BasDevp basDevp = basDevpService.selectById(staNo);
-                BasDevp basDevp135 = basDevpService.selectById(135);
-                if (basDevp.getWrkNo()==0 || (basDevp.getWrkNo()<10000 && basDevp.getWrkNo()>9899) ){
-                    continue;
-                }
-                if (basDevp135.getReportSign()!=0){
-                    continue;
-                }
-                WrkMast wrkMast131 = wrkMastMapper.selectWrkMastUnstackingOne202Two(131);
-                if (Cools.isEmpty(wrkMast131)){
-                    continue;
-                }
-                // 鑾峰彇绔欑偣淇℃伅
-                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
-                StaProtocol staProtocol135 = devpThread.getStation().get(135);
-                if (staProtocol135 == null) {
-                    continue;
-                } else {
-                    staProtocol135 = staProtocol135.clone();
-                }
-                if (staProtocol135.getWorkNo()<9900 || staProtocol135.getWorkNo()>9999 || staProtocol135.getWorkNo()==0
-                        || !staProtocol135.isLoading() || !staProtocol135.isAutoing()){
-                    continue;
-                }
-                StaProtocol staProtocol = devpThread.getStation().get(staNo);
-                if (staProtocol == null) {
-                    continue;
-                } else {
-                    staProtocol = staProtocol.clone();
-                }
-
-                if (!staProtocol.isLoading()){
-                    continue;
-                }
-//                if (!staProtocol.getWorkNo().equals(wrkMast131.getWrkNo())){
-//                    log.info("绔欑偣宸ヤ綔鍙�={} 涓庤创鏍囧伐浣滃彿={} 涓嶄竴鑷达紝寮傚父锛�",staProtocol.getWorkNo(),wrkMast131.getWrkNo().shortValue());
-//                }
-                // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
-                if (staProtocol.isAutoing()
-                        && staProtocol.isLoading()
-                        && basDevp.getReportSign()==0
-                ) {//&& staProtocol.isPakMk() && !Cools.isEmpty(barcode)) {
-//                    if (true){
-//                        return;
-//                    }
-
-                    //浠诲姟瀹屾垚
-                    boolean result1 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(3, staProtocol135));
-                    try{
-                        Thread.sleep(100);
-                    }catch (Exception e){ }
-                    basDevp135.setReportSign(2);
-                    basDevpService.updateById(basDevp135);
-                    int workNo = commonService.getWorkNo(5);
-                    staProtocol135.setWorkNo(workNo);
-                    staProtocol135.setStaNo(144);
-                    devpThread.setPakMk(staProtocol135.getSiteId(), false);
-                    boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol135));
-                    if (!result) {
-                        throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触==>椹卞姩鐮佸灈浣嶆墭鐩樺墠杩涘け璐ワ紒");
-                    }
-                    boolean result2 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(4, staProtocol135));
-
-                }
-            }
-        }catch (Exception e){
-//            e.printStackTrace();
-//            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-            log.error("鍏朵粬  ===>> 璐存爣瀹屾垚椹卞姩鎵樼洏杩涘叆涓嬩竴姝�"+e);
-        }
-    }
-
-    /**
-     *  瀹屾垚灏忚溅浠诲姟
-     */
-    public synchronized void rgvCompleteWrkMastSta() {
-        try{
-            for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
-                RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
-                RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
-                if (rgvProtocol == null) {
-                    continue;
-                }
-                BasRgv basRgv = basRgvService.selectById(rgvSlave.getId());
-                if (basRgv == null) {
-                    log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgvSlave.getId());
-                    continue;
-                }
-
-                // 鍙湁褰揜GV绛夊緟WCS纭銆佽嚜鍔�
-                if (rgvProtocol.getStatusType() == RgvStatusType.WORKING
-                        && rgvProtocol.getModeType() == RgvModeType.AUTO
-                        && ((rgvProtocol.getStatusType1()==RgvStatusType.WAITING || rgvProtocol.getStatusType2()==RgvStatusType.WAITING ) ||
-                        (rgvProtocol.getStatusType1()==RgvStatusType.FETCHWAITING || rgvProtocol.getStatusType2()==RgvStatusType.FETCHWAITING ))
-                ) {
-                    log.info("{}鍙峰皬杞︾瓑寰厀cs纭锛岀姸鎬亄}锛屽弬鏁皗}",rgvProtocol.getRgvNo(),rgvProtocol.getStatusType(),rgvProtocol);
-                    if (rgvProtocol.getTaskNo1()!=0 && (rgvProtocol.getStatusType1()==RgvStatusType.WAITING || rgvProtocol.getStatusType1()==RgvStatusType.FETCHWAITING)){
-                        if (rgvProtocol.getTaskNo1()==(short)32222){
-                            boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo());
-                            if (!rgvComplete){
-                                log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo());
-                            }
-                            BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
-                            basRgvMap.setNowRoute(rgvProtocol.getRgvPosI());
-                            rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute());
-                            break;
-                        }
-                        WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo1().longValue());
-                        if (Cools.isEmpty(wrkMastSta) || wrkMastSta.getType()!=1 || wrkMastSta.getWrkSts()!=1){
-                            log.error("鏈煡鍒板皬杞︽墽琛屼换鍔℃垨鑰呮墽琛屼换鍔$姸鎬佷笉绗﹀悎锛�"+wrkMastSta);
-                            continue;
-                        }
-                        WrkMast wrkMast = wrkMastMapper.selectPakInStep3(wrkMastSta.getWrkNo().intValue());
-                        if (!Cools.isEmpty(wrkMast) && wrkMastSta.getWrkType()!=5){
-                            Thread.sleep(200);
-                            SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
-                            StaProtocol staProtocol = devpThread.getStation().get(wrkMastSta.getStaEnd());
-                            if (staProtocol == null) {
-                                continue;
-                            } else {
-                                staProtocol = staProtocol.clone();
-                            }
-                            if (!staProtocol.isAutoing() || !staProtocol.isLoading()){
-                                continue;
-                            }
-                            // 涓嬪彂绔欑偣淇℃伅
-                            staProtocol.setWorkNo(wrkMast.getWrkNo());
-                            staProtocol.setStaNo(wrkMast.getStaNo());
-                            if (!MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol))) {
-                                continue;
-                            }
-                            log.error("灏忚溅浠诲姟瀹屾垚涓嬪彂杈撻�佺嚎浠诲姟锛�"+staProtocol);
-//                            try{
-//                                Thread.sleep(1000);
-//                                DevpThread devpThreadEnd = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
-//                                StaProtocol staProtocolEnd = devpThreadEnd.getStation().get(wrkMastSta.getStaEnd());
-//                                log.error("灏忚溅浠诲姟瀹屾垚璇诲彇杈撻�佺嚎浠诲姟锛�"+staProtocolEnd);
-//                                if (staProtocolEnd.getWorkNo()==0 ){ //|| !staProtocolEnd.getWorkNo().equals(wrkMast.getWrkNo())
-//                                    staProtocolEnd.setWorkNo(wrkMast.getWrkNo());
-//                                    staProtocolEnd.setStaNo(wrkMast.getStaNo());
-//                                    if (!MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocolEnd))) {
-//                                        continue;
-//                                    }
-//                                    log.error("灏忚溅浠诲姟瀹屾垚涓嬪彂杈撻�佺嚎浠诲姟绗簩娆★細"+staProtocolEnd);
-//                                }
-//                            }catch (Exception e){
-//
-//                            }
-                        }
-                        boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo());
-                        if (!rgvComplete){
-                            log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo());
-                            break;
-                        }
-                        wrkMastSta.setWrkSts(3);
-                        wrkMastStaMapper.updateById(wrkMastSta);
-                        BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
-                        basRgvMap.setNowRoute(rgvProtocol.getRgvPosI());
-                        rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute());
-                    }else if (rgvProtocol.getTaskNo2()!=0 && (rgvProtocol.getStatusType2()==RgvStatusType.WAITING || rgvProtocol.getStatusType2()==RgvStatusType.FETCHWAITING)){
-                        if (rgvProtocol.getTaskNo2()==(short)32222){
-                            boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo());
-                            if (!rgvComplete){
-                                log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo());
-                            }
-                            BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
-                            basRgvMap.setNowRoute(rgvProtocol.getRgvPosI());
-                            rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute());
-                            break;
-                        }
-                        WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo2().longValue());
-                        if (Cools.isEmpty(wrkMastSta) || wrkMastSta.getType()!=2){
-                            log.error("鏈煡鍒板皬杞︽墽琛屼换鍔℃垨鑰呮墽琛屼换鍔$姸鎬佷笉绗﹀悎锛�"+wrkMastSta);
-                            continue;
-                        }
-                        WrkMast wrkMast = wrkMastMapper.selectPakInStep3(wrkMastSta.getWrkNo().intValue());
-                        if (!Cools.isEmpty(wrkMast)  && wrkMastSta.getWrkType()!=5){
-                            Thread.sleep(200);
-                            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
-                            StaProtocol staProtocol = devpThread.getStation().get(wrkMastSta.getStaEnd());
-                            if (!staProtocol.isAutoing() || !staProtocol.isLoading()){
-                                continue;
-                            }
-                            // 涓嬪彂绔欑偣淇℃伅
-                            staProtocol.setWorkNo(wrkMast.getWrkNo());
-                            staProtocol.setStaNo(wrkMast.getStaNo());
-                            if (!MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol))) {
-                                continue;
-                            }
-                            log.error("灏忚溅浠诲姟瀹屾垚涓嬪彂杈撻�佺嚎浠诲姟锛�"+staProtocol);
-//                            try{
-//                                Thread.sleep(1000);
-//                                DevpThread devpThreadEnd = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
-//                                StaProtocol staProtocolEnd = devpThreadEnd.getStation().get(wrkMastSta.getStaEnd());
-//                                log.error("灏忚溅浠诲姟瀹屾垚璇诲彇杈撻�佺嚎浠诲姟锛�"+staProtocolEnd);
-//                                if (staProtocolEnd.getWorkNo()==0 ){ //|| !staProtocolEnd.getWorkNo().equals(wrkMast.getWrkNo())
-//                                    staProtocolEnd.setWorkNo(wrkMast.getWrkNo());
-//                                    staProtocolEnd.setStaNo(wrkMast.getStaNo());
-//                                    if (!MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocolEnd))) {
-//                                        continue;
-//                                    }
-//                                    log.error("灏忚溅浠诲姟瀹屾垚涓嬪彂杈撻�佺嚎浠诲姟绗簩娆★細"+staProtocolEnd);
-//                                }
-//                            }catch (Exception e){
-//
-//                            }
-                        }
-                        boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo());
-                        if (!rgvComplete){
-                            log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo());
-                            break;
-                        }
-                        wrkMastSta.setWrkSts(3);
-                        wrkMastStaMapper.updateById(wrkMastSta);
-                        BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
-                        basRgvMap.setNowRoute(rgvProtocol.getRgvPosI());
-                        rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute());
-                    }else {
-                        log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{},绛夊緟wcs纭浣嗘槸娌℃湁宸ヤ綔鍙凤紒",rgvProtocol.getRgvNo());
-                    }
-                }
-            }
-        }catch (Exception e){
-            log.error("灏忚溅澶嶄綅绾跨▼鎶ラ敊锛�"+e);
-        }
-    }
-    /**
-     * 鍏ュ嚭搴�  ===>>  灏忚溅浣滀笟涓嬪彂
-     */
-    public synchronized boolean rgvIoExecute(Integer sign) {
-        boolean rgvIoExecuteSign = false;
-        try{
-            for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
-                // 鑾峰彇灏忚溅淇℃伅
-                boolean signWork = false;
-                RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
-                RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
-                if (rgvProtocol == null) {
-                    continue;
-                }
-                BasRgv basRgv = basRgvService.selectById(rgvSlave.getId());
-                if (basRgv == null) {
-                    log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgvSlave.getId());
-                    continue;
-                }
-
-                // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤
-                if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
-                        && rgvProtocol.getStatusType1() == RgvStatusType.IDLE
-                        && rgvProtocol.getStatusType2() == RgvStatusType.IDLE
-                        && rgvProtocol.getModeType() == RgvModeType.AUTO
-                        && rgvProtocol.getLoaded1()==0
-                        && rgvProtocol.getTaskNo1()==0 && rgvProtocol.getTaskNo2()==0
-                ) {
-                    switch (sign){
-                        //鎵ц灏忚溅璐х墿鎼繍浠诲姟
-                        case 1:
-                            signWork = rgvRunWrkMastFullSta(rgvSlave);
-                            break;
-                        //鎵ц灏忚溅绌烘澘鎼繍浠诲姟
-                        case 2://鏀�//鎷嗙洏
-                            signWork = rgvRunWrkMastEmptyStaPut(rgvSlave);
-                            break;
-                        case 3://婊℃斁
-                            signWork = rgvRunWrkMastEmptyStaPutFull(rgvSlave);
-                            break;
-                        case 4://鍙栧彔鐩�
-                            signWork = rgvRunWrkMastEmptyStaTake(rgvSlave);
-                            break;
-                        case 5:////婊″彇
-                            signWork = rgvRunWrkMastEmptyStaTakeFull(rgvSlave);
-                            break;
-                        case 6:////鎻愬崌
-//                            signWork = qwe();
-                            break;
-                        case 7:////浣嶇Щ
-                            break;
-                        default:
-                            break;
-                    }
-                    for (int signCount = 1;!signWork && signCount<7;signCount++){
-                        switch (signCount){
-                            case 1://鎵ц灏忚溅璐х墿鎼繍浠诲姟
-                                signWork = rgvRunWrkMastFullSta(rgvSlave);
-                                break;
-                            case 2://鏀�//鎷嗙洏
-                                signWork = rgvRunWrkMastEmptyStaPut(rgvSlave);
-                                break;
-                            case 3://婊℃斁
-                                signWork = rgvRunWrkMastEmptyStaPutFull(rgvSlave);
-                                break;
-                            case 4://鍙栧彔鐩�
-                                signWork = rgvRunWrkMastEmptyStaTake(rgvSlave);
-                                break;
-                            case 5:////婊″彇
-                                signWork = rgvRunWrkMastEmptyStaTakeFull(rgvSlave);
-                                break;
-                            case 6:////鎻愬崌
-//                            signWork = rgvRunWrkMastEmptyStaPut();
-                                break;
-                            case 7:////浣嶇Щ
-                                break;
-                            default:
-                                break;
-                        }
-                    }
-                }else {
-                    continue;
-                }
-                if (!rgvIoExecuteSign){
-                    rgvIoExecuteSign = signWork;
-                }
-            }
-//            if (!rgvIoExecuteSign){
-//                if (sign>6){
-//
-//                }
-//            }
-        }catch (Exception e){
-            log.error("RGV灏忚溅浠诲姟涓嬪彂鎶ラ敊"+e);
-        }
-        return rgvIoExecuteSign;
-    }
-    /**
-     * 鎵ц灏忚溅鎼繍浠诲姟
-     */
-    public synchronized boolean rgvRunWrkMastFullSta(RgvSlave rgvSlave) {
-        try{
-//            for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
-                RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
-                RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
-                if (rgvProtocol == null) {
-                    return false;
-                }
-                BasRgv basRgv = basRgvService.selectById(rgvSlave.getId());
-                if (basRgv == null) {
-                    log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgvSlave.getId());
-                    return false;
-                }
-
-                // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤
-                if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
-                        && rgvProtocol.getStatusType1() == RgvStatusType.IDLE
-                        && rgvProtocol.getStatusType2() == RgvStatusType.IDLE
-                        && rgvProtocol.getModeType() == RgvModeType.AUTO
-                        && rgvProtocol.getLoaded1()==0
-                        && rgvProtocol.getTaskNo1()==0 && rgvProtocol.getTaskNo2()==0
-                ) {
-                    BasRgvMap basRgvMap = basRgvMapMapper.selectById(basRgv.getRgvNo());
-                    if (basRgvMap == null) {
-                        log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱鍦板浘涓繘琛岀淮鎶わ紒", rgvProtocol.getRgvNo());
-                        return false;
-                    }
-                    List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute());
-                    basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
-                    List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route);
-                    for (WrkMastSta wrkMastSta : wrkMastStaList){
-                        if (wrkMastSta.getType()!=1 || wrkMastSta.getWrkType()!=3){//1:婊$増   3锛氬彇鏀�
-                            continue;
-                        }
-                        BasDevp basDevp = basDevpService.selectById(wrkMastSta.getStaEnd());
-                        if (!basDevp.getAutoing().equals("Y") || basDevp.getLoading().equals("Y")){
-                            continue;
-                        }
-                        boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta);
-                        if (sign){
-                            boolean signMap = rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), wrkMastSta.getStaEnd());
-                            if (signMap){
-                                wrkMastSta.setWrkSts(1);
-                                try{
-                                    wrkMastStaMapper.updateById(wrkMastSta);
-                                }catch (Exception e){
-                                    log.error("鏇存柊灏忚溅浠诲姟澶辫触");
-                                }
-                                return true;
-                            }else {
-                                log.error("3864琛岋紝璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触",wrkMastSta.getWrkNo());
-                            }
-                        }else {
-                            log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
-                        }
-                        break;
-                    }
-                }
-//            }
-        }catch (Exception e){
-            log.error("3875琛屾墽琛屽皬杞︽惉杩愪换鍔′笅鍙戝け璐�");
-            log.error("3875琛�"+e);
-        }
-        return false;
-    }
-    /**
-     * 鎵ц灏忚溅鎼繍浠诲姟//鎷嗙洏
-     */
-    public synchronized boolean rgvRunWrkMastEmptyStaPut(RgvSlave rgvSlave) {//鎷嗙洏
-        try{
-//            for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
-                RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
-                RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
-                if (rgvProtocol == null) {
-                    return false;
-                }
-                BasRgv basRgv = basRgvService.selectById(rgvSlave.getId());
-                if (basRgv == null) {
-                    log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgvSlave.getId());
-                    return false;
-                }
-
-                // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾湁鐗�//rgv鍙敤//鎷嗙洏
-                if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
-                        && rgvProtocol.getStatusType1() == RgvStatusType.IDLE
-                        && rgvProtocol.getStatusType2() == RgvStatusType.IDLE
-                        && rgvProtocol.getModeType() == RgvModeType.AUTO
-                        && rgvProtocol.getTaskNo1()==0 && rgvProtocol.getTaskNo2()==0
-                        && (rgvProtocol.getLoaded2()==3  || rgvProtocol.getLoaded2()==1 || rgvProtocol.getLoaded2()==4)////0 鏃犵墿锛�1 涓�灞傛棤鐗╀簩灞傛湁鐗� 锛堝彧鑳芥媶鍙狅級 锛�2涓�灞傛湁鐗╀簩灞傛棤鐗�() 锛�3  1銆�2灞傞兘鏈夌墿  4锛氾紙锛夊彧鍏佽鎷嗙洏
-                ) {
-                    BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
-                    if (basRgvMap == null) {
-                        log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱鍦板浘涓繘琛岀淮鎶わ紒", rgvProtocol.getRgvNo());
-                        return false;
-                    }
-                    basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
-                    List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute());//鑾峰彇娲诲姩鑼冨洿
-                    List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route);//鏌ヨ鍙墽琛屼换鍔�
-                    for (WrkMastSta wrkMastSta : wrkMastStaList){
-                        if (wrkMastSta.getType()!=2 || wrkMastSta.getWrkType()!=2){// 2:绌烘澘  || 宸ヤ綔绫诲瀷  1:鍙栵紙鍙犵洏锛�  2锛氭媶鐩�  5锛氭弧鍙�  6锛氭弧鏀�
-                            continue;
-                        }
-                        boolean sign = false;
-                        if ( wrkMastSta.getStaEnd()!=0){//鏀�
-                            BasDevp basDevp = basDevpService.selectById(wrkMastSta.getStaEnd());
-                            if (!basDevp.getAutoing().equals("Y") || basDevp.getLoading().equals("Y")){
-                                continue;
-                            }
-                            sign = rgvPutEmpty(rgvProtocol.getRgvNo(),wrkMastSta);//鎷嗙洏
-                        }else {
-                            continue;
-                        }
-                        if (sign){
-                            boolean signMap = rgvMapUpdate(basRgvMap, basRgvMap.getStartRoute(), wrkMastSta.getStaEnd());
-                            if (signMap){
-                                wrkMastSta.setWrkSts(2);
-                                try{
-                                    wrkMastStaMapper.updateById(wrkMastSta);
-                                }catch (Exception e){
-                                    log.error("鏇存柊灏忚溅浠诲姟澶辫触");
-                                }
-                                return true;
-                            }else {
-                                log.error("3857琛岋紝璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触",wrkMastSta.getWrkNo());
-                            }
-                        }else {
-                            log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
-                        }
-                        break;
-                    }
-                }
-//            }
-        }catch (Exception e){
-            log.error("3933琛屾墽琛屽皬杞︽斁绌烘澘浠诲姟涓嬪彂澶辫触");
-            log.error("3933琛�"+e);
-        }
-        return false;
-    }
-
-    /**
-     * 鎵ц灏忚溅鎼繍浠诲姟
-     */
-    public synchronized boolean rgvRunWrkMastEmptyStaPutFull(RgvSlave rgvSlave) {//婊℃斁
-        try{
-//            for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
-                RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
-                RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
-                if (rgvProtocol == null) {
-                    return false;
-                }
-                BasRgv basRgv = basRgvService.selectById(rgvSlave.getId());
-                if (basRgv == null) {
-                    log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgvSlave.getId());
-                    return false;
-                }
-
-                // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾湁鐗�//rgv鍙敤
-                if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
-                        && rgvProtocol.getStatusType1() == RgvStatusType.IDLE
-                        && rgvProtocol.getStatusType2() == RgvStatusType.IDLE
-                        && rgvProtocol.getModeType() == RgvModeType.AUTO
-                        && rgvProtocol.getTaskNo1()==0 && rgvProtocol.getTaskNo2()==0
-                        &&  (rgvProtocol.getLoaded2()==2  || rgvProtocol.getLoaded2()==3 ) ////0 鏃犵墿锛�1 涓�灞傛棤鐗╀簩灞傛湁鐗�  锛�2涓�灞傛湁鐗╀簩灞傛棤鐗� 锛堝彧鑳芥弧鏀撅級锛�3  1銆�2灞傞兘鏈夌墿  4锛氾紙锛夊彧鍏佽鎷嗙洏
-                ) {
-                    BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
-                    if (basRgvMap == null) {
-                        log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱鍦板浘涓繘琛岀淮鎶わ紒", rgvProtocol.getRgvNo());
-                        return false;
-                    }
-                    basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
-                    List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute());//鑾峰彇娲诲姩鑼冨洿
-                    List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route);//鏌ヨ鍙墽琛屼换鍔�
-                    for (WrkMastSta wrkMastSta : wrkMastStaList){
-                        if (wrkMastSta.getType()!=2 || wrkMastSta.getWrkType()!=6){// 2:绌烘澘  || 宸ヤ綔绫诲瀷  1:鍙栵紙鍙犵洏锛�  2锛氭媶鐩�  5锛氭弧鍙�  6锛氭弧鏀�  7:鎻愬崌
-                            continue;
-                        }
-                        boolean sign = false;
-                        if ( wrkMastSta.getStaEnd()!=0){//婊℃斁
-                            BasDevp basDevp = basDevpService.selectById(wrkMastSta.getStaEnd());
-                            if (!basDevp.getAutoing().equals("Y") || basDevp.getLoading().equals("Y")){
-                                continue;
-                            }
-                            sign = rgvPutEmptyFull(rgvProtocol.getRgvNo(),wrkMastSta);
-                        }else {
-                            continue;
-                        }
-                        if (sign){
-                            boolean signMap = rgvMapUpdate(basRgvMap, basRgvMap.getStartRoute(), wrkMastSta.getStaEnd());
-                            if (signMap){
-                                wrkMastSta.setWrkSts(2);
-                                try{
-                                    wrkMastStaMapper.updateById(wrkMastSta);
-                                }catch (Exception e){
-                                    log.error("鏇存柊灏忚溅浠诲姟澶辫触");
-                                }
-                                return true;
-                            }else {
-                                log.error("3857琛岋紝璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触",wrkMastSta.getWrkNo());
-                            }
-                        }else {
-                            log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
-                        }
-                        break;
-                    }
-                }
-//            }
-        }catch (Exception e){
-            log.error("3933琛屾墽琛屽皬杞︽斁绌烘澘浠诲姟涓嬪彂澶辫触");
-            log.error("3933琛�"+e);
-        }
-        return false;
-    }
-
-    public synchronized boolean rgvRunWrkMastEmptyStaTake(RgvSlave rgvSlave) {//鍙犵洏
-        try{
-//            for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
-                RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
-                RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
-                if (rgvProtocol == null) {
-                    return false;
-                }
-                BasRgv basRgv = basRgvService.selectById(rgvSlave.getId());
-                if (basRgv == null) {
-                    log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgvSlave.getId());
-                    return false;
-                }
-
-                // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾棤鐗�//rgv鍙敤
-                if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
-                        && rgvProtocol.getStatusType1() == RgvStatusType.IDLE
-                        && rgvProtocol.getStatusType2() == RgvStatusType.IDLE
-                        && rgvProtocol.getModeType() == RgvModeType.AUTO
-                        && rgvProtocol.getTaskNo1()==0 && rgvProtocol.getTaskNo2()==0
-                        &&  (rgvProtocol.getLoaded2()==0  || rgvProtocol.getLoaded2()==1 ) //鐜板満淇敼锛氬彔鐩樻満锛�////0 鏃犵墿锛�1 涓�灞傛棤鐗╀簩灞傛湁鐗╋紙鍙兘鎷嗗彔锛�   锛�2涓�灞傛湁鐗╀簩灞傛棤鐗� 锛堝彧鑳芥弧鏀撅級锛�3  1銆�2灞傞兘鏈夌墿  4锛氾紙锛夊彧鍏佽鎷嗙洏
-                ) {
-                    BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
-                    if (basRgvMap == null) {
-                        log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱鍦板浘涓繘琛岀淮鎶わ紒", rgvProtocol.getRgvNo());
-                        return false;
-                    }
-                    List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute());
-                    basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
-                    List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route);
-                    for (WrkMastSta wrkMastSta : wrkMastStaList){
-                        if (wrkMastSta.getType()!=2 || wrkMastSta.getWrkType()!=1){// 2:绌烘澘  || 宸ヤ綔绫诲瀷  1:鍙栵紙鍙犵洏锛�  2锛氭媶鐩�  5锛氭弧鍙�  6锛氭弧鏀�
-                            continue;
-                        }
-                        boolean sign = false;
-                        if ( wrkMastSta.getStaStart()!=0){//鍙�
-                            BasDevp basDevp = basDevpService.selectById(wrkMastSta.getStaStart());
-                            if (!basDevp.getAutoing().equals("Y") || !basDevp.getLoading().equals("Y")){
-                                continue;
-                            }
-                            sign = rgvTakeEmpty(rgvProtocol.getRgvNo(),wrkMastSta);//鍙犵洏
-                        }else {
-                            continue;
-                        }
-                        if (sign){
-                            boolean signMap = rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), basRgvMap.getStartRoute());
-                            if (signMap){
-                                wrkMastSta.setWrkSts(1);
-                                try{
-                                    wrkMastStaMapper.updateById(wrkMastSta);
-                                }catch (Exception e){
-                                    log.error("鏇存柊灏忚溅浠诲姟澶辫触");
-                                }
-                                return true;
-                            }else {
-                                log.error("3879琛岋紝璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触",wrkMastSta.getWrkNo());
-                            }
-                        }else {
-                            log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
-                        }
-                        break;
-                    }
-                }
-//            }
-        }catch (Exception e){
-            log.error("3989琛屾墽琛屽皬杞﹀彇绌烘澘浠诲姟涓嬪彂澶辫触");
-            log.error("3989琛�"+e);
-        }
-        return false;
-    }
-
-    public synchronized boolean rgvRunWrkMastEmptyStaTakeFull(RgvSlave rgvSlave) {//婊″彇
-        try{
-//            for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
-                RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
-                RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
-                if (rgvProtocol == null) {
-                    return false;
-                }
-                BasRgv basRgv = basRgvService.selectById(rgvSlave.getId());
-                if (basRgv == null) {
-                    log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgvSlave.getId());
-                    return false;
-                }
-
-                // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾棤鐗�//rgv鍙敤
-                if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
-                        && rgvProtocol.getStatusType1() == RgvStatusType.IDLE
-                        && rgvProtocol.getStatusType2() == RgvStatusType.IDLE
-                        && rgvProtocol.getModeType() == RgvModeType.AUTO
-                        && rgvProtocol.getTaskNo1()==0 && rgvProtocol.getTaskNo2()==0
-                        &&  rgvProtocol.getLoaded2()==0  //鐜板満淇敼锛氬彔鐩樻満锛�////0 鏃犵墿锛�1 涓�灞傛棤鐗╀簩灞傛湁鐗╋紙鍙兘鎷嗗彔锛�   锛�2涓�灞傛湁鐗╀簩灞傛棤鐗� 锛堝彧鑳芥弧鏀撅級锛�3  1銆�2灞傞兘鏈夌墿  4锛氾紙锛夊彧鍏佽鎷嗙洏
-                ) {
-                    BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
-                    if (basRgvMap == null) {
-                        log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱鍦板浘涓繘琛岀淮鎶わ紒", rgvProtocol.getRgvNo());
-                        return false;
-                    }
-                    List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute());
-                    basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
-                    List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route);
-                    for (WrkMastSta wrkMastSta : wrkMastStaList){
-                        if (wrkMastSta.getType()!=2 || wrkMastSta.getWrkType()!=5){// 2:绌烘澘  || 宸ヤ綔绫诲瀷  1:鍙栵紙鍙犵洏锛�  2锛氭媶鐩�  5锛氭弧鍙�  6锛氭弧鏀�
-                            continue;
-                        }
-                        boolean sign = false;
-                        if (wrkMastSta.getStaStart()!=0){//婊″彇
-                            BasDevp basDevp = basDevpService.selectById(wrkMastSta.getStaStart());
-                            if (!basDevp.getAutoing().equals("Y") || !basDevp.getLoading().equals("Y")){
-                                continue;
-                            }
-                            sign = rgvTakeEmptyFull(rgvProtocol.getRgvNo(),wrkMastSta);
-                        }else {
-                            continue;
-                        }
-                        if (sign){
-                            boolean signMap = rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), basRgvMap.getStartRoute());
-                            if (signMap){
-                                wrkMastSta.setWrkSts(1);
-                                try{
-                                    wrkMastStaMapper.updateById(wrkMastSta);
-                                }catch (Exception e){
-                                    log.error("鏇存柊灏忚溅浠诲姟澶辫触");
-                                }
-                                return true;
-                            }else {
-                                log.error("3879琛岋紝璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触",wrkMastSta.getWrkNo());
-                            }
-                        }else {
-                            log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
-                        }
-                        break;
-                    }
-                }
-//            }
-        }catch (Exception e){
-            log.error("3989琛屾墽琛屽皬杞﹀彇绌烘澘浠诲姟涓嬪彂澶辫触");
-            log.error("3989琛�"+e);
-        }
-        return false;
-    }
-
-    /*
-    * 鏈変换鍔′絾鏈墽琛�  姝ゆ椂闇�瑕佽皟鏁村皬杞︿綅缃�
-    * */
-    public synchronized void rgvRunWrkMastEmptyStaAvoidance() {
-        try{
-            Integer integer = wrkMastStaMapper.selectAllWrkStsCount(null,0);//鏌ヨ鐘舵�佷负0鐨勪换鍔�
-            if (integer==0){
-                return;
-            }
-            for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
-                RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
-                RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
-                if (rgvProtocol == null) {
-                    continue;
-                }
-                BasRgv basRgv = basRgvService.selectById(rgvSlave.getId());
-                if (basRgv == null) {
-                    log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgvSlave.getId());
-                    continue;
-                }
-
-                // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤
-                if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
-                        && rgvProtocol.getModeType() == RgvModeType.AUTO
-                        && rgvProtocol.getLoaded1()==0  //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴
-                        && rgvProtocol.getTaskNo1()==0
-                        && rgvProtocol.getTaskNo2()==0
-                        && rgvProtocol.getStatusType1() == RgvStatusType.IDLE
-                        && rgvProtocol.getStatusType2() == RgvStatusType.IDLE
-                ) {
-                    BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
-                    if (rgvProtocol.getRgvPosI().equals(basRgvMap.getStartRoute())){
-                        continue;
-                    }
-                    if (rgvProtocol.getRgvNo()==1 && (rgvProtocol.getRgvPosI().equals(101) || rgvProtocol.getRgvPosI().equals(102) )){
-                        continue;
-                    } else if (rgvProtocol.getRgvNo()==2 && (rgvProtocol.getRgvPosI().equals(116) || rgvProtocol.getRgvPosI().equals(117) ) ){
-                        continue;
-                    }
-                    rgvAvoidanceXY(rgvProtocol.getRgvNo());
-                    rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute());
-                }
-            }
-        }catch (Exception e){
-            log.error("4109琛屾墽琛屽皬杞﹀垵濮嬪寲浠诲姟涓嬪彂澶辫触");
-            log.error("4109琛�"+e);
-        }
-    }
-
-    /*
-     * 鍒锋柊鍦板浘鏁版嵁
-     * */
-    public synchronized void refreshRgvMap() {
-        try{
-            for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
-                RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
-                RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
-                if (rgvProtocol == null) {
-                    continue;
-                }
-                BasRgv basRgv = basRgvService.selectById(rgvSlave.getId());
-                if (basRgv == null) {
-                    log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgvSlave.getId());
-                    continue;
-                }
-
-                // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤
-                if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
-                        && rgvProtocol.getModeType() == RgvModeType.AUTO
-                        && rgvProtocol.getLoaded1()==0  //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴
-                        && rgvProtocol.getTaskNo1()==0
-                        && rgvProtocol.getTaskNo2()==0
-                ) {
-                    BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvSlave.getId());
-                    basRgvMap.setNowRoute(rgvProtocol.getRgvPosI());
-                    rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute());
-                }
-            }
-        }catch (Exception e){
-            log.error("4109琛屾墽琛屽皬杞﹀垵濮嬪寲浠诲姟涓嬪彂澶辫触");
-            log.error("4109琛�"+e);
-        }
-    }
-
-    /*
-     * 灏忚溅XY绉诲姩  閬胯
-     * */
-    public synchronized boolean rgvAvoidanceXY(Integer rgvId){
-        if (rgvId==1){
-            try{
-                BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvId);
-                //  鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-                RgvCommand rgvCommand = new RgvCommand();
-                rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
-                rgvCommand.setAckFinish1((short) 0);  // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
-                rgvCommand.setTaskNo1((short)32222); // 宸ヤ綅1宸ヤ綔鍙�
-                rgvCommand.setTaskMode1(RgvTaskModeType.X_MOVE); // 宸ヤ綅1浠诲姟妯″紡:  鍥炲師鐐�
-                //basRgvMap.getLockStartRoute().shortValue()
-                rgvCommand.setSourceStaNo1( (short)101);
-                rgvCommand.setCommand((short) 1);   //宸ヤ綅1浠诲姟纭
-                if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) {
-                    //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱   step=4锛屽伐浣�1鍐欎换鍔★紱     step=5锛屽伐浣�2鍐欎换鍔�   step=9锛屽洖鍘熺偣 9999浠诲姟鍙�
-                    log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
-                    return false;
-                } else {
-                    return true;
-                }
-            }catch (Exception e){
-                return false;
-
-            }
-        }else {
-            try{
-                BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvId);
-                //  鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-                RgvCommand rgvCommand = new RgvCommand();
-                rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
-                rgvCommand.setAckFinish2((short) 0);  // 宸ヤ綅2浠诲姟瀹屾垚纭浣�
-                rgvCommand.setTaskNo2((short)32222); // 宸ヤ綅2宸ヤ綔鍙�
-                rgvCommand.setTaskMode2(RgvTaskModeType.X_MOVE); // 宸ヤ綅2浠诲姟妯″紡:  鍥炲師鐐�
-                rgvCommand.setSourceStaNo2((short)117);
-                rgvCommand.setCommand((short) 2);   //宸ヤ綅2浠诲姟纭
-                if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(5, rgvCommand))) {
-                    //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱   step=4锛屽伐浣�1鍐欎换鍔★紱     step=5锛屽伐浣�2鍐欎换鍔�   step=9锛屽洖鍘熺偣 9999浠诲姟鍙�
-                    log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
-                    return false;
-                } else {
-                    return true;
-                }
-            }catch (Exception e){
-                return false;
-
-            }
-        }
-    }
-
-
-    /*
-    * 灏忚溅鍙栬揣鑷冲伐浣嶄换鍔�
-    * */
-    public synchronized boolean rgvTakeFullAll(Integer rgvId,WrkMastSta wrkMastSta){
-        try{
-            //  鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-            RgvCommand rgvCommand = new RgvCommand();
-            rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
-            rgvCommand.setAckFinish1((short) 0);  // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
-            rgvCommand.setTaskNo1(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅1宸ヤ綔鍙�
-            rgvCommand.setTaskMode1(RgvTaskModeType.FETCH_PUT); // 宸ヤ綅1浠诲姟妯″紡:  鍙栨斁璐�
-            rgvCommand.setSourceStaNo1(wrkMastSta.getStaStart().shortValue());   //宸ヤ綅1璧风偣
-            rgvCommand.setDestinationStaNo1(wrkMastSta.getStaEnd().shortValue());   //宸ヤ綅1鐩爣绔欑偣
-            rgvCommand.setCommand((short) 1);   //宸ヤ綅1浠诲姟纭
-            if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) {
-                //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱   step=4锛屽伐浣�1鍐欎换鍔★紱     step=5锛屽伐浣�2鍐欎换鍔�
-                log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
-                return false;
-            } else {
-                return true;
-            }
-        }catch (Exception e){
-            return false;
-        }
-    }
-
-    /*
-     * 灏忚溅鍙栬揣鑷冲伐浣嶄换鍔�
-     * */
-    public synchronized boolean rgvTakeFull(Integer rgvId,WrkMastSta wrkMastSta){
-        try{
-            //  鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-            RgvCommand rgvCommand = new RgvCommand();
-            rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
-            rgvCommand.setAckFinish1((short) 0);  // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
-            rgvCommand.setTaskNo1(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅1宸ヤ綔鍙�
-            rgvCommand.setTaskMode1(RgvTaskModeType.FETCH); // 宸ヤ綅1浠诲姟妯″紡:  鍙栬揣
-            rgvCommand.setSourceStaNo1(wrkMastSta.getStaStart().shortValue());   //宸ヤ綅1璧风偣
-            rgvCommand.setCommand((short) 1);   //宸ヤ綅1浠诲姟纭
-            if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) {
-                //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱   step=4锛屽伐浣�1鍐欎换鍔★紱     step=5锛屽伐浣�2鍐欎换鍔�
-                log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
-                return false;
-            } else {
-                return true;
-            }
-        }catch (Exception e){
-            return false;
-        }
-    }
-
-    /*
-    * 灏忚溅鏀捐揣鑷宠緭閫佺嚎浠诲姟
-    * */
-    public synchronized boolean rgvPutFull(Integer rgvId,WrkMastSta wrkMastSta){
-        try{
-            //  鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-            RgvCommand rgvCommand = new RgvCommand();
-            rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
-            rgvCommand.setAckFinish1((short) 0);  // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
-            rgvCommand.setTaskNo1(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅1宸ヤ綔鍙�
-            rgvCommand.setTaskMode1(RgvTaskModeType.PUT); // 宸ヤ綅1浠诲姟妯″紡:  鏀捐揣
-            rgvCommand.setDestinationStaNo1(wrkMastSta.getStaEnd().shortValue());   //宸ヤ綅1鐩爣绔欑偣
-            rgvCommand.setCommand((short) 1);   //宸ヤ綅1浠诲姟纭
-            if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) {
-                //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱   step=4锛屽伐浣�1鍐欎换鍔★紱     step=5锛屽伐浣�2鍐欎换鍔�
-                log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
-                return false;
-            } else {
-                return true;
-            }
-        }catch (Exception e){
-            return false;
-        }
-    }
-
-    /*
-     * 灏忚溅鍙栫┖鏉胯嚦宸ヤ綅浠诲姟  鍙犵洏
-     * */
-    public synchronized boolean rgvTakeEmpty(Integer rgvId,WrkMastSta wrkMastSta){
-        try{
-            //  鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-            RgvCommand rgvCommand = new RgvCommand();
-            rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
-            rgvCommand.setAckFinish2((short) 0);  // 宸ヤ綅2浠诲姟瀹屾垚纭浣�
-            rgvCommand.setTaskNo2(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅2宸ヤ綔鍙�
-            rgvCommand.setTaskMode2(RgvTaskModeType.FETCH); // 宸ヤ綅2浠诲姟妯″紡:  鍙栬揣
-            rgvCommand.setSourceStaNo2(wrkMastSta.getStaStart().shortValue());   //宸ヤ綅2璧风偣
-            rgvCommand.setCommand((short) 2);   //宸ヤ綅2浠诲姟纭
-            if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(5, rgvCommand))) {
-                //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱   step=4锛屽伐浣�1鍐欎换鍔★紱     step=5锛屽伐浣�2鍐欎换鍔�
-                log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
-                return false;
-            } else {
-                return true;
-            }
-        }catch (Exception e){
-            return false;
-        }
-    }
-
-    /*
-     * 灏忚溅鏀剧┖鏉胯嚦杈撻�佺嚎浠诲姟   //鎷嗙洏
-     * */
-    public synchronized boolean rgvPutEmpty(Integer rgvId,WrkMastSta wrkMastSta){
-        try{
-            //  鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-            RgvCommand rgvCommand = new RgvCommand();
-            rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
-            rgvCommand.setAckFinish2((short) 0);  // 宸ヤ綅2浠诲姟瀹屾垚纭浣�
-            rgvCommand.setTaskNo2(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅2宸ヤ綔鍙�
-            rgvCommand.setTaskMode2(RgvTaskModeType.PUT); // 宸ヤ綅2浠诲姟妯″紡:  鏀捐揣
-            rgvCommand.setDestinationStaNo2(wrkMastSta.getStaEnd().shortValue());   //宸ヤ綅2鐩爣绔欑偣
-            rgvCommand.setCommand((short) 2);   //宸ヤ綅2浠诲姟纭
-            if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(5, rgvCommand))) {
-                //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱   step=4锛屽伐浣�1鍐欎换鍔★紱     step=5锛屽伐浣�2鍐欎换鍔�
-                log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
-                return false;
-            } else {
-                return true;
-            }
-        }catch (Exception e){
-            return false;
-        }
-    }
-
-    /*
-     * 灏忚溅鍙栫┖鏉胯嚦宸ヤ綅浠诲姟  婊″彇
-     * */
-    public synchronized boolean rgvTakeEmptyFull(Integer rgvId,WrkMastSta wrkMastSta){
-        try{
-            //  鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-            RgvCommand rgvCommand = new RgvCommand();
-            rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
-            rgvCommand.setAckFinish2((short) 0);  // 宸ヤ綅2浠诲姟瀹屾垚纭浣�
-            rgvCommand.setTaskNo2(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅2宸ヤ綔鍙�
-            rgvCommand.setTaskMode2(RgvTaskModeType.FETCH_5); // 宸ヤ綅2浠诲姟妯″紡:  婊″彇
-            rgvCommand.setSourceStaNo2(wrkMastSta.getStaStart().shortValue());   //宸ヤ綅2璧风偣
-            rgvCommand.setCommand((short) 2);   //宸ヤ綅2浠诲姟纭
-            if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(5, rgvCommand))) {
-                //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱   step=4锛屽伐浣�1鍐欎换鍔★紱     step=5锛屽伐浣�2鍐欎换鍔�
-                log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
-                return false;
-            } else {
-                return true;
-            }
-        }catch (Exception e){
-            return false;
-        }
-    }
-
-    /*
-     * 灏忚溅鏀剧┖鏉胯嚦杈撻�佺嚎浠诲姟   //婊℃斁
-     * */
-    public synchronized boolean rgvPutEmptyFull(Integer rgvId,WrkMastSta wrkMastSta){
-        try{
-            //  鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-            RgvCommand rgvCommand = new RgvCommand();
-            rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
-            rgvCommand.setAckFinish2((short) 0);  // 宸ヤ綅2浠诲姟瀹屾垚纭浣�
-            rgvCommand.setTaskNo2(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅2宸ヤ綔鍙�
-            rgvCommand.setTaskMode2(RgvTaskModeType.PUT_6); // 宸ヤ綅2浠诲姟妯″紡:  婊℃斁
-            rgvCommand.setDestinationStaNo2(wrkMastSta.getStaEnd().shortValue());   //宸ヤ綅2鐩爣绔欑偣
-            rgvCommand.setCommand((short) 2);   //宸ヤ綅2浠诲姟纭
-            if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(5, rgvCommand))) {
-                //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱   step=4锛屽伐浣�1鍐欎换鍔★紱     step=5锛屽伐浣�2鍐欎换鍔�
-                log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
-                return false;
-            } else {
-                return true;
-            }
-        }catch (Exception e){
-            return false;
-        }
-    }
-
-    /*
-     * 灏忚溅澶嶄綅
-     * */
-    public synchronized boolean rgvComplete(Integer rgvId){
-        try{
-            //  鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-            if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(3, new RgvCommand()))) {
-                //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱   step=4锛屽伐浣�1鍐欎换鍔★紱     step=5锛屽伐浣�2鍐欎换鍔�
-                log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}",rgvId);
-                return false;
-            } else {
-                log.info("RGV鍛戒护涓嬪彂鎴愬姛锛孯GV鍙�={}",rgvId);
-                return true;
-            }
-        }catch (Exception e){
-            log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}銆傚紓甯革細"+e,rgvId);
-            return false;
-        }
-    }
-
-    /*
-     * 灏忚溅鍦板浘鏇存柊  鏇存柊閿�
-     * */
-    public synchronized boolean rgvMapUpdate(BasRgvMap basRgvMapCurrent,Integer staStart,Integer staEnd){
-        if (true){
-            basRgvMapMapper.updateById(basRgvMapCurrent);
-            return true;
-        }
-
-//        List<Integer> integers = RouteUtils.RouteMapCurrentFar(basRgvMapCurrent.getNowRoute(),staStart,staEnd, basRgvMapCurrent.getLockStartRoute());
-        //鏇存柊褰撳墠灏忚溅閿�
-        try{
-            Integer farCurrentStaNo = RouteUtils.RouteIndexFarMas(basRgvMapCurrent.getNowRoute(), staStart, staEnd, basRgvMapCurrent.getLockStartRoute());//鑾峰彇鏈�杩滅珯鐐�
-            Integer fallMerge = RouteUtils.RouteIndexFarMas(basRgvMapCurrent.getRgvNo(), farCurrentStaNo); //鑾峰彇鍚堝苟骞叉秹椤�
-            basRgvMapCurrent.setLockEndRoute(fallMerge);
-            basRgvMapMapper.updateById(basRgvMapCurrent);
-
-            //鏇存柊鍙︿竴鍙板皬杞﹀湴鍥�
-            Integer rgvNoOther = basRgvMapCurrent.getRgvNoOther();
-            BasRgvMap basRgvMapOther = basRgvMapMapper.selectById(rgvNoOther);
-            List<Integer> integers = RouteUtils.RouteMapCurrentFar(fallMerge, basRgvMapCurrent.getLockStartRoute());
-            Integer lockEndRoute = RouteUtils.RouteMapOtherFarStnNo(integers, basRgvMapCurrent.getLockStartRoute());//鍙︿竴鍙板皬杞﹀彲娲诲姩鏈�杩滀綅缃�
-            basRgvMapOther.setEndRoute(lockEndRoute);
-            basRgvMapMapper.updateById(basRgvMapOther);
-            return true;
-        }catch (Exception e){
-            log.error("灏忚溅鍦板浘鏇存柊鍑洪敊锛�");
-            return false;
-        }
-    }
-
-    /**
      * 鍏ュ嚭搴�  ===>>  灏忚溅浣滀笟涓嬪彂
      */
     public synchronized boolean steIoExecute(Integer sign) {
@@ -6235,14 +4257,14 @@
     /**
      * 鍏ュ嚭搴�  ===>>  鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂
      */
-    public synchronized void crnIoExecuteTwoExecute() {
+    public synchronized void crnIoExecuteTwoExecute(Integer i) {
         for (CrnSlave crn : slaveProperties.getCrn()) {
             try{
                 switch (crn.getId()){
                     case 3:
                     case 4:
                     case 5:
-                        crnWrkMastSplitTwinExecute(crn);
+                        crnWrkMastSplitTwinExecute(crn,i);
                         continue;
                     default:
                         continue;
@@ -6254,7 +4276,7 @@
     }
 
 
-    public synchronized boolean crnWrkMastSplitTwinExecute(CrnSlave crn){
+    public synchronized boolean crnWrkMastSplitTwinExecute(CrnSlave crn,Integer i){
         try{
             // 鑾峰彇鍫嗗灈鏈轰俊鎭�
             CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
@@ -6273,40 +4295,61 @@
             // 鍙湁褰撳爢鍨涙満鑷姩鏃舵墠缁х画鎵ц
             if (crnProtocol.getModeType() == CrnModeType.AUTO) {
                 // 鍙湁褰撳爢鍨涙満宸ヤ綅1鍙栬揣鎴栬�呮湁鐗� 骞朵笖 宸ヤ綅2鏃犱换鍔℃椂鎵嶇户缁墽琛�
-                if (crnProtocol.getStatusType() == CrnStatusType.IDLE
-                        && crnProtocol.getTaskNo() == 0
-                        && crnProtocol.getLoaded() == 0
-                        && crnProtocol.getForkPos() == 0) {
-                    sign[0] = 1;
-                    sign[1] = 1;
-                } else if (crnProtocol.getStatusTypeTwo() == CrnStatusType.IDLE
-                        && crnProtocol.getTaskNoTwo() == 0
-                        && crnProtocol.getLoadedTwo() == 0
-                        && crnProtocol.getForkPosTwo() == 0){
-                    sign[0] = 1;
-                    sign[1] = 2;
-                } else if (crnProtocol.getStatusType() == CrnStatusType.SEPARATE_IDLE
-                        && crnProtocol.getTaskNo() == 0
-                        && crnProtocol.getLoaded() == 1
-                        && crnProtocol.getForkPos() == 0) {
-                    sign[0] = 2;
-                    sign[1] = 1;
-                } else if (crnProtocol.getStatusTypeTwo() == CrnStatusType.SEPARATE_IDLE
-                        && crnProtocol.getTaskNoTwo() == 0
-                        && crnProtocol.getLoadedTwo() == 1
-                        && crnProtocol.getForkPosTwo() == 0){
-                    sign[0] = 2;
-                    sign[1] = 2;
+                switch (i){
+                    case 1:
+                        if (crnProtocol.getStatusType() == CrnStatusType.IDLE
+                                && crnProtocol.getTaskNo() == 0
+                                && crnProtocol.getLoaded() == 0
+                                && crnProtocol.getForkPos() == 0) {
+                            sign[0] = 1;
+                            sign[1] = 1;
+                        }
+                        break;
+                    case 2:
+                        if (crnProtocol.getStatusType() == CrnStatusType.SEPARATE_IDLE
+                                && crnProtocol.getTaskNo() == 0
+                                && crnProtocol.getLoaded() == 1
+                                && crnProtocol.getForkPos() == 0) {
+                            sign[0] = 2;
+                            sign[1] = 1;
+                        }
+                        break;
+                    case 3:
+                        if (crnProtocol.getStatusTypeTwo() == CrnStatusType.IDLE
+                                && crnProtocol.getTaskNoTwo() == 0
+                                && crnProtocol.getLoadedTwo() == 0
+                                && crnProtocol.getForkPosTwo() == 0){
+                            sign[0] = 1;
+                            sign[1] = 2;
+                        }
+                        break;
+                    case 4:
+                        if (crnProtocol.getStatusTypeTwo() == CrnStatusType.SEPARATE_IDLE
+                                && crnProtocol.getTaskNoTwo() == 0
+                                && crnProtocol.getLoadedTwo() == 1
+                                && crnProtocol.getForkPosTwo() == 0){
+                            sign[0] = 2;
+                            sign[1] = 2;
+                        }
+                        break;
+                    default:
                 }
             }
 
             if (sign[0]!=0){
                 List<WrkMastSplitTwin> wrkMastSplitTwinList = wrkMastSplitTwinService.getWrkMastSplitTwin(crn.getId(),sign[1],null,sign[0],0);
-                if (wrkMastSplitTwinList.size()!=1){
-                    log.error("鍫嗗灈鏈哄嚭鍏ュ簱涓嬪彂寮傚父,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={}",crn.getId(),"涓嶅瓨鍦ㄦ垨鑰呭瓨鍦ㄥ绗斿彲鎵ц浣滀笟锛岃鍒犻櫎鏃犳晥浣滀笟锛侊紒锛�",sign[1],sign[0]);
+                if (wrkMastSplitTwinList.size()>1){
+                    log.error("鍫嗗灈鏈哄嚭鍏ュ簱涓嬪彂寮傚父,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={}",crn.getId(),"瀛樺湪澶氱瑪鍙墽琛屼綔涓氾紝璇峰垹闄ゆ棤鏁堜綔涓氾紒锛侊紒",sign[1],sign[0]);
+                    return false;
                 }
                 for (WrkMastSplitTwin wrkMastSplitTwin:wrkMastSplitTwinList){
-                    return sign[0] == 1? crnExecuteTakeFull(crn.getId(), wrkMastSplitTwin, sign[1]) : crnExecutePutFull(crn.getId(), wrkMastSplitTwin, sign[1]);
+                    boolean ack = sign[0] == 1 ? crnExecuteTakeFull(crn.getId(), wrkMastSplitTwin, sign[1]) : crnExecutePutFull(crn.getId(), wrkMastSplitTwin, sign[1]);
+                    if (ack){
+                        wrkMastSplitTwin.setWrkSts(wrkMastSplitTwin.getWrkType()==1? 1:3);
+                        wrkMastSplitTwinService.updateById(wrkMastSplitTwin);
+                    }else {
+                        log.error("鍫嗗灈鏈哄嚭鍏ュ簱涓嬪彂鎶ラ敊,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={}",crn.getId(),"涓嬪彂浠诲姟杩斿洖鍊间负锛�"+ack);
+                    }
                 }
             }
         }catch (Exception e){
@@ -6334,7 +4377,7 @@
             crnCommand.setDestinationPosY((short)0);     // 鐩爣搴撲綅鍒�
             crnCommand.setDestinationPosZ((short)0);     // 鐩爣搴撲綅灞�
             if (!MessageQueue.offer(SlaveType.Crn, wrkMastSplitTwin.getCrnNo(), new Task(crnStation==1? 2:5, crnCommand))) {
-                log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMastSplitTwin.getCrnNo(), JSON.toJSON(crnCommand));
+                log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMastSplitTwin.getCrnNo(), JSON.toJSONString(crnCommand));
                 return false;
             } else {
                 return true;
@@ -6363,7 +4406,7 @@
             crnCommand.setDestinationPosY(wrkMastSplitTwin.getEndBay().shortValue());     // 鐩爣搴撲綅鍒�
             crnCommand.setDestinationPosZ(wrkMastSplitTwin.getEndLev().shortValue());     // 鐩爣搴撲綅灞�
             if (!MessageQueue.offer(SlaveType.Crn, wrkMastSplitTwin.getCrnNo(), new Task(crnStation==1? 2:5, crnCommand))) {
-                log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMastSplitTwin.getCrnNo(), JSON.toJSON(crnCommand));
+                log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMastSplitTwin.getCrnNo(), JSON.toJSONString(crnCommand));
                 return false;
             } else {
                 return true;
@@ -6373,4 +4416,2921 @@
         }
     }
 
+    /**
+     *  Jar浠诲姟鍒涘缓  鍒濆  //瀹屾垚
+     */
+    public synchronized void jarMastGenerate() {
+        for (JarSlave jarSlave : slaveProperties.getJar()) {
+            if (jarSlave.getId()>4){
+                continue;
+            }
+            try{
+                if (wrkMastExecuteService.getWrkMastExecuteByJarIdCount(jarSlave.getId())!=0){
+                    continue;
+                }
+                for(JarSlave.StaStn staStn : jarSlave.getJarInSta()){
+                    // 鑾峰彇纭寲缃愬叆搴撶珯淇℃伅
+                    DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, staStn.getDevpPlcId());
+                    StaProtocol staProtocol = devpThread.getStation().get(staStn.getStaNo());
+                    if (staProtocol == null) {
+                        continue;
+                    } else {
+                        staProtocol = staProtocol.clone();
+                    }
+                    if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo()!=0){
+                        try{
+                            if (basJarMastService.selectJarMastOperation(jarSlave.getId(),2)!=0){
+                                break;
+                            }
+                            if (basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),3)!=0){
+                                break;
+                            }
+                            if (basJarMastService.getJarMastByJarIdCount(jarSlave.getId())>=14){
+                                break;
+                            }
+                            if (basJarMastService.selectJarMastOperation(jarSlave.getId(),0,9)>=7){
+                                break;
+                            }
+                            if (!Objects.equals
+                                    (
+                                    basJarMastService.selectJarMastOperation(jarSlave.getId(), 0, 4)
+                                    ,
+                                    basJarMastService.selectJarMastOperation(jarSlave.getId(), 0, 9)
+                                    )
+                            ){
+                                break;
+                            }
+                            BasJarMast jarMastByJarIdMax = basJarMastService.getJarMastByJarIdMax(jarSlave.getId(),0,4);
+                            int jarLocDigit = 0;
+                            if (Cools.isEmpty(jarMastByJarIdMax)){
+                                if (basJarMastService.selectJarMastOperation(jarSlave.getId(),0,4)!=0){
+                                    break;
+                                }
+                                jarLocDigit = 1;
+                            } else if (jarMastByJarIdMax.getJarLocDigit()<7){
+                                jarLocDigit = jarMastByJarIdMax.getJarLocDigit()+1;
+                            } else {
+                                continue;
+                            }
+                            WrkMast wrkMast = wrkMastMapper.selectById(staProtocol.getWorkNo());
+                            if (Cools.isEmpty(wrkMast) || wrkMast.getWrkSts()!=2){
+                                continue;
+                            }
+                            BasJarMast basJarMast = basJarMastService.getJarMastByWrkNo(wrkMast.getWrkNo().longValue());
+                            if (!Cools.isEmpty(basJarMast)){
+                                continue;
+                            }
+                            WrkMastExecute wrkMastExecute = wrkMastExecuteService.getWrkMastExecuteByWrkNo(wrkMast.getWrkNo().longValue());
+                            if (!Cools.isEmpty(wrkMastExecute)){
+                                continue;
+                            }
+                            log.error("Jar浠诲姟鍒涘缓  鍒濆===>琛�={}",4484);
+                            if (jarMastGenerateExecute(jarSlave,wrkMast,jarLocDigit,staStn.getStaNo())){
+                                return;
+                            }
+                        }catch (Exception e){
+                            log.error(jarSlave.getId()+"鍙风~鍖栫綈Jar浠诲姟鍒涘缓寮傚父锛�"+e);
+                        }
+                        break;
+                    }
+                }
+            } catch (Exception e){
+                log.error("{}鍙风~鍖栫綈Jar浠诲姟鍒涘缓寮傚父,寮傚父鍘熷洜={}",jarSlave.getId(),e.getMessage());
+            }
+        }
+    }
+
+    /**
+     *  Jar浠诲姟鍒涘缓===銆嬫墽琛�  //瀹屾垚
+     */
+    public synchronized boolean jarMastGenerateExecute(JarSlave jarSlave,WrkMast wrkMast,Integer jarLocDigit,Integer staNo) {
+        try{
+            // 鑾峰彇纭寲缃愪俊鎭�
+            JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getId());
+            JarProtocol jarProtocol = jarThread.getJarProtocol();
+            if (jarProtocol == null) {
+                return false;
+            }
+            if (jarProtocol.modeType != JarModeType.AUTO){
+                return false;
+            }
+            if (jarProtocol.statusType .equals(JarStatusType.SOS)){
+                log.error("{}鍙风~鍖栫綈鏌ヨ璁惧姝e湪纭寲涓紝浠诲姟寮傚父锛侊紒锛�",jarProtocol.getJarNo());
+                return false;
+            }
+            if (jarProtocol.getJarTemperature()>50){
+                log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
+                return false;
+            }
+
+            JarThread jarOtherThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getJarOtherId());
+            JarProtocol jarOtherProtocol = jarOtherThread.getJarProtocol();
+            if (jarOtherProtocol == null) {
+                return false;
+            }
+//            if (jarOtherProtocol.modeType != JarModeType.AUTO){
+//                return false;
+//            }
+
+            BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
+            if (Cools.isEmpty(basJar)){
+                log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
+                return false;
+            }
+            if (basJar.getJarMode()!=2){
+                return false;
+            }
+
+            //鑷姩銆佺┖闂层�佸彸闂ㄥ叧闂��   Other宸﹂棬鍏抽棴
+            if (jarProtocol.isAutoing() && jarProtocol.jarErr==0
+                    && jarProtocol.leftDoorOpen==0  && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0  && jarProtocol.rightDoorClose==0){
+                if (jarProtocol.statusType != JarStatusType.SOS){
+                    log.error("Jar浠诲姟鍒涘缓===銆嬫墽琛�===>琛�={}",4537);
+                    BasJarMast basJarMast = new BasJarMast(basJar, wrkMast, jarLocDigit);
+                    basJarMast.setJarEnterStaNo(staNo);//鍏ョ~鍖栫綈绔欑偣
+                    basJarMastService.insert(basJarMast);
+                    return true;
+                }
+            }
+
+        } catch (Exception e){
+            log.error("{}鍙风~鍖栫綈鐢熸垚BasJarMast鍒濆浠诲姟澶辫触,寮傚父鍘熷洜={},宸ヤ綔鍙�={},纭寲搴撲綅={}",jarSlave.getId(),e.getMessage(),wrkMast,jarLocDigit);
+        }
+        return false;
+    }
+
+    /**
+     *  Jar浠诲姟瀹屾垚   //瀹屾垚
+     */
+    public synchronized boolean jarMastGenerateComplete() {
+        try{
+            for (int[] ex : execute){
+                try{
+                    WrkMastExecute wrkMastExecuteSou = new WrkMastExecute();
+                    wrkMastExecuteSou.setIoType(ex[0]);
+                    wrkMastExecuteSou.setWrkSts(ex[1]);
+                    wrkMastExecuteSou.setWrkType(1);
+                    List<WrkMastExecute> wrkMastExecuteList = wrkMastExecuteService.selectWrkMastExecuteByWrk(wrkMastExecuteSou);
+                    for (WrkMastExecute wrkMastExecute : wrkMastExecuteList){
+                        log.error("Jar浠诲姟瀹屾垚===>琛�={}",4564);
+                        BasJarMast jarMastByWrkNo = basJarMastService.getJarMastByWrkNo(wrkMastExecute.getWrkNo());
+                        jarMastByWrkNo.setStatus(jarMastByWrkNo.getStatusComplete());
+                        if (!basJarMastService.updateById(jarMastByWrkNo)){
+                            log.error("纭寲鍖哄煙鍒嗘浠诲姟瀹屾垚寮傚父,BasJarMast={},寮傚父淇℃伅={}",JSON.toJSONString(jarMastByWrkNo),"鏇存柊basJarMast澶辫触");
+                        }
+                        wrkMastExecute.setWrkSts(wrkMastExecute.getWrkStsComplete());
+                        wrkMastExecute.setWrkType(2);
+                        if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+                            log.error("纭寲鍖哄煙鍒嗘浠诲姟瀹屾垚寮傚父,wrkMastExecute={},寮傚父淇℃伅={}",JSON.toJSONString(wrkMastExecute),"鏇存柊wrkMastExecute澶辫触");
+                        }
+                    }
+                }catch (Exception e){
+                    log.error("纭寲鍖哄煙鍒嗘浠诲姟瀹屾垚寮傚父,execute={},寮傚父淇℃伅={}",JSON.toJSONString(ex),e.getMessage());
+                }
+            }
+        } catch (Exception e){
+            log.error("纭寲鍖哄煙鍒嗘浠诲姟瀹屾垚寮傚父,寮傚父淇℃伅={}",e.getMessage());
+        }
+        return false;
+    }
+
+    /**
+     *  JarWrkMastExecute浠诲姟鍒涘缓   //瀹屾垚
+     */
+    public synchronized void jarWrkMastExecuteGenerate(Integer sign) {
+        try{
+            boolean[] signExecute = new boolean[]{false,false};
+            switch (sign){
+                case 1:
+                case 2:
+                case 3:
+                case 4:
+                    signExecute = jarWrkMastExecuteGenerateJar(signExecute,sign);//纭寲缃愪换鍔�
+                case 5:
+                    signExecute = jarWrkMastExecuteGenerateBurial(signExecute, sign);//鍐峰嵈妲藉彇杈撻�佺嚎
+                default:
+                    jarWrkMastExecuteGenerateSte(signExecute,sign);//灏忚溅绉诲姩
+            }
+            if (!signExecute[0] && !signExecute[1]){
+                //Ste绉诲姩
+                jarMastMove();
+            }
+        } catch (Exception e){
+            log.error("纭寲鍖哄煙鍒嗘浠诲姟鍒涘缓寮傚父,寮傚父淇℃伅={}",e.getMessage());
+        }
+    }
+
+    public synchronized boolean[] jarWrkMastExecuteGenerateJar(boolean[] signExecute,Integer sign) {
+        for (JarSlave jarSlave : slaveProperties.getJar()) {
+            int i = jarSlave.getId()>2? 1:0;
+            try{
+                if (wrkMastExecuteService.getWrkMastExecuteByJarIdCount(jarSlave.getId())!=0){
+                    continue;
+                }
+
+                // 鑾峰彇纭寲缃愪俊鎭�
+                JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getId());
+                JarProtocol jarProtocol = jarThread.getJarProtocol();
+                if (jarProtocol == null) {
+                    continue;
+                }
+                if (jarProtocol.modeType != JarModeType.AUTO){
+                    continue;
+                }
+                if (jarProtocol.getJarTemperature()>50){
+                    log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
+                    continue;
+                }
+
+                JarThread jarOtherThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getJarOtherId());
+                JarProtocol jarOtherProtocol = jarOtherThread.getJarProtocol();
+                if (jarOtherProtocol == null) {
+                    continue;
+                }
+//                    if (jarOtherProtocol.modeType != JarModeType.AUTO){
+//                        continue;
+//                    }
+
+                BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
+                if (Cools.isEmpty(basJar)){
+                    log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
+                    continue;
+                }
+                //闂ㄤ綔涓�  鏃�
+                //鑷姩銆佺┖闂层�佸彸闂ㄥ叧闂��   Other宸﹂棬鍏抽棴
+                if (jarProtocol.isAutoing() && jarProtocol.jarErr==0
+                        && jarProtocol.leftDoorOpen==0  && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0  && jarProtocol.rightDoorClose==0){
+                    switch (sign){
+                        case 0:
+                        case 1:
+                            if (jarWrkMastExecuteGenerate1(jarSlave,sign)){
+                                signExecute[i] = true;
+                                break;//寮�闂ㄤ换鍔�   鐢熸垚鍏ョ~鍖栫綈浠诲姟
+                            }
+                        case 2:
+                            if (jarWrkMastExecuteGenerate2(jarSlave,sign)){
+                                signExecute[i] = true;
+                                break;//鍏宠繘鏂欓棬
+                            }
+                        case 3:
+                            if (jarWrkMastExecuteGenerate3(jarSlave,sign)){
+                                signExecute[i] = true;
+                                break;//寮�鍑烘枡闂�
+                            }
+                        case 4:
+                            if (jarWrkMastExecuteGenerate4(jarSlave,sign)){
+                                signExecute[i] = true;
+                                break;//鍑虹~鍖栫綈 ===銆� 鍏ュ喎鍗存Ы
+                            }
+                    }
+                }
+            } catch (Exception e){
+                log.error("{}鍙风~鍖栫綈JarWrkMastExecute浠诲姟鍒涘缓寮傚父,寮傚父鍘熷洜={}",jarSlave.getId(),e.getMessage());
+            }
+        }
+        return signExecute;
+    }
+
+    public synchronized boolean[] jarWrkMastExecuteGenerateBurial(boolean[] signExecute,Integer sign) {
+        for (JarSlave jarSlave : slaveProperties.getJar()) {
+            if (jarSlave.getId()<5){
+                continue;
+            }
+            try{
+                if (signExecute[jarSlave.getId()-5]){
+                    continue;
+                }
+                if (wrkMastExecuteService.getWrkMastExecuteByJarIdCount(jarSlave.getId())!=0){
+                    signExecute[jarSlave.getId()-5] = true;
+                    continue;
+                }
+
+                // 鑾峰彇纭寲缃愪俊鎭�
+                JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getId());
+                JarProtocol jarProtocol = jarThread.getJarProtocol();
+                if (jarProtocol == null) {
+                    signExecute[jarSlave.getId()-5] = true;
+                    continue;
+                }
+                if (jarProtocol.modeType != JarModeType.AUTO){
+                    signExecute[jarSlave.getId()-5] = true;
+                    continue;
+                }
+                if (jarProtocol.getJarTemperature()>50){
+                    log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
+                    continue;
+                }
+
+                BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
+                if (Cools.isEmpty(basJar)){
+                    log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
+                    continue;
+                }
+                //闂ㄤ綔涓�  鏃�
+                //鑷姩銆佺┖闂层�佸彸闂ㄥ叧闂��   Other宸﹂棬鍏抽棴
+                if (jarProtocol.isAutoing() && jarProtocol.jarErr==0){
+                    if (jarWrkMastExecuteGenerate5(jarSlave,sign)){
+                        signExecute[jarSlave.getId()-5] = true;
+                        //鍑虹~鍖栫綈 ===銆� 鍏ュ喎鍗存Ы
+                    }
+                    return signExecute;
+                }
+            } catch (Exception e){
+                log.error("{}鍙风~鍖栫綈JarWrkMastExecute浠诲姟鍒涘缓寮傚父,寮傚父鍘熷洜={}",jarSlave.getId(),e.getMessage());
+            }
+        }
+        return signExecute;
+    }
+
+    public synchronized boolean[] jarWrkMastExecuteGenerateSte(boolean[] signExecute,Integer sign) {
+        for (JarSlave jarSlave : slaveProperties.getJar()) {
+            if (jarSlave.getId()<5){
+                continue;
+            }
+            try{
+                if (signExecute[jarSlave.getId()-5]){
+                    continue;
+                }
+                if (wrkMastExecuteService.getWrkMastExecuteByJarIdCount(jarSlave.getId())!=0){
+                    continue;
+                }
+
+                // 鑾峰彇纭寲缃愪俊鎭�
+                JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getId());
+                JarProtocol jarProtocol = jarThread.getJarProtocol();
+                if (jarProtocol == null) {
+                    continue;
+                }
+                if (jarProtocol.modeType != JarModeType.AUTO){
+                    continue;
+                }
+                if (jarProtocol.getJarTemperature()>50){
+                    log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
+                    continue;
+                }
+
+                JarThread jarOtherThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getJarOtherId());
+                JarProtocol jarOtherProtocol = jarOtherThread.getJarProtocol();
+                if (jarOtherProtocol == null) {
+                    continue;
+                }
+//                    if (jarOtherProtocol.modeType != JarModeType.AUTO){
+//                        continue;
+//                    }
+
+                BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
+                if (Cools.isEmpty(basJar)){
+                    log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
+                    continue;
+                }
+                //闂ㄤ綔涓�  鏃�
+                //鑷姩銆佺┖闂层�佸彸闂ㄥ叧闂��   Other宸﹂棬鍏抽棴
+                if (jarProtocol.isAutoing() && jarProtocol.jarErr==0
+                        && jarProtocol.leftDoorOpen==0  && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0  && jarProtocol.rightDoorClose==0){
+                    switch (sign){
+                        case 5:
+                            if (jarWrkMastExecuteGenerate5(jarSlave,sign)){
+                                signExecute[jarSlave.getId()-5] = true;
+                                break;//鍑虹~鍖栫綈 ===銆� 鍏ュ喎鍗存Ы
+                            }
+                    }
+                }
+            } catch (Exception e){
+                log.error("{}鍙风~鍖栫綈JarWrkMastExecute浠诲姟鍒涘缓寮傚父,寮傚父鍘熷洜={}",jarSlave.getId(),e.getMessage());
+            }
+        }
+        return signExecute;
+    }
+
+    /**
+     *  JarWrkMastExecute浠诲姟鍒涘缓   //瀹屾垚
+     *  寮�闂ㄤ换鍔�
+     *  鐢熸垚鍏ョ~鍖栫綈浠诲姟
+     */
+    public synchronized boolean jarWrkMastExecuteGenerate1(JarSlave jarSlave,Integer sign) {
+        try{
+            if (wrkMastExecuteService.getWrkMastExecuteByJarIdCount(jarSlave.getId())!=0){
+                return false;
+            }
+            List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarSlave.getId(), new ArrayList<Integer>() {{
+                add(0);
+                add(2);
+            }});
+
+//            //鍒ゆ柇灏忚溅鐘舵��
+//            if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarInSte().get(0).getSteNo(),1,SteStatusType.IDLE)){
+//                return false;
+//            }
+
+            for (BasJarMast basJarMast : basJarMastList){
+                JarSlave.StaStn staStn = null;
+                for (JarSlave.StaStn staStn1 : jarSlave.getJarInSta()){
+                    if (staStn1.getStaNo().equals(basJarMast.getJarEnterStaNo())){
+                        staStn = staStn1;
+                    }
+                }
+                if (Cools.isEmpty(staStn)){
+                    continue;
+                }
+                //妫�娴嬬珯鐐圭姸鎬�
+                DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, staStn.getDevpPlcId());
+                StaProtocol staProtocol = devpThread.getStation().get(staStn.getStaNo());
+                if (staProtocol == null) {
+                    continue;
+                } else {
+                    staProtocol = staProtocol.clone();
+                }
+                if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo()==basJarMast.getWrkNo().intValue()){
+
+                    //妫�娴婻GV鐘舵��
+                    StaProtocol staProtocolRGV = devpThread.getStation().get(staStn.getRgvNo());
+                    if (staProtocolRGV == null) {
+                        continue;
+                    } else {
+                        staProtocolRGV = staProtocolRGV.clone();
+                    }
+                    if (staProtocolRGV.rgvBoolean(1)){
+                        // 鑾峰彇纭寲缃愪俊鎭�
+                        JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getId());
+                        JarProtocol jarProtocol = jarThread.getJarProtocol();
+                        if (jarProtocol == null) {
+                            return false;
+                        }
+                        if (jarProtocol.modeType != JarModeType.AUTO){
+                            return false;
+                        }
+                        if (jarProtocol.statusType .equals(JarStatusType.WAITING2) || jarProtocol.statusType .equals(JarStatusType.SOS)){
+                            return false;
+                        }
+                        if (jarProtocol.getJarTemperature()>50){
+                            log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
+                            continue;
+                        }
+                        JarThread jarOtherThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getJarOtherId());
+                        JarProtocol jarOtherProtocol = jarOtherThread.getJarProtocol();
+                        if (jarOtherProtocol == null) {
+                            return false;
+                        }
+//                    if (jarOtherProtocol.modeType != JarModeType.AUTO){
+//                        continue;
+//                    }
+
+                        BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
+                        if (Cools.isEmpty(basJar)){
+                            log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
+                            return false;
+                        }
+
+                        //闂ㄤ綔涓�  鏃�
+                        //鑷姩銆佺┖闂层�佸彸闂ㄥ叧闂��   Other宸﹂棬鍏抽棴
+                        if (jarProtocol.isAutoing() && jarProtocol.jarErr==0
+                                && jarProtocol.leftDoorOpen==0  && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0  && jarProtocol.rightDoorClose==0){
+                            if (!jarProtocol.isLeftDoor() && basJarMast.getStatus()==0){
+                                //鐢熸垚寮�闂ㄤ换鍔� OpenTheDoor
+                                if (!jarWrkMastExecuteGenerateExecute(basJar,basJarMast,basJar.getJarNo(),new int[]{basJar.getEnterSteNo(),basJar.getEnterRgvNo(),1,1})){
+                                    log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(basJarMast));
+                                }
+                                return true;
+                            } else if (jarProtocol.isLeftDoor()){
+                                //鐢熸垚鍏ョ~鍖栫綈浠诲姟
+                                if (!jarWrkMastExecuteGenerateExecute(basJar,basJarMast,basJar.getJarNo(),new int[]{basJar.getEnterSteNo(),basJar.getEnterRgvNo(),5,1})){
+                                    log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(basJarMast));
+                                }
+                                return true;
+                            }
+//                            else if (jarProtocol.statusType == JarStatusType.IDLE && jarProtocol.isLeftDoor()){
+//                                log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬬~鍖栫綈绌洪棽浣嗘槸闂ㄦ湭鍏�===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(basJarMast));
+//                            }
+                        }
+                        return false;
+                    } else {
+                        log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆婻GV涓嶆弧瓒虫潯浠讹紝绛夊緟===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(staProtocolRGV)+";BasJarMast:"+JSON.toJSONString(basJarMast));
+                        return false;
+                    }
+                }
+            }
+
+        } catch (Exception e){
+            log.error("{}鍙风~鍖栫綈JarWrkMastExecute浠诲姟鍒涘缓寮傚父,寮傚父鍘熷洜={}",jarSlave.getId(),e.getMessage());
+        }
+        return false;
+    }
+
+    /**
+     *  JarWrkMastExecute浠诲姟鍒涘缓   //瀹屾垚
+     *  鍏宠繘鏂欓棬
+     */
+    public synchronized boolean jarWrkMastExecuteGenerate2(JarSlave jarSlave,Integer sign) {
+        try{
+            if (wrkMastExecuteService.getWrkMastExecuteByJarIdCount(jarSlave.getId())!=0){
+                return false;
+            }
+            List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarSlave.getId(), new ArrayList<Integer>() {{
+                add(4);
+            }});
+            if (basJarMastList.size() != 7){
+                return false;
+            }
+
+            BasJarMast basJarMastSign = basJarMastList.get(0);
+            if (Cools.isEmpty(basJarMastSign)){
+                return false;
+            }
+//            //鍒ゆ柇灏忚溅鐘舵��
+//            if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarInSte().get(0).getSteNo(),1,SteStatusType.IDLE)){
+//                return false;
+//            }
+
+            JarSlave.RgvStn rgvStn = jarSlave.getJarInRgv().get(0);
+
+            if (jarWrkMastExecuteGenerateRgvStatus(rgvStn.getRgvNo(),rgvStn.getDevpPlcId(),1)){
+                // 鑾峰彇纭寲缃愪俊鎭�
+                JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getId());
+                JarProtocol jarProtocol = jarThread.getJarProtocol();
+                if (jarProtocol == null) {
+                    return false;
+                }
+                if (jarProtocol.modeType != JarModeType.AUTO){
+                    return false;
+                }
+
+                if (jarProtocol.statusType .equals(JarStatusType.WAITING2) || jarProtocol.statusType .equals(JarStatusType.SOS)){
+                    log.error("{}鍙风~鍖栫綈鏌ヨ璁惧姝e湪纭寲涓紝浠诲姟寮傚父锛侊紒锛�",jarProtocol.getJarNo());
+                    return false;
+                }
+                if (jarProtocol.getJarTemperature()>50){
+                    log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
+                    return false;
+                }
+                BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
+                if (Cools.isEmpty(basJar)){
+                    log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
+                    return false;
+                }
+                if (basJar.getJarCount()!=7){
+                    log.error("{}鍙风~鍖栫綈鏌ヨ璁惧搴撳瓨鏁板紓甯革紒锛侊紒搴撳瓨寰呭叆鏁帮細{}",jarProtocol.getJarNo(),basJar.getJarCount());
+                    return false;
+                }
+
+                //闂ㄤ綔涓�  鏃�
+                if (jarProtocol.isAutoing() && jarProtocol.statusType == JarStatusType.WAITING3 && jarProtocol.jarErr==0
+                        && 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})){
+                        log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(basJarMastSign));
+                    }
+                    return true;
+                }
+                return false;
+            } else {
+                log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆婻GV涓嶆弧瓒虫潯浠讹紝绛夊緟===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(rgvStn)+";BasJarMast:"+JSON.toJSONString(basJarMastSign));
+                return false;
+            }
+        } catch (Exception e){
+            log.error("{}鍙风~鍖栫綈JarWrkMastExecute浠诲姟鍒涘缓寮傚父,寮傚父鍘熷洜={}",jarSlave.getId(),e.getMessage());
+        }
+        return false;
+    }
+
+    /**
+     *  JarWrkMastExecute浠诲姟鍒涘缓   //瀹屾垚
+     *  寮�鍑烘枡闂�
+     */
+    public synchronized boolean jarWrkMastExecuteGenerate3(JarSlave jarSlave,Integer sign) {
+        try{
+            if (wrkMastExecuteService.getWrkMastExecuteByJarIdCount(jarSlave.getId())!=0){
+                return false;
+            }
+            List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarSlave.getId(), new ArrayList<Integer>() {{
+                add(6);
+            }});
+            if (basJarMastList.size() != 7){
+                return false;
+            }
+            if (basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),5)!=0){
+                return false;
+            }
+
+            BasJarMast basJarMastSign = basJarMastList.get(0);
+            if (Cools.isEmpty(basJarMastSign)){
+                return false;
+            }
+//            //鍒ゆ柇灏忚溅鐘舵��
+//            if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarInSte().get(0).getSteNo(),2,SteStatusType.IDLE)){
+//                return false;
+//            }
+
+            //鍒ゆ柇RGV鐘舵��
+            JarSlave.RgvStn rgvStn = jarSlave.getJarOutRgv().get(0);
+
+            if (jarWrkMastExecuteGenerateRgvStatus(rgvStn.getRgvNo(),rgvStn.getDevpPlcId(),1)){
+                // 鑾峰彇纭寲缃愪俊鎭�
+                JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getId());
+                JarProtocol jarProtocol = jarThread.getJarProtocol();
+                if (jarProtocol == null) {
+                    return false;
+                }
+                if (jarProtocol.modeType != JarModeType.AUTO){
+                    return false;
+                }
+
+                if (jarProtocol.statusType .equals(JarStatusType.SOS)){
+                    log.error("{}鍙风~鍖栫綈鏌ヨ璁惧姝e湪纭寲涓紝浠诲姟寮傚父锛侊紒锛�",jarProtocol.getJarNo());
+                    return false;
+                }
+                if (jarProtocol.getJarTemperature()>50){
+                    log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
+                    return false;
+                }
+                BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
+                if (Cools.isEmpty(basJar)){
+                    log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
+                    return false;
+                }
+
+                //闂ㄤ綔涓�  鏃�
+                if (jarProtocol.isAutoing() && jarProtocol.statusType == JarStatusType.WAITING2 && jarProtocol.jarErr==0
+                        && !jarProtocol.isLeftDoor() && !jarProtocol.isRightDoor()
+                        && jarProtocol.leftDoorOpen==0  && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0  && jarProtocol.rightDoorClose==0){
+                    //寮�鍑烘枡闂�
+                    if (!jarWrkMastExecuteGenerateExecute(basJar,basJarMastSign,basJar.getJarNo(),new int[]{basJar.getOutSteNo(),basJar.getOutRgvNo(),3,1})){
+                        log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(basJarMastSign));
+                    }
+                    return true;
+                }
+                return false;
+            } else {
+                log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆婻GV涓嶆弧瓒虫潯浠讹紝绛夊緟===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(rgvStn)+";BasJarMast:"+JSON.toJSONString(basJarMastSign));
+                return false;
+            }
+        } catch (Exception e){
+            log.error("{}鍙风~鍖栫綈JarWrkMastExecute浠诲姟鍒涘缓寮傚父,寮傚父鍘熷洜={}",jarSlave.getId(),e.getMessage());
+        }
+        return false;
+    }
+
+    /**
+     *  JarWrkMastExecute浠诲姟鍒涘缓   //瀹屾垚
+     *  鍑虹~鍖栫綈 ===銆� 鍏ュ喎鍗存Ы
+     */
+    public synchronized boolean jarWrkMastExecuteGenerate4(JarSlave jarSlave,Integer sign) {
+        try{
+            if (wrkMastExecuteService.getWrkMastExecuteByJarIdCount(jarSlave.getId())!=0){
+                return false;
+            }
+            List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarSlave.getId(), new ArrayList<Integer>() {{
+                add(8);
+            }});
+            if (basJarMastList.isEmpty()){
+                return false;
+            }
+
+            if (basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),4)!=0){
+                return false;
+            }
+
+            BasJarMast jarMastByJarIdMin = basJarMastService.getJarMastByJarIdMin(jarSlave.getId(),8,8);
+            if (Cools.isEmpty(jarMastByJarIdMin)){
+                return false;
+            }
+//            //鍒ゆ柇灏忚溅鐘舵��
+//            if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarOutSte().get(0).getSteNo(),2,SteStatusType.IDLE)){
+//                return false;
+//            }
+
+            //鍒ゆ柇RGV鐘舵��
+            JarSlave.RgvStn rgvStn = jarSlave.getJarOutRgv().get(0);
+
+            if (jarWrkMastExecuteGenerateRgvStatus(rgvStn.getRgvNo(),rgvStn.getDevpPlcId(),1)){
+                // 鑾峰彇纭寲缃愪俊鎭�
+                JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getId());
+                JarProtocol jarProtocol = jarThread.getJarProtocol();
+                if (jarProtocol == null) {
+                    return false;
+                }
+                if (jarProtocol.modeType != JarModeType.AUTO){
+                    return false;
+                }
+
+                if (jarProtocol.statusType .equals(JarStatusType.SOS)){
+                    log.error("{}鍙风~鍖栫綈鏌ヨ璁惧姝e湪纭寲涓紝浠诲姟寮傚父锛侊紒锛�",jarProtocol.getJarNo());
+                    return false;
+                }
+
+                BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
+                if (Cools.isEmpty(basJar)){
+                    log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
+                    return false;
+                }
+
+                //闂ㄤ綔涓�  鏃�
+//                if (jarProtocol.isAutoing() && jarProtocol.statusType == JarStatusType.WAITING4 && jarProtocol.jarErr==0
+                if (jarProtocol.isAutoing() && jarProtocol.jarErr==0
+                        && jarProtocol.isLeftDoor() && jarProtocol.isRightDoor()
+                        && jarProtocol.leftDoorOpen==0  && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0  && jarProtocol.rightDoorClose==0){
+                    //鍏ュ喎鍗存Ы
+                    if (!jarWrkMastExecuteGenerateExecute(basJar,jarMastByJarIdMin,basJar.getJarNo(),new int[]{basJar.getOutSteNo(),basJar.getOutRgvNo(),6,1})){
+                        log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(jarMastByJarIdMin));
+                    }
+                    jarMastByJarIdMin.setStatus(jarMastByJarIdMin.getStatusComplete());
+
+                    if (!basJarMastService.updateById(jarMastByJarIdMin)){
+                        log.error("JarWrkMastExecute浠诲姟鍒涘缓===>jarMastByJarIdMin鏇存柊澶辫触===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(jarMastByJarIdMin));
+                    }
+                    return true;
+                }
+                return false;
+            } else {
+                log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆婻GV涓嶆弧瓒虫潯浠讹紝绛夊緟===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(rgvStn)+";BasJarMast:"+JSON.toJSONString(jarMastByJarIdMin));
+                return false;
+            }
+        } catch (Exception e){
+            log.error("{}鍙风~鍖栫綈JarWrkMastExecute浠诲姟鍒涘缓寮傚父,寮傚父鍘熷洜={}",jarSlave.getId(),e.getMessage());
+        }
+        return false;
+    }
+
+    /**
+     *  JarWrkMastExecute浠诲姟鍒涘缓   //瀹屾垚
+     *  鍐峰嵈瀹屾垚涓婅緭閫佺嚎
+     */
+    public synchronized boolean jarWrkMastExecuteGenerate5(JarSlave jarSlave,Integer sign) {
+        try{
+            if (wrkMastExecuteService.getWrkMastExecuteByJarIdCount(jarSlave.getId())!=0){
+                return false;
+            }
+            List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusListB(jarSlave.getId(), new ArrayList<Integer>() {{
+                add(12);//鍐峰嵈瀹屾垚
+            }});
+            if (basJarMastList.isEmpty()){
+                return false;
+            }
+
+            if (basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),6)!=0){
+                return false;
+            }
+
+            BasJarMast jarMastByJarIdMin = basJarMastService.getJarMastByJarIdMinB(jarSlave.getId(),12,12);
+            if (Cools.isEmpty(jarMastByJarIdMin)){
+                return false;
+            }
+//
+//            //鍒ゆ柇灏忚溅鐘舵��
+//            if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarOutSte().get(0).getSteNo(),3,SteStatusType.IDLE)){
+//                return false;
+//            }
+
+            //鍒ゆ柇RGV鐘舵��
+            JarSlave.RgvStn rgvStn = jarSlave.getJarOutRgv().get(0);
+
+            if (jarWrkMastExecuteGenerateRgvStatus(rgvStn.getRgvNo(),rgvStn.getDevpPlcId(),1)){
+                // 鑾峰彇纭寲缃愪俊鎭�
+                JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getId());
+                JarProtocol jarProtocol = jarThread.getJarProtocol();
+                if (jarProtocol == null) {
+                    return false;
+                }
+                if (jarProtocol.modeType != JarModeType.AUTO){
+                    return false;
+                }
+                if (jarProtocol.getJarTemperature()>50){
+                    log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
+                    return false;
+                }
+                BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
+                if (Cools.isEmpty(basJar)){
+                    log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
+                    return false;
+                }
+
+                //闂ㄤ綔涓�  鏃�
+                if (jarProtocol.isAutoing() && jarProtocol.jarErr==0){
+                    //鍐峰嵈瀹屾垚涓婅緭閫佺嚎
+                    if (!jarWrkMastExecuteGenerateExecute(basJar,jarMastByJarIdMin,basJar.getBurial(),new int[]{basJar.getOutSteNo(),basJar.getOutRgvNo(),9,1})){
+                        log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(jarMastByJarIdMin));
+                    }
+                    return true;
+                }
+                return false;
+            } else {
+                log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆婻GV涓嶆弧瓒虫潯浠讹紝绛夊緟===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(rgvStn)+";BasJarMast:"+JSON.toJSONString(jarMastByJarIdMin));
+                return false;
+            }
+        } catch (Exception e){
+            log.error("{}鍙风~鍖栫綈JarWrkMastExecute浠诲姟鍒涘缓寮傚父,寮傚父鍘熷洜={}",jarSlave.getId(),e.getMessage());
+        }
+        return false;
+    }
+
+    /**
+     *  鍒ゆ柇STE灏忚溅鐘舵��  //瀹屾垚
+     *  1锛欰闈�  杩涙枡闈�
+     *  2锛欱闈� 鍑烘枡闈�
+     *  3锛氬喎鍗存ЫB闈� 涓婅緭閫佺嚎
+     */
+    public synchronized boolean jarWrkMastExecuteGenerateSteStatus(Integer steNo,Integer type,SteStatusType steStatusType) {
+        try{
+            //鍒ゆ柇灏忚溅鐘舵��
+            SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo);
+            if (steThread == null) {
+                return false;
+            }
+            SteProtocol steProtocol = steThread.getSteProtocol();
+            if (steProtocol == null) {
+                return false;
+            }
+            if (steProtocol.getMode() != (short)1) {
+                log.error(steNo + "鍙峰皬杞︾绾匡紝鏃犳硶鎿嶄綔");
+                return false;
+            }
+            if (steProtocol.getChargeStatus()!=0){
+                log.error(steNo + "鍙峰皬杞﹀湪鍏呯數锛岀瓑寰�....");
+                return false;
+            }
+            if (!steProtocol.getStatusType().equals(steStatusType)) {
+                log.error(steNo + "鍙峰皬杞︾姸鎬佷笉鏄�"+JSON.toJSONString(steStatusType)+"锛岀瓑寰�....");
+                return false;
+            }
+            switch (type){
+                case 1:
+                    if (!steProtocol.getLocaType().equals(SteLocaType.POINT20)) {
+                        log.error(steNo + "鍙峰皬杞︿笉鍦ˋ闈㈠钩绉昏溅锛屾棤娉曟搷浣�");
+                        return false;
+                    }
+                    break;
+                case 2:
+                    if (!steProtocol.getLocaType().equals(SteLocaType.POINT23)) {
+                        log.error(steNo + "鍙峰皬杞︿笉鍦˙闈㈠钩绉昏溅锛屾棤娉曟搷浣�");
+                        return false;
+                    }
+                    break;
+                case 3:
+                    if (!steProtocol.getLocaType().equals(SteLocaType.POINT26) && !steProtocol.getLocaType().equals(SteLocaType.POINT25)) {
+                        log.error(steNo + "鍙峰皬杞︿笉鍦ㄦ按妲紹绔紝鏃犳硶鎿嶄綔");
+                        return false;
+                    }
+                    break;
+                default: return false;
+            }
+            return true;
+        } catch (Exception e){
+            log.error("{}鍙峰皬杞︾姸鎬佸垽鏂姸鎬佸紓甯�,寮傚父鍘熷洜={}",steNo,e.getMessage());
+        }
+        return false;
+    }
+
+    /*
+     * 鍒ゆ柇RGV灏忚溅鐘舵��  //瀹屾垚
+     * RGV1;//灏忚溅鏃犺揣绌洪棽
+     * RGV2;//灏忚溅杈撻�佺嚎鍙栬揣鍒颁綅
+     * RGV3;//灏忚溅杩愯涓�
+     * RGV3;//灏忚溅杩愯涓�
+     * RGV4;//灏忚溅鏀瑰乏渚ц揣鐗╃洰鏍囩珯   鍙�1锛堝乏锛夎揣鐗�
+     * RGV5;//灏忚溅鏀瑰彸渚ц揣鐗╃洰鏍囩珯   鍙�2锛堝彸锛夎揣鐗�
+     * RGV6;//涓婁綅鏈烘竻闄ゅ钩绉昏溅璧勬枡
+     * */
+    public synchronized boolean jarWrkMastExecuteGenerateRgvStatus(Integer rgvNo,Integer rgvPlcId,Integer type) {
+        try{
+            //妫�娴婻GV鐘舵��
+            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, rgvPlcId);
+            StaProtocol staProtocolRGV = devpThread.getStation().get(rgvNo);
+            if (staProtocolRGV == null) {
+                return false;
+            } else {
+                staProtocolRGV = staProtocolRGV.clone();
+            }
+            if (staProtocolRGV == null) {
+                return false;
+            }
+
+            return staProtocolRGV.rgvBoolean(type);
+        } catch (Exception e){
+            log.error("{}鍙稲GV鐘舵�佸垽鏂姸鎬佸紓甯�,寮傚父鍘熷洜={}",rgvNo,e.getMessage());
+        }
+        return false;
+    }
+
+    /**
+     *  JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц   //瀹屾垚
+     */
+    public synchronized boolean jarWrkMastExecuteGenerateExecute(BasJar basJar,BasJarMast basJarMast,Integer id,int[] digit) {
+        try {
+            WrkMastExecute wrkMastExecute = new WrkMastExecute(basJarMast);
+            wrkMastExecute.setJarId(id);
+            wrkMastExecute.setSteId(digit[0]);//绌挎鏉縄D
+            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);
+        } catch (Exception e) {
+            log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯稿師鍥狅細"+e.getMessage());
+        }
+        return false;
+    }
+
+    /**
+     *  JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц   //瀹屾垚
+     */
+    public synchronized boolean jarWrkMastExecuteGenerateExecuteMove(BasJar basJar,BasJarMast basJarMast,Integer id,int[] digit) {
+        try {
+            WrkMastExecute wrkMastExecute = new WrkMastExecute(basJarMast);
+            wrkMastExecute.setJarId(id);
+            wrkMastExecute.setSteId(digit[0]);//绌挎鏉縄D
+            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);
+        } catch (Exception e) {
+            log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯稿師鍥狅細"+e.getMessage());
+        }
+        return false;
+    }
+
+    /*
+    * JarWrkMastExecute浠诲姟鍒涘缓==>涓嬪彂
+    * Action
+    * */
+    public synchronized void jarWrkMastExecuteAction(Integer sign,Integer sign2) {
+        if (sign2==0){
+            jarWrkMastExecuteActionOne(sign);
+        } else if (sign2 == 1){
+            jarWrkMastExecuteActionTwo(sign);
+        } else if (sign2 == 2){
+            jarWrkMastExecuteActionThree(sign);
+        }
+    }
+    public synchronized void jarWrkMastExecuteActionOne(Integer sign) {
+        try{
+            List<WrkMastExecute> wrkMastExecuteList = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, null,0);
+            for (WrkMastExecute wrkMastExecute : wrkMastExecuteList){
+                if (wrkMastExecute.getWrkSts()!=0){
+                    continue;
+                }
+                /*
+                * 浠诲姟绫诲瀷 0: 鏈煡
+                * 1: 寮�杩涙枡闂�  2: 鍏宠繘鏂欓棬  3: 寮�鍑烘枡闂�  4: 鍏冲嚭鏂欓棬
+                * 5: 鍏ョ~鍖栫綈
+                * 6: 鍏ュ喎鍗存Ы
+                * 7: 绌挎杞﹁繘鍐峰嵈妲�  8: 绌挎杞︾寮�鍐峰嵈妲�
+                * 9: 鍑哄喎鍗存Ы
+                * 10锛欰=>B 11:B=>A
+                * */
+                log.error("JarWrkMastExecute浠诲姟鍒涘缓==>涓嬪彂===>琛�={}",5326);
+                switch (wrkMastExecute.getIoType()){
+                    case 1://1: 寮�杩涙枡闂�
+                    case 3://3: 寮�鍑烘枡闂�
+                        if (jarWrkMastExecuteActionExecute1(wrkMastExecute,sign)){
+                            break;
+                        }
+                        continue;
+                    case 2:
+                    case 4:
+                        if (jarWrkMastExecuteActionExecute2(wrkMastExecute,sign)){
+                            break;
+                        }
+                        continue;
+                    case 5:
+                        if (jarWrkMastExecuteActionExecute5(wrkMastExecute,sign)){
+                            break;
+                        }
+                        continue;
+                    case 6:
+                        if (jarWrkMastExecuteActionExecute6(wrkMastExecute,sign)){
+                            break;
+                        }
+                        continue;
+                    case 7:
+                    case 8:
+                        if (jarWrkMastExecuteActionExecute7(wrkMastExecute,sign)){
+                            break;
+                        }
+                        continue;
+                    case 9:
+                        if (jarWrkMastExecuteActionExecute9(wrkMastExecute,sign)){
+                            break;
+                        }
+                        continue;
+                    case 10:
+                    case 11:
+                        if (jarWrkMastExecuteActionExecute10(wrkMastExecute,sign)){
+                            break;
+                        }
+                        continue;
+                }
+            }
+        } catch (Exception e){
+            log.error("JarWrkMastExecute浠诲姟鍒涘缓===>Action==>涓嬪彂"+e.getMessage());
+        }
+
+    }
+
+    /*
+     * JarWrkMastExecute浠诲姟鍒涘缓==>涓嬪彂
+     * Action
+     * */
+    public synchronized void jarWrkMastExecuteActionTwo(Integer sign) {
+        try{
+            List<WrkMastExecute> wrkMastExecuteList = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, null,2);
+            for (WrkMastExecute wrkMastExecute : wrkMastExecuteList){
+                /*
+                 * 浠诲姟绫诲瀷 0: 鏈煡
+                 * 1: 寮�杩涙枡闂�  2: 鍏宠繘鏂欓棬  3: 寮�鍑烘枡闂�  4: 鍏冲嚭鏂欓棬
+                 * 5: 鍏ョ~鍖栫綈
+                 * 6: 鍏ュ喎鍗存Ы
+                 * 7: 绌挎杞﹁繘鍐峰嵈妲�  8: 绌挎杞︾寮�鍐峰嵈妲�
+                 * 9: 鍑哄喎鍗存Ы
+                 * 10锛欰=>B 11:B=>A
+                 * */
+                switch (wrkMastExecute.getIoType()){
+                    case 1://1: 寮�杩涙枡闂�
+                    case 3://3: 寮�鍑烘枡闂�
+                        if (jarWrkMastExecuteActionExecute1(wrkMastExecute,sign)){
+                            break;
+                        }
+                        return;
+                    case 2:
+                    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 (jarWrkMastExecuteActionExecute9Two(wrkMastExecute,sign)){
+                            break;
+                        }
+                        return;
+                    case 10:
+                    case 11:
+                        if (jarWrkMastExecuteActionExecute10(wrkMastExecute,sign)){
+                            break;
+                        }
+                        return;
+                }
+            }
+        } catch (Exception e){
+            log.error("JarWrkMastExecute浠诲姟鍒涘缓===>Action==>涓嬪彂"+e.getMessage());
+        }
+
+    }
+
+    /*
+     * JarWrkMastExecute浠诲姟鍒涘缓==>涓嬪彂
+     * Action
+     * */
+    public synchronized void jarWrkMastExecuteActionThree(Integer sign) {
+        try{
+            List<WrkMastExecute> wrkMastExecuteList = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, null,4);
+            for (WrkMastExecute wrkMastExecute : wrkMastExecuteList){
+                /*
+                 * 浠诲姟绫诲瀷 0: 鏈煡
+                 * 1: 寮�杩涙枡闂�  2: 鍏宠繘鏂欓棬  3: 寮�鍑烘枡闂�  4: 鍏冲嚭鏂欓棬
+                 * 5: 鍏ョ~鍖栫綈
+                 * 6: 鍏ュ喎鍗存Ы
+                 * 7: 绌挎杞﹁繘鍐峰嵈妲�  8: 绌挎杞︾寮�鍐峰嵈妲�
+                 * 9: 鍑哄喎鍗存Ы
+                 * 10锛欰=>B 11:B=>A
+                 * */
+                switch (wrkMastExecute.getIoType()){
+                    case 5:
+                        if (jarWrkMastExecuteActionExecute5Three(wrkMastExecute,sign)){
+                            break;
+                        }
+                        return;
+                    case 6:
+                        if (jarWrkMastExecuteActionExecute6Three(wrkMastExecute,sign)){
+                            break;
+                        }
+                        return;
+                }
+            }
+        } catch (Exception e){
+            log.error("JarWrkMastExecute浠诲姟鍒涘缓===>Action==>涓嬪彂"+e.getMessage());
+        }
+
+    }
+
+
+    /**
+     *  JarWrkMastExecute浠诲姟==>涓嬪彂 //瀹屾垚
+     *  1銆�3寮�杩涙枡闂�
+     *  浠诲姟涓嬪彂
+     */
+    public synchronized boolean jarWrkMastExecuteActionExecute1(WrkMastExecute wrkMastExecute,Integer sign) {
+        try{
+            List<WrkMastExecute> wrkMastExecuteByJarNo = wrkMastExecuteService.getWrkMastExecuteByJarNo(wrkMastExecute.getJarId());
+            if (wrkMastExecuteByJarNo.size()!=1
+                    || !wrkMastExecuteByJarNo.get(0).getIoType().equals(wrkMastExecute.getIoType())
+                    || !wrkMastExecuteByJarNo.get(0).getWrkSts().equals(wrkMastExecute.getWrkSts())
+                    || !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;
+            }
+            if (jarProtocol.statusType .equals(JarStatusType.SOS)){
+                log.error("{}鍙风~鍖栫綈鏌ヨ璁惧姝e湪纭寲涓紝浠诲姟寮傚父锛侊紒锛�",jarProtocol.getJarNo());
+                return false;
+            }
+            if (jarProtocol.getJarTemperature()>50){
+                log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
+                return false;
+            }
+            BasJar basJar = basJarMapper.selectById(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, 2);
+            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.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+                    }
+                    return true;
+                }
+                //闂ㄤ綔涓�  鏃�
+                //鑷姩銆佺┖闂层��  杩涙枡浠叧闂渶鎵撳紑
+                if (jarProtocol.isAutoing() && jarProtocol.jarErr==0
+                        && jarProtocol.leftDoorOpen==0  && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0  && jarProtocol.rightDoorClose==0){
+                    log.error("1銆�3寮�杩涙枡闂�==>浠诲姟涓嬪彂===>琛�={}",5546);
+                    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.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+                            }
+                            wrkMastExecute.setWrkType(1);
+                            wrkMastExecute.setWrkSts(2);
+                            if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+                                log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                        wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+                            }
+                        } else {
+                            //鐩存帴寮�闂�/鍏抽棬
+                            if (!jarDoorTake(wrkMastExecute,JarTaskModeType.OPEN_THE_DOOR)){
+                                log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                        wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+                            }
+                            wrkMastExecute.setWrkType(1);
+                            wrkMastExecute.setWrkSts(3);
+
+                            if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+                                log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                        wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(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.toJSONString(wrkMastExecute), JSON.toJSONString(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).getIoType().equals(wrkMastExecute.getIoType())
+                    || !wrkMastExecuteByJarNo.get(0).getWrkSts().equals(wrkMastExecute.getWrkSts())
+                    || !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;
+            }
+            if (jarProtocol.statusType .equals(JarStatusType.WAITING2) || jarProtocol.statusType .equals(JarStatusType.SOS)){
+                log.error("{}鍙风~鍖栫綈鏌ヨ璁惧姝e湪纭寲涓紝浠诲姟寮傚父锛侊紒锛�",jarProtocol.getJarNo());
+                return false;
+            }
+            if (jarProtocol.getJarTemperature()>50){
+                log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
+                return false;
+            }
+            BasJar basJar = basJarMapper.selectById(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, 2);
+            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.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+                    }
+                    return true;
+                }
+                //闂ㄤ綔涓�  鏃�
+                //鑷姩銆佺┖闂层��  杩涙枡浠墦寮�闇�鍏抽棴
+                if (jarProtocol.isAutoing() && jarProtocol.jarErr==0
+                        && jarProtocol.leftDoorOpen==0  && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0  && jarProtocol.rightDoorClose==0){
+                    log.error("2銆�4:鍏抽棬==>浠诲姟涓嬪彂===>琛�={}",5667);
+                    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.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+                            }
+                            wrkMastExecute.setWrkType(1);
+                            wrkMastExecute.setWrkSts(2);
+
+                            if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+                                log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                        wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+                            }
+                        } else {
+                            //鐩存帴鍏抽棬
+                            if (!jarDoorTake(wrkMastExecute,JarTaskModeType.CLOSE_THE_DOOR)){
+                                log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                        wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+                            }
+                            wrkMastExecute.setWrkType(1);
+                            wrkMastExecute.setWrkSts(3);
+
+                            if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+                                log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                        wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(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.toJSONString(wrkMastExecute), JSON.toJSONString(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).getIoType().equals(wrkMastExecute.getIoType())
+                    || !wrkMastExecuteByJarNo.get(0).getWrkSts().equals(wrkMastExecute.getWrkSts())
+                    || !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;
+            }
+            if (jarProtocol.statusType .equals(JarStatusType.WAITING2) || jarProtocol.statusType .equals(JarStatusType.SOS)){
+                log.error("{}鍙风~鍖栫綈鏌ヨ璁惧姝e湪纭寲涓紝浠诲姟寮傚父锛侊紒锛�",jarProtocol.getJarNo());
+                return false;
+            }
+            if (jarProtocol.getJarTemperature()>50){
+                log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
+                return false;
+            }
+            BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
+            if (Cools.isEmpty(basJar)){
+                log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
+                return false;
+            }
+
+            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 2);
+            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.toJSONString(wrkMastExecute), JSON.toJSONString(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){
+                    log.error("5:鍏ョ~鍖栫綈==>浠诲姟涓嬪彂===>琛�={}",5667);
+                    //鍒ゆ柇灏忚溅鐘舵��  //鍏ョ~鍖栫綈灏忚溅鍙复鏃跺睆钄�
+                    if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1,SteStatusType.IDLE)){
+                        return false;
+                    }
+                    if (SteAndJarUtil.steAndJarNowRow(staProtocolRGV.getNowRow() , jarProtocol.getJarNo())){
+
+                        //璋冭溅  == > 鍙栬揣
+                        if (!jarRgvGetTake(wrkMastExecute
+                                ,SteAndJarUtil.getRgvStaRow(wrkMastExecute.getJarEnterStaNo())==1
+                                ,SteAndJarUtil.getRgvStaRow(wrkMastExecute.getJarEnterStaNo())==3)){
+                            log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                    wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+                            return true;
+                        }
+                        wrkMastExecute.setWrkType(1);
+                        wrkMastExecute.setWrkSts(3);
+                        if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+                            log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                    wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+                        }
+                    } else {
+                        //璋冭溅  == > endRow
+                        if (!jarRgvMoveTake(wrkMastExecute,SteAndJarUtil.getRgvJarNowRow(wrkMastExecute.getJarId()))){
+                            log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                    wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+                        }
+                        wrkMastExecute.setWrkType(1);
+                        wrkMastExecute.setWrkSts(2);
+                        if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+                            log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                    wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(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浠诲姟==>涓嬪彂 //瀹屾垚
+     *  io_type==>5:鍏ョ~鍖栫綈  :  wrkSts  ==>4锛歳gv鍙栬揣瀹屾垚
+     *  =====>wrkSts ==>5锛歋te绌挎鐗堝叆纭寲缃�(娓呮RGV璧勬枡)
+     *  浠诲姟涓嬪彂
+     */
+    public synchronized boolean jarWrkMastExecuteActionExecute5Three(WrkMastExecute wrkMastExecute,Integer sign) {
+        try{
+            List<WrkMastExecute> wrkMastExecuteByJarNo = wrkMastExecuteService.selectWrkMastExecuteByWrk(wrkMastExecute);
+            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;
+            }
+            if (jarProtocol.statusType .equals(JarStatusType.WAITING2) || jarProtocol.statusType .equals(JarStatusType.SOS)){
+                log.error("{}鍙风~鍖栫綈鏌ヨ璁惧姝e湪纭寲涓紝浠诲姟寮傚父锛侊紒锛�",jarProtocol.getJarNo());
+                return false;
+            }
+            if (jarProtocol.getJarTemperature()>50){
+                log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
+                return false;
+            }
+            BasJar basJar = basJarMapper.selectById(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, 2);
+            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(2) && staProtocolRGVOther.rgvBoolean(1)){//涓存椂
+//            if (staProtocolRGV.rgvBoolean(2)){
+                if (staProtocolRGV.getNowRow() != staProtocolRGVOther.getNowRow()){
+                    //绉昏蛋  == > 2
+                    if (!jarRgvMoveTake(wrkMastExecute,2)){
+                        log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(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){
+                    log.error("io_type==>5:鍏ョ~鍖栫綈  :  wrkSts  ==>4锛歳gv鍙栬揣瀹屾垚==>浠诲姟涓嬪彂===>琛�={}",5898);
+
+                    if (SteAndJarUtil.steAndJarNowRow(staProtocolRGV.getNowRow() , jarProtocol.getJarNo())){
+                        //鍒ゆ柇灏忚溅鐘舵��
+                        if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1,SteStatusType.IDLE)){
+                            return false;
+                        }
+                        //璋冭溅  == > 鍙栬揣
+                        if (!jarSteTake(wrkMastExecute,SteLocaType.POINT20.id,SteLocaType.POINT22.id,SteTaskModeType.STE_WFFH_13,false,wrkMastExecute.getJarId())){
+                            log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                    wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+                        }
+                        wrkMastExecute.setWrkType(1);
+                        wrkMastExecute.setWrkSts(5);
+                        if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+                            log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                    wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+                        }
+                    } else {
+                        //璋冭溅  == > endRow
+                        if (!jarRgvMoveTake(wrkMastExecute,SteAndJarUtil.getRgvJarNowRow(wrkMastExecute.getJarId()))){
+                            log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                    wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(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).getIoType().equals(wrkMastExecute.getIoType())
+                    || !wrkMastExecuteByJarNo.get(0).getWrkSts().equals(wrkMastExecute.getWrkSts())
+                    || !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;
+            }
+            if (jarProtocol.statusType .equals(JarStatusType.SOS)){
+                log.error("{}鍙风~鍖栫綈鏌ヨ璁惧姝e湪纭寲涓紝浠诲姟寮傚父锛侊紒锛�",jarProtocol.getJarNo());
+                return false;
+            }
+            if (jarProtocol.getJarTemperature()>50){
+                log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
+                return false;
+            }
+            BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
+            if (Cools.isEmpty(basJar)){
+                log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
+                return false;
+            }
+
+            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 2);
+            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 ( staProtocolRGVOther.rgvBoolean(1)){
+                if (staProtocolRGV.getNowRow() != staProtocolRGVOther.getNowRow()){
+                    //绉昏蛋  == > 2
+                    if (!jarRgvMoveTake(wrkMastExecute,2)){
+                        log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(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){
+                    log.error("6:鍏ュ喎鍗存Ы==>浠诲姟涓嬪彂===>琛�={}",6002);
+                    //鍒ゆ柇灏忚溅鐘舵��
+                    if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),2,SteStatusType.IDLE)){
+                        return false;
+                    }
+
+                    if (SteAndJarUtil.steAndJarNowRow(staProtocolRGV.getNowRow() , jarProtocol.getJarNo())){
+
+                        //璋冭溅  == > 鍙栬揣
+                        if (!jarSteTake(wrkMastExecute,SteLocaType.POINT23.id,SteLocaType.POINT21.id,SteTaskModeType.STE_WFQH_12,false,wrkMastExecute.getJarId())){
+                            log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                    wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+                        }
+                        wrkMastExecute.setWrkType(1);
+                        wrkMastExecute.setWrkSts(3);
+                        if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+                            log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                    wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+                        }
+                    } else {
+                        //璋冭溅  == > endRow
+                        if (!jarRgvMoveTake(wrkMastExecute,SteAndJarUtil.getRgvJarNowRow(wrkMastExecute.getJarId()))){
+                            log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                    wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+                        }
+                        wrkMastExecute.setWrkType(1);
+                        wrkMastExecute.setWrkSts(2);
+                        if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+                            log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                    wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(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 jarWrkMastExecuteActionExecute6Three(WrkMastExecute wrkMastExecute,Integer sign) {
+        try{
+            List<WrkMastExecute> wrkMastExecuteByJarNo = wrkMastExecuteService.selectWrkMastExecuteByWrk(wrkMastExecute);
+            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;
+            }
+
+            if (jarProtocol.statusType .equals(JarStatusType.SOS)){
+                log.error("{}鍙风~鍖栫綈鏌ヨ璁惧姝e湪纭寲涓紝浠诲姟寮傚父锛侊紒锛�",jarProtocol.getJarNo());
+                return false;
+            }
+            if (jarProtocol.getJarTemperature()>50){
+                log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
+                return false;
+            }
+            BasJar basJar = basJarMapper.selectById(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, 2);
+            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 (staProtocolRGVOther.rgvBoolean(1)){
+                if (staProtocolRGV.getNowRow() != staProtocolRGVOther.getNowRow()){
+                    //绉昏蛋  == > 2
+                    if (!jarRgvMoveTake(wrkMastExecute,2)){
+                        log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(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){
+                    log.error("6:鍏ュ喎鍗存Ы Three==>浠诲姟涓嬪彂===>琛�={}",6115);
+
+                    if (SteAndJarUtil.steAndJarNowRow(staProtocolRGV.getNowRow() , jarProtocol.getJarNo())){
+                        //鍒ゆ柇灏忚溅鐘舵��
+                        if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),2,SteStatusType.WAITING2)){
+                            return false;
+                        }
+                        //璋冭溅  == > 鍙栬揣
+                        if (!jarSteTake(wrkMastExecute,SteLocaType.POINT23.id,SteLocaType.POINT25.id,SteTaskModeType.STE_WFFH_13,false,SteAndJarUtil.getBJarNo(wrkMastExecute.getJarId()))){
+                            log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                    wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+                        }
+                        wrkMastExecute.setWrkType(1);
+                        wrkMastExecute.setWrkSts(5);
+                        if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+                            log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                    wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+                        }
+                    } else {
+                        //璋冭溅  == > endRow
+                        if (!jarRgvMoveTake(wrkMastExecute,1)){
+                            log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                    wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+                        }
+//                        wrkMastExecute.setWrkType(1);
+//                        wrkMastExecute.setWrkSts(2);
+//                        if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+//                            log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+//                                    wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(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锛氱┛姊溅杩涘喎鍗存Ы   7  B=>C
+     *  8锛氱┛姊溅绂诲紑鍐峰嵈妲�  8 C=>B
+     *  浠诲姟涓嬪彂
+     */
+    public synchronized boolean jarWrkMastExecuteActionExecute7(WrkMastExecute wrkMastExecute,Integer sign) {
+        try{
+            List<WrkMastExecute> wrkMastExecuteByJarNo = wrkMastExecuteService.selectWrkMastExecuteByWrk(wrkMastExecute);
+            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;
+            }
+            if (jarProtocol.getJarTemperature()>50){
+                log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
+                return false;
+            }
+            BasJar basJar = basJarMapper.selectById(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.selectById(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, 2);
+            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.toJSONString(wrkMastExecute), JSON.toJSONString(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()
+                ){
+                    log.error("7锛氱┛姊溅杩涘喎鍗存Ы   7  B=>C//8锛氱┛姊溅绂诲紑鍐峰嵈妲�  8 C=>B Three==>浠诲姟涓嬪彂===>琛�={}",6245);
+                    if (SteAndJarUtil.steAndJarNowRow(staProtocolRGV.getNowRow() , jarProtocolOther.getJarNo())){
+                        //鍒ゆ柇灏忚溅鐘舵��
+                        if (wrkMastExecute.getIoType()==7){  //7  B=>C
+                            if (jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),2,SteStatusType.IDLE)){
+                                //璋冭溅  == > 绉诲姩
+                                if (jarSteTake(wrkMastExecute,SteLocaType.POINT23.id,SteLocaType.POINT26.id,SteTaskModeType.STE_MOVE_14,false,SteAndJarUtil.getBJarNo(wrkMastExecute.getJarId()))){
+                                    log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                            wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+                                }
+                                wrkMastExecute.setWrkType(1);
+                                wrkMastExecute.setWrkSts(3);
+                                if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+                                    log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                            wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(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.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+                                }
+                            }
+                        } else { //8 C=>B
+                            if (jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),3,SteStatusType.IDLE)){
+                                //璋冭溅  == > 绉诲姩
+                                if (!jarSteTake(wrkMastExecute,SteLocaType.POINT26.id,SteLocaType.POINT23.id,SteTaskModeType.STE_MOVE_14,false,SteAndJarUtil.getBJarNo(wrkMastExecute.getJarId()))){
+                                    log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                            wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+                                }
+                                wrkMastExecute.setWrkType(1);
+                                wrkMastExecute.setWrkSts(3);
+                                if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+                                    log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                            wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(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.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+                                }
+                            }
+                        }
+
+                    } else {
+                        //璋冭溅  == > endRow
+                        if (!jarRgvMoveTake(wrkMastExecute,SteAndJarUtil.getRgvJarNowRow(wrkMastExecute.getJarId()))){
+                            log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                    wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+                        }
+                        wrkMastExecute.setWrkType(1);
+                        wrkMastExecute.setWrkSts(2);
+                        if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+                            log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                    wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(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).getIoType().equals(wrkMastExecute.getIoType())
+                    || !wrkMastExecuteByJarNo.get(0).getWrkSts().equals(wrkMastExecute.getWrkSts())
+                    || !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;
+//            }
+//            if (jarProtocol.getJarTemperature()>50){
+//                log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
+//                return false;
+//            }
+            BasJar basJar = basJarMapper.selectById(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, 2);
+            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.toJSONString(wrkMastExecute), JSON.toJSONString(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)){
+                        log.error("9锛氬嚭鍐峰嵈妲�==>浠诲姟涓嬪彂===>琛�={}",6410);
+
+                        //璋冭溅  == > 鍙栬揣
+                        if (!jarSteTake(wrkMastExecute,SteLocaType.POINT26.id,SteLocaType.POINT24.id,SteTaskModeType.STE_WFQH_12,false,SteAndJarUtil.getBJarNo(wrkMastExecute.getJarId()))){
+                            log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={},鍐峰嵈妲芥暟鎹�={},sign={}",
+                                    wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(basJar),sign);
+                        }
+                        wrkMastExecute.setWrkType(1);
+                        wrkMastExecute.setWrkSts(1);
+                        if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+                            log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},鍐峰嵈妲芥暟鎹�={},sign={}",
+                                    wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(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浠诲姟==>涓嬪彂 //瀹屾垚
+     *  9锛氬嚭鍐峰嵈妲�
+     *  浠诲姟涓嬪彂
+     */
+    public synchronized boolean jarWrkMastExecuteActionExecute9Two(WrkMastExecute wrkMastExecute,Integer sign) {
+        try{
+            List<WrkMastExecute> wrkMastExecuteByJarNo = wrkMastExecuteService.getWrkMastExecuteByJarNo(wrkMastExecute.getJarId());
+            if (wrkMastExecuteByJarNo.size()!=1
+                    || !wrkMastExecuteByJarNo.get(0).getIoType().equals(wrkMastExecute.getIoType())
+                    || !wrkMastExecuteByJarNo.get(0).getWrkSts().equals(wrkMastExecute.getWrkSts())
+                    || !wrkMastExecuteByJarNo.get(0).getWrkNo().equals(wrkMastExecute.getWrkNo()) ){
+                return false;
+            }
+
+            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 2);
+            StaProtocol staProtocol = devpThread.getStation().get(wrkMastExecute.getJarOutStaNo());
+            if (staProtocol == null) {
+                return false;
+            } else {
+                staProtocol = staProtocol.clone();
+            }
+            if (staProtocol == null) {
+                return false;
+            }
+            if (staProtocol.getWorkNo()!=0 || !staProtocol.isAutoing() || !staProtocol.isLoading()){
+                return false;
+            }
+
+            //鍒ゆ柇STE灏忚溅鐘舵��
+            if (jarWrkMastExecuteGenerateSteStatus(wrkMastExecute.getSteId(),3,SteStatusType.IDLE)){
+                log.error("9锛氬嚭鍐峰嵈妲絋wo==>浠诲姟涓嬪彂===>琛�={}",6468);
+                // 涓嬪彂绔欑偣淇℃伅
+                staProtocol.setWorkNo(wrkMastExecute.getWrkNo().intValue());
+                staProtocol.setStaNo(wrkMastExecute.getOutStaNo());
+                if (!MessageQueue.offer(SlaveType.Devp, 2, new Task(2, staProtocol))) {
+                    return false;
+                }
+                wrkMastExecute.setWrkType(1);
+                wrkMastExecute.setWrkSts(3);
+                if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+                    log.error("杈撻�佺嚎鍑哄簱鐩爣绔欏懡浠や笅鍙戝け璐�===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},鏀捐揣绔欑偣鏁版嵁={},sign={}",
+                            wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(staProtocol),sign);
+                }
+            }
+            return true;
+        } 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.selectWrkMastExecuteByWrk(wrkMastExecute);
+            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;
+            }
+
+            if (jarProtocol.statusType .equals(JarStatusType.SOS)){
+                log.error("{}鍙风~鍖栫綈鏌ヨ璁惧姝e湪纭寲涓紝浠诲姟寮傚父锛侊紒锛�",jarProtocol.getJarNo());
+                return false;
+            }
+            if (jarProtocol.getJarTemperature()>50){
+                log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
+                return false;
+            }
+            BasJar basJar = basJarMapper.selectById(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, 2);
+            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 ( staProtocolRGVOther.rgvBoolean(1)){
+                if (staProtocolRGV.getNowRow() != staProtocolRGVOther.getNowRow()){
+                    //绉昏蛋  == > 2
+                    if (!jarRgvMoveTake(wrkMastExecute,2)){
+                        log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(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
+                ){
+                    log.error("10锛欰=>B\\11锛欱=>A==>浠诲姟涓嬪彂===>琛�={}",6558);
+                    if (SteAndJarUtil.steAndJarNowRow(staProtocolRGV.getNowRow() , jarProtocol.getJarNo())){
+                        //鍒ゆ柇灏忚溅鐘舵��
+                        if (wrkMastExecute.getIoType()==10){//10锛欰=>B
+                            if (jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1,SteStatusType.IDLE)){
+                                //璋冭溅  == > 绉诲姩
+                                if (!jarSteTake(wrkMastExecute,SteLocaType.POINT20.id,SteLocaType.POINT23.id,SteTaskModeType.STE_MOVE_14,false,wrkMastExecute.getJarId())){
+                                    log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                            wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+                                }
+                                wrkMastExecute.setWrkType(1);
+                                wrkMastExecute.setWrkSts(3);
+                                if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+                                    log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                            wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(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.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+                                }
+                            }
+                        } else {//11:B=>A
+                            if (jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),2,SteStatusType.IDLE)){
+                                //璋冭溅  == > 绉诲姩
+                                if (!jarSteTake(wrkMastExecute,SteLocaType.POINT23.id,SteLocaType.POINT20.id,SteTaskModeType.STE_MOVE_14,false,wrkMastExecute.getJarId())){
+                                    log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                            wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+                                }
+                                wrkMastExecute.setWrkType(1);
+                                wrkMastExecute.setWrkSts(3);
+                                if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+                                    log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                            wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(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.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+                                }
+                            }
+                        }
+
+                    } else {
+                        //璋冭溅  == > endRow
+                        if (!jarRgvMoveTake(wrkMastExecute,SteAndJarUtil.getRgvJarNowRow(wrkMastExecute.getJarId()))){
+                            log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                    wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+                        }
+                        wrkMastExecute.setWrkType(1);
+                        wrkMastExecute.setWrkSts(2);
+                        if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+                            log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                    wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(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;
+    }
+
+    /*
+     * Rgv  鍔ㄤ綔  绉诲姩
+     * */
+    public synchronized boolean jarRgvMoveTake(WrkMastExecute wrkMastExecute,Integer endRow){
+        try {
+            StaProtocol staProtocol = new StaProtocol();
+            staProtocol.setSiteId(wrkMastExecute.getRgvId());
+            staProtocol.setEndRow(endRow.shortValue());
+            // 涓嬪彂绔欑偣淇℃伅
+            if (!MessageQueue.offer(SlaveType.Devp, 2, new Task(9, staProtocol))) {
+                log.error("骞宠 杞gv鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={},浠诲姟鏁版嵁={},涓嬪彂鏁版嵁={}", wrkMastExecute.getRgvId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(staProtocol));
+                return false;
+            }
+            return true;
+        }catch (Exception e){
+            log.error("骞宠 杞gv鍛戒护涓嬪彂澶辫触锛孯gv鍙�={},浠诲姟鏁版嵁={},endRow={}", wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(endRow));
+        }
+        return false;
+    }
+
+    /*
+     * 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;
+    }
+
+    /*
+     * Rgv  鍔ㄤ綔  鍙栬揣瀹屾垚澶嶄綅
+     * */
+    public synchronized boolean jarRgvGetFuTake(WrkMastExecute wrkMastExecute,boolean RGV6){
+        try {
+            StaProtocol staProtocol = new StaProtocol();
+            staProtocol.setSiteId(wrkMastExecute.getRgvId());
+            staProtocol.setRGV6(RGV6);
+            // 涓嬪彂绔欑偣淇℃伅
+            if (!MessageQueue.offer(SlaveType.Devp, 2, new Task(11, staProtocol))) {
+                log.error("骞宠 杞gv鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={},浠诲姟鏁版嵁={},涓嬪彂鏁版嵁={}", wrkMastExecute.getRgvId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(staProtocol));
+                return false;
+            }
+            return true;
+        }catch (Exception e){
+            log.error("骞宠 杞gv鍛戒护涓嬪彂澶辫触锛孯gv鍙�={},浠诲姟鏁版嵁={},RGV6={}", wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(RGV6));
+        }
+        return false;
+    }
+
+    /*
+     * Ste  鍔ㄤ綔
+     * */
+    public synchronized boolean jarSteTake(WrkMastExecute wrkMastExecute,Integer startLoad,Integer endLoad,SteTaskModeType steTaskModeType,boolean complete,Integer siteId){
+        try {
+            SteCommand steCommand = new SteCommand();
+            steCommand.setTaskNo(wrkMastExecute.getWrkNo().intValue());
+            steCommand.setSteNo(wrkMastExecute.getSteId());
+            steCommand.setStartLoad(startLoad);
+            steCommand.setEndLoad(endLoad);
+            steCommand.setTaskModeType(steTaskModeType);
+            steCommand.setComplete(complete);
+            if (!complete){
+                steCommand.setTaskMode(steTaskModeType.id.shortValue());
+            }
+            steCommand.setJarNo(siteId.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;
+            }
+            return true;
+        }catch (Exception e){
+            log.error("绌挎杞te鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={},浠诲姟鏁版嵁={},complete={}", wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(complete));
+        }
+        return false;
+    }
+
+    /*
+     * Jar  鍔ㄤ綔
+     * */
+    public synchronized boolean jarDoorTake(WrkMastExecute wrkMastExecute,JarTaskModeType jarTaskModeType){
+        try{
+            JarCommand jarCommand = new JarCommand();
+            jarCommand.setJarNo(wrkMastExecute.getJarId());
+            jarCommand.setTaskModeType(jarTaskModeType);
+            if (!MessageQueue.offer(SlaveType.Jar, jarCommand.getJarNo(), new Task(2, jarCommand))) {
+                log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={},浠诲姟鏁版嵁={},涓嬪彂鏁版嵁={}", jarCommand.getJarNo(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarCommand));
+                return false;
+            }
+            return true;
+        }catch (Exception e){
+            log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={},浠诲姟鏁版嵁={},涓嬪彂鏁版嵁={}", wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarTaskModeType));
+        }
+        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("JarWrkMastExecute浠诲姟瀹屾垚鎶ラ敊锛�"+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)){
+//
+//                    }
+                    List<WrkMastExecute> wrkMastExecuteByWrkNoList = wrkMastExecuteService.getWrkMastExecuteByWrkNoList(steProtocol.getTaskNo().longValue());
+                    for (WrkMastExecute wrkMastExecute : wrkMastExecuteByWrkNoList){
+                        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.WAITING)){
+                                            //ste浠诲姟瀹屾垚
+                                            if (jarSteTake(wrkMastExecute,null,null,null,true,SteAndJarUtil.getBJarNo(wrkMastExecute.getJarId()))){
+                                                wrkMastExecute.setWrkSts(4);
+                                                if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+                                                    log.error("绌挎杞te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},绌挎杞︽暟鎹�={},sign={}",
+                                                            wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute), JSON.toJSON(steProtocol),sign);
+                                                }
+                                                return true;
+                                            }
+                                        }
+                                        log.error("绌挎杞te鍛戒护涓嬪彂澶辫触===>涓嬪彂寮傚父锛宩ar鍙�={},浠诲姟鏁版嵁={},绌挎杞︽暟鎹�={},sign={}",
+                                                wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(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 (steProtocol.statusType.equals(SteStatusType.WAITING)){
+                                            //ste浠诲姟瀹屾垚
+                                            if (jarSteTake(wrkMastExecute,null,null,null,true,SteAndJarUtil.getBJarNo(wrkMastExecute.getJarId()))){
+                                                wrkMastExecute.setWrkSts(6);
+                                                if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+                                                    log.error("绌挎杞te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},绌挎杞︽暟鎹�={},sign={}",
+                                                            wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(steProtocol),sign);
+                                                }
+                                                return true;
+                                            }
+                                        }
+                                        log.error("绌挎杞te鍛戒护涓嬪彂澶辫触===>涓嬪彂寮傚父锛宩ar鍙�={},浠诲姟鏁版嵁={},绌挎杞︽暟鎹�={},sign={}",
+                                                wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(steProtocol),sign);
+                                        return true;
+                                    }
+                                    continue;
+                                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,SteAndJarUtil.getBJarNo(wrkMastExecute.getJarId()))){
+                                                wrkMastExecute.setWrkSts(4);
+                                                if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+                                                    log.error("绌挎杞te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},绌挎杞︽暟鎹�={},sign={}",
+                                                            wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(steProtocol),sign);
+                                                }
+                                                return true;
+                                            }
+                                        }
+                                        log.error("绌挎杞te鍛戒护涓嬪彂澶辫触===>涓嬪彂寮傚父锛宩ar鍙�={},浠诲姟鏁版嵁={},绌挎杞︽暟鎹�={},sign={}",
+                                                wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(steProtocol),sign);
+                                        return true;
+                                    }
+                                    continue;
+                                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,SteAndJarUtil.getBJarNo(wrkMastExecute.getJarId()))){
+                                                wrkMastExecute.setWrkSts(2);
+                                                if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+                                                    log.error("绌挎杞te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},绌挎杞︽暟鎹�={},sign={}",
+                                                            wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(steProtocol),sign);
+                                                }
+                                                return true;
+                                            }
+                                        }
+                                        log.error("绌挎杞te鍛戒护涓嬪彂澶辫触===>涓嬪彂寮傚父锛宩ar鍙�={},浠诲姟鏁版嵁={},绌挎杞︽暟鎹�={},sign={}",
+                                                wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(steProtocol),sign);
+                                        continue;
+                                    }
+                                default: continue;
+                            }
+                        }
+
+                    }
+                }
+            }
+            return true;
+        }catch (Exception e){
+            log.error("JarWrkMastExecute浠诲姟瀹屾垚 ===>Ste鎶ラ敊锛�"+e);
+        }
+        return false;
+    }
+
+    /**
+     *  JarWrkMastExecute浠诲姟瀹屾垚 ===>Jar   //瀹屾垚
+     *  //纭寲瀹屾垚 淇敼浠诲姟鐘舵��
+     */
+    public synchronized boolean jarWrkMastExecuteGenerateJarComplete(Integer sign) {
+        try{
+            for (JarSlave jarSlave : slaveProperties.getJar()) {
+                if (jarSlave.getId()>4){
+                    continue;
+                }
+                // 鑾峰彇纭寲缃愪俊鎭�
+                JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getId());
+                JarProtocol jarProtocol = jarThread.getJarProtocol();
+                if (jarProtocol == null) {
+                    continue;
+                }
+                if (jarProtocol.modeType != JarModeType.AUTO){
+                    continue;
+                }
+                if (jarProtocol.getJarTemperature()>50){
+                    log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
+                    return false;
+                }
+                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()
+                        && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0
+                ){
+                    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);
+                    }
+                } else if (jarProtocol.getJarErr()==0
+                        && jarProtocol.isRightDoor() && jarProtocol.isLeftDoor()
+                        && jarProtocol.leftDoorOpen!=1 && jarProtocol.leftDoorOpen!=3
+                        && jarProtocol.rightDoorOpen!=1 && jarProtocol.rightDoorOpen!=3
+                        && (jarProtocol.leftDoorOpen==2  || jarProtocol.rightDoorOpen==2)){
+                    WrkMastExecute wrkMastExecuteSou = new WrkMastExecute();
+                    wrkMastExecuteSou.setWrkSts(3);
+                    List<WrkMastExecute> wrkMastExecuteList = wrkMastExecuteService.selectWrkMastExecuteByWrk(wrkMastExecuteSou);
+                    if (wrkMastExecuteList.isEmpty()){
+                        WrkMastExecute execute = new WrkMastExecute();
+                        execute.setJarId(jarProtocol.getJarNo());
+                        //鐩存帴鍏抽棬
+                        if (!jarDoorTake(execute,JarTaskModeType.OPEN_THE_DOOR_COMPLETE)){
+                            log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                    execute.getJarId(), JSON.toJSON(execute), JSON.toJSON(jarProtocol),sign);
+                        }
+                        return true;
+                    }
+                    for (WrkMastExecute wrkMastExecute : wrkMastExecuteList){
+                        if (wrkMastExecute.getIoType() == 1 || wrkMastExecute.getIoType() == 3){
+                            //鐩存帴鍏抽棬
+                            if (!jarDoorTake(wrkMastExecute,JarTaskModeType.OPEN_THE_DOOR_COMPLETE)){
+                                log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                        wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+                            }
+                            wrkMastExecute.setWrkSts(4);
+                            if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+                                log.error("骞宠 杞gv鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                        wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+                                return false;
+                            }
+                            return true;
+                        }
+                    }
+                } else if (jarProtocol.getJarErr()==0
+                        && jarProtocol.isRightDoor() && jarProtocol.isLeftDoor()
+                        && jarProtocol.leftDoorClose!=1 && jarProtocol.leftDoorClose!=3
+                        && jarProtocol.rightDoorClose!=1 && jarProtocol.rightDoorClose!=3
+                        && (jarProtocol.leftDoorClose==2  || jarProtocol.rightDoorClose==2)){
+                    WrkMastExecute wrkMastExecuteSou = new WrkMastExecute();
+                    wrkMastExecuteSou.setWrkSts(3);
+                    List<WrkMastExecute> wrkMastExecuteList = wrkMastExecuteService.selectWrkMastExecuteByWrk(wrkMastExecuteSou);
+                    if (wrkMastExecuteList.isEmpty()){
+                        WrkMastExecute execute = new WrkMastExecute();
+                        execute.setJarId(jarProtocol.getJarNo());
+                        //鐩存帴鍏抽棬
+                        if (!jarDoorTake(execute,JarTaskModeType.CLOSE_THE_DOOR_COMPLETE)){
+                            log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                    execute.getJarId(), JSON.toJSON(execute), JSON.toJSON(jarProtocol),sign);
+                        }
+                        return true;
+                    }
+                    for (WrkMastExecute wrkMastExecute : wrkMastExecuteList){
+                        if (wrkMastExecute.getIoType() == 2 || wrkMastExecute.getIoType() == 4){
+                            //鐩存帴鍏抽棬
+                            if (!jarDoorTake(wrkMastExecute,JarTaskModeType.CLOSE_THE_DOOR_COMPLETE)){
+                                log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                        wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+                            }
+                            wrkMastExecute.setWrkSts(4);
+                            if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+                                log.error("骞宠 杞gv鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                        wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+                                return false;
+                            }
+                            return true;
+                        }
+                    }
+                }
+            }
+            return true;
+        }catch (Exception e){
+            log.error("//纭寲瀹屾垚 淇敼浠诲姟鐘舵��  鎶ラ敊锛�"+e);
+        }
+        return false;
+    }
+
+    /**
+     *  JarWrkMastExecute浠诲姟瀹屾垚 ===>RGV绉诲姩  //瀹屾垚
+     */
+    public synchronized boolean jarWrkMastExecuteGenerateRgvComplete1(Integer sign) {
+        try{
+            WrkMastExecute wrkMastExecuteSou = new WrkMastExecute();
+            wrkMastExecuteSou.setWrkSts(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("JarWrkMastExecute浠诲姟瀹屾垚 ===>RGV绉诲姩锛佸紓甯�"+e);
+        }
+        return false;
+    }
+
+    /**
+     *  JarWrkMastExecute浠诲姟瀹屾垚 ===>RGV鍙栬揣  //瀹屾垚
+     */
+    public synchronized boolean jarWrkMastExecuteGenerateRgvComplete2(Integer sign) {
+        try{
+            WrkMastExecute wrkMastExecuteSou = new WrkMastExecute();
+            wrkMastExecuteSou.setWrkSts(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;
+                }
+
+
+                if ( staProtocolRGV.rgvBoolean(2)
+                        && staProtocolRGV.getNowRow() == SteAndJarUtil.getRgvJarNowRow(wrkMastExecute.getJarId())){
+                    //璋冭溅  == > 鍙栬揣瀹屾垚澶嶄綅
+                    if (!jarRgvGetFuTake(wrkMastExecute,true)){
+                        log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+                                wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(staProtocolRGV),sign);
+                        return true;
+                    }
+                    wrkMastExecute.setWrkSts(4);
+                    if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+                        log.error("骞宠 杞gv鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},骞宠 杞gv鏁版嵁={},sign={}",
+                                wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(staProtocolRGV),sign);
+                        return true;
+                    }
+                    return true;
+                }
+            }
+            return true;
+        }catch (Exception e){
+            log.error(" JarWrkMastExecute浠诲姟瀹屾垚 ===>RGV鍙栬揣  寮傚父锛�"+e);
+        }
+        return false;
+    }
+
+    /**
+     *  Jar浠诲姟  绌挎杞︾Щ鍔ㄤ换鍔�   //瀹屾垚
+     */
+    public synchronized boolean jarMastMove() {
+        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 (wrkMastExecuteService.selectNoStart(steSlave.getId())!=0){
+                    continue;
+                }
+
+                if (wrkMastExecuteService.selectMoveStart(steSlave.getId())!=0){
+                    continue;
+                }
+
+                try{
+                    if (jarWrkMastExecuteGenerateSteStatus(steSlave.getId(),1,SteStatusType.IDLE)){
+                        List<WrkMastExecute> wrkMastExecutes = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 5, null);
+                        if (wrkMastExecutes.isEmpty()){
+                            List<WrkMastExecute> wrkMastExecutesB = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 6, null);
+                            List<WrkMastExecute> wrkMastExecutesC = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 9, null);
+
+                            if (!wrkMastExecutesB.isEmpty() || !wrkMastExecutesC.isEmpty()){
+                                WrkMastExecute wrkMastExecute = !wrkMastExecutesB.isEmpty() ? wrkMastExecutesB.get(0) : wrkMastExecutesC.get(0);
+                                BasJar basJar = basJarMapper.selectById(wrkMastExecute.getJarId());
+                                if (Cools.isEmpty(basJar)){
+                                    log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",wrkMastExecute.getJarId());
+                                    return false;
+                                }
+                                BasJarMast jarMastByWrkNo = basJarMastService.getJarMastByWrkNo(wrkMastExecute.getWrkNo());
+                                //A==>B
+                                if (!jarWrkMastExecuteGenerateExecute(basJar,jarMastByWrkNo,basJar.getJarNo(),new int[]{basJar.getOutSteNo(),basJar.getOutRgvNo(),10,1})){
+                                    log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(jarMastByWrkNo));
+                                }
+                                continue;
+                            }
+                        }
+                    } else if (jarWrkMastExecuteGenerateSteStatus(steSlave.getId(),2,SteStatusType.IDLE)){
+                        List<WrkMastExecute> wrkMastExecutes = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 6, null);
+                        if (wrkMastExecutes.isEmpty()){
+                            List<WrkMastExecute> wrkMastExecutesA = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 5, null);
+                            List<WrkMastExecute> wrkMastExecutesC = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 9, null);
+                            if (!wrkMastExecutesA.isEmpty()){
+                                WrkMastExecute wrkMastExecute = wrkMastExecutesA.get(0);
+                                BasJar basJar = basJarMapper.selectById(wrkMastExecute.getJarId());
+                                if (Cools.isEmpty(basJar)){
+                                    log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",wrkMastExecute.getJarId());
+                                    return false;
+                                }
+                                BasJarMast jarMastByWrkNo = basJarMastService.getJarMastByWrkNo(wrkMastExecute.getWrkNo());
+                                //B==>A
+                                if (!jarWrkMastExecuteGenerateExecute(basJar,jarMastByWrkNo,basJar.getJarNo(),new int[]{basJar.getOutSteNo(),basJar.getOutRgvNo(),11,1})){
+                                    log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(jarMastByWrkNo));
+                                }
+                                continue;
+                            }
+
+                            if (!wrkMastExecutesC.isEmpty()){
+                                WrkMastExecute wrkMastExecute = wrkMastExecutesC.get(0);
+                                BasJar basJar = basJarMapper.selectById(wrkMastExecute.getJarId());
+                                if (Cools.isEmpty(basJar)){
+                                    log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",wrkMastExecute.getJarId());
+                                    return false;
+                                }
+                                BasJarMast jarMastByWrkNo = basJarMastService.getJarMastByWrkNo(wrkMastExecute.getWrkNo());
+                                //B==>C
+                                if (!jarWrkMastExecuteGenerateExecute(basJar,jarMastByWrkNo,basJar.getJarNo(),new int[]{basJar.getOutSteNo(),basJar.getOutRgvNo(),7,1})){
+                                    log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(jarMastByWrkNo));
+                                }
+                                continue;
+                            }
+                        }
+                    } else if (jarWrkMastExecuteGenerateSteStatus(steSlave.getId(),3,SteStatusType.IDLE)){
+                        List<WrkMastExecute> wrkMastExecutes = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 9, null);
+                        if (wrkMastExecutes.isEmpty()){
+                            List<WrkMastExecute> wrkMastExecutesB = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 6, null);
+                            List<WrkMastExecute> wrkMastExecutesA = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 5, null);
+                            if (!wrkMastExecutesB.isEmpty() || !wrkMastExecutesA.isEmpty()){
+                                WrkMastExecute wrkMastExecute = !wrkMastExecutesB.isEmpty() ? wrkMastExecutesB.get(0) : wrkMastExecutesA.get(0);
+                                BasJar basJar = basJarMapper.selectById(wrkMastExecute.getJarId());
+                                if (Cools.isEmpty(basJar)){
+                                    log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",wrkMastExecute.getJarId());
+                                    return false;
+                                }
+                                BasJarMast jarMastByWrkNo = basJarMastService.getJarMastByWrkNo(wrkMastExecute.getWrkNo());
+                                //C==>B
+                                if (!jarWrkMastExecuteGenerateExecute(basJar,jarMastByWrkNo,basJar.getJarNo(),new int[]{basJar.getOutSteNo(),basJar.getOutRgvNo(),8,1})){
+                                    log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(jarMastByWrkNo));
+                                }
+                                continue;
+                            }
+                        }
+                    }
+                }catch (Exception e){
+                    log.error("纭寲鍖哄煙鍒嗘浠诲姟瀹屾垚寮傚父,steProtocol={},寮傚父淇℃伅={}",JSON.toJSONString(steProtocol),e.getMessage());
+                }
+
+                WrkMastExecute wrkMastExecute = wrkMastExecuteService.selectStart(steSlave.getId());
+
+
+            }
+        } catch (Exception e){
+            log.error("纭寲鍖哄煙鍒嗘浠诲姟瀹屾垚寮傚父,寮傚父淇℃伅={}",e.getMessage());
+        }
+        return false;
+    }
+
 }

--
Gitblit v1.9.1