From 1a40db40864f0662f6ab3bf1597faa249cffca68 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期三, 23 十月 2024 10:29:52 +0800
Subject: [PATCH] *

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 8547 +----------------------------------------------------------
 1 files changed, 240 insertions(+), 8,307 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 411e038..7634128 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -1,50 +1,30 @@
 package com.zy.asrs.service.impl;
 
 import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
-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.domain.enums.WorkNoType;
 import com.zy.asrs.entity.*;
-import com.zy.asrs.mapper.*;
-import com.zy.asrs.service.*;
-import com.zy.asrs.utils.*;
-import com.zy.common.model.LocTypeDto;
-import com.zy.common.model.MatDto;
-import com.zy.common.model.SearchLocParam;
-import com.zy.common.model.StartupDto;
-import com.zy.common.service.CommonService;
-import com.zy.common.utils.CollectionUtils;
-import com.zy.common.utils.HttpHandler;
-import com.zy.common.utils.RedisUtil;
-import com.zy.common.utils.RgvUtils;
-import com.zy.core.CrnThread;
-import com.zy.core.DevpThread;
-import com.zy.core.Slave;
+import com.zy.asrs.service.BasCircularShuttleService;
+import com.zy.asrs.service.BasDevpPositionService;
+import com.zy.asrs.service.BasDevpService;
+import com.zy.asrs.service.WrkMastService;
+import com.zy.asrs.utils.SortTheExecutionOfTheCarUtil;
+import com.zy.asrs.utils.TimeCalculatorUtils;
 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.*;
-import com.zy.core.model.cpmmandParam.CrnCommandParam;
-import com.zy.core.model.protocol.*;
+import com.zy.core.model.RgvSlave;
+import com.zy.core.model.Task;
+import com.zy.core.model.command.RgvCommand;
+import com.zy.core.model.protocol.RgvProtocol;
 import com.zy.core.properties.SlaveProperties;
-import com.zy.core.thread.*;
+import com.zy.core.thread.RgvThread;
 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;
-import java.util.stream.Collectors;
 
 /**
  * 绔嬩綋浠撳簱WCS绯荤粺涓绘祦绋嬩笟鍔�
@@ -55,3953 +35,244 @@
 @Transactional
 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}};
-
-    private static final Integer jarMaxLoc = 7;
-    private static final Float jarTemperature = 80F;
-    @Autowired
-    private CommonService commonService;
     @Autowired
     private SlaveProperties slaveProperties;
     @Autowired
-    private WrkMastMapper wrkMastMapper;
-    @Autowired
-    private WrkDetlService wrkDetlService;
-    @Autowired
-    private WaitPakinMapper waitPakinMapper;
-    @Autowired
-    private LocMastService locMastService;
-    @Autowired
-    private StaDescService staDescService;
-    @Autowired
-    private BasCrnpService basCrnpService;
-    @Autowired
-    private BasRgvService basRgvService;
-    @Autowired
     private BasDevpService basDevpService;
     @Autowired
-    private LocDetlService locDetlService;
+    private BasRgvServiceImpl basRgvService;
     @Autowired
-    private BasErrLogService basErrLogService;
+    private BasDevpPositionService basDevpPositionService;
     @Autowired
-    private BasCrnErrorMapper basCrnErrorMapper;
+    private BasCircularShuttleService basCircularShuttleService;
     @Autowired
-    private BasRgvErrMapper basRgvErrMapper;
-    @Autowired
-    private BasRgvErrLogService basRgvErrLogService;
-    @Autowired
-    private BasRgvPathService basRgvPathService;
-    @Autowired
-    private RedisUtil redisUtil;
-    @Autowired
-    private WrkMastStaMapper wrkMastStaMapper;
-    @Autowired
-    private BasRgvMapMapper basRgvMapMapper;
-    @Autowired
-    private RgvOneSignMapper rgvOneSignMapper;
-    @Autowired
-    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 WrkMastService wrkMastService;
     /**
-     * 缁勬墭
-     * 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿鐢熸垚鍏ュ簱宸ヤ綔妗o紝宸ヤ綔鐘舵�� 2
+     * 绔欑偣浠诲姟妫�娴�  鏇存柊灏忚溅浣嶇疆淇℃伅
      */
-    public synchronized void generateStoreWrkFile() {
-        // 鏍规嵁杈撻�佺嚎plc閬嶅巻
-        for (DevpSlave devp : slaveProperties.getDevp()) {
-            // 閬嶅巻鍏ュ簱鍙�
-            for (DevpSlave.Sta inSta : devp.getInSta()) {
-                // 鑾峰彇鏉$爜鎵弿浠俊鎭�
-                BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode());
-                if (barcodeThread == null) {
-                    continue;
-                }
-                String barcode = barcodeThread.getBarcode();
-
-                if (!Cools.isEmpty(barcode)) {
-//                    log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
-                    if ("NG".endsWith(barcode) || "NoRead".equals(barcode) || !CodeDetectionUtil.barcodeDetection(barcode)) {
-                        continue;
-                    }
-                } else {
-                    continue;
-                }
-
-                // 鑾峰彇鍏ュ簱绔欎俊鎭�
-//                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
-                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
-                StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
-                if (staProtocol == null) {
-                    continue;
-                } else {
-                    staProtocol = staProtocol.clone();
-                }
-
-                // 灏哄妫�娴嬪紓甯�
-                boolean back = false;
-                String errMsg = "寮傚父锛�";
-                if (staProtocol.isFrontErr()) {
-                    errMsg = errMsg+"鍓嶈秴闄愶紱";
-                    back = true;
-                }
-                if (staProtocol.isBackErr()) {
-                    errMsg = errMsg+"鍚庤秴闄�";
-                    back = true;
-                }
-                if (staProtocol.isHighErr()) {
-                    errMsg = errMsg+"楂樿秴闄�";
-                    back = true;
-                }
-                if (staProtocol.isLeftErr()) {
-                    errMsg = errMsg+"宸﹁秴闄�";
-                    back = true;
-                }
-                if (staProtocol.isRightErr()) {
-                    errMsg = errMsg+"鍙宠秴闄�";
-                    back = true;
-                }
-                if (staProtocol.isWeightErr()) {
-                    errMsg = errMsg+"瓒呴噸";
-                    back = true;
-                }
-                if (staProtocol.isBarcodeErr()) {
-                    errMsg = errMsg+"鎵爜澶辫触";
-                    back = true;
-                }
-                // 閫�鍥�
-                if (back) {
-                    // led 寮傚父鏄剧ず
-                    LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
-                    if (ledThread != null) {
-                        MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg));
-                    }
-                    continue;
-                }
-
-                // 鍏ュ嚭搴撴ā寮忓垽鏂�
-//                if ( inSta.getStaNo()==203 && devpThread.ioModeOf2F != IoModeType.PAKIN_MODE) { continue; }
-//                if (inSta.getStaNo() == 203 && devpThread.ioModeOf2F == IoModeType.PAKOUT_MODE) {
-//                    continue;
-//                }
-
-                // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
-                if (staProtocol.isAutoing()
-                        && staProtocol.isLoading()
-                        && staProtocol.isInEnable()
-                        && !staProtocol.isEmptyMk()
-                        && staProtocol.getWorkNo() == 0
-                        && staProtocol.isPakMk()) {// && !Cools.isEmpty(barcode)) {
-
-//                    if(Cools.isEmpty(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode)) {
-//                        log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
-//                        //鏉$爜涓虹┖鎴栬�呬笉绗﹀悎锛岄��搴撳埌172绔欑偣
-//                        staProtocol.setWorkNo((short)32222);
-//                        staProtocol.setStaNo((short)172);
-//                        devpThread.setPakMk(staProtocol.getSiteId(), false);
-//                        boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-//                        if (!result) {
-//                            throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
-//                        }
-//                        continue;
-//                    }
-
-                    // 鍒ゆ柇閲嶅宸ヤ綔妗�
-                    WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode);
-                    if (wrkMast != null) {
-                        LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
-                        barcodeThread.setBarcode("");
-                        staProtocol.setWorkNo(wrkMast.getWrkNo());
-                        staProtocol.setStaNo(wrkMast.getStaNo());
-
-                        devpThread.setPakMk(staProtocol.getSiteId(), false);
-                        boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                        if (!result) {
-                            throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
-                        }
-                        return;
-                    }
-//                    // 鑾峰彇鍏ュ簱閫氱煡妗�
-//                    List<WaitPakin> waitPakins = waitPakinMapper.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", barcode).eq("io_status", "N"));
-//                    if (waitPakins.isEmpty()) {
-//                        log.error("鏃犳鍏ュ簱鏉$爜鏁版嵁銆傛潯鐮佸彿={}", barcode);
-//                        continue;
-//                    }
-
-                    try {
-
-                        LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
-
-                        SearchLocParam param = new SearchLocParam();
-                        param.setBarcode(barcode);
-                        param.setIoType(1);
-                        param.setSourceStaNo(inSta.getStaNo());
-                        param.setLocType1(locTypeDto.getLocType1());
-                        String response = new HttpHandler.Builder()
-                                .setUri(wmsUrl)
-                                .setPath("/rpc/pakin/loc/v1")
-                                .setJson(JSON.toJSONString(param))
-                                .build()
-                                .doPost();
-                        JSONObject jsonObject = JSON.parseObject(response);
-                        if (jsonObject.getInteger("code").equals(200)) {
-                            StartupDto dto = jsonObject.getObject("data", StartupDto.class);
-
-                            LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
-
-
-                            barcodeThread.setBarcode("");
-                            staProtocol.setWorkNo(dto.getWorkNo());
-
-                            if(Cools.isEmpty(dto.getRgvNo()) || dto.getRgvNo() <= 0) {
-                                staProtocol.setStaNo(607);//607
-                            } else {//濡傛灉瀛樺湪RGV缂栧彿锛岃鏄庨渶瑕丷GV鎺ラ┏锛屽厛涓嬪彂浠诲姟鍒癛GV婧愮珯
-                                staProtocol.setStaNo(dto.getRgvSstaNo());
-                            }
-
-                            devpThread.setPakMk(staProtocol.getSiteId(), false);
-                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                            if (!result) {
-                                throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
-                            }
-                        } else {
-                            log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
-                        }
-
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                    }
-
-                }
-
-
-            }
-        }
-
-    }
-
-    /**
-     * 缁勬墭
-     * 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿鐢熸垚鍏ュ簱宸ヤ綔妗o紝宸ヤ綔鐘舵�� 2
-     */
-    public synchronized void generateStoreWrkFileSingle() {
-        // 鏍规嵁杈撻�佺嚎plc閬嶅巻
-        for (DevpSlave devp : slaveProperties.getDevp()) {
-            // 閬嶅巻鍏ュ簱鍙�
-            for (DevpSlave.Sta inSta : devp.getInSingleSta()) {
-                // 鑾峰彇鏉$爜鎵弿浠俊鎭�
-                BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode());
-                if (barcodeThread == null) {
-                    continue;
-                }
-                String barcode = barcodeThread.getBarcode();
-
-                if (!Cools.isEmpty(barcode)) {
-//                    log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
-                    if ("NG".endsWith(barcode) || "NoRead".equals(barcode) || !CodeDetectionUtil.barcodeDetection(barcode)) {
-                        continue;
-                    }
-                } else {
-                    continue;
-                }
-
-                // 鑾峰彇鍏ュ簱绔欎俊鎭�
-//                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
-                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
-                StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
-                if (staProtocol == null) {
-                    continue;
-                } else {
-                    staProtocol = staProtocol.clone();
-                }
-
-                // 灏哄妫�娴嬪紓甯�
-                boolean back = false;
-                String errMsg = "寮傚父锛�";
-                if (staProtocol.isFrontErr()) {
-                    errMsg = errMsg+"鍓嶈秴闄愶紱";
-                    back = true;
-                }
-                if (staProtocol.isBackErr()) {
-                    errMsg = errMsg+"鍚庤秴闄�";
-                    back = true;
-                }
-                if (staProtocol.isHighErr()) {
-                    errMsg = errMsg+"楂樿秴闄�";
-                    back = true;
-                }
-                if (staProtocol.isLeftErr()) {
-                    errMsg = errMsg+"宸﹁秴闄�";
-                    back = true;
-                }
-                if (staProtocol.isRightErr()) {
-                    errMsg = errMsg+"鍙宠秴闄�";
-                    back = true;
-                }
-                if (staProtocol.isWeightErr()) {
-                    errMsg = errMsg+"瓒呴噸";
-                    back = true;
-                }
-                if (staProtocol.isBarcodeErr()) {
-                    errMsg = errMsg+"鎵爜澶辫触";
-                    back = true;
-                }
-                // 閫�鍥�
-                if (back) {
-                    // led 寮傚父鏄剧ず
-                    LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
-                    if (ledThread != null) {
-                        MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg));
-                    }
-                    continue;
-                }
-
-                // 鍏ュ嚭搴撴ā寮忓垽鏂�
-//                if ( inSta.getStaNo()==203 && devpThread.ioModeOf2F != IoModeType.PAKIN_MODE) { continue; }
-//                if (inSta.getStaNo() == 203 && devpThread.ioModeOf2F == IoModeType.PAKOUT_MODE) {
-//                    continue;
-//                }
-
-                // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
-                if (staProtocol.isAutoing()
-                        && staProtocol.isLoading()
-                        && staProtocol.isInEnable()
-                        && !staProtocol.isEmptyMk()
-                        && staProtocol.getWorkNo() == 0
-                        && staProtocol.isPakMk()) {// && !Cools.isEmpty(barcode)) {
-
-                    if(Cools.isEmpty(barcode) || "NG".endsWith(barcode) || !CodeDetectionUtil.barcodeDetection(barcode)) {
-                        log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
-//                        //鏉$爜涓虹┖鎴栬�呬笉绗﹀悎锛岄��搴撳埌172绔欑偣
-//                        staProtocol.setWorkNo((short)32222);
-//                        staProtocol.setStaNo((short)172);
-//                        devpThread.setPakMk(staProtocol.getSiteId(), false);
-//                        boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-//                        if (!result) {
-//                            throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
-//                        }
-                        continue;
-                    }
-
-                    // 鍒ゆ柇閲嶅宸ヤ綔妗�
-                    WrkMast wrkMast111 = wrkMastMapper.selectPakInStep111(inSta.getStaNo(), barcode);
-                    if (wrkMast111 != null) {
-                        LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
-                        barcodeThread.setBarcode("");
-                        staProtocol.setWorkNo(wrkMast111.getWrkNo());
-                        staProtocol.setStaNo(wrkMast111.getStaNo());
-
-                        devpThread.setPakMk(staProtocol.getSiteId(), false);
-                        boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                        if (!result) {
-                            throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
-                        }
-                        return;
-                    }
-
-                    // 鍒ゆ柇閲嶅宸ヤ綔妗�
-                    WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode);
-                    if (wrkMast != null) {
-                        log.error("宸ヤ綔妗d腑宸插瓨鍦ㄨ绔欑姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,宸ヤ綔鍙�={}", wrkMast.getWrkNo());
-                        continue;
-                    }
-//                    // 鑾峰彇鍏ュ簱閫氱煡妗�
-//                    List<WaitPakin> waitPakins = waitPakinMapper.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", barcode).eq("io_status", "N"));
-//                    if (waitPakins.isEmpty()) {
-//                        log.error("鏃犳鍏ュ簱鏉$爜鏁版嵁銆傛潯鐮佸彿={}", barcode);
-//                        continue;
-//                    }
-
-                    try {
-
-                        LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
-
-                        SearchLocParam param = new SearchLocParam();
-                        param.setBarcode(barcode);
-                        param.setIoType(1);
-                        param.setSourceStaNo(inSta.getStaNo());
-                        param.setLocType1(locTypeDto.getLocType1());
-                        String response = new HttpHandler.Builder()
-                                .setUri(wmsUrl)
-                                .setPath("/rpc/pakin/pair/station/single/loc/v1")
-                                .setJson(JSON.toJSONString(param))
-                                .build()
-                                .doPost();
-                        JSONObject jsonObject = JSON.parseObject(response);
-                        if (jsonObject.getInteger("code").equals(200)) {
-                            StartupDto dto = jsonObject.getObject("data", StartupDto.class);
-
-                            LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
-
-
-                            barcodeThread.setBarcode("");
-                            staProtocol.setWorkNo(dto.getWorkNo());
-
-                            if(Cools.isEmpty(dto.getRgvNo()) || dto.getRgvNo() <= 0) {
-                                staProtocol.setStaNo(dto.getStaNo());
-                            } else {//濡傛灉瀛樺湪RGV缂栧彿锛岃鏄庨渶瑕丷GV鎺ラ┏锛屽厛涓嬪彂浠诲姟鍒癛GV婧愮珯
-                                staProtocol.setStaNo(dto.getRgvSstaNo());
-                            }
-
-                            devpThread.setPakMk(staProtocol.getSiteId(), false);
-                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                            if (!result) {
-                                throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
-                            }
-                        } else {
-                            log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/pair/station/single/loc/v1", JSON.toJSONString(param), response);
-                        }
-
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                    }
-
-                }
-
-
-            }
-        }
-
-    }
-
-    /**
-     * 缁勬墭
-     * 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿鐢熸垚鍏ュ簱宸ヤ綔妗o紝宸ヤ綔鐘舵�� 2
-     */
-    public synchronized void generateStoreWrkFileLarge() {
-        // 鏍规嵁杈撻�佺嚎plc閬嶅巻
-        for (DevpSlave devp : slaveProperties.getDevp()) {
-            // 閬嶅巻鍏ュ簱鍙�
-            for (DevpSlave.Sta inSta : devp.getInLargeSta()) {
-                // 鑾峰彇鏉$爜鎵弿浠俊鎭�
-                BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode());
-                if (barcodeThread == null) {
-                    continue;
-                }
-                String barcode = barcodeThread.getBarcode();
-
-                if (!Cools.isEmpty(barcode)) {
-//                    log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
-                    if ("NG".endsWith(barcode) || "NoRead".equals(barcode) || !CodeDetectionUtil.barcodeDetection(barcode)) {
-                        continue;
-                    }
-                    if ("00000000".equals(barcode)){
-                        log.error(inSta+"绔欑偣锛屾壂鐮佸け璐ワ紝barcode锛�"+barcode);
-                        // led 寮傚父鏄剧ず
-//                        LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
-//                        if (ledThread != null) {
-//                            MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, inSta+"绔欑偣锛屾壂鐮佸け璐ワ紝barcode锛�"+barcode));
-//                        }
-                        continue;
-                    }
-                } else {
-                    continue;
-                }
-
-                // 鑾峰彇鍏ュ簱绔欎俊鎭�
-//                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
-                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
-                StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
-                if (staProtocol == null) {
-                    continue;
-                } else {
-                    staProtocol = staProtocol.clone();
-                }
-
-                // 灏哄妫�娴嬪紓甯�
-                boolean back = false;
-                String errMsg = "寮傚父锛�";
-                if (staProtocol.isFrontErr()) {
-                    errMsg = errMsg+"鍓嶈秴闄愶紱";
-                    back = true;
-                }
-                if (staProtocol.isBackErr()) {
-                    errMsg = errMsg+"鍚庤秴闄�";
-                    back = true;
-                }
-                if (staProtocol.isHighErr()) {
-                    errMsg = errMsg+"楂樿秴闄�";
-                    back = true;
-                }
-                if (staProtocol.isLeftErr()) {
-                    errMsg = errMsg+"宸﹁秴闄�";
-                    back = true;
-                }
-                if (staProtocol.isRightErr()) {
-                    errMsg = errMsg+"鍙宠秴闄�";
-                    back = true;
-                }
-                if (staProtocol.isWeightErr()) {
-                    errMsg = errMsg+"瓒呴噸";
-                    back = true;
-                }
-                if (staProtocol.isBarcodeErr()) {
-                    errMsg = errMsg+"鎵爜澶辫触";
-                    back = true;
-                }
-                // 閫�鍥�
-                if (back) {
-                    // led 寮傚父鏄剧ず
-                    LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
-                    if (ledThread != null) {
-                        MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg));
-                    }
-                    continue;
-                }
-
-                // 鍏ュ嚭搴撴ā寮忓垽鏂�
-//                if ( inSta.getStaNo()==203 && devpThread.ioModeOf2F != IoModeType.PAKIN_MODE) { continue; }
-//                if (inSta.getStaNo() == 203 && devpThread.ioModeOf2F == IoModeType.PAKOUT_MODE) {
-//                    continue;
-//                }
-
-                // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
-                if (staProtocol.isAutoing()
-                        && staProtocol.isLoading()
-                        && staProtocol.isInEnable()
-                        && !staProtocol.isEmptyMk()
-                        && staProtocol.getWorkNo() == 0
-                        && staProtocol.isPakMk()) {// && !Cools.isEmpty(barcode)) {
-
-                    if(Cools.isEmpty(barcode) || "NG".endsWith(barcode) || !CodeDetectionUtil.barcodeDetection(barcode)) {
-                        log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
-//                        //鏉$爜涓虹┖鎴栬�呬笉绗﹀悎锛岄��搴撳埌172绔欑偣
-//                        staProtocol.setWorkNo((short)32222);
-//                        staProtocol.setStaNo((short)172);
-//                        devpThread.setPakMk(staProtocol.getSiteId(), false);
-//                        boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-//                        if (!result) {
-//                            throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
-//                        }
-                        continue;
-                    }
-//
-//                    // 鍒ゆ柇閲嶅宸ヤ綔妗�
-//                    WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode);
-//                    if (wrkMast != null) {
-//                        log.error("宸ヤ綔妗d腑宸插瓨鍦ㄨ绔欑姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,宸ヤ綔鍙�={}", wrkMast.getWrkNo());
-//                        continue;
-//                    }
-                    // 鍒ゆ柇閲嶅宸ヤ綔妗�
-                    WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode);
-                    if (wrkMast != null) {
-                        LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
-                        barcodeThread.setBarcode("");
-                        staProtocol.setWorkNo(wrkMast.getWrkNo());
-                        staProtocol.setStaNo(wrkMast.getStaNo());
-
-                        devpThread.setPakMk(staProtocol.getSiteId(), false);
-                        boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                        if (!result) {
-                            throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
-                        }
-                        return;
-                    }
-//                    // 鑾峰彇鍏ュ簱閫氱煡妗�
-//                    List<WaitPakin> waitPakins = waitPakinMapper.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", barcode).eq("io_status", "N"));
-//                    if (waitPakins.isEmpty()) {
-//                        log.error("鏃犳鍏ュ簱鏉$爜鏁版嵁銆傛潯鐮佸彿={}", barcode);
-//                        continue;
-//                    }
-
-                    try {
-
-                        LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
-
-                        SearchLocParam param = new SearchLocParam();
-                        param.setBarcode(barcode);
-                        param.setIoType(1);
-                        param.setSourceStaNo(inSta.getStaNo());
-                        param.setLocType1(locTypeDto.getLocType1());
-                        String response = new HttpHandler.Builder()
-                                .setUri(wmsUrl)
-                                .setPath("/rpc/pakin/loc/v1")
-                                .setJson(JSON.toJSONString(param))
-                                .build()
-                                .doPost();
-                        JSONObject jsonObject = JSON.parseObject(response);
-                        if (jsonObject.getInteger("code").equals(200)) {
-                            StartupDto dto = jsonObject.getObject("data", StartupDto.class);
-
-                            barcodeThread.setBarcode("");
-                            staProtocol.setWorkNo(dto.getWorkNo());
-
-                            if(Cools.isEmpty(dto.getRgvNo()) || dto.getRgvNo() <= 0) {
-                                staProtocol.setStaNo(dto.getStaNo());
-                            } else {//濡傛灉瀛樺湪RGV缂栧彿锛岃鏄庨渶瑕丷GV鎺ラ┏锛屽厛涓嬪彂浠诲姟鍒癛GV婧愮珯
-                                staProtocol.setStaNo(dto.getRgvSstaNo());
-                            }
-
-                            devpThread.setPakMk(staProtocol.getSiteId(), false);
-                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                            if (!result) {
-                                throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
-                            }
-                        } else {
-                            SearchLocParam param2 = new SearchLocParam();
-                            param2.setBarcode(barcode);
-                            param2.setSourceStaNo(inSta.getStaNo());
-                            param2.setLocType1(locTypeDto.getLocType1());
-                            String response2 = new HttpHandler.Builder()
-                                    .setUri(wmsUrl)
-                                    .setPath("/rpc/pakin/yx/loc/v33")
-                                    .setJson(JSON.toJSONString(param2))
-                                    .build()
-                                    .doPost();
-                            JSONObject jsonObject2 = JSON.parseObject(response2);
-                            if (jsonObject2.getInteger("code").equals(200)) {
-                                log.info("澶ф枡绠辫嚜鍔ㄧ粍鎵樻垚鍔燂紒锛�");
-                            } else {
-                                log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
-
-                                LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
-
-                                if (ledThread != null) {
-                                    MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, "鍏ュ簱澶辫触锛�"));
-                                }
-                            }
-                        }
-
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                    }
-                }
-            }
-        }
-    }
-
-    /**
-     * wms鍏ュ簱
-     * 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿鐢熸垚鍏ュ簱宸ヤ綔妗o紝宸ヤ綔鐘舵�� 1 ==>> 2
-     */
-    public synchronized void generateStoreWrkFile0() {
-        // 鏍规嵁杈撻�佺嚎plc閬嶅巻
-        for (DevpSlave devp : slaveProperties.getDevp()) {
-            // 閬嶅巻鍏ュ簱鍙�
-            for (DevpSlave.Sta inSta : devp.getInWmsSta()) {
-                // 鑾峰彇鍏ュ簱绔欎俊鎭�
-                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
-                StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
-                if (staProtocol == null) {
-                    continue;
-                } else {
-                    staProtocol = staProtocol.clone();
-                }
-
-//                // 鍏ュ嚭搴撴ā寮忓垽鏂�
-//                if (inSta.getStaNo() == 203 && devpThread.ioModeOf2F != IoModeType.PAKIN_MODE) {
-//                    continue;
-//                }
-
-                // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
-                if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable()
-                        && !staProtocol.isEmptyMk() && staProtocol.getWorkNo() == 0
-                        && staProtocol.isPakMk()) {
-                    // 鍒ゆ柇閲嶅宸ヤ綔妗�
-                    WrkMast wrkMast = wrkMastMapper.selectPakInStep11(inSta.getStaNo());
-                    if (wrkMast == null) {
-                        continue;
-                    }
-
-                    // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-
-                    // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
-                    staProtocol.setWorkNo(wrkMast.getWrkNo());
-                    Integer staNo = wrkMast.getStaNo();
-                    if (wrkMast.getSourceStaNo()==145){
-                        staNo = 147;
-                    }
-                    staProtocol.setStaNo(staNo);
-                    devpThread.setPakMk(staProtocol.getSiteId(), false);
-                    boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                    if (result) {
-                        // 鏇存柊宸ヤ綔涓绘。
-                        wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細2.璁惧涓婅蛋
-                        wrkMast.setModiTime(new Date());
-                        if (wrkMastMapper.updateById(wrkMast) == 0) {
-                            log.error("鏇存柊宸ヤ綔妗eけ璐ワ紒锛侊紒 [宸ヤ綔鍙凤細{}]", wrkMast.getWrkNo());
-                        }
-                    } else {
-                        log.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
-                    }
-
-                }
-
-
-            }
-        }
-
-    }
-
-    /**
-     * 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱
-     */
-    public synchronized void stnToCrnStnPick() {
-        for (DevpSlave devp : slaveProperties.getDevp()) {
-            // 閬嶅巻鎷f枡鍏ュ簱鍙�
-            for (DevpSlave.Sta pickSta : devp.getPickSta()) {
-//                // 鑾峰彇鏉$爜鎵弿浠俊鎭�
-//                BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, pickSta.getBarcode());
-//                if (barcodeThread == null) {
-//                    continue;
-//                }
-//                String barcode = barcodeThread.getBarcode();
-//                if(!Cools.isEmpty(barcode)) {
-//                    log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", pickSta.getBarcode(), barcode);
-//                    if("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
-//                        continue;
-//                    }
-//                } else {
-//                    continue;
-//                }
-
-                // 鑾峰彇鎷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 (devpThread.ioMode != IoModeType.PAKIN_MODE) { continue; }
-
-                if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk()) {
-//                    WrkMast wrkMast = wrkMastMapper.selectPickStep(barcode);
-                    WrkMast wrkMast = wrkMastMapper.selectPakInStep5(staProtocol.getSiteId(),"7");
-                    if (wrkMast == null) {
-                        // 鏃犳嫞鏂欐暟鎹�
-                        continue;
-                    }
-                    if ((wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107)
-                            || Cools.isEmpty(wrkMast.getStaNo()) || Cools.isEmpty(wrkMast.getSourceStaNo())) {
-                        continue;
-                    }
-
-                    //   鑾峰彇搴撲綅鍙�
-                    try {
-                        SearchLocParam param = new SearchLocParam();
-                        param.setBarcode(wrkMast.getBarcode());
-                        param.setIoType(wrkMast.getIoType());
-                        param.setSourceStaNo(pickSta.getStaNo()); //浣滀笟绔欑偣
-                        param.setLocType1((short)1);
-                        String response = "";
-                        log.info("鍏ュ簱浣滀笟绔�"+pickSta.getStaNo()+"鐩樼偣鍐嶅叆搴撲换鍔¤姹俉MS===>>鍙傛暟锛�" + param);
-                        try {
-                            response = new HttpHandler.Builder()
-                                    .setUri(wmsUrl)
-                                    .setPath("/rpc/pakin2/loc/v1")
-                                    .setJson(JSON.toJSONString(param))
-                                    .setTimeout(15, TimeUnit.SECONDS)
-                                    .build()
-                                    .doPost();
-                        } catch(Exception e){
-                            log.error("鍏ュ簱浣滀笟绔�"+pickSta.getStaNo()+"鐩樼偣鍐嶅叆搴撲换鍔¤姹俉MS===>>鍙傛暟锛�" + param);
-                            log.error("stnToCrnStnPick2===>>鐩樼偣鏌ュ簱浣嶅叆搴撴帴鍙eけ璐�", e);
-                            e.printStackTrace();
-                            continue;
-                        }
-                        log.info("鍏ュ簱浣滀笟绔�"+pickSta.getStaNo()+"鐩樼偣鍐嶅叆搴撲换鍔¤姹俉MS===>>鍙傛暟锛�" + param);
-                        log.info("鍏ュ簱浣滀笟绔�"+pickSta.getStaNo()+"涓嬪彂鐩樼偣鍐嶅叆搴撲换鍔¤姹俉MS杩斿洖缁撴灉===>>" + response);
-                        if(response.equals("")) {
-                            continue;
-                        }
-                        JSONObject jsonObject = JSON.parseObject(response);
-//                        LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed());
-                        Integer code = jsonObject.getInteger("code");
-                        if (code == 200) {
-                            StartupDto dto = jsonObject.getObject("data", StartupDto.class);
-                            if (Cools.isEmpty(dto) || Cools.isEmpty(dto.getStaNo())) {
-                                log.error("浠诲姟鍙�"+wrkMast.getWrkNo()+"鐩樼偣鍐嶅叆搴撴煡璇㈠簱浣嶅け璐�===>>" + jsonObject.toJSONString());
-                            } else {
-                                log.info("浠诲姟鍙�"+wrkMast.getWrkNo()+"鐩樼偣鍐嶅叆搴撴煡璇㈠簱浣嶆垚鍔�===>>" + jsonObject.toJSONString());
-                                try {
-                                    // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
-                                    staProtocol.setWorkNo(wrkMast.getWrkNo());
-                                    staProtocol.setStaNo(dto.getStaNo());
-                                    devpThread.setPakMk(staProtocol.getSiteId(), false);
-//                                    ledThread.errorReset();
-                                    boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                                    if (!result) {
-                                        log.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
-                                    }
-                                    log.info("浠诲姟鍙�"+wrkMast.getWrkNo()+"鐩樼偣/鎷f枡鍐嶅叆搴撲换鍔′笅鍙戞垚鍔�===>>" + staProtocol);
-                                } catch (Exception e) {
-                                    log.error("鐩樼偣鍐嶅叆搴撳け璐�===>>" + e);
-                                    e.printStackTrace();
-                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                                }
-                            }
-                        } else {
-                            log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin2/loc/v1", JSON.toJSONString(param), response);
-                        }
-                    } catch (Exception e) {
-                        log.error("stnToCrnStnPick2===>>fail", e);
-                        e.printStackTrace();
-                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                    }
-
-                }
-
-            }
-
-        }
-    }
-
-    /**
-     * 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱  鎷嗗灈浣嶇疆
-     */
-    public synchronized void stnToCrnStnPick2() {
-        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();
-                }
-                BasDevp basDevp = basDevpService.selectById(staProtocol.getSiteId());
-                if (Cools.isEmpty(basDevp) || basDevp.getReportSign()!=1){
-                    continue;
-                }
-
-                if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isPakMk() && staProtocol.getWorkNo()==0 && !staProtocol.isOutEnable() && staProtocol.isInEnable()) {
-                    WrkMast wrkMast = wrkMastMapper.selectPakInStep4(staProtocol.getSiteId(),"3");
-
-                    if (wrkMast == null) {
-                        continue;
-                    }
-                    if (staProtocol.isEmptyMk()){
-                        log.error("绔欑偣鍙�"+staProtocol.getSiteId()+"绌烘澘淇″彿寮傚父锛�");
-                        continue;
-                    }
-                    if ((wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107)
-                            || Cools.isEmpty(wrkMast.getStaNo()) || Cools.isEmpty(wrkMast.getSourceStaNo())) {
-                        continue;
-                    }
-
-                    String barcode = wrkMast.getBarcode();
-                    if(!Cools.isEmpty(barcode)) {
-                        if("NG".endsWith(barcode) || "NoRead".equals(barcode) || "empty".equals(barcode)) {
-                            continue;
-                        }
-                    } else {
-                        continue;
-                    }
-
-                    //   鑾峰彇搴撲綅鍙�
-                    try {
-                        SearchLocParam param = new SearchLocParam();
-                        param.setBarcode(barcode);
-                        param.setIoType(wrkMast.getIoType());
-                        param.setSourceStaNo(pickSta.getStaNo()); //浣滀笟绔欑偣
-                        param.setLocType1((short)1);
-                        String response = "";
-                        log.info("鍏ュ簱浣滀笟绔�"+pickSta.getStaNo()+"鐩樼偣鍐嶅叆搴撲换鍔¤姹俉MS===>>鍙傛暟锛�" + param);
-                        try {
-                            response = new HttpHandler.Builder()
-                                    .setUri(wmsUrl)
-                                    .setPath("/rpc/pakin2/loc/v1")
-                                    .setJson(JSON.toJSONString(param))
-                                    .setTimeout(15, TimeUnit.SECONDS)
-                                    .build()
-                                    .doPost();
-                        } catch(Exception e){
-                            log.error("鍏ュ簱浣滀笟绔�"+pickSta.getStaNo()+"鐩樼偣鍐嶅叆搴撲换鍔¤姹俉MS===>>鍙傛暟锛�" + param);
-                            log.error("stnToCrnStnPick2===>>鐩樼偣鏌ュ簱浣嶅叆搴撴帴鍙eけ璐�", e);
-                            e.printStackTrace();
-                            continue;
-                        }
-                        log.info("鍏ュ簱浣滀笟绔�"+pickSta.getStaNo()+"鐩樼偣鍐嶅叆搴撲换鍔¤姹俉MS===>>鍙傛暟锛�" + param);
-                        log.info("鍏ュ簱浣滀笟绔�"+pickSta.getStaNo()+"涓嬪彂鐩樼偣鍐嶅叆搴撲换鍔¤姹俉MS杩斿洖缁撴灉===>>" + response);
-                        if(response.equals("")) {
-                            continue;
-                        }
-                        JSONObject jsonObject = JSON.parseObject(response);
-//                        LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed());
-                        Integer code = jsonObject.getInteger("code");
-                        if (code == 200) {
-                            StartupDto dto = jsonObject.getObject("data", StartupDto.class);
-                            if (Cools.isEmpty(dto) || Cools.isEmpty(dto.getStaNo())) {
-                                log.error("浠诲姟鍙�"+wrkMast.getWrkNo()+"鐩樼偣鍐嶅叆搴撴煡璇㈠簱浣嶅け璐�===>>" + jsonObject.toJSONString());
-                            } else {
-                                log.info("浠诲姟鍙�"+wrkMast.getWrkNo()+"鐩樼偣鍐嶅叆搴撴煡璇㈠簱浣嶆垚鍔�===>>" + jsonObject.toJSONString());
-                                try {
-                                    // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
-                                    staProtocol.setWorkNo(wrkMast.getWrkNo());
-                                    staProtocol.setStaNo(dto.getStaNo());
-                                    devpThread.setPakMk(staProtocol.getSiteId(), false);
-//                                    ledThread.errorReset();
-                                    boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                                    if (!result) {
-                                        log.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
-                                    }
-                                    log.info("浠诲姟鍙�"+wrkMast.getWrkNo()+"鐩樼偣/鎷f枡鍐嶅叆搴撲换鍔′笅鍙戞垚鍔�===>>" + staProtocol);
-                                } catch (Exception e) {
-                                    log.error("鐩樼偣鍐嶅叆搴撳け璐�===>>" + e);
-                                    e.printStackTrace();
-                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                                }
-                            }
-                        } else {
-                            log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin2/loc/v1", JSON.toJSONString(param), response);
-                        }
-                    } catch (Exception e) {
-                        log.error("stnToCrnStnPick2===>>fail", e);
-                        e.printStackTrace();
-                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                    }
-
-//                    // 鑾峰彇鐩爣绔�
-//                    Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
-//                            .eq("type_no", wrkMast.getIoType() - 50)
-//                            .eq("stn_no", pickSta.getStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯
-//                            .eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿
-//                    StaDesc staDesc = staDescService.selectOne(wrapper);
-//                    if (Cools.isEmpty(staDesc)) {
-//                        log.error("鍏ュ簱璺緞涓嶅瓨鍦紒type_no={},stn_no={},crn_no={}", wrkMast.getIoType(), pickSta.getStaNo(), wrkMast.getCrnNo());
-//                        continue;
-//                    }
-//
-//                    try {
-//                        // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
-//                        if (wrkMastMapper.saveWrkDetlLog(wrkMast.getWrkNo()) == 0) {
-//                            throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。澶辫触");
-//                        }
-//                        // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
-//                        if (wrkMastMapper.saveWrkMastLog(wrkMast.getWrkNo()) == 0) {
-//                            throw new CoolException("淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�");
-//                        }
-//
-//                        Date now = new Date();
-//                        // 鍫嗗灈鏈虹珯鐐�(鐩爣绔�)
-//                        Integer staNo = staDesc.getCrnStn();
-//                        // 鏇存柊宸ヤ綔妗f暟鎹姸鎬�
-//                        wrkMast.setIoTime(now);
-//                        wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
-//                        wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋
-//                        wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 婧愮珯
-//                        wrkMast.setStaNo(staNo); // 鐩爣绔�
-//                        wrkMast.setLocNo(wrkMast.getSourceLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣�
-//                        wrkMast.setSourceLocNo(""); // 婧愬簱浣嶆竻绌�
-//                        wrkMast.setModiTime(now);
-//                        if (wrkMastMapper.updateById(wrkMast) == 0) {
-//                            throw new CoolException("鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
-//                        }
-//                        // 鏇存柊鏄庣粏妗o_time (鍘嗗彶妗e叧鑱斾娇鐢級
-//                        wrkDetlService.updateIoTime(wrkMast.getWrkNo(), now);
-//                        // 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
-//                        LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
-//                        locMast.setLocSts("Q");
-//                        locMast.setModiTime(new Date());
-//                        if (!locMastService.updateById(locMast)) {
-//                            throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�");
-//                        }
-//                    } catch (Exception e) {
-//                        e.printStackTrace();
-//                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-//                        continue;
-//                    }
-//
-//                    // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
-//                    staProtocol.setWorkNo(wrkMast.getWrkNo());
-//                    staProtocol.setStaNo(wrkMast.getStaNo());
-//                    devpThread.setPakMk(staProtocol.getSiteId(), false);
-//                    boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-//                    if (!result) {
-//                        log.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
-//                    }
-
-                }
-
-            }
-
-        }
-    }
-
-    /**
-     * 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱  鎷嗗灈浣嶇疆
-     */
-    public synchronized void storeEmptyPlt4() {
-        for (DevpSlave devp : slaveProperties.getDevp()) {
-            // 閬嶅巻鍙犵洏鍏ュ簱鍙�
-            for (DevpSlave.Sta pickSta : devp.getEmptyInSta2()) {
-
-                // 鑾峰彇鍏ュ簱绔欎俊鎭�
-                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
-                StaProtocol staProtocol = devpThread.getStation().get(pickSta.getStaNo());
-                if (staProtocol == null) {
-                    continue;
-                } else {
-                    staProtocol = staProtocol.clone();
-                }
-                BasDevp basDevp = basDevpService.selectById(staProtocol.getSiteId());
-                if (Cools.isEmpty(basDevp) || basDevp.getReportSign()!=1){
-                    continue;
-                }
-
-                if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isPakMk() && staProtocol.getWorkNo()==0 && !staProtocol.isOutEnable() && staProtocol.isInEnable()) {
-                    WrkMast wrkMast = wrkMastMapper.selectPakInStep4(staProtocol.getSiteId(),"3");
-                    if (wrkMast == null) {
-                        WrkMast wrkMast1 = wrkMastMapper.selectPakInStep5(staProtocol.getSiteId(),"3");
-                        if (Cools.isEmpty(wrkMast1) && staProtocol.isEmptyMk()){
-                            WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(staProtocol.getSiteId() + 19999L);
-                            if (Cools.isEmpty(wrkMastSta)){
-                                WrkMastSta wrkMastSta1 = new WrkMastSta(new Date(),staProtocol.getSiteId());
-                                wrkMastSta1.setType(2);
-                                wrkMastSta1.setWrkType(1);
-                                wrkMastStaMapper.insert(wrkMastSta1);
-                            }
-                        }
-                    }
-                }
-            }
-        }
-    }
-
-    /**
-     * 鍫嗗灈鏈虹珯鍑哄簱鍒板嚭搴撶珯
-     */
-    public synchronized void crnStnToOutStn() {
-        for (CrnSlave crnSlave : slaveProperties.getCrn()) {
-            // 閬嶅巻鍫嗗灈鏈哄嚭搴撶珯
-            for (CrnSlave.CrnStn crnStn : crnSlave.getCrnOutStn()) {
-                switch (crnSlave.getId()){
-                    case 1:
-                    case 2:
-                        crnStnToOutStnOne(crnStn);
-                        continue;
-                    case 3:
-                    case 4:
-                    case 5:
-                        crnStnToOutStnTwo(crnSlave.getId(),crnStn,1);
-                        continue;
-                    case 6:
-                    case 7:
-                        crnStnToOutStnThree(crnStn);
-                        continue;
-                    default:
-                        break;
-                }
-            }
-        }
-    }
-    /**
-     * 鍫嗗灈鏈虹珯鍑哄簱鍒板嚭搴撶珯
-     */
-    public synchronized boolean crnStnToOutStnOne(CrnSlave.CrnStn crnStn ) {
+    public synchronized void updateStePositionNearby() {
         try{
-            // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
-            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
-            StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
-            if (staProtocol == null) {
-                return false;
-            } else {
-                staProtocol = staProtocol.clone();
-            }
-            if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == null)) {
-                // 鏌ヨ宸ヤ綔妗�
-                WrkMast wrkMast = wrkMastMapper.selectPakOutStep2(staProtocol.getSiteId());
-                if (wrkMast == null) {
-                    return false;
-                }
-                // 鍒ゆ柇宸ヤ綔妗f潯浠�
-                if (wrkMast.getIoType() < 100 || wrkMast.getStaNo() == null || wrkMast.getSourceStaNo() == null) {
-                    return false;
-                }
-                // 鍒ゆ柇鍚婅溅鏄惁瀹為檯宸插畬鎴愶紝涓旂數鑴戠姸鎬佸湪move涓紝浠ュ鐢佃剳杩涜鏇存柊宸ヤ綔妗�
-                CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, wrkMast.getCrnNo());
-                CrnProtocol crnProtocol = crnThread.getCrnProtocol();
-                if (crnProtocol.statusType == CrnStatusType.FETCHING || crnProtocol.statusType == CrnStatusType.PUTTING) {
-                    // 绉诲姩涓�
-                    return false;
-                }
-
-                WrkMastCrn wrkMastCrn = wrkMastCrnMapper.selectWrkNoOneAndTwo(crnProtocol.getTaskNo().intValue());
-                if (!Cools.isEmpty(wrkMastCrn) && wrkMastCrn.getWrkSts().equals(12L)){
-                    wrkMast = wrkMastMapper.selectPakInStep3(wrkMastCrn.getWrkNo().intValue());
-                } else {
-                    return false;
-                }
-                //  鍒ゆ柇鍫嗗灈鏈虹姸鎬佺瓑寰呯‘璁�
-                if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.getTaskNo().equals(wrkMast.getWrkNo().shortValue())
-                        && crnProtocol.statusType == CrnStatusType.WAITING
-                        && crnProtocol.forkPosType == CrnForkPosType.HOME) {
-
-                    // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-                    StaProtocol staProtocolOther = devpThread.getStation().get(crnStn.getStaNoOther());
-                    if (staProtocolOther == null) {
-                        return false;
-                    } else {
-                        staProtocolOther = staProtocolOther.clone();
-                    }
-                    if (staProtocolOther.isAutoing() && staProtocolOther.isLoading() && (staProtocolOther.getWorkNo() == 0 || staProtocolOther.getStaNo() == null)) {
-//                        WrkMastCrn wrkMastCrn = wrkMastCrnMapper.selectWrkNoOneAndTwo(wrkMast.getWrkNo());
-
-
-                        WrkMast wrkMastOne = wrkMastMapper.selectPakInStep3(wrkMastCrn.getWrkNoOne().intValue());
-                        WrkMast wrkMastTwo = wrkMastMapper.selectPakInStep3(wrkMastCrn.getWrkNoTwo().intValue());
-                        WrkMast wrkMast1 = null;
-                        WrkMast wrkMast2 = null;
-                        if (Utils.getRow(wrkMastOne.getSourceLocNo()) == wrkMast.getCrnNo()*4){
-                            wrkMast1 = wrkMastTwo;
-                            wrkMast2 = wrkMastOne;
-                        }else {
-                            wrkMast2 = wrkMastTwo;
-                            wrkMast1 = wrkMastOne;
-                        }
-
-                        // 涓嬪彂绔欑偣淇℃伅
-                        staProtocolOther.setWorkNo(Cools.isEmpty(wrkMast1.getWorkNoOther())? wrkMast1.getWrkNo():wrkMast1.getWorkNoOther());
-                        staProtocolOther.setStaNo(wrkMast1.getStaNo());
-                        if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocolOther))) {
-                            return false;
-                        }
-
-                        // 涓嬪彂绔欑偣淇℃伅
-                        staProtocol.setWorkNo(Cools.isEmpty(wrkMast2.getWorkNoOther())? wrkMast2.getWrkNo():wrkMast2.getWorkNoOther());
-//                                    staProtocol.setStaNo(RouteUtils.CrnStaEnd(wrkMast.getStaNo(),wrkMast.getSourceStaNo()));
-                        staProtocol.setStaNo(wrkMast2.getStaNo());
-                        if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol))) {
-                            return false;
-                        }
-                        boolean sign = true;
-
-                        // 鏇存柊宸ヤ綔妗g姸鎬佷负14澶辫触
-                        wrkMastCrn.setWrkSts(14L);
-                        if (wrkMastCrnMapper.updateById(wrkMastCrn) != 0) {
-                        } else {
-                            sign = false;
-                            log.error("鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", wrkMast.getWrkNo());
-                        }
-
-                        // 鏇存柊宸ヤ綔妗g姸鎬佷负14澶辫触
-                        wrkMastOne.setWrkSts(14L);
-                        wrkMastOne.setCrnEndTime(new Date());
-                        if (wrkMastMapper.updateById(wrkMastOne) != 0) {
-                        } else {
-                            sign = false;
-                            log.error("鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", wrkMast.getWrkNo());
-                        }
-
-                        // 鏇存柊宸ヤ綔妗g姸鎬佷负14澶辫触
-                        wrkMastTwo.setWrkSts(14L);
-                        wrkMastTwo.setCrnEndTime(new Date());
-                        if (wrkMastMapper.updateById(wrkMastTwo) != 0) {
-                        } else {
-                            sign = false;
-                            log.error("鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", wrkMast.getWrkNo());
-                        }
-
-                        if (sign){
-                            // 澶嶄綅鍫嗗灈鏈�
-                            crnThread.setResetFlag(true);
-                            return true;
-                        }
-                    }
-                }
-            }
-        }catch (Exception e){
-            log.error("鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [鍑哄簱绔�:{}]", crnStn.getStaNo());
-        }
-        return false;
-    }
-
-    public synchronized boolean crnStnToOutStnTwo(Integer crnNo,CrnSlave.CrnStn crnStn ,Integer conStation) {
-        try{
-            Date now = new Date();
-            // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
-            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
-            StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
-            if (staProtocol == null) {
-                return false;
-            } else {
-                staProtocol = staProtocol.clone();
-            }
-            if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == null || staProtocol.getWorkNo() == 0)) {
-
-                // 鍒ゆ柇鍚婅溅鏄惁瀹為檯宸插畬鎴愶紝涓旂數鑴戠姸鎬佸湪move涓紝浠ュ鐢佃剳杩涜鏇存柊宸ヤ綔妗�
-                CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn,crnNo);
-                CrnProtocol crnProtocol = crnThread.getCrnProtocol();
-
-                if (conStation==1){
-                    // 鏌ヨ宸ヤ綔妗�
-                    WrkMast wrkMast = wrkMastMapper.selectPakOutStep2345(staProtocol.getSiteId(),crnProtocol.getTaskNo().intValue());
-                    if (wrkMast == null) {
-                        return false;
-                    }
-                    // 鍒ゆ柇宸ヤ綔妗f潯浠�
-                    if (wrkMast.getIoType() < 100 || wrkMast.getStaNo() == null || wrkMast.getSourceStaNo() == null) {
-                        return false;
-                    }
-                    if (crnProtocol.statusType == CrnStatusType.FETCHING || crnProtocol.statusType == CrnStatusType.PUTTING) {
-                        // 绉诲姩涓�
-                        return false;
-                    }
-                    //  鍒ゆ柇鍫嗗灈鏈虹姸鎬佺瓑寰呯‘璁�
-                    if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.getTaskNo().equals(wrkMast.getWrkNo().shortValue())
-                            && crnProtocol.statusType == CrnStatusType.WAITING
-                            && crnProtocol.forkPosType == CrnForkPosType.HOME
-                            && crnProtocol.getLoaded()==0) {
-                        List<WrkMastSplitTwin> wrkMastSplitTwinList = wrkMastSplitTwinMapper.getWrkMastSplitTwin(wrkMast.getCrnNo(), conStation, null, 2, 3);
-                        if (wrkMastSplitTwinList.size()!=1){
-                            log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",wrkMast.getCrnNo(),"涓嶅瓨鍦ㄦ垨鑰呭瓨鍦ㄥ绗斿彲鎵ц浣滀笟锛岃鍒犻櫎鏃犳晥浣滀笟锛侊紒锛�",conStation,2,3);
-                        }
-                        for (WrkMastSplitTwin wrkMastSplitTwin:wrkMastSplitTwinList){
-                            if (wrkMastSplitTwin.getWrkNo()!=wrkMast.getWrkNo().longValue()){
-                                log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={},宸ヤ綔浠诲姟鍙�={},鎵ц浠诲姟鍙�={}",wrkMast.getCrnNo(),"宸ヤ綔浠诲姟涓庢墽琛屼换鍔′笉鍖归厤",conStation,2,3,wrkMast.getWrkNo(),wrkMastSplitTwin.getWrkNo());
-                                return false;
-                            }
-                            // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-                            // 涓嬪彂绔欑偣淇℃伅
-                            staProtocol.setWorkNo(wrkMast.getWrkNo());
-                            staProtocol.setStaNo(RouteUtils.CrnStaEnd(wrkMast.getStaNo(),wrkMast.getSourceStaNo()));
-                            if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol))) {
-                                return false;
-                            }
-                            // 鏇存柊宸ヤ綔妗g姸鎬佷负14澶辫触
-                            wrkMast.setWrkSts(14L);
-                            wrkMast.setCrnEndTime(now);
-                            if (wrkMastMapper.updateById(wrkMast) != 0) {
-                                wrkMastSplitTwin.setWrkSts(wrkMastSplitTwin.getWrkSts()+1);
-                                wrkMastSplitTwin.setUpdateTime(now);
-                                // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
-                                if (wrkMastSplitTwinService.updateById(wrkMastSplitTwin)) {
-                                    // 鍫嗗灈鏈哄浣�
-                                    crnThread.setResetFlag(true);
-                                    return true;
-                                }else {
-                                    log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",wrkMast.getCrnNo(),"淇敼鎵ц妗f澶辫触",conStation,2,3);
-                                }
-                            } else {
-                                log.error("鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", wrkMast.getWrkNo());
-                            }
-                        }
-                    }
-                }else if (conStation==2){
-                    if (crnProtocol.statusType != CrnStatusType.IDLE){
-                        return false;
-                    }
-                    // 鏌ヨ宸ヤ綔妗�
-                    WrkMast wrkMast = wrkMastMapper.selectPakOutStep2345(staProtocol.getSiteId(),crnProtocol.getTaskNoTwo().intValue());
-                    if (wrkMast == null) {
-                        return false;
-                    }
-                    // 鍒ゆ柇宸ヤ綔妗f潯浠�
-                    if (wrkMast.getIoType() < 100 || wrkMast.getStaNo() == null || wrkMast.getSourceStaNo() == null) {
-                        return false;
-                    }
-                    if (crnProtocol.statusTypeTwo == CrnStatusType.FETCHING || crnProtocol.statusTypeTwo == CrnStatusType.PUTTING) {
-                        // 绉诲姩涓�
-                        return false;
-                    }
-                    //  鍒ゆ柇鍫嗗灈鏈虹姸鎬佺瓑寰呯‘璁�
-                    if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.getTaskNoTwo().equals(wrkMast.getWrkNo().shortValue())
-                            && crnProtocol.statusTypeTwo == CrnStatusType.WAITING
-                            && crnProtocol.forkPosTypeTwo == CrnForkPosType.HOME
-                            && crnProtocol.getLoadedTwo()==0) {
-                        List<WrkMastSplitTwin> wrkMastSplitTwinList = wrkMastSplitTwinMapper.getWrkMastSplitTwin(wrkMast.getCrnNo(), conStation, null, 2, 3);
-                        if (wrkMastSplitTwinList.size()!=1){
-                            log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",wrkMast.getCrnNo(),"涓嶅瓨鍦ㄦ垨鑰呭瓨鍦ㄥ绗斿彲鎵ц浣滀笟锛岃鍒犻櫎鏃犳晥浣滀笟锛侊紒锛�",conStation,2,3);
-                        }
-                        for (WrkMastSplitTwin wrkMastSplitTwin:wrkMastSplitTwinList){
-                            if (wrkMastSplitTwin.getWrkNo()!=wrkMast.getWrkNo().longValue()){
-                                log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={},宸ヤ綔浠诲姟鍙�={},鎵ц浠诲姟鍙�={}",wrkMast.getCrnNo(),"宸ヤ綔浠诲姟涓庢墽琛屼换鍔′笉鍖归厤",conStation,2,3,wrkMast.getWrkNo(),wrkMastSplitTwin.getWrkNo());
-                                return false;
-                            }
-                            // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-                            // 涓嬪彂绔欑偣淇℃伅
-                            staProtocol.setWorkNo(wrkMast.getWrkNo());
-                            staProtocol.setStaNo(RouteUtils.CrnStaEnd(wrkMast.getStaNo(),wrkMast.getSourceStaNo()));
-                            if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol))) {
-                                return false;
-                            }
-                            // 鏇存柊宸ヤ綔妗g姸鎬佷负14澶辫触
-                            wrkMast.setWrkSts(14L);
-                            wrkMast.setCrnEndTime(now);
-                            if (wrkMastMapper.updateById(wrkMast) != 0) {
-                                wrkMastSplitTwin.setWrkSts(wrkMastSplitTwin.getWrkSts()+1);
-                                wrkMastSplitTwin.setUpdateTime(now);
-                                // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
-                                if (wrkMastSplitTwinService.updateById(wrkMastSplitTwin)) {
-                                    // 鍫嗗灈鏈哄浣�
-                                    crnThread.setResetFlagTwo(true);
-                                    return true;
-                                }else {
-                                    log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",wrkMast.getCrnNo(),"淇敼鎵ц妗f澶辫触",conStation,2,3);
-                                }
-                            } else {
-                                log.error("鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", wrkMast.getWrkNo());
-                            }
-                        }
-                    }
-                }
-            }
-        }catch (Exception e){
-            log.error("鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [鍑哄簱绔�:{}]", crnStn.getStaNo());
-        }
-        return false;
-    }
-
-    public synchronized boolean crnStnToOutStnThree(CrnSlave.CrnStn crnStn ) {
-        try{
-            // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
-            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
-            StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
-            if (staProtocol == null) {
-                return false;
-            } else {
-                staProtocol = staProtocol.clone();
-            }
-            if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == null)) {
-                // 鏌ヨ宸ヤ綔妗�
-                WrkMast wrkMast = wrkMastMapper.selectPakOutStep2(staProtocol.getSiteId());
-                if (wrkMast == null) {
-                    return false;
-                }
-                // 鍒ゆ柇宸ヤ綔妗f潯浠�
-                if (wrkMast.getIoType() < 100 || wrkMast.getStaNo() == null || wrkMast.getSourceStaNo() == null) {
-                    return false;
-                }
-                // 鍒ゆ柇鍚婅溅鏄惁瀹為檯宸插畬鎴愶紝涓旂數鑴戠姸鎬佸湪move涓紝浠ュ鐢佃剳杩涜鏇存柊宸ヤ綔妗�
-                CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, wrkMast.getCrnNo());
-                CrnProtocol crnProtocol = crnThread.getCrnProtocol();
-                if (crnProtocol.statusType == CrnStatusType.FETCHING || crnProtocol.statusType == CrnStatusType.PUTTING) {
-                    // 绉诲姩涓�
-                    return false;
-                }
-                //  鍒ゆ柇鍫嗗灈鏈虹姸鎬佺瓑寰呯‘璁�
-                if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.getTaskNo().equals(wrkMast.getWrkNo().shortValue())
-                        && crnProtocol.statusType == CrnStatusType.WAITING
-                        && crnProtocol.forkPosType == CrnForkPosType.HOME) {
-                    // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-                    // 涓嬪彂绔欑偣淇℃伅
-                    staProtocol.setWorkNo(wrkMast.getWrkNo());
-                    staProtocol.setStaNo(RouteUtils.CrnStaEnd(wrkMast.getStaNo(),wrkMast.getSourceStaNo()));
-                    if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol))) {
-                        return false;
-                    }
-
-                    // 鏇存柊宸ヤ綔妗g姸鎬佷负14澶辫触
-                    wrkMast.setWrkSts(14L);
-                    wrkMast.setCrnEndTime(new Date());
-                    if (wrkMastMapper.updateById(wrkMast) != 0) {
-                        // 澶嶄綅鍫嗗灈鏈�
-                        crnThread.setResetFlag(true);
-                        return true;
-                    } else {
-                        log.error("鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", wrkMast.getWrkNo());
-                    }
-                }
-            }
-        }catch (Exception e){
-            log.error("鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [鍑哄簱绔�:{}]", crnStn.getStaNo());
-        }
-        return false;
-    }
-
-    /**
-     * 鍫嗗灈鏈虹珯鍑哄簱鍒板嚭搴撶珯
-     */
-    public synchronized void crnStnToOutStnTwo() {
-        for (CrnSlave crnSlave : slaveProperties.getCrn()) {
-            // 閬嶅巻鍫嗗灈鏈哄嚭搴撶珯
-            for (CrnSlave.CrnStn crnStn : crnSlave.getCrnOutStn()) {
-                switch (crnSlave.getId()){
-                    case 3:
-                    case 4:
-                    case 5:
-                        crnStnToOutStnTwo(crnSlave.getId(),crnStn,2);
-                        continue;
-                    default:
-                        break;
-                }
-            }
-        }
-    }
-
-    /**
-     * 鍏ュ嚭搴�  ===>>  鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂
-     */
-    public synchronized void crnIoExecute() {
-        try{
-            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
-                        && crnProtocol.getLoaded() == 0
-                        && crnProtocol.getForkPos() == 0) {
-                    // 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡
-                    if (crnProtocol.getLastIo().equals("I")) {
-                        if (basCrnp.getInEnable().equals("Y")) {
-                            switch (crn.getId()){
-                                case 1:
-                                case 2:
-                                    this.crnStnToLoc1Single(crn, crnProtocol); //  鍏ュ簱
-                                    break;
-                                case 3:
-                                case 4:
-                                case 5:
-                                    continue;
-                                default:
-                                    this.crnStnToLoc1(crn, crnProtocol,1); //  鍏ュ簱
-                            }
-                            crnProtocol.setLastIo("O");
-                        } else if (basCrnp.getOutEnable().equals("Y")) {
-                            switch (crn.getId()){
-                                case 1:
-                                case 2:
-                                    this.locToCrnStn1Single(crn, crnProtocol); //  鍑哄簱
-                                    break;
-                                case 3:
-                                case 4:
-                                case 5:
-                                    continue;
-                                default:
-                                    this.locToCrnStn1(crn, crnProtocol,1); //  鍑哄簱
-                            }
-                            crnProtocol.setLastIo("I");
-                        }
-                    }
-                    // 濡傛灉鏈�杩戜竴娆℃槸鍑哄簱妯″紡
-                    else if (crnProtocol.getLastIo().equals("O")) {
-                        if (basCrnp.getOutEnable().equals("Y")) {
-                            switch (crn.getId()){
-                                case 1:
-                                case 2:
-                                    this.locToCrnStn1Single(crn, crnProtocol); //  鍑哄簱
-                                    break;
-                                case 3:
-                                case 4:
-                                case 5:
-                                    continue;
-                                default:
-                                    this.locToCrnStn1(crn, crnProtocol,1); //  鍑哄簱
-                            }
-                            crnProtocol.setLastIo("I");
-                        } else if (basCrnp.getInEnable().equals("Y")) {
-                            switch (crn.getId()){
-                                case 1:
-                                case 2:
-                                    this.crnStnToLoc1Single(crn, crnProtocol); //  鍏ュ簱
-                                    break;
-                                case 3:
-                                case 4:
-                                case 5:
-                                    continue;
-                                default:
-                                    this.crnStnToLoc1(crn, crnProtocol,1); //  鍏ュ簱
-                            }
-                            crnProtocol.setLastIo("O");
-                        }
-                    }
-                }
-                // 搴撲綅绉昏浆
-                this.locToLoc(crn, crnProtocol);
-//            this.crnRebackHp(crnProtocol, crnThread);
-
-            }
-        }catch (Exception e){
-            log.error("鍫嗗灈鏈哄嚭鍏ュ簱涓嬪彂鎶ラ敊"+e);
-        }
-    }
-
-    /**
-     * 鍏ュ嚭搴�  ===>>  鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂
-     */
-    public synchronized void crnIoExecuteTwo() {
-        try{
-            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;
-                }
-
-
-                int[] sign = new int[]{0,0};
-                // 鍙湁褰撳爢鍨涙満绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
-                if (crnProtocol.getModeType() == CrnModeType.AUTO) {
-                    // 鍙湁褰撳爢鍨涙満宸ヤ綅绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
-                    if (crnProtocol.getStatusType() == CrnStatusType.IDLE
-                            && crnProtocol.getTaskNo() == 0
-                            && crnProtocol.getLoaded() == 0
-                            && crnProtocol.getForkPos() == 0) {
-                        /*
-                        * 浠诲姟鎷嗗垎鐗规畩澶勭悊
-                        * */
-                        if (crnProtocol.getStatusTypeTwo() == CrnStatusType.IDLE
-                                && crnProtocol.getTaskNoTwo() == 0
-                                && crnProtocol.getLoadedTwo() == 0
-                                && crnProtocol.getForkPosTwo() == 0){
-                            sign[0] = 1;
-                            sign[1] = 1;
-                        }
-                    }
-                }
-
-                if (sign[0]==1){
-                    // 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡
-                    if (crnProtocol.getLastIo().equals("I")) {
-                        if (basCrnp.getInEnable().equals("Y")) {
-                            switch (crn.getId()){
-                                case 3:
-                                case 4:
-                                case 5:
-                                    this.crnStnToLoc1Big(crn, crnProtocol, sign[1]); //  鍏ュ簱
-                                    break;
-                                default:
-                                    continue;
-                            }
-                            crnProtocol.setLastIo("O");
-                        } else if (basCrnp.getOutEnable().equals("Y")) {
-                            switch (crn.getId()){
-                                case 3:
-                                case 4:
-                                case 5:
-                                    this.locToCrnStn1Big(crn, crnProtocol, sign[1]); //  鍑哄簱
-                                    break;
-                                default:
-                                    continue;
-                            }
-                            crnProtocol.setLastIo("I");
-                        }
-                    }
-                    // 濡傛灉鏈�杩戜竴娆℃槸鍑哄簱妯″紡
-                    else if (crnProtocol.getLastIo().equals("O")) {
-                        if (basCrnp.getOutEnable().equals("Y")) {
-                            switch (crn.getId()){
-                                case 3:
-                                case 4:
-                                case 5:
-                                    this.locToCrnStn1Big(crn, crnProtocol, sign[1]); //  鍑哄簱
-                                    break;
-                                default:
-                                    continue;
-                            }
-                            crnProtocol.setLastIo("I");
-                        } else if (basCrnp.getInEnable().equals("Y")) {
-                            switch (crn.getId()){
-                                case 3:
-                                case 4:
-                                case 5:
-                                    this.crnStnToLoc1Big(crn, crnProtocol, sign[1]); //  鍏ュ簱
-                                    break;
-                                default:
-                                    continue;
-                            }
-                            crnProtocol.setLastIo("O");
-                        }
-                    }
-                }
-
-                // 搴撲綅绉昏浆
-                this.locToLoc(crn, crnProtocol);
-//            this.crnRebackHp(crnProtocol, crnThread);
-
-            }
-        }catch (Exception e){
-            log.error("鍫嗗灈鏈哄嚭鍏ュ簱涓嬪彂鎶ラ敊"+e);
-        }
-    }
-
-
-    /**
-     * 鍏ュ簱  ===>>  鍫嗗灈鏈虹珯鍒板簱浣�
-     */
-    public synchronized void crnStnToLoc(CrnSlave slave, CrnProtocol crnProtocol) {
-        for (CrnSlave.CrnStn crnStn : slave.getCrnInStn()) {
-            boolean flag = false;
-            // 鑾峰彇鍫嗗灈鏈哄叆搴撶珯淇℃伅
-            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
-            StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
-            if (staProtocol == null) {
-                continue;
-            } else {
-                staProtocol = staProtocol.clone();
-            }
-            // 鏌ヨ绔欑偣璇︾粏淇℃伅
-            BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
-            if (staDetl == null) {
-                log.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
-                continue;
-            }
-            if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 && staProtocol.isInEnable()
-                    && staDetl.getCanining() != null && staDetl.getCanining().equals("Y")) {
-                flag = true;
-            }
-            if (!flag) {
-                continue;
-            }
-            // 鑾峰彇宸ヤ綔鐘舵�佷负2锛堣澶囦笂璧帮級鐨勫叆搴撳伐浣滄。
-            WrkMast wrkMast = wrkMastMapper.selectPakInStep2(slave.getId(), staProtocol.getWorkNo().intValue(), crnStn.getStaNo());
-            if (null == wrkMast) {
-//                log.error("鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts=2, 宸ヤ綔鍙�={}", staProtocol.getWorkNo());
-                continue;
-            }
-            // 鑾峰彇搴撲綅淇℃伅
-            LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
-            if (locMast == null) {
-                log.error("鏌ヨ搴撳瓨鏃犳暟鎹�--搴撲綅鍙穥}", wrkMast.getLocNo());
-                continue;
-            }
-            if (!locMast.getLocSts().equals("S") && !locMast.getLocSts().equals("Q")) {
-                log.error("鍏ュ簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getLocNo(), locMast.getLocSts());
-                continue;
-            }
-
-            // 鍫嗗灈鏈烘帶鍒惰繃婊�
-            if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
-                continue;
-            }
-
-            // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
-            if (wrkMastMapper.selectWorking(slave.getId()) != null) {
-                continue;
-            }
-
-            // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
-            if (Utils.isDeepLoc(slaveProperties, wrkMast.getLocNo())) {
-                String shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getLocNo());
-                LocMast shallowLoc = locMastService.selectById(shallowLocNo);
-                // O.绌哄簱浣嶃�丵.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴撱�丼.鍏ュ簱棰勭害銆乆.绂佺敤 鐩存帴鎼紒
-                if (shallowLoc.getLocSts().equals("P") || shallowLoc.getLocSts().equals("R")) {
-                    WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
-                    if (null == waitWrkMast) {
-                        log.error("{}搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒", shallowLocNo);
-                    } else {
-                        waitWrkMast.setIoPri(15D);
-                        waitWrkMast.setModiTime(new Date());
-                        if (wrkMastMapper.updateById(waitWrkMast) == 0) {
-                            log.error("璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
-                        }
-                        continue;
-                    }
-
-                } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) {
-                    // 姝ゆ爣璁伴伩鍏嶅娆℃墽琛岀Щ搴撲换鍔�
-                    if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())) {
-                        wrkMast.setUpdMk("Y");
-                        wrkMast.setIoPri(14D);
-                        wrkMastMapper.updateById(wrkMast);
-                        // 鐢熸垚宸ヤ綔妗�,灏嗘祬搴撲綅绉昏浆鍒版柊鐨勫簱浣嶄腑
-                        moveLocForDeepLoc(slave, shallowLoc);
-                        // 鐢熸垚宸ヤ綔妗c�佹敼鍙樻祬搴撲綅鐨勬簮搴�/鐩爣搴� 搴撲綅鐘舵�併�佷笅鍙戝爢鍨涙満鍛戒护锛堢珛椹墽琛�)
-//                        moveLocForDeepLocPakin(slave, shallowLoc, wrkMast);
-                    }
-                    continue;
-                } else if (shallowLoc.getLocSts().equals("Q")) {
-                    WrkMast waitWrkMast = wrkMastMapper.selectByLocNo1(shallowLocNo);
-                    if (null != waitWrkMast && waitWrkMast.getWrkSts() == 4) {
-                        continue;
-                    }
-                }
-            }
-
-            // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-            CrnCommand crnCommand = new CrnCommand();
-            crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
-            crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
-            crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
-            crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡:  搴撲綅绉昏浆
-            crnCommand.setSourcePosX(crnStn.getRow().shortValue());     // 婧愬簱浣嶆帓
-            crnCommand.setSourcePosY(crnStn.getBay().shortValue());     // 婧愬簱浣嶅垪
-            crnCommand.setSourcePosZ(crnStn.getLev().shortValue());     // 婧愬簱浣嶅眰
-            crnCommand.setDestinationPosX(locMast.getRow1().shortValue());     // 鐩爣搴撲綅鎺�
-            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.toJSONString(crnCommand));
-            } else {
-
-//                long startTime = System.currentTimeMillis();
-//                while ((System.currentTimeMillis() - startTime) < COMMAND_TIMEOUT) {
-//
-//                    if (true) {
-//                        break;
-//                    }
-//
-//                    try{
-//                        Thread.sleep(500);
-//                    }catch(Exception ignore){}
-//                }
-
-                // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�
-                Date now = new Date();
-                wrkMast.setWrkSts(3L);
-                wrkMast.setCrnStrTime(now);
-                wrkMast.setModiTime(now);
-                if (wrkMastMapper.updateById(wrkMast) == 0) {
-                    log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
-                }
-            }
-        }
-    }
-
-    /**
-     * 鍏ュ簱  ===>>  鍫嗗灈鏈虹珯鍒板簱浣�
-     * 2024-06-05
-     */
-    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()){
-                if(crnStn1.getStaNo().equals(wrkMast.getStaNo())){
-                    crnStn = crnStn1;
-                    break;
-                }
-            }
-            if(Cools.isEmpty(crnStn)){
-                continue;
-            }
-
-            boolean flag = false;
-            // 鑾峰彇鍫嗗灈鏈哄叆搴撶珯淇℃伅
-            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
-            StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
-            if (staProtocol == null) {
-                continue;
-            } else {
-                staProtocol = staProtocol.clone();
-            }
-            // 鏌ヨ绔欑偣璇︾粏淇℃伅
-            BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
-            if (staDetl == null) {
-                log.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
-                continue;
-            }
-            if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo().equals(wrkMast.getWrkNo())
-                    && staProtocol.isInEnable() && staDetl.getCanining() != null && staDetl.getCanining().equals("Y")) {
-                flag = true;
-            }
-            if (!flag) {
-                continue;
-            }
-
-            // 鑾峰彇搴撲綅淇℃伅
-            LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
-            if (locMast == null) {
-                log.error("鏌ヨ搴撳瓨鏃犳暟鎹�--搴撲綅鍙穥}", wrkMast.getLocNo());
-                continue;
-            }
-            if (!locMast.getLocSts().equals("S") && !locMast.getLocSts().equals("Q")) {
-                log.error("鍏ュ簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getLocNo(), locMast.getLocSts());
-                continue;
-            }
-
-            //宸ヤ綅
-            if (crnStation == 1){
-                // 鍫嗗灈鏈烘帶鍒惰繃婊�
-                if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
-                    break;
-                }
-                // 鍫嗗灈鏈烘帶鍒惰繃婊�
-                if (!crnProtocol.getStatusTypeTwo().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNoTwo() != 0) {
-                    break;
-                }
-            }else if(crnStation == 2){
-                // 鍫嗗灈鏈烘帶鍒惰繃婊�
-                if (!crnProtocol.getStatusTypeTwo().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNoTwo() != 0) {
-                    break;
-                }
-            }else {
-                break;
-            }
-
-            if (locMast.getBay1()==81){
-                crnStation=2;
-            }
-
-
-            // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
-            if (wrkMastMapper.selectWorking(slave.getId()) != null) {
-                continue;
-            }
-
-            // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
-            if (wrkMastSplitTwinMapper.selectCount(new EntityWrapper<WrkMastSplitTwin>().eq("wrk_no", wrkMast.getWrkNo().longValue())) != 0) {
-                break;
-//                        return;
-            }
-
-            // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
-            if (Utils.isDeepLoc(slaveProperties, wrkMast.getLocNo())) {
-                String shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getLocNo());
-                LocMast shallowLoc = locMastService.selectById(shallowLocNo);
-                // O.绌哄簱浣嶃�丵.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴撱�丼.鍏ュ簱棰勭害銆乆.绂佺敤 鐩存帴鎼紒
-                if (shallowLoc.getLocSts().equals("P") || shallowLoc.getLocSts().equals("R")) {
-                    WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
-                    if (null == waitWrkMast) {
-                        log.error("{}搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒", shallowLocNo);
-                    } else {
-                        waitWrkMast.setIoPri(15D);
-                        waitWrkMast.setModiTime(new Date());
-                        if (wrkMastMapper.updateById(waitWrkMast) == 0) {
-                            log.error("璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
-                        }
-                        continue;
-                    }
-
-                } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) {
-                    // 姝ゆ爣璁伴伩鍏嶅娆℃墽琛岀Щ搴撲换鍔�
-                    if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())) {
-                        wrkMast.setUpdMk("Y");
-                        wrkMast.setIoPri(14D);
-                        wrkMastMapper.updateById(wrkMast);
-                        // 鐢熸垚宸ヤ綔妗�,灏嗘祬搴撲綅绉昏浆鍒版柊鐨勫簱浣嶄腑
-                        moveLocForDeepLoc(slave, shallowLoc);
-                        // 鐢熸垚宸ヤ綔妗c�佹敼鍙樻祬搴撲綅鐨勬簮搴�/鐩爣搴� 搴撲綅鐘舵�併�佷笅鍙戝爢鍨涙満鍛戒护锛堢珛椹墽琛�)
-//                        moveLocForDeepLocPakin(slave, shallowLoc, wrkMast);
-                    }
-                    continue;
-                } else if (shallowLoc.getLocSts().equals("Q")) {
-                    WrkMast waitWrkMast = wrkMastMapper.selectByLocNo1(shallowLocNo);
-                    if (null != waitWrkMast && waitWrkMast.getWrkSts() == 4) {
-                        continue;
-                    }
-                }
-            }
-
-            StaProtocol staProtocolOther = devpThread.getStation().get(crnStn.getStaNoOther());
-            if (staProtocolOther == null) {
-                continue;
-            } else {
-                staProtocolOther = staProtocolOther.clone();
-            }
-
-            // 鏌ヨ绔欑偣璇︾粏淇℃伅
-            BasDevp staDetlOther = basDevpService.selectById(crnStn.getStaNoOther());
-            if (staDetlOther == null) {
-                log.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNoOther());
-                continue;
-            }
-            if (staProtocolOther.getWorkNo()!=0){
-                WrkMast wrkMastOther = wrkMastMapper.selectPakInStep3(staProtocolOther.getWorkNo());
-                if (Cools.isEmpty(wrkMastOther)){
-                    log.error("Other鏌ヨ宸ヤ綔妗f鏃犳暟鎹�--宸ヤ綔鍙穥},绔欑偣鍙凤細{}", staProtocolOther.getWorkNo(),staProtocolOther.getSiteId());
-                    continue;
-                }
-                // 鑾峰彇搴撲綅淇℃伅
-                LocMast locMastOther = locMastService.selectById(wrkMastOther.getLocNo());
-                if (locMastOther == null) {
-                    log.error("鏌ヨ搴撳瓨鏃犳暟鎹�--搴撲綅鍙穥}", locMastOther.getLocNo());
-                    continue;
-                }
-                if (!locMastOther.getLocSts().equals("S") && !locMastOther.getLocSts().equals("Q")) {
-                    log.error("鍏ュ簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMastOther.getLocNo(), locMastOther.getLocSts());
-                    continue;
-                }
-                if (locMastOther.getBay1()!=81){
-                    if (staProtocolOther.isAutoing() && staProtocolOther.isLoading()
-                            && staProtocolOther.isInEnable() && staDetlOther.getCanining() != null && staDetlOther.getCanining().equals("Y")) {
-                        // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-                        CrnCommandParam crnCommandParam = new CrnCommandParam();
-                        crnCommandParam.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
-
-                        crnCommandParam.setTaskNo2(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
-                        crnCommandParam.setAckFinish2((short) 0);  // 浠诲姟瀹屾垚纭浣�
-                        crnCommandParam.setTaskMode2(CrnTaskModeType.SEPARATE_TAKE); // 浠诲姟妯″紡:  鍗曞彇璐�
-                        crnCommandParam.setSourcePosX2(crnStn.getRow().shortValue());     // 婧愬簱浣嶆帓
-                        crnCommandParam.setSourcePosY2(crnStn.getBay().shortValue());     // 婧愬簱浣嶅垪
-                        crnCommandParam.setSourcePosZ2(crnStn.getLev().shortValue());     // 婧愬簱浣嶅眰
-                        crnCommandParam.setDestinationPosX2((short)0);     // 鐩爣搴撲綅鎺�
-                        crnCommandParam.setDestinationPosY2((short)0);     // 鐩爣搴撲綅鍒�
-                        crnCommandParam.setDestinationPosZ2((short)0);     // 鐩爣搴撲綅灞�
-
-                        crnCommandParam.setTaskNo(wrkMastOther.getWrkNo().shortValue()); // 宸ヤ綔鍙�
-                        crnCommandParam.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
-                        crnCommandParam.setTaskMode(CrnTaskModeType.SEPARATE_TAKE); // 浠诲姟妯″紡:  鍗曞彇璐�
-                        crnCommandParam.setSourcePosX(crnStn.getRow().shortValue());     // 婧愬簱浣嶆帓
-                        crnCommandParam.setSourcePosY(crnStn.getBay().shortValue());     // 婧愬簱浣嶅垪
-                        crnCommandParam.setSourcePosZ(crnStn.getLev().shortValue());     // 婧愬簱浣嶅眰
-                        crnCommandParam.setDestinationPosX((short)0);     // 鐩爣搴撲綅鎺�
-                        crnCommandParam.setDestinationPosY((short)0);     // 鐩爣搴撲綅鍒�
-                        crnCommandParam.setDestinationPosZ((short)0);     // 鐩爣搴撲綅灞�
-                        if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(99, crnCommandParam.getCrnNo()-2))) {
-                            log.error("杈撻�佺嚎閿佸畾鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), crnCommandParam.getCrnNo()-2);
-                            continue;
-                        }
-                        if (!MessageQueue.offer(SlaveType.Crn, crnCommandParam.getCrnNo(), new Task(9, crnCommandParam))) {
-                            log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSONString(crnCommandParam));
-                        } else {
-                            // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�
-                            Date now = new Date();
-                            wrkMast.setWrkSts(3L);
-                            wrkMast.setCrnStrTime(now);
-                            wrkMast.setModiTime(now);
-                            WrkMastSplitTwin wrkMastSplitTwin = new WrkMastSplitTwin(wrkMast,2,now);
-                            wrkMastSplitTwin.setWrkSts(1);
-                            wrkMastSplitTwin.setWrkStart(wrkMast.getStaNo().toString());
-                            wrkMastSplitTwin.setWrkEnd(wrkMast.getLocNo());
-                            wrkMastSplitTwin.setStartRow(crnStn.getRow());
-                            wrkMastSplitTwin.setStartBay(crnStn.getBay());
-                            wrkMastSplitTwin.setStartLev(crnStn.getLev());
-                            wrkMastSplitTwin.setEndRow(locMast.getRow1());
-                            wrkMastSplitTwin.setEndBay(locMast.getBay1());
-                            wrkMastSplitTwin.setEndLev(locMast.getLev1());
-                            wrkMastSplitTwin.setWrkType(1);
-                            wrkMastSplitTwin.setIoType(1);
-
-                            wrkMastOther.setWrkSts(3L);
-                            wrkMastOther.setCrnStrTime(now);
-                            wrkMastOther.setModiTime(now);
-                            WrkMastSplitTwin wrkMastSplitTwinOther = new WrkMastSplitTwin(wrkMastOther,1,now);
-                            wrkMastSplitTwinOther.setWrkSts(1);
-                            wrkMastSplitTwinOther.setWrkStart(wrkMastOther.getStaNo().toString());
-                            wrkMastSplitTwinOther.setWrkEnd(wrkMastOther.getLocNo());
-                            wrkMastSplitTwinOther.setStartRow(crnStn.getRow());
-                            wrkMastSplitTwinOther.setStartBay(crnStn.getBay());
-                            wrkMastSplitTwinOther.setStartLev(crnStn.getLev());
-                            wrkMastSplitTwinOther.setEndRow(locMastOther.getRow1());
-                            wrkMastSplitTwinOther.setEndBay(locMastOther.getBay1());
-                            wrkMastSplitTwinOther.setEndLev(locMastOther.getLev1());
-                            wrkMastSplitTwinOther.setWrkType(1);
-                            wrkMastSplitTwinOther.setIoType(1);
-
-                            if (wrkMastMapper.updateById(wrkMast) == 0) {
-                                log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
-                            }
-
-                            if (wrkMastSplitTwinMapper.insert(wrkMastSplitTwin)==0){
-                                log.error("鍒涘缓 鍫嗗灈鏈烘墽琛屼换鍔� 澶辫触锛侊紒锛屽伐浣滃彿={}锛屽爢鍨涙満鍙�={}", wrkMast.getWrkNo(),wrkMast.getCrnNo());
-                            }
-
-                            if (wrkMastMapper.updateById(wrkMastOther) == 0) {
-                                log.error("Other淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
-                            }
-
-                            if (wrkMastSplitTwinMapper.insert(wrkMastSplitTwinOther)==0){
-                                log.error("Other鍒涘缓 鍫嗗灈鏈烘墽琛屼换鍔� 澶辫触锛侊紒锛屽伐浣滃彿={}锛屽爢鍨涙満鍙�={}", wrkMast.getWrkNo(),wrkMast.getCrnNo());
-                            }
-                            return;
-                        }
-                    }
-                }
+            List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", 1L));
+            if (wrkMasts.isEmpty()){
                 return;
             }
-            StaProtocol staProtocolOther1 = devpThread.getStation().get(crnStn.getStaNoOther1());
-            if (staProtocolOther1 == null) {
-                continue;
-            } else {
-                staProtocolOther1 = staProtocolOther1.clone();
+            List<BasDevpPosition> basDevpPositions = basDevpPositionService.selectList(new EntityWrapper<BasDevpPosition>().orderBy("plc_position",false));
+            if (basDevpPositions.isEmpty()){
+                log.error("鑾峰彇鎵�鏈夌珯鐐逛俊鎭紓甯�");
+                return;
             }
+            List<Integer> siteList = SortTheExecutionOfTheCarUtil.WrkMastExtractSites(wrkMasts);
+            List<Integer> devpList = SortTheExecutionOfTheCarUtil.BasDevpPositionExtractSites(basDevpPositions);
+            Integer siteNo = SortTheExecutionOfTheCarUtil.ObtainDenseAreasFirstPlace(siteList, devpList);
+            if (siteNo == null){
+                log.error("灏辫繎瀵嗛泦鍘熷垯鑾峰彇绔欑偣澶辫触");
+                return;
+            }
+            Long sitePosition = 0L;
+            for (BasDevpPosition basDevpPosition : basDevpPositions){
+                if (basDevpPosition.getDevNo().equals(siteNo)){
+                    sitePosition = basDevpPosition.getPlcPosition();
+                }
+            }
+            List<List<Long>> rgvPositionList = new ArrayList<>();
+            for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
+                RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
+                RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+                if (rgvProtocol == null) {
+                    continue;
+                }
+                List<Long> rgvPosition = new ArrayList<>();
+                rgvPosition.add(rgvProtocol.getRgvNo().longValue());
+                rgvPosition.add(rgvProtocol.getRgvPos());
+                rgvPositionList.add(rgvPosition);
+            }
+            Integer rgvNo = SortTheExecutionOfTheCarUtil.LatelyAndGreaterThan(rgvPositionList, sitePosition);
 
-            if (staProtocolOther1.isAutoing() && staProtocolOther1.getWorkNo()!=0){
+            List<BasCircularShuttle> basCircularShuttleList = basCircularShuttleService.selectList(new EntityWrapper<BasCircularShuttle>().orderBy("rgv_id", true));
+            if (basCircularShuttleList.get(0).getRgvNo().equals(rgvNo)){
                 return;
             }
 
-
-            StaProtocol staProtocolOther2 = devpThread.getStation().get(crnStn.getStaNoOther2());
-            if (staProtocolOther2 == null) {
-                continue;
-            } else {
-                staProtocolOther2 = staProtocolOther2.clone();
+            int[][] ints = new int[basCircularShuttleList.size()][2];
+            for (BasCircularShuttle basCircularShuttle : basCircularShuttleList){
+                ints[basCircularShuttle.getRgvNo()-1] = new int[]{basCircularShuttle.getRgvNo(),basCircularShuttle.getRgvId()};
             }
-            if (staProtocolOther2.isAutoing() && staProtocolOther2.getWorkNo()!=0){
-                return;
+            String[] oldList = new String[ints.length];
+            for (int[] rgv : ints){
+                oldList[rgv[0]-1] = Arrays.toString(rgv);
             }
-            crnStation = 2;
-            // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-            CrnCommand crnCommand = new CrnCommand();
-            crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
-            crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
-            crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
-            crnCommand.setTaskMode(CrnTaskModeType.SEPARATE_TAKE); // 浠诲姟妯″紡:  鍗曞彇璐�
-            crnCommand.setSourcePosX(crnStn.getRow().shortValue());     // 婧愬簱浣嶆帓
-            crnCommand.setSourcePosY(crnStn.getBay().shortValue());     // 婧愬簱浣嶅垪
-            crnCommand.setSourcePosZ(crnStn.getLev().shortValue());     // 婧愬簱浣嶅眰
-            crnCommand.setDestinationPosX((short)0);     // 鐩爣搴撲綅鎺�
-            crnCommand.setDestinationPosY((short)0);     // 鐩爣搴撲綅鍒�
-            crnCommand.setDestinationPosZ((short)0);     // 鐩爣搴撲綅灞�
-
-            staProtocol.setWorkNo(wrkMast.getWrkNo());
-            staProtocol.setStaNo(wrkMast.getStaNo());
-
-            devpThread.setPakMk(staProtocol.getSiteId(), false);
-
-            if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(99, crnCommand.getCrnNo()-2))) {
-                log.error("杈撻�佺嚎閿佸畾鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), crnCommand.getCrnNo()-2);
-                continue;
+            int[][] rgvList = SortTheExecutionOfTheCarUtil.ReorderSteId(ints, rgvNo);
+            String[] newList = new String[rgvList.length];
+            for (int[] rgv : rgvList){
+                newList[rgv[0]-1] = Arrays.toString(rgv);
             }
-            if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(5, crnCommand))) {
-                log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSONString(crnCommand));
-            } else {
-                // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�
-                Date now = new Date();
-                wrkMast.setWrkSts(3L);
-                wrkMast.setCrnStrTime(now);
-                wrkMast.setModiTime(now);
-                WrkMastSplitTwin wrkMastSplitTwin = new WrkMastSplitTwin(wrkMast,crnStation,now);
-                wrkMastSplitTwin.setWrkSts(1);
-                wrkMastSplitTwin.setWrkStart(wrkMast.getStaNo().toString());
-                wrkMastSplitTwin.setWrkEnd(wrkMast.getLocNo());
-                wrkMastSplitTwin.setStartRow(crnStn.getRow());
-                wrkMastSplitTwin.setStartBay(crnStn.getBay());
-                wrkMastSplitTwin.setStartLev(crnStn.getLev());
-                wrkMastSplitTwin.setEndRow(locMast.getRow1());
-                wrkMastSplitTwin.setEndBay(locMast.getBay1());
-                wrkMastSplitTwin.setEndLev(locMast.getLev1());
-                wrkMastSplitTwin.setWrkType(1);
-                wrkMastSplitTwin.setIoType(1);
 
-                if (wrkMastMapper.updateById(wrkMast) == 0) {
-                    log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
-                }
-
-                if (wrkMastSplitTwinMapper.insert(wrkMastSplitTwin)==0){
-                    log.error("鍒涘缓 鍫嗗灈鏈烘墽琛屼换鍔� 澶辫触锛侊紒锛屽伐浣滃彿={}锛屽爢鍨涙満鍙�={}", wrkMast.getWrkNo(),wrkMast.getCrnNo());
-                }
-                break;
-            }
-        }
-    }
-
-    /**
-     * 鍏ュ簱  ===>>  鍫嗗灈鏈虹珯鍒板簱浣�
-     * 2024-01-15 鐓滄槦灏忔枡绠�
-     */
-    public synchronized void crnStnToLoc1Single(CrnSlave slave, CrnProtocol crnProtocol) {
-        List<WrkMast> wrkMasts = wrkMastMapper.selectPakInStep12(slave.getId());
-        for(WrkMast wrkMast : wrkMasts){
-            if (wrkMast == null) {
-                continue;
-            }
-
-            CrnSlave.CrnStn crnStn = null;
-            for (CrnSlave.CrnStn crnStn1 : slave.getCrnInStn()){
-                if(crnStn1.getStaNo().equals(wrkMast.getStaNo())){
-                    crnStn = crnStn1;
-                    break;
-                }
-            }
-            if(Cools.isEmpty(crnStn)){
-                continue;
-            }
-
-            boolean flag = false;
-            boolean flagOther = false;
-            // 鑾峰彇鍫嗗灈鏈哄叆搴撶珯淇℃伅
-            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
-            StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
-            if (staProtocol == null) {
-                continue;
-            } else {
-                staProtocol = staProtocol.clone();
-            }
-            StaProtocol staProtocolOther = devpThread.getStation().get(crnStn.getStaNoOther());
-            if (staProtocolOther == null) {
-                continue;
-            } else {
-                staProtocolOther = staProtocolOther.clone();
-            }
-            // 鏌ヨ绔欑偣璇︾粏淇℃伅
-            BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
-            if (staDetl == null) {
-                log.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
-                continue;
-            }
-            if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo().equals(wrkMast.getWrkNo())
-                    && staProtocol.isInEnable() && staDetl.getCanining() != null && staDetl.getCanining().equals("Y")) {
-                flag = true;
-            }
-
-            if (staProtocol.getWorkNo().equals(staProtocolOther.getWorkNo())){
-                continue;
-            }
-
-            // 鏌ヨ绔欑偣璇︾粏淇℃伅
-            BasDevp staDetlOther = basDevpService.selectById(crnStn.getStaNoOther());
-            if (staDetlOther == null) {
-                log.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNoOther());
-                continue;
-            }
-            if (staProtocolOther.isAutoing() && staProtocolOther.isLoading() && staProtocolOther.getWorkNo() > 0 && staProtocolOther.isInEnable()
-                    && staDetlOther.getCanining() != null && staDetlOther.getCanining().equals("Y")) {
-                flagOther = true;
-            }
-            if (!flag || !flagOther) {
-                continue;
-            }
-
-            //鏌ヨ鍫嗗灈鏈轰换鍔�
-            WrkMastCrn wrkMastCrn = wrkMastCrnMapper.selectWrkNoOneAndTwo(wrkMast.getWrkNo());
-            if (Cools.isEmpty(wrkMastCrn)){
-                continue;
-            }
-
-            WrkMast wrkMastOther = wrkMastMapper.selectPakInStep3(wrkMastCrn.getWrkNoTwo().intValue());
-
-            // 鑾峰彇搴撲綅淇℃伅
-            LocMast locMast = locMastService.selectById(Utils.getRow(wrkMastCrn.getLocNo())%4>2? wrkMastCrn.getLocNoTwo():wrkMastCrn.getLocNoOne());
-            if (locMast == null) {
-                log.error("鏌ヨ搴撳瓨鏃犳暟鎹�--搴撲綅鍙穥}", wrkMastCrn.getLocNo());
-                continue;
-            }
-            if (!locMast.getLocSts().equals("S") && !locMast.getLocSts().equals("Q")) {
-                log.error("鍏ュ簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", locMast.getLocNo(), locMast.getLocSts());
-                continue;
-            }
-
-            // 鍫嗗灈鏈烘帶鍒惰繃婊�
-            if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
-                continue;
-            }
-
-            // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
-            if (wrkMastMapper.selectWorking(slave.getId()) != null) {
-                continue;
-            }
-
-            // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-            CrnCommand crnCommand = new CrnCommand();
-            crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
-            crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
-            crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
-            crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡:  搴撲綅绉昏浆
-            crnCommand.setSourcePosX(crnStn.getRow().shortValue());     // 婧愬簱浣嶆帓
-            crnCommand.setSourcePosY(crnStn.getBay().shortValue());     // 婧愬簱浣嶅垪
-            crnCommand.setSourcePosZ(crnStn.getLev().shortValue());     // 婧愬簱浣嶅眰
-            crnCommand.setDestinationPosX(locMast.getRow1().shortValue());     // 鐩爣搴撲綅鎺�
-            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.toJSONString(crnCommand));
-            } else {
-                // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�
-                Date now = new Date();
-                wrkMast.setWrkSts(3L);
-                wrkMast.setCrnStrTime(now);
-                wrkMast.setModiTime(now);
-                if (wrkMastMapper.updateById(wrkMast) == 0) {
-                    log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
-                }
-
-                // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�
-                wrkMastOther.setWrkSts(3L);
-                wrkMastOther.setCrnStrTime(now);
-                wrkMastOther.setModiTime(now);
-                if (wrkMastMapper.updateById(wrkMastOther) == 0) {
-                    log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMastOther.getWrkNo());
-                }
-
-                wrkMastCrn.setWrkSts(3L);
-                wrkMastCrn.setModiTime(now);
-                if (wrkMastCrnMapper.updateById(wrkMastCrn) == 0) {
-                    log.error("淇敼鍫嗗灈鏈哄伐浣滄。鐘舵�� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMastCrn.getWrkNo());
-                }
-            }
-        }
-
-    }
-
-    /**
-     * 鍏ュ簱  ===>>  鍫嗗灈鏈虹珯鍒板簱浣�
-     * 2024-01-15 浼樺寲鍙屽伐浣�
-     */
-    public synchronized void crnStnToLoc1(CrnSlave slave, CrnProtocol crnProtocol, Integer crnStation) {
-        List<WrkMast> wrkMasts = wrkMastMapper.selectPakInStep12(slave.getId());
-        for(WrkMast wrkMast : wrkMasts){
-            if (wrkMast == null) {
-                continue;
-            }
-
-            CrnSlave.CrnStn crnStn = null;
-            for (CrnSlave.CrnStn crnStn1 : slave.getCrnInStn()){
-                if(crnStn1.getStaNo().equals(wrkMast.getStaNo())){
-                    crnStn = crnStn1;
-                    break;
-                }
-            }
-            if(Cools.isEmpty(crnStn)){
-                continue;
-            }
-
-            boolean flag = false;
-            // 鑾峰彇鍫嗗灈鏈哄叆搴撶珯淇℃伅
-            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
-            StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
-            if (staProtocol == null) {
-                continue;
-            } else {
-                staProtocol = staProtocol.clone();
-            }
-            // 鏌ヨ绔欑偣璇︾粏淇℃伅
-            BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
-            if (staDetl == null) {
-                log.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
-                continue;
-            }
-            if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo().equals(wrkMast.getWrkNo())
-                    && staProtocol.isInEnable() && staDetl.getCanining() != null && staDetl.getCanining().equals("Y")) {
-                flag = true;
-            }
-            if (!flag) {
-                continue;
-            }
-
-            // 鑾峰彇搴撲綅淇℃伅
-            LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
-            if (locMast == null) {
-                log.error("鏌ヨ搴撳瓨鏃犳暟鎹�--搴撲綅鍙穥}", wrkMast.getLocNo());
-                continue;
-            }
-            if (!locMast.getLocSts().equals("S") && !locMast.getLocSts().equals("Q")) {
-                log.error("鍏ュ簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getLocNo(), locMast.getLocSts());
-                continue;
-            }
-
-            //宸ヤ綅
-            if (crnStation == 1){
-                // 鍫嗗灈鏈烘帶鍒惰繃婊�
-                if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
-                    break;
-                }
-            }else if(crnStation == 2){
-                // 鍫嗗灈鏈烘帶鍒惰繃婊�
-                if (!crnProtocol.getStatusTypeTwo().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNoTwo() != 0) {
-                    break;
-                }
-            }else {
-                break;
-            }
-
-
-            // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
-            if (wrkMastMapper.selectWorking(slave.getId()) != null) {
-                continue;
-            }
-
-            // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
-            if (Utils.isDeepLoc(slaveProperties, wrkMast.getLocNo())) {
-                String shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getLocNo());
-                LocMast shallowLoc = locMastService.selectById(shallowLocNo);
-                // O.绌哄簱浣嶃�丵.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴撱�丼.鍏ュ簱棰勭害銆乆.绂佺敤 鐩存帴鎼紒
-                if (shallowLoc.getLocSts().equals("P") || shallowLoc.getLocSts().equals("R")) {
-                    WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
-                    if (null == waitWrkMast) {
-                        log.error("{}搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒", shallowLocNo);
-                    } else {
-                        waitWrkMast.setIoPri(15D);
-                        waitWrkMast.setModiTime(new Date());
-                        if (wrkMastMapper.updateById(waitWrkMast) == 0) {
-                            log.error("璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
-                        }
-                        continue;
-                    }
-
-                } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) {
-                    // 姝ゆ爣璁伴伩鍏嶅娆℃墽琛岀Щ搴撲换鍔�
-                    if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())) {
-                        wrkMast.setUpdMk("Y");
-                        wrkMast.setIoPri(14D);
-                        wrkMastMapper.updateById(wrkMast);
-                        // 鐢熸垚宸ヤ綔妗�,灏嗘祬搴撲綅绉昏浆鍒版柊鐨勫簱浣嶄腑
-                        moveLocForDeepLoc(slave, shallowLoc);
-                        // 鐢熸垚宸ヤ綔妗c�佹敼鍙樻祬搴撲綅鐨勬簮搴�/鐩爣搴� 搴撲綅鐘舵�併�佷笅鍙戝爢鍨涙満鍛戒护锛堢珛椹墽琛�)
-//                        moveLocForDeepLocPakin(slave, shallowLoc, wrkMast);
-                    }
-                    continue;
-                } else if (shallowLoc.getLocSts().equals("Q")) {
-                    WrkMast waitWrkMast = wrkMastMapper.selectByLocNo1(shallowLocNo);
-                    if (null != waitWrkMast && waitWrkMast.getWrkSts() == 4) {
-                        continue;
-                    }
-                }
-            }
-
-            // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-            CrnCommand crnCommand = new CrnCommand();
-            crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
-            crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
-            crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
-            crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡:  搴撲綅绉昏浆
-            crnCommand.setSourcePosX(crnStn.getRow().shortValue());     // 婧愬簱浣嶆帓
-            crnCommand.setSourcePosY(crnStn.getBay().shortValue());     // 婧愬簱浣嶅垪
-            crnCommand.setSourcePosZ(crnStn.getLev().shortValue());     // 婧愬簱浣嶅眰
-            crnCommand.setDestinationPosX(locMast.getRow1().shortValue());     // 鐩爣搴撲綅鎺�
-            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.toJSONString(crnCommand));
-            } else {
-                // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�
-                Date now = new Date();
-                wrkMast.setWrkSts(3L);
-                wrkMast.setCrnStrTime(now);
-                wrkMast.setModiTime(now);
-                if (wrkMastMapper.updateById(wrkMast) == 0) {
-                    log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
-                }
-            }
-        }
-    }
-
-    /**
-     * 鍑哄簱  ===>>  搴撲綅鍒板爢鍨涙満绔�
-     * 2022-06-09 TQS淇敼锛屾煡璇㈠伐浣滄。LIST锛岄亶鍘嗕笅鍙戯紝闃叉绗竴涓换鍔″牭濉炲嚭搴�
-     */
-    public synchronized void locToCrnStn(CrnSlave slave, CrnProtocol crnProtocol) {
-        for (CrnSlave.CrnStn crnStn : slave.getCrnOutStn()) {
-            // 鑾峰彇宸ヤ綔鐘舵�佷负11锛堢敓鎴愬嚭搴揑D锛夌殑鍑哄簱宸ヤ綔妗�
-//            WrkMast wrkMast = wrkMastMapper.selectPakOutStep1(slave.getId(), crnStn.getStaNo());
-            List<WrkMast> wrkMasts = wrkMastMapper.selectPakOutStep11(slave.getId(), crnStn.getStaNo());
-            for (WrkMast wrkMast : wrkMasts) {
-                if (wrkMast == null) {
-                    continue;
-                }
-                // 宸ヤ綔妗g姸鎬佸垽鏂�
-                if (wrkMast.getIoType() < 100 || wrkMast.getSourceStaNo() == null) {
-                    log.error("鏌ヨ宸ヤ綔妗f暟鎹笉绗﹀悎鏉′欢--鍏ュ嚭绫诲瀷/绔欑偣, 宸ヤ綔鍙�={}锛屾簮搴撲綅={}锛屽叆鍑虹被鍨�={}", wrkMast.getWrkNo(), wrkMast.getSourceLocNo(), wrkMast.getIoType());
-                    continue;
-                }
-                // 鑾峰彇婧愬簱浣嶄俊鎭�
-                LocMast sourceSta = locMastService.selectById(wrkMast.getSourceLocNo());
-                if (!sourceSta.getLocSts().equals("R") && !sourceSta.getLocSts().equals("P")) {
-                    log.error("鍑哄簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getSourceLocNo(), sourceSta.getLocSts());
-                    continue;
-                }
-                // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
-                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
-                StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
-                if (staProtocol == null) {
-                    break;
-//                    continue;
-                } else {
-                    staProtocol = staProtocol.clone();
-                }
-
-//            // 鍏ュ嚭搴撴ā寮忓垽鏂�
-//            if (devpThread.ioMode != IoModeType.PAKOUT_MODE) { continue; }
-                if (wrkMast.getStaNo() == 204 && devpThread.ioModeOf2F != IoModeType.PAKOUT_MODE) {
-                    continue;
-                }
-
-                // 鏌ヨ绔欑偣璇︾粏淇℃伅
-                BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
-                if (staDetl == null) {
-                    log.error("鍑哄簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
-                    break;
-//                    continue;
-                }
-                // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵��
-                if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")
-                        && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) {
-                    // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-
-                    // 鍫嗗灈鏈烘帶鍒惰繃婊�
-                    if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
-//                        continue;
-                        break;
-                    }
-
-                    // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
-                    if (Utils.isDeepLoc(slaveProperties, wrkMast.getSourceLocNo())) {
-                        String shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getSourceLocNo());
-                        LocMast shallowLoc = locMastService.selectById(shallowLocNo);
-                        // O.绌哄簱浣嶃�丵.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴撱�丼.鍏ュ簱棰勭害銆乆.绂佺敤 鐩存帴鎼紒
-                        if (shallowLoc.getLocSts().equals("P") || shallowLoc.getLocSts().equals("R")) {
-                            WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
-                            if (null == waitWrkMast) {
-                                log.error("{}搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒", shallowLocNo);
-                            } else {
-                                if (waitWrkMast.getWrkSts() == 11) {
-                                    waitWrkMast.setIoPri(15D);
-                                    waitWrkMast.setModiTime(new Date());
-                                    if (wrkMastMapper.updateById(waitWrkMast) == 0) {
-                                        log.error("璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
-                                    }
-                                    continue;
-                                } else {
-
-                                }
-                            }
-                        } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) {
-//                            WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
-                            //2022-08-16 modify,涓嶆牴鎹畊pdmk鏍囪绉诲簱浠诲姟(瀹规槗琚彇娑堝鑷村牭濉�)锛屾煡璇㈠伐浣滄。鏄惁瀛樺湪浠诲姟
-                            WrkMast waitWrkMast = wrkMastMapper.selectByLocNo1(shallowLocNo);
-                            // 姝ゆ爣璁伴伩鍏嶅娆℃墽琛岀Щ搴撲换鍔�
-//                            if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())
-//                                || Cools.isEmpty(waitWrkMast)) {
-                            if (Cools.isEmpty(waitWrkMast)) {
-                                wrkMast.setUpdMk("Y");
-                                wrkMastMapper.updateById(wrkMast);
-                                // 鐢熸垚宸ヤ綔妗�,灏嗘祬搴撲綅绉昏浆鍒版柊鐨勫簱浣嶄腑
-                                moveLocForDeepLoc(slave, shallowLoc);
-                            }
-                            log.error("{}浠诲姟鍑哄簱澶辫触锛屾祬搴撲綅鍫靛锛佹祬搴撲綅鍙�:{}", wrkMast.getWrkNo(), shallowLocNo);
-                            continue;
-                        } else if (shallowLoc.getLocSts().equals("Q") || shallowLoc.getLocSts().equals("S")) {
-                            WrkMast waitWrkMast = wrkMastMapper.selectByLocNo1(shallowLocNo);
-                            if (null != waitWrkMast && waitWrkMast.getWrkSts() == 4) {
-                                continue;
-                            }
-                        }
-                    }
-
-                    // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
-                    if (wrkMastMapper.selectWorking(slave.getId()) != null) {
-                        break;
-//                        return;
-                    }
-
-                    // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
-                    CrnCommand crnCommand = new CrnCommand();
-                    crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
-                    crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
-                    crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
-                    crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡:  搴撲綅绉昏浆
-                    crnCommand.setSourcePosX(sourceSta.getRow1().shortValue());     // 婧愬簱浣嶆帓
-                    crnCommand.setSourcePosY(sourceSta.getBay1().shortValue());     // 婧愬簱浣嶅垪
-                    crnCommand.setSourcePosZ(sourceSta.getLev1().shortValue());     // 婧愬簱浣嶅眰
-                    crnCommand.setDestinationPosX(crnStn.getRow().shortValue());     // 鐩爣搴撲綅鎺�
-                    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.toJSONString(crnCommand));
-                    } else {
-                        // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
-                        Date now = new Date();
-                        wrkMast.setWrkSts(12L);
-                        wrkMast.setCrnStrTime(now);
-                        wrkMast.setModiTime(now);
-                        if (wrkMastMapper.updateById(wrkMast) == 0) {
-                            log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
-                        }
-                        break;
-                    }
-                }
-            }
-        }
-    }
-
-    /**
-     * 鍑哄簱  ===>>  搴撲綅鍒板爢鍨涙満绔�
-     * 2024-01-15 浼樺寲鍙屽伐浣�
-     */
-    public synchronized void locToCrnStn1(CrnSlave slave, CrnProtocol crnProtocol, Integer crnStation) {
-        List<WrkMast> wrkMasts = wrkMastMapper.selectPakOutStep12(slave.getId());
-        for (WrkMast wrkMast : wrkMasts) {
-            if (wrkMast == null) {
-                continue;
-            }
-
-            CrnSlave.CrnStn crnStn = null;
-            for (CrnSlave.CrnStn crnStn1 : slave.getCrnOutStn()){
-                if(crnStn1.getStaNo().equals(wrkMast.getSourceStaNo())){
-                    crnStn = crnStn1;
-                    break;
-                }
-            }
-            if(Cools.isEmpty(crnStn)){
-                continue;
-            }
-
-            // 宸ヤ綔妗g姸鎬佸垽鏂�
-            if (wrkMast.getIoType() < 100 || wrkMast.getSourceStaNo() == null) {
-                log.error("鏌ヨ宸ヤ綔妗f暟鎹笉绗﹀悎鏉′欢--鍏ュ嚭绫诲瀷/绔欑偣, 宸ヤ綔鍙�={}锛屾簮搴撲綅={}锛屽叆鍑虹被鍨�={}", wrkMast.getWrkNo(), wrkMast.getSourceLocNo(), wrkMast.getIoType());
-                continue;
-            }
-            //閫�搴撴ā寮忚烦杩�118銆�119鍑哄簱浠诲姟
-            if (wrkMast.getStaNo()==118 || wrkMast.getStaNo()==119){
-                RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign("oneSign");
-                if (Cools.isEmpty(rgvOneSign) || rgvOneSign.getRgvOneSign()==1){
-                    continue;
-                }
-            }
-            // 鑾峰彇婧愬簱浣嶄俊鎭�
-            LocMast sourceSta = locMastService.selectById(wrkMast.getSourceLocNo());
-            if (!sourceSta.getLocSts().equals("R") && !sourceSta.getLocSts().equals("P")) {
-                log.error("鍑哄簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getSourceLocNo(), sourceSta.getLocSts());
-                continue;
-            }
-            // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
-            SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
-            StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
-            if (staProtocol == null) {
-                break;
-//                    continue;
-            } else {
-                staProtocol = staProtocol.clone();
-            }
-
-//            // 鍏ュ嚭搴撴ā寮忓垽鏂�
-//            if (devpThread.ioMode != IoModeType.PAKOUT_MODE) { continue; }
-            if (wrkMast.getStaNo() == 204 && devpThread.ioModeOf2F != IoModeType.PAKOUT_MODE) {
-                continue;
-            }
-
-            // 鏌ヨ绔欑偣璇︾粏淇℃伅
-            BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
-            if (staDetl == null) {
-                log.error("鍑哄簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
-                break;
-//                    continue;
-            }
-            // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵��
-            if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")
-                    && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) {
-                // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-
-
-                //宸ヤ綅
-                if (crnStation == 1){
-                    // 鍫嗗灈鏈烘帶鍒惰繃婊�
-                    if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
-//                        continue;
-                        break;
-                    }
-                }else if(crnStation == 2){
-                    // 鍫嗗灈鏈烘帶鍒惰繃婊�
-                    if (!crnProtocol.getStatusTypeTwo().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNoTwo() != 0) {
-//                        continue;
-                        break;
-                    }
-                }else {
-                    break;
-                }
-
-                // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
-                if (Utils.isDeepLoc(slaveProperties, wrkMast.getSourceLocNo())) {
-                    String shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getSourceLocNo());
-                    LocMast shallowLoc = locMastService.selectById(shallowLocNo);
-                    // O.绌哄簱浣嶃�丵.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴撱�丼.鍏ュ簱棰勭害銆乆.绂佺敤 鐩存帴鎼紒
-                    if (shallowLoc.getLocSts().equals("P") || shallowLoc.getLocSts().equals("R")) {
-                        WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
-                        if (null == waitWrkMast) {
-                            log.error("{}搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒", shallowLocNo);
-                        } else {
-                            if (waitWrkMast.getWrkSts() == 11) {
-                                waitWrkMast.setIoPri(15D);
-                                waitWrkMast.setModiTime(new Date());
-                                if (wrkMastMapper.updateById(waitWrkMast) == 0) {
-                                    log.error("璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
-                                }
-                                continue;
-                            } else {
-
-                            }
-                        }
-                    } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) {
-//                            WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
-                        //2022-08-16 modify,涓嶆牴鎹畊pdmk鏍囪绉诲簱浠诲姟(瀹规槗琚彇娑堝鑷村牭濉�)锛屾煡璇㈠伐浣滄。鏄惁瀛樺湪浠诲姟
-                        WrkMast waitWrkMast = wrkMastMapper.selectByLocNo1(shallowLocNo);
-                        // 姝ゆ爣璁伴伩鍏嶅娆℃墽琛岀Щ搴撲换鍔�
-//                            if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())
-//                                || Cools.isEmpty(waitWrkMast)) {
-                        if (Cools.isEmpty(waitWrkMast)) {
-                            wrkMast.setUpdMk("Y");
-                            wrkMastMapper.updateById(wrkMast);
-                            // 鐢熸垚宸ヤ綔妗�,灏嗘祬搴撲綅绉昏浆鍒版柊鐨勫簱浣嶄腑
-                            moveLocForDeepLoc(slave, shallowLoc);
-                        }
-                        log.error("{}浠诲姟鍑哄簱澶辫触锛屾祬搴撲綅鍫靛锛佹祬搴撲綅鍙�:{}", wrkMast.getWrkNo(), shallowLocNo);
-                        continue;
-                    } else if (shallowLoc.getLocSts().equals("Q") || shallowLoc.getLocSts().equals("S")) {
-                        WrkMast waitWrkMast = wrkMastMapper.selectByLocNo1(shallowLocNo);
-                        if (null != waitWrkMast && waitWrkMast.getWrkSts() == 4) {
-                            continue;
-                        }
-                    }
-                }
-
-                // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
-                if (wrkMastMapper.selectWorking(slave.getId()) != null) {
-                    break;
-//                        return;
-                }
-
-                // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
-                CrnCommand crnCommand = new CrnCommand();
-                crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
-                crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
-                crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
-                crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡:  搴撲綅绉昏浆
-                crnCommand.setSourcePosX(sourceSta.getRow1().shortValue());     // 婧愬簱浣嶆帓
-                crnCommand.setSourcePosY(sourceSta.getBay1().shortValue());     // 婧愬簱浣嶅垪
-                crnCommand.setSourcePosZ(sourceSta.getLev1().shortValue());     // 婧愬簱浣嶅眰
-                crnCommand.setDestinationPosX(crnStn.getRow().shortValue());     // 鐩爣搴撲綅鎺�
-                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.toJSONString(crnCommand));
-                } else {
-                    // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
-                    Date now = new Date();
-                    wrkMast.setWrkSts(12L);
-                    wrkMast.setCrnStrTime(now);
-                    wrkMast.setModiTime(now);
-                    if (wrkMastMapper.updateById(wrkMast) == 0) {
-                        log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
-                    }
-                    break;
-                }
-            }
-        }
-
-    }
-
-    /**
-     * 鍑哄簱  ===>>  搴撲綅鍒板爢鍨涙満绔�
-     * 2024-01-15 鐓滄槦灏忔枡绠�
-     */
-    public synchronized void locToCrnStn1Single(CrnSlave slave, CrnProtocol crnProtocol) {
-        List<WrkMastCrn> wrkMastCrnList = wrkMastCrnMapper.selectList(new EntityWrapper<WrkMastCrn>()
-                .eq("crn_no", crnProtocol.getCrnNo()).eq("wrk_sts", 11L));
-        for (WrkMastCrn wrkMastCrn : wrkMastCrnList) {
-            if (wrkMastCrn == null) {
-                continue;
-            }
-
-            CrnSlave.CrnStn crnStn = null;
-            for (CrnSlave.CrnStn crnStn1 : slave.getCrnOutStn()){
-                if(crnStn1.getStaNo().equals(wrkMastCrn.getSourceStaNo())){
-                    crnStn = crnStn1;
-                    break;
-                }
-            }
-            if(Cools.isEmpty(crnStn)){
-                continue;
-            }
-
-            // 宸ヤ綔妗g姸鎬佸垽鏂�
-            if (wrkMastCrn.getIoType() < 100 || wrkMastCrn.getSourceStaNo() == null) {
-                log.error("鏌ヨ宸ヤ綔妗f暟鎹笉绗﹀悎鏉′欢--鍏ュ嚭绫诲瀷/绔欑偣, 宸ヤ綔鍙�={}锛屾簮搴撲綅={}锛屽叆鍑虹被鍨�={}", wrkMastCrn.getWrkNo(), wrkMastCrn.getSourceLocNo(), wrkMastCrn.getIoType());
-                continue;
-            }
-            // 鑾峰彇婧愬簱浣嶄俊鎭�
-            LocMast sourceSta = locMastService.selectById(wrkMastCrn.getSourceLocNo());
-            if (!sourceSta.getLocSts().equals("R") && !sourceSta.getLocSts().equals("P")) {
-                log.error("鍑哄簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMastCrn.getSourceLocNo(), sourceSta.getLocSts());
-                continue;
-            }
-            // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
-            SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
-            StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
-            if (staProtocol == null) {
-                break;
-//                    continue;
-            } else {
-                staProtocol = staProtocol.clone();
-            }
-
-            StaProtocol staProtocolOther = devpThread.getStation().get(crnStn.getStaNoOther());
-            if (staProtocolOther == null) {
-                continue;
-            } else {
-                staProtocolOther = staProtocolOther.clone();
-            }
-
-//            // 鍏ュ嚭搴撴ā寮忓垽鏂�
-//            if (devpThread.ioMode != IoModeType.PAKOUT_MODE) { continue; }
-//            if (wrkMast.getStaNo() == 204 && devpThread.ioModeOf2F != IoModeType.PAKOUT_MODE) {
-//                continue;
-//            }
-
-            // 鏌ヨ绔欑偣璇︾粏淇℃伅
-            BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
-            if (staDetl == null) {
-                log.error("鍑哄簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
-                break;
-//                    continue;
-            }
-
-            // 鏌ヨ绔欑偣璇︾粏淇℃伅
-            BasDevp staDetlOther = basDevpService.selectById(crnStn.getStaNoOther());
-            if (staDetlOther == null) {
-                log.error("鍑哄簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNoOther());
-                break;
-//                    continue;
-            }
-            // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵��
-            if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")
-                    && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) {
-                if (staProtocolOther.isAutoing() && !staProtocolOther.isLoading() && staDetlOther.getCanouting() != null && staDetlOther.getCanouting().equals("Y")
-                        && staProtocolOther.getWorkNo() == 0 && staProtocolOther.isOutEnable()){
-                    // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-                    // 鍫嗗灈鏈烘帶鍒惰繃婊�
-                    if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
-//                        continue;
-                        break;
-                    }
-
-                    // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
-                    if (wrkMastMapper.selectWorking(slave.getId()) != null) {
-                        break;
-//                        return;
-                    }
-
-                    // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
-                    CrnCommand crnCommand = new CrnCommand();
-                    crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
-                    crnCommand.setTaskNo(wrkMastCrn.getWrkNo().shortValue()); // 宸ヤ綔鍙�
-                    crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
-                    crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡:  搴撲綅绉昏浆
-                    crnCommand.setSourcePosX(sourceSta.getRow1().shortValue());     // 婧愬簱浣嶆帓
-                    crnCommand.setSourcePosY(sourceSta.getBay1().shortValue());     // 婧愬簱浣嶅垪
-                    crnCommand.setSourcePosZ(sourceSta.getLev1().shortValue());     // 婧愬簱浣嶅眰
-                    crnCommand.setDestinationPosX(crnStn.getRow().shortValue());     // 鐩爣搴撲綅鎺�
-                    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.toJSONString(crnCommand));
-                    } else {
-                        // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
-                        Date now = new Date();
-                        wrkMastCrn.setWrkSts(12L);
-                        wrkMastCrn.setModiTime(now);
-                        if (wrkMastCrnMapper.updateById(wrkMastCrn) == 0) {
-                            log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMastCrn.getWrkNo());
-                        }
-
-                        WrkMast wrkMastOne = wrkMastMapper.selectPakInStep3(wrkMastCrn.getWrkNoOne().intValue());
-                        wrkMastOne.setWrkSts(12L);
-                        wrkMastOne.setCrnStrTime(now);
-                        wrkMastOne.setModiTime(now);
-                        if (wrkMastMapper.updateById(wrkMastOne) == 0) {
-                            log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMastOne.getWrkNo());
-                        }
-
-                        WrkMast wrkMastTwo = wrkMastMapper.selectPakInStep3(wrkMastCrn.getWrkNoTwo().intValue());
-                        wrkMastTwo.setWrkSts(12L);
-                        wrkMastTwo.setCrnStrTime(now);
-                        wrkMastTwo.setModiTime(now);
-                        if (wrkMastMapper.updateById(wrkMastTwo) == 0) {
-                            log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMastTwo.getWrkNo());
-                        }
-                        break;
-                    }
-                }
-            }
-        }
-
-    }
-
-    /**
-     * 鍑哄簱  ===>>  搴撲綅鍒板爢鍨涙満绔�
-     * 2024-06-05  鐓滄槦澶ф枡绠�
-     */
-    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()){
-                if(crnStn1.getStaNo().equals(wrkMast.getSourceStaNo())){
-                    crnStn = crnStn1;
-                    break;
-                }
-            }
-            if(Cools.isEmpty(crnStn)){
-                continue;
-            }
-
-            // 宸ヤ綔妗g姸鎬佸垽鏂�
-            if (wrkMast.getIoType() < 100 || wrkMast.getSourceStaNo() == null) {
-                log.error("鏌ヨ宸ヤ綔妗f暟鎹笉绗﹀悎鏉′欢--鍏ュ嚭绫诲瀷/绔欑偣, 宸ヤ綔鍙�={}锛屾簮搴撲綅={}锛屽叆鍑虹被鍨�={}", wrkMast.getWrkNo(), wrkMast.getSourceLocNo(), wrkMast.getIoType());
-                continue;
-            }
-            //閫�搴撴ā寮忚烦杩�118銆�119鍑哄簱浠诲姟
-            if (wrkMast.getStaNo()==118 || wrkMast.getStaNo()==119){
-                RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign("oneSign");
-                if (Cools.isEmpty(rgvOneSign) || rgvOneSign.getRgvOneSign()==1){
-                    continue;
-                }
-            }
-            // 鑾峰彇婧愬簱浣嶄俊鎭�
-            LocMast sourceSta = locMastService.selectById(wrkMast.getSourceLocNo());
-            if (!sourceSta.getLocSts().equals("R") && !sourceSta.getLocSts().equals("P")) {
-                log.error("鍑哄簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getSourceLocNo(), sourceSta.getLocSts());
-                continue;
-            }
-            // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
-            SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
-            StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
-            if (staProtocol == null) {
-                break;
-//                    continue;
-            } else {
-                staProtocol = staProtocol.clone();
-            }
-
-//            // 鍏ュ嚭搴撴ā寮忓垽鏂�
-//            if (devpThread.ioMode != IoModeType.PAKOUT_MODE) { continue; }
-            if (wrkMast.getStaNo() == 204 && devpThread.ioModeOf2F != IoModeType.PAKOUT_MODE) {
-                continue;
-            }
-
-            // 鏌ヨ绔欑偣璇︾粏淇℃伅
-            BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
-            if (staDetl == null) {
-                log.error("鍑哄簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
-                break;
-//                    continue;
-            }
-            // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵��
-            if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")
-                    && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) {
-                // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-
-
-                //宸ヤ綅
-                if (crnStation == 1){
-                    // 鍫嗗灈鏈烘帶鍒惰繃婊�
-                    if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
-//                        continue;
-                        break;
-                    }
-                    // 鍫嗗灈鏈烘帶鍒惰繃婊�
-                    if (!crnProtocol.getStatusTypeTwo().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNoTwo() != 0) {
-//                        continue;
-                        break;
-                    }
-                }else if(crnStation == 2){
-                    // 鍫嗗灈鏈烘帶鍒惰繃婊�
-                    if (!crnProtocol.getStatusTypeTwo().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNoTwo() != 0) {
-//                        continue;
-                        break;
-                    }
-                }else {
-                    break;
-                }
-
-                if (sourceSta.getBay1().shortValue()==81){
-                    crnStation = 2;
-                }
-
-                // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
-                if (Utils.isDeepLoc(slaveProperties, wrkMast.getSourceLocNo())) {
-                    String shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getSourceLocNo());
-                    LocMast shallowLoc = locMastService.selectById(shallowLocNo);
-                    // O.绌哄簱浣嶃�丵.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴撱�丼.鍏ュ簱棰勭害銆乆.绂佺敤 鐩存帴鎼紒
-                    if (shallowLoc.getLocSts().equals("P") || shallowLoc.getLocSts().equals("R")) {
-                        WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
-                        if (null == waitWrkMast) {
-                            log.error("{}搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒", shallowLocNo);
-                        } else {
-                            if (waitWrkMast.getWrkSts() == 11) {
-                                waitWrkMast.setIoPri(15D);
-                                waitWrkMast.setModiTime(new Date());
-                                if (wrkMastMapper.updateById(waitWrkMast) == 0) {
-                                    log.error("璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
-                                }
-                                continue;
-                            } else {
-
-                            }
-                        }
-                    } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) {
-//                            WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
-                        //2022-08-16 modify,涓嶆牴鎹畊pdmk鏍囪绉诲簱浠诲姟(瀹规槗琚彇娑堝鑷村牭濉�)锛屾煡璇㈠伐浣滄。鏄惁瀛樺湪浠诲姟
-                        WrkMast waitWrkMast = wrkMastMapper.selectByLocNo1(shallowLocNo);
-                        // 姝ゆ爣璁伴伩鍏嶅娆℃墽琛岀Щ搴撲换鍔�
-//                            if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())
-//                                || Cools.isEmpty(waitWrkMast)) {
-                        if (Cools.isEmpty(waitWrkMast)) {
-                            wrkMast.setUpdMk("Y");
-                            wrkMastMapper.updateById(wrkMast);
-                            // 鐢熸垚宸ヤ綔妗�,灏嗘祬搴撲綅绉昏浆鍒版柊鐨勫簱浣嶄腑
-                            moveLocForDeepLoc(slave, shallowLoc);
-                        }
-                        log.error("{}浠诲姟鍑哄簱澶辫触锛屾祬搴撲綅鍫靛锛佹祬搴撲綅鍙�:{}", wrkMast.getWrkNo(), shallowLocNo);
-                        continue;
-                    } else if (shallowLoc.getLocSts().equals("Q") || shallowLoc.getLocSts().equals("S")) {
-                        WrkMast waitWrkMast = wrkMastMapper.selectByLocNo1(shallowLocNo);
-                        if (null != waitWrkMast && waitWrkMast.getWrkSts() == 4) {
-                            continue;
-                        }
-                    }
-                }
-
-                // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
-                if (wrkMastMapper.selectWorking(slave.getId()) != null) {
-                    break;
-//                        return;
-                }
-
-                // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
-                if (wrkMastSplitTwinMapper.selectCount(new EntityWrapper<WrkMastSplitTwin>().eq("wrk_no", wrkMast.getWrkNo().longValue())) != 0) {
-                    break;
-//                        return;
-                }
-
-                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;
-                    }
-                }
-//                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;
-//                    }
-//                }
-            }
-        }
-
-    }
-
-    /**
-     * 搴撲綅绉昏浆
-     */
-    public synchronized void locToLoc(CrnSlave slave, CrnProtocol crnProtocol) {
-        // 鑾峰彇宸ヤ綔妗d俊鎭�
-        WrkMast wrkMast = wrkMastMapper.selectLocMove(slave.getId());
-        if (null == wrkMast) {
-            return;
-        }
-        // 鑾峰彇婧愬簱浣嶄俊鎭�
-        LocMast sourceSta = locMastService.selectById(wrkMast.getSourceLocNo());
-        if (null == sourceSta) {
-            log.error("宸ヤ綔妗e簱浣嶇Щ杞け璐ワ紝鍘熷洜锛氭绱㈡簮搴撲綅澶辫触锛佸伐浣滃彿={}锛屾簮搴撲綅={}", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
-            return;
-        }
-        // 婧愬簱浣�  搴撲綅鐘舵�佸垽鏂�
-        if (!sourceSta.getLocSts().equals("R") && !sourceSta.getLocSts().equals("S")) {
-            return;
-        }
-        // 鑾峰彇鐩爣搴撲綅淇℃伅
-        LocMast sta = locMastService.selectById(wrkMast.getLocNo());
-        if (null == sta) {
-            log.error("宸ヤ綔妗e簱浣嶇Щ杞け璐ワ紝鍘熷洜锛氭绱㈢洰鏍囧簱浣嶅け璐ワ紒宸ヤ綔鍙�={}锛屾簮搴撲綅={}", wrkMast.getWrkNo(), wrkMast.getLocNo());
-            return;
-        }
-        // 鑾峰彇鍫嗗灈鏈轰俊鎭� 骞� 鍒ゆ柇鏄惁鍙叆鍑�
-        BasCrnp basCrnp = basCrnpService.selectById(slave.getId());
-        if (!basCrnp.getInEnable().equals("Y") && !basCrnp.getOutEnable().equals("Y")) {
-            return;
-        }
-
-        // 鍫嗗灈鏈烘帶鍒惰繃婊�
-        if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
-            return;
-        }
-
-        // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
-        if (wrkMastMapper.selectWorking(slave.getId()) != null) {
-            return;
-        }
-
-        // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-        CrnCommand crnCommand = new CrnCommand();
-        crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
-        crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
-        crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
-        crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡:  搴撲綅绉昏浆
-        crnCommand.setSourcePosX(sourceSta.getRow1().shortValue());     // 婧愬簱浣嶆帓
-        crnCommand.setSourcePosY(sourceSta.getBay1().shortValue());     // 婧愬簱浣嶅垪
-        crnCommand.setSourcePosZ(sourceSta.getLev1().shortValue());     // 婧愬簱浣嶅眰
-        crnCommand.setDestinationPosX(sta.getRow1().shortValue());     // 鐩爣搴撲綅鎺�
-        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.toJSONString(crnCommand));
-        } else {
-            // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
-            Date now = new Date();
-            wrkMast.setWrkSts(12L);
-            wrkMast.setCrnStrTime(now);
-            wrkMast.setModiTime(now);
-            if (wrkMastMapper.updateById(wrkMast) == 0) {
-                log.error("銆愬簱浣嶇Щ杞�� 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
-            }
-        }
-
-    }
-
-    /**
-     * 鎵ц瀵瑰伐浣滄。鐨勫畬鎴愭搷浣�
-     */
-
-    public synchronized void storeFinished() {
-        for (CrnSlave crn : slaveProperties.getCrn()) {
-            switch (crn.getId()){
-                case 1:
-                case 2:
-                    storeFinishedExecuteOne(crn);
-                    continue;
-                case 3:
-                case 4:
-                case 5:
-                    storeFinishedExecuteTwo(crn);
-                    continue;
-                case 6:
-                case 7:
-                    storeFinishedExecuteThree(crn);
-                    continue;
-                default:
-                    continue;
-            }
-        }
-    }
-
-    public synchronized boolean storeFinishedExecuteOne(CrnSlave crn) {
-        try{
-            // 鑾峰彇鍫嗗灈鏈轰俊鎭�
-            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
-            CrnProtocol crnProtocol = crnThread.getCrnProtocol();
-            if (crnProtocol == null) {
-                return false;
-            }
-            if (crnProtocol.modeType != CrnModeType.AUTO){
-                return false;
-            }
-            //  鐘舵�侊細绛夊緟纭 骞朵笖  浠诲姟瀹屾垚浣� = 1
-            if (crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) {
-                if (crnProtocol.getTaskNo() == 32222) {
-                    // 鍫嗗灈鏈哄浣�
-                    crnThread.setResetFlag(true);
-                } else {
-                    // 鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。
-                    WrkMastCrn wrkMastCrn = wrkMastCrnMapper.selectWrkNoOneAndTwo(crnProtocol.getTaskNo().intValue());
-                    if (wrkMastCrn == null) {
-                        log.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo());
-                        return false;
-                    }
-                    // 鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。
-                    WrkMast wrkMast = wrkMastMapper.selectPakInStep3(crnProtocol.getTaskNo().intValue());
-                    if (wrkMast == null) {
-                        log.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo());
-                        return false;
-                    }
-
-                    // 鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。
-                    WrkMast wrkMastOther = wrkMastMapper.selectPakInStep3(wrkMastCrn.getWrkNoTwo().intValue());
-                    if (wrkMastOther == null) {
-                        log.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo());
-                        return false;
-                    }
-                    // 鍏ュ簱 + 搴撲綅杞Щ  ==> 4.鍏ュ簱瀹屾垚
-                    if (wrkMastCrn.getWrkSts() == 3 || (wrkMastCrn.getWrkSts() == 12 && wrkMastCrn.getIoType() == 11)) {
-                        wrkMastCrn.setWrkSts(4L);
-                    } else {
-                        return false;
-                    }
-                    Date now = new Date();
-                    wrkMastCrn.setModiTime(now);
-
-                    wrkMast.setCrnEndTime(now);
-                    wrkMast.setWrkSts(4L);
-                    wrkMast.setModiTime(now);
-
-                    wrkMastOther.setCrnEndTime(now);
-                    wrkMastOther.setWrkSts(4L);
-                    wrkMastOther.setModiTime(now);
-                    // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
-                    if (wrkMastCrnMapper.updateById(wrkMastCrn) > 0 && wrkMastMapper.updateById(wrkMast) > 0 && wrkMastMapper.updateById(wrkMastOther) > 0 ) {
-                        // 鍫嗗灈鏈哄浣�
-                        crnThread.setResetFlag(true);
-                        return true;
-                    }
-                }
-            }
-        }catch (Exception e){
-            log.error("鍫嗗灈鏈哄伐浣嶄竴瀹屾垚绛夊緟纭寮傚父,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={}",crn.getId(),e.getMessage(),1);
-        }
-        return false;
-    }
-
-    public synchronized boolean storeFinishedExecuteTwo(CrnSlave crn) {
-        try{
-            // 鑾峰彇鍫嗗灈鏈轰俊鎭�
-            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
-            CrnProtocol crnProtocol = crnThread.getCrnProtocol();
-            if (crnProtocol == null) {
-                return false;
-            }
-            if (crnProtocol.modeType != CrnModeType.AUTO){
-                return false;
-            }
-            //  鐘舵�侊細绛夊緟纭 骞朵笖  浠诲姟瀹屾垚浣� = 1
-            if (crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) {
-                if (crnProtocol.getTaskNo() == 32222) {
-                    // 鍫嗗灈鏈哄浣�
-                    crnThread.setResetFlag(true);
-                    return true;
-                } else {
-                    // 鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。
-                    WrkMast wrkMast = wrkMastMapper.selectPakInStep3(crnProtocol.getTaskNo().intValue());
-                    if (wrkMast == null) {
-                        log.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo());
-                        return false;
-                    }
-                    // 鍏ュ簱 + 搴撲綅杞Щ  ==> 4.鍏ュ簱瀹屾垚
-                    if (wrkMast.getWrkSts() == 3 || (wrkMast.getWrkSts() == 12 && wrkMast.getIoType() == 11)) {
-                        wrkMast.setWrkSts(4L);
-                    } else {
-                        return false;
-                    }
-                    Date now = new Date();
-                    wrkMast.setCrnEndTime(now);
-                    wrkMast.setModiTime(now);
-                    // 鍫嗗灈鏈哄浣�
-                    List<WrkMastSplitTwin> wrkMastSplitTwinList = wrkMastSplitTwinMapper.getWrkMastSplitTwin(crn.getId(), 1, null, 2, 3);
-                    if (wrkMastSplitTwinList.size()!=1){
-                        log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",crn.getId(),"涓嶅瓨鍦ㄦ垨鑰呭瓨鍦ㄥ绗斿彲鎵ц浣滀笟锛岃鍒犻櫎鏃犳晥浣滀笟锛侊紒锛�",1,2,3);
-                    }
-                    for (WrkMastSplitTwin wrkMastSplitTwin:wrkMastSplitTwinList){
-                        if (wrkMastSplitTwin.getWrkNo()!=wrkMast.getWrkNo().longValue()){
-                            log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={},宸ヤ綔浠诲姟鍙�={},鎵ц浠诲姟鍙�={}",crn.getId(),"宸ヤ綔浠诲姟涓庢墽琛屼换鍔′笉鍖归厤",1,2,3,wrkMast.getWrkNo(),wrkMastSplitTwin.getWrkNo());
-                            return false;
-                        }
-                        wrkMastSplitTwin.setWrkSts(wrkMastSplitTwin.getWrkSts()+1);
-                        wrkMastSplitTwin.setUpdateTime(now);
-                        // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
-                        if (wrkMastMapper.updateById(wrkMast) > 0) {
-                            // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
-                            if (wrkMastSplitTwinService.updateById(wrkMastSplitTwin)) {
-                                // 鍫嗗灈鏈哄浣�
-                                crnThread.setResetFlag(true);
-                                return true;
-                            }else {
-                                log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",crn.getId(),"淇敼鎵ц妗f澶辫触",1,2,3);
-                            }
-                        }else {
-                            log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",crn.getId(),"淇敼宸ヤ綔妗f澶辫触锛�",1,2,3);
-                        }
-                    }
-                    return false;
-                }
-            }else if (crnProtocol.statusType == CrnStatusType.SEPARATE_WAITING && crnProtocol.getTaskNo() != 0  && crnProtocol.getLoaded()==1){
-                if (crnProtocol.getTaskNo() == 32222) {
-                    // 鍫嗗灈鏈哄浣�
-                    crnThread.setResetFlag(true);
-                    return true;
-                } else {
-                    List<WrkMastSplitTwin> wrkMastSplitTwinList = wrkMastSplitTwinMapper.getWrkMastSplitTwin(crn.getId(), 1, null, 1, 1);
-                    if (wrkMastSplitTwinList.size()!=1){
-                        log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",crn.getId(),"涓嶅瓨鍦ㄦ垨鑰呭瓨鍦ㄥ绗斿彲鎵ц浣滀笟锛岃鍒犻櫎鏃犳晥浣滀笟锛侊紒锛�",1,1,1);
-                    }
-                    for (WrkMastSplitTwin wrkMastSplitTwin:wrkMastSplitTwinList){
-                        Date now = new Date();
-                        wrkMastSplitTwin.setWrkSts(wrkMastSplitTwin.getWrkSts()+1);
-                        wrkMastSplitTwin.setUpdateTime(now);
-                        // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
-                        if (wrkMastSplitTwinService.updateById(wrkMastSplitTwin)) {
-                            // 鍫嗗灈鏈哄浣�
-                            crnThread.setResetFlag(true);
-                            return true;
-                        }else {
-                            log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",crn.getId(),"淇敼鎵ц妗f澶辫触",1,2,3);
-                        }
-                    }
-                }
-            }
-        }catch (Exception e){
-            log.error("鍫嗗灈鏈哄伐浣嶄竴瀹屾垚绛夊緟纭寮傚父,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={}",crn.getId(),e.getMessage(),1);
-        }
-        return false;
-    }
-
-    public synchronized boolean storeFinishedExecuteThree(CrnSlave crn) {
-        try{
-            // 鑾峰彇鍫嗗灈鏈轰俊鎭�
-            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
-            CrnProtocol crnProtocol = crnThread.getCrnProtocol();
-            if (crnProtocol == null) {
-                return false;
-            }
-            if (crnProtocol.modeType != CrnModeType.AUTO){
-                return false;
-            }
-            //  鐘舵�侊細绛夊緟纭 骞朵笖  浠诲姟瀹屾垚浣� = 1
-            if (crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) {
-                if (crnProtocol.getTaskNo() == 32222) {
-                    // 鍫嗗灈鏈哄浣�
-                    crnThread.setResetFlag(true);
-                } else {
-                    // 鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。
-                    WrkMast wrkMast = wrkMastMapper.selectPakInStep3(crnProtocol.getTaskNo().intValue());
-                    if (wrkMast == null) {
-                        log.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo());
-                        return false;
-                    }
-                    // 鍏ュ簱 + 搴撲綅杞Щ  ==> 4.鍏ュ簱瀹屾垚
-                    if (wrkMast.getWrkSts() == 3 || (wrkMast.getWrkSts() == 12 && wrkMast.getIoType() == 11)) {
-                        wrkMast.setWrkSts(4L);
-                    } else {
-                        return false;
-                    }
-                    Date now = new Date();
-                    wrkMast.setCrnEndTime(now);
-                    wrkMast.setModiTime(now);
-                    // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
-                    if (wrkMastMapper.updateById(wrkMast) > 0) {
-                        // 鍫嗗灈鏈哄浣�
-                        crnThread.setResetFlag(true);
-                        return true;
-                    }
-                }
-            }
-        }catch (Exception e){
-            log.error("鍫嗗灈鏈哄伐浣嶄竴瀹屾垚绛夊緟纭寮傚父,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={}",crn.getId(),e.getMessage(),1);
-        }
-        return false;
-    }
-
-    /**
-     * 鎵ц瀵瑰伐浣滄。鐨勫畬鎴愭搷浣�
-     */
-    public synchronized void storeFinishedTwo() {
-        for (CrnSlave crn : slaveProperties.getCrn()) {
-            switch (crn.getId()){
-                case 3:
-                case 4:
-                case 5:
-                    storeFinishedTwoExecute(crn);
-                    continue;
-                default:
-                    continue;
-            }
-        }
-    }
-
-    public synchronized boolean storeFinishedTwoExecute(CrnSlave crn) {
-        try{
-            // 鑾峰彇鍫嗗灈鏈轰俊鎭�
-            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
-            CrnProtocol crnProtocol = crnThread.getCrnProtocol();
-            if (crnProtocol == null) {
-                return false;
-            }
-            if (crnProtocol.modeType != CrnModeType.AUTO){
-                return false;
-            }
-            //  鐘舵�侊細绛夊緟纭 骞朵笖  浠诲姟瀹屾垚浣� = 1
-            if (crnProtocol.statusTypeTwo == CrnStatusType.WAITING && crnProtocol.getTaskNoTwo() != 0) {
-                if (crnProtocol.getTaskNoTwo() == 32222) {
-                    // 鍫嗗灈鏈哄浣�
-                    crnThread.setResetFlagTwo(true);
-                } else {
-                    // 鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。
-                    WrkMast wrkMast = wrkMastMapper.selectPakInStep3(crnProtocol.getTaskNoTwo().intValue());
-                    if (wrkMast == null) {
-                        log.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNoTwo());
-                        return false;
-                    }
-                    // 鍏ュ簱 + 搴撲綅杞Щ  ==> 4.鍏ュ簱瀹屾垚
-                    if (wrkMast.getWrkSts() == 3 || (wrkMast.getWrkSts() == 12 && wrkMast.getIoType() == 11)) {
-                        wrkMast.setWrkSts(4L);
-                    } else {
-                        return false;
-                    }
-                    Date now = new Date();
-                    wrkMast.setCrnEndTime(now);
-                    wrkMast.setModiTime(now);
-                    // 鍫嗗灈鏈哄浣�
-                    List<WrkMastSplitTwin> wrkMastSplitTwinList = wrkMastSplitTwinMapper.getWrkMastSplitTwin(crn.getId(), 2, null, 2, 3);
-                    if (wrkMastSplitTwinList.size()!=1){
-                        log.error("鍫嗗灈鏈哄彇璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",crn.getId(),"涓嶅瓨鍦ㄦ垨鑰呭瓨鍦ㄥ绗斿彲鎵ц浣滀笟锛岃鍒犻櫎鏃犳晥浣滀笟锛侊紒锛�",2,2,3);
-                    }
-                    for (WrkMastSplitTwin wrkMastSplitTwin:wrkMastSplitTwinList){
-                        if (wrkMastSplitTwin.getWrkNo()!=wrkMast.getWrkNo().longValue()){
-                            log.error("鍫嗗灈鏈哄彇璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={},宸ヤ綔浠诲姟鍙�={},鎵ц浠诲姟鍙�={}",crn.getId(),"宸ヤ綔浠诲姟涓庢墽琛屼换鍔′笉鍖归厤",1,2,3,wrkMast.getWrkNo(),wrkMastSplitTwin.getWrkNo());
-                            return false;
-                        }
-                        wrkMastSplitTwin.setWrkSts(wrkMastSplitTwin.getWrkSts()+1);
-                        wrkMastSplitTwin.setUpdateTime(now);
-                        // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
-                        if (wrkMastMapper.updateById(wrkMast) > 0) {
-                            // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
-                            if (wrkMastSplitTwinService.updateById(wrkMastSplitTwin)) {
-                                // 鍫嗗灈鏈哄浣�
-                                crnThread.setResetFlagTwo(true);
-                                return true;
-                            }else {
-                                log.error("鍫嗗灈鏈哄彇璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",crn.getId(),"淇敼鎵ц妗f澶辫触",2,2,3);
-                            }
-                        }else {
-                            log.error("鍫嗗灈鏈哄彇璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",crn.getId(),"淇敼宸ヤ綔妗f澶辫触锛�",2,2,3);
-                        }
-                    }
-                    return false;
-                }
-            }else if (crnProtocol.statusTypeTwo == CrnStatusType.SEPARATE_WAITING && crnProtocol.getTaskNoTwo() != 0  && crnProtocol.getLoadedTwo()==1){
-                if (crnProtocol.getTaskNoTwo() == 32222) {
-                    // 鍫嗗灈鏈哄浣�
-                    crnThread.setResetFlagTwo(true);
-                } else {
-                    List<WrkMastSplitTwin> wrkMastSplitTwinList = wrkMastSplitTwinMapper.getWrkMastSplitTwin(crn.getId(), 2, null, 1, 1);
-                    if (wrkMastSplitTwinList.size()!=1){
-                        log.error("鍫嗗灈鏈哄彇璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",crn.getId(),"涓嶅瓨鍦ㄦ垨鑰呭瓨鍦ㄥ绗斿彲鎵ц浣滀笟锛岃鍒犻櫎鏃犳晥浣滀笟锛侊紒锛�",2,1,1);
-                    }
-                    for (WrkMastSplitTwin wrkMastSplitTwin:wrkMastSplitTwinList){
-                        Date now = new Date();
-                        wrkMastSplitTwin.setWrkSts(wrkMastSplitTwin.getWrkSts()+1);
-                        wrkMastSplitTwin.setUpdateTime(now);
-                        // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
-                        if (wrkMastSplitTwinService.updateById(wrkMastSplitTwin)) {
-                            // 鍫嗗灈鏈哄浣�
-                            crnThread.setResetFlagTwo(true);
-                            return true;
-                        }else {
-                            log.error("鍫嗗灈鏈哄彇璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",crn.getId(),"淇敼鎵ц妗f澶辫触",2,2,3);
-                        }
-                    }
-                }
+            log.info("鏇存柊灏忚溅鎺掑簭淇℃伅锛氬師濮嬪皬杞﹀彿rgvNo={},灏忚溅閲嶆柊鎺掑簭淇℃伅={},灏忚溅鍘熷鎺掑簭淇℃伅={}",rgvNo,Arrays.toString(newList),Arrays.toString(oldList));
+            for (BasCircularShuttle basCircularShuttle : basCircularShuttleList){
+                int[] rgv = rgvList[basCircularShuttle.getRgvNo() - 1];
+                basCircularShuttle.setRgvId(rgv[1]);
+                basCircularShuttleService.updateById(basCircularShuttle);
             }
-        }catch (Exception e){
-            log.error("鍫嗗灈鏈哄伐浣嶄簩瀹屾垚绛夊緟纭寮傚父,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={}",crn.getId(),e.getMessage(),2);
-        }
-        return false;
-    }
 
-    /**
-     * 寮傚父淇℃伅璁板綍
-     */
-    public synchronized void recErr() {
-        try {
-            this.recCrnErr();
-            this.recRgvErr();
         } catch (Exception e) {
-            log.error("recErr fail", e);
+            log.error("鑷姩鏇存柊灏忚溅鎺掑簭淇℃伅澶辫触锛屽紓甯革細"+e);
         }
     }
-
     /**
-     * RGV寮傚父淇℃伅璁板綍
+     * 绔欑偣浠诲姟妫�娴�  鏇存柊灏忚溅浣嶇疆淇℃伅
      */
-    public synchronized void recRgvErr() {
-        Date now = new Date();
-        for (RgvSlave rgv : slaveProperties.getRgv()) {
-            // 鑾峰彇RGV淇℃伅
-            RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
+    public synchronized void updateStePosition() {
+        try{
+            boolean sign = false;
+            Integer rgvNo = 0;
+            List<BasCircularShuttle> basCircularShuttleList = basCircularShuttleService.selectList(new EntityWrapper<BasCircularShuttle>().orderBy("rgv_id", true));
+            for (BasCircularShuttle basCircularShuttle : basCircularShuttleList){
+                RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, basCircularShuttle.getRgvNo());
+                RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+                if (rgvProtocol == null) {
+                    sign = true;
+                } else if (rgvProtocol.modeType != RgvModeType.AUTO || (rgvProtocol.getStatusType() != RgvStatusType.IDLE && rgvProtocol.getStatusType() != RgvStatusType.ROAM) ){
+                    sign = true;
+                } else {
+                    rgvNo = basCircularShuttle.getRgvNo();
+                    break;
+                }
+            }
+            if (sign && rgvNo!=0){
+                int[][] ints = new int[basCircularShuttleList.size()][2];
+                for (BasCircularShuttle basCircularShuttle : basCircularShuttleList){
+                    ints[basCircularShuttle.getRgvNo()-1] = new int[]{basCircularShuttle.getRgvNo(),basCircularShuttle.getRgvId()};
+                }
+                String[] oldList = new String[ints.length];
+                for (int[] rgv : ints){
+                    oldList[rgv[0]-1] = Arrays.toString(rgv);
+                }
+                int[][] rgvList = SortTheExecutionOfTheCarUtil.ReorderSteId(ints, rgvNo);
+                String[] newList = new String[rgvList.length];
+                for (int[] rgv : rgvList){
+                    newList[rgv[0]-1] = Arrays.toString(rgv);
+                }
+
+                log.info("鏇存柊灏忚溅鎺掑簭淇℃伅锛氬師濮嬪皬杞﹀彿rgvNo={},灏忚溅閲嶆柊鎺掑簭淇℃伅={},灏忚溅鍘熷鎺掑簭淇℃伅={}",rgvNo,Arrays.toString(newList),Arrays.toString(oldList));
+                for (BasCircularShuttle basCircularShuttle : basCircularShuttleList){
+                    int[] rgv = rgvList[basCircularShuttle.getRgvNo() - 1];
+                    basCircularShuttle.setRgvId(rgv[1]);
+                    basCircularShuttleService.updateById(basCircularShuttle);
+                }
+            }
+
+        } catch (Exception e) {
+            log.error("鑷姩鏇存柊灏忚溅鎺掑簭淇℃伅澶辫触锛屽紓甯革細"+e);
+        }
+    }
+    /**
+     * 绔欑偣浠诲姟妫�娴�  涓嬪彂灏忚溅鍙栨斁浠诲姟
+     */
+    public synchronized void DevpTaskNoRun() {
+        try{
+            List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", 1L).orderBy("modi_time",false));
+            if (wrkMasts.isEmpty()){
+                return;
+            }
+            long differenceInSeconds = TimeCalculatorUtils.differenceInSeconds(wrkMasts.get(0).getModiTime(), new Date());
+            if (differenceInSeconds<=5){
+                return;
+            }
+
+            BasCircularShuttle basCircularShuttle = basCircularShuttleService.selectOne(new EntityWrapper<BasCircularShuttle>().eq("rgv_id", 1));
+            RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, basCircularShuttle.getRgvNo());
             RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
             if (rgvProtocol == null) {
-                continue;
-            }
-            if (true) {
-                // 鏈変换鍔�
-                if (rgvProtocol.getTaskNo1() != 0 || rgvProtocol.getTaskNo2() != 0) {
-                    Integer taskNo = rgvProtocol.getTaskNo1() > 0 ? rgvProtocol.getTaskNo1().intValue() : rgvProtocol.getTaskNo2().intValue();
-                    BasRgvErrLog latest = basRgvErrLogService.findLatestByTaskNo(rgv.getId(), taskNo);
-                    // 鏈夊紓甯�
-                    if (latest == null) {
-                        if (rgvProtocol.getAlarm() != null && rgvProtocol.getAlarm() > 0) {
-                            WrkMast wrkMast = wrkMastMapper.selectById(taskNo);
-                            if (wrkMast == null) {
-                                continue;
-                            }
-                            BasRgvErr rgvErr = basRgvErrMapper.selectById(rgvProtocol.getAlarm());
-                            String errName = rgvErr == null ? String.valueOf(rgvProtocol.getAlarm()) : rgvErr.getErrName();
-                            BasRgvErrLog basRgvErrLog = new BasRgvErrLog(
-                                    null,    // 缂栧彿
-                                    wrkMast.getWrkNo(),    // 宸ヤ綔鍙�
-                                    now,    // 鍙戠敓鏃堕棿
-                                    null,    // 缁撴潫鏃堕棿
-                                    wrkMast.getWrkSts(),    // 宸ヤ綔鐘舵��
-                                    wrkMast.getIoType(),    // 鍏ュ嚭搴撶被鍨�
-                                    rgv.getId(),    // 鍫嗗灈鏈�
-                                    null,    // plc
-                                    wrkMast.getLocNo(),    // 鐩爣搴撲綅
-                                    wrkMast.getStaNo(),    // 鐩爣绔�
-                                    wrkMast.getSourceStaNo(),    // 婧愮珯
-                                    wrkMast.getSourceLocNo(),    // 婧愬簱浣�
-                                    wrkMast.getBarcode(),    // 鏉$爜
-                                    (int) rgvProtocol.getAlarm(),    // 寮傚父鐮�
-                                    errName,    // 寮傚父
-                                    1,    // 寮傚父鎯呭喌
-                                    now,    // 娣诲姞鏃堕棿
-                                    null,    // 娣诲姞浜哄憳
-                                    now,    // 淇敼鏃堕棿
-                                    null,    // 淇敼浜哄憳
-                                    "浠诲姟涓紓甯�"    // 澶囨敞
-                            );
-
-                            if (!basRgvErrLogService.insert(basRgvErrLog)) {
-                                log.error("RGV寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", rgv.getId(), errName);
-                            }
-                        }
-                    } else {
-                        // 寮傚父淇
-                        if (rgvProtocol.getAlarm() == null || rgvProtocol.getAlarm() == 0) {
-                            latest.setEndTime(now);
-                            latest.setUpdateTime(now);
-                            latest.setStatus(2);
-                            if (!basRgvErrLogService.updateById(latest)) {
-                                log.error("鍫嗗灈鏈簆lc寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", rgv.getId(), latest.getId());
-                            }
-                        }
-                    }
-                    // 鏃犱换鍔�
-                } else {
-                    BasRgvErrLog latest = basRgvErrLogService.findLatest(rgv.getId());
-                    // 鏈夊紓甯�
-                    if (rgvProtocol.getAlarm() != null && rgvProtocol.getAlarm() > 0) {
-                        // 璁板綍鏂板紓甯�
-                        if (latest == null || (latest.getErrCode() != rgvProtocol.getAlarm().intValue())) {
-                            BasRgvErr rgvErr = basRgvErrMapper.selectById(rgvProtocol.getAlarm());
-                            String errName = rgvErr == null ? String.valueOf(rgvProtocol.getAlarm()) : rgvErr.getErrName();
-                            BasRgvErrLog basRgvErrLog = new BasRgvErrLog(
-                                    null,    // 缂栧彿
-                                    null,    // 宸ヤ綔鍙�
-                                    now,    // 鍙戠敓鏃堕棿
-                                    null,    // 缁撴潫鏃堕棿
-                                    null,    // 宸ヤ綔鐘舵��
-                                    null,    // 鍏ュ嚭搴撶被鍨�
-                                    rgv.getId(),    // 鍫嗗灈鏈�
-                                    null,    // plc
-                                    null,    // 鐩爣搴撲綅
-                                    null,    // 鐩爣绔�
-                                    null,    // 婧愮珯
-                                    null,    // 婧愬簱浣�
-                                    null,    // 鏉$爜
-                                    (int) rgvProtocol.getAlarm(),    // 寮傚父鐮�
-                                    errName,    // 寮傚父
-                                    1,    // 寮傚父鎯呭喌
-                                    now,    // 娣诲姞鏃堕棿
-                                    null,    // 娣诲姞浜哄憳
-                                    now,    // 淇敼鏃堕棿
-                                    null,    // 淇敼浜哄憳
-                                    "鏃犱换鍔″紓甯�"    // 澶囨敞
-                            );
-
-                            if (!basRgvErrLogService.insert(basRgvErrLog)) {
-                                log.error("RGV寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", rgv.getId(), errName);
-                            }
-                        }
-                        // 鏃犲紓甯�
-                    } else {
-                        // 寮傚父淇
-                        if (latest != null && latest.getStatus() == 1) {
-                            latest.setEndTime(now);
-                            latest.setUpdateTime(now);
-                            latest.setStatus(2);
-                            if (!basRgvErrLogService.updateById(latest)) {
-                                log.error("RGV寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", rgv.getId(), latest.getId());
-                            }
-                        }
-                    }
-                }
-            }
-
-        }
-    }
-
-    /**
-     * 鍫嗗灈鏈哄紓甯镐俊鎭褰�
-     */
-    public synchronized void recCrnErr() {
-        Date now = new Date();
-        for (CrnSlave crn : slaveProperties.getCrn()) {
-            // 鑾峰彇鍫嗗灈鏈轰俊鎭�
-            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
-            CrnProtocol crnProtocol = crnThread.getCrnProtocol();
-            if (crnProtocol == null) {
-                continue;
-            }
-            if (true) {
-//            if (crnProtocol.getModeType() != CrnModeType.STOP) {
-                // 鏈変换鍔�
-                if (crnProtocol.getTaskNo() != 0) {
-                    BasErrLog latest = basErrLogService.findLatestByTaskNo(crn.getId(), crnProtocol.getTaskNo().intValue());
-                    // 鏈夊紓甯�
-                    if (latest == null) {
-                        if (crnProtocol.getAlarm() != null && crnProtocol.getAlarm() > 0) {
-                            WrkMast wrkMast = wrkMastMapper.selectById(crnProtocol.getTaskNo());
-                            if (wrkMast == null) {
-                                continue;
-                            }
-                            BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm());
-                            String errName = crnError == null ? String.valueOf(crnProtocol.getAlarm()) : crnError.getErrName();
-                            BasErrLog basErrLog = new BasErrLog(
-                                    null,    // 缂栧彿
-                                    wrkMast.getWrkNo(),    // 宸ヤ綔鍙�
-                                    now,    // 鍙戠敓鏃堕棿
-                                    null,    // 缁撴潫鏃堕棿
-                                    wrkMast.getWrkSts(),    // 宸ヤ綔鐘舵��
-                                    wrkMast.getIoType(),    // 鍏ュ嚭搴撶被鍨�
-                                    crn.getId(),    // 鍫嗗灈鏈�
-                                    null,    // plc
-                                    wrkMast.getLocNo(),    // 鐩爣搴撲綅
-                                    wrkMast.getStaNo(),    // 鐩爣绔�
-                                    wrkMast.getSourceStaNo(),    // 婧愮珯
-                                    wrkMast.getSourceLocNo(),    // 婧愬簱浣�
-                                    wrkMast.getBarcode(),    // 鏉$爜
-                                    (int) crnProtocol.getAlarm(),    // 寮傚父鐮�
-                                    errName,    // 寮傚父
-                                    1,    // 寮傚父鎯呭喌
-                                    now,    // 娣诲姞鏃堕棿
-                                    null,    // 娣诲姞浜哄憳
-                                    now,    // 淇敼鏃堕棿
-                                    null,    // 淇敼浜哄憳
-                                    "浠诲姟涓紓甯�"    // 澶囨敞
-                            );
-                            if (!basErrLogService.insert(basErrLog)) {
-                                log.error("鍫嗗灈鏈簆lc寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", crn.getId(), errName);
-                            }
-                        }
-                    } else {
-                        // 寮傚父淇
-                        if (crnProtocol.getAlarm() == null || crnProtocol.getAlarm() == 0) {
-                            latest.setEndTime(now);
-                            latest.setUpdateTime(now);
-                            latest.setStatus(2);
-                            if (!basErrLogService.updateById(latest)) {
-                                log.error("鍫嗗灈鏈簆lc寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", crn.getId(), latest.getId());
-                            }
-                        }
-                    }
-                    // 鏃犱换鍔�
-                } else {
-                    BasErrLog latest = basErrLogService.findLatest(crn.getId());
-                    // 鏈夊紓甯�
-                    if (crnProtocol.getAlarm() != null && crnProtocol.getAlarm() > 0) {
-                        // 璁板綍鏂板紓甯�
-                        if (latest == null || (latest.getErrCode() != crnProtocol.getAlarm().intValue())) {
-                            BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm());
-                            String errName = crnError == null ? String.valueOf(crnProtocol.getAlarm()) : crnError.getErrName();
-                            BasErrLog basErrLog = new BasErrLog(
-                                    null,    // 缂栧彿
-                                    null,    // 宸ヤ綔鍙�
-                                    now,    // 鍙戠敓鏃堕棿
-                                    null,    // 缁撴潫鏃堕棿
-                                    null,    // 宸ヤ綔鐘舵��
-                                    null,    // 鍏ュ嚭搴撶被鍨�
-                                    crn.getId(),    // 鍫嗗灈鏈�
-                                    null,    // plc
-                                    null,    // 鐩爣搴撲綅
-                                    null,    // 鐩爣绔�
-                                    null,    // 婧愮珯
-                                    null,    // 婧愬簱浣�
-                                    null,    // 鏉$爜
-                                    (int) crnProtocol.getAlarm(),    // 寮傚父鐮�
-                                    errName,    // 寮傚父
-                                    1,    // 寮傚父鎯呭喌
-                                    now,    // 娣诲姞鏃堕棿
-                                    null,    // 娣诲姞浜哄憳
-                                    now,    // 淇敼鏃堕棿
-                                    null,    // 淇敼浜哄憳
-                                    "鏃犱换鍔″紓甯�"    // 澶囨敞
-                            );
-                            if (!basErrLogService.insert(basErrLog)) {
-                                log.error("鍫嗗灈鏈簆lc寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", crn.getId(), errName);
-                            }
-                        }
-                        // 鏃犲紓甯�
-                    } else {
-                        // 寮傚父淇
-                        if (latest != null && latest.getStatus() == 1) {
-                            latest.setEndTime(now);
-                            latest.setUpdateTime(now);
-                            latest.setStatus(2);
-                            if (!basErrLogService.updateById(latest)) {
-                                log.error("鍫嗗灈鏈簆lc寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", crn.getId(), latest.getId());
-                            }
-                        }
-                    }
-                }
-            }
-
-        }
-    }
-
-    // -------------------------------------------------------------------------------
-
-    /**
-     * 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐�
-     */
-    public synchronized void storeEmptyPlt() {
-        for (DevpSlave devp : slaveProperties.getDevp()) {
-            if (devp.getId()==1) continue;
-            // 閬嶅巻绌烘澘鍏ュ簱鍙�
-            for (DevpSlave.Sta emptyInSta : devp.getEmptyInSta()) {
-                // 鑾峰彇绌烘澘鍏ュ簱绔欎俊鎭�
-                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
-                StaProtocol staProtocol = devpThread.getStation().get(emptyInSta.getStaNo());
-                if (staProtocol == null) {
-                    continue;
-                } else {
-                    staProtocol = staProtocol.clone();
-                }
-                if (emptyInSta.getStaNo()==607 && staProtocol.getStaNo()==607 && staProtocol.getWorkNo()>20000 && staProtocol.isLoading() && staProtocol.isAutoing()){
-                    try {
-                        BasDevp basDevp = basDevpService.selectById(staProtocol.getStaNo());
-                        if (basDevp.getReportSign()==0){
-                            LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
-
-                            SearchLocParam param = new SearchLocParam();
-                            param.setIoType(10);
-                            param.setSourceStaNo(emptyInSta.getStaNo());
-                            param.setLocType1(locTypeDto.getLocType1());
-                            String response = new HttpHandler.Builder()
-                                    .setUri(wmsUrl)
-                                    .setPath("/rpc/pakin/loc/v1")
-                                    .setJson(JSON.toJSONString(param))
-                                    .build()
-                                    .doPost();
-                            JSONObject jsonObject = JSON.parseObject(response);
-                            if (jsonObject.getInteger("code").equals(200)) {
-                                basDevp.setReportSign(1);
-                                basDevpService.updateById(basDevp);
-                                StartupDto dto = jsonObject.getObject("data", StartupDto.class);
-
-                                // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
-                                staProtocol.setWorkNo(dto.getWorkNo());
-                                staProtocol.setStaNo(607);
-                                devpThread.setPakMk(staProtocol.getSiteId(), false);
-                                boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(5, staProtocol));
-                                if (!result) {
-                                    throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
-                                }
-                            } else {
-                                log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
-                            }
-                        }
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                    }
-                    return;
-                }
-
-                // 绔欑偣鏉′欢鍒ゆ柇
-                if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable()
-                        && staProtocol.isEmptyMk() && ((staProtocol.getWorkNo() > 32222 && staProtocol.getWorkNo() <= 63333) || staProtocol.getWorkNo()==0)  && staProtocol.isPakMk()) {
-
-                    try {
-                        LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
-
-                        SearchLocParam param = new SearchLocParam();
-                        param.setIoType(10);
-                        param.setSourceStaNo(emptyInSta.getStaNo());
-                        param.setLocType1(locTypeDto.getLocType1());
-                        String response = new HttpHandler.Builder()
-                                .setUri(wmsUrl)
-                                .setPath("/rpc/pakin/loc/v1")
-                                .setJson(JSON.toJSONString(param))
-                                .build()
-                                .doPost();
-                        JSONObject jsonObject = JSON.parseObject(response);
-                        if (jsonObject.getInteger("code").equals(200)) {
-                            StartupDto dto = jsonObject.getObject("data", StartupDto.class);
-
-                            // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
-                            staProtocol.setWorkNo(dto.getWorkNo());
-                            staProtocol.setStaNo(dto.getStaNo());
-                            devpThread.setPakMk(staProtocol.getSiteId(), false);
-                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                            if (!result) {
-                                throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
-                            }
-                        } else {
-                            log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
-                        }
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                    }
-                }
-            }
-        }
-    }
-
-    /**
-     * 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐�
-     */
-    public synchronized void storeEmptyPltSingle() {
-        for (DevpSlave devp : slaveProperties.getDevp()) {
-            // 閬嶅巻绌烘澘鍏ュ簱鍙�
-            for (DevpSlave.Sta emptyInSta : devp.getEmptyInSingleSta()) {
-                // 鑾峰彇绌烘澘鍏ュ簱绔欎俊鎭�
-                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
-                StaProtocol staProtocol = devpThread.getStation().get(emptyInSta.getStaNo());
-                if (staProtocol == null) {
-                    continue;
-                } else {
-                    staProtocol = staProtocol.clone();
-                }
-
-                // 绔欑偣鏉′欢鍒ゆ柇
-                if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable()
-                        && staProtocol.isEmptyMk() && ((staProtocol.getWorkNo() > 32222 && staProtocol.getWorkNo() <= 63333) || staProtocol.getWorkNo()==0)  && staProtocol.isPakMk()) {
-                    //鍥炲簱鏍囪
-                    if (emptyInSta.getStaNo()==126 || emptyInSta.getStaNo()==131){
-                        RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign("sign"+emptyInSta.getStaNo());
-                        if (Cools.isEmpty(rgvOneSign) || rgvOneSign.getRgvOneSign()!=1){
-                            continue;
-                        }
-                    }
-                    try {
-                        LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
-
-                        SearchLocParam param = new SearchLocParam();
-                        param.setIoType(10);
-                        param.setSourceStaNo(emptyInSta.getStaNo());
-                        param.setLocType1(locTypeDto.getLocType1());
-                        String response = new HttpHandler.Builder()
-                                .setUri(wmsUrl)
-                                .setPath("/rpc/pakin/pair/station/single/loc/v1")
-                                .setJson(JSON.toJSONString(param))
-                                .build()
-                                .doPost();
-                        JSONObject jsonObject = JSON.parseObject(response);
-                        if (jsonObject.getInteger("code").equals(200)) {
-                            StartupDto dto = jsonObject.getObject("data", StartupDto.class);
-
-                            // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
-                            staProtocol.setWorkNo(dto.getWorkNo());
-                            staProtocol.setStaNo(dto.getStaNo());
-                            devpThread.setPakMk(staProtocol.getSiteId(), false);
-                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                            if (!result) {
-                                throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
-                            }
-                        } else {
-                            log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/pair/station/single/loc/v1", JSON.toJSONString(param), response);
-                        }
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                    }
-                }
-            }
-        }
-    }
-
-    /**
-     * 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐�
-     */
-    public synchronized void storeEmptyPltLarge() {
-        for (DevpSlave devp : slaveProperties.getDevp()) {
-            // 閬嶅巻绌烘澘鍏ュ簱鍙�
-            for (DevpSlave.Sta emptyInSta : devp.getEmptyInLargeSta()) {
-                // 鑾峰彇绌烘澘鍏ュ簱绔欎俊鎭�
-                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
-                StaProtocol staProtocol = devpThread.getStation().get(emptyInSta.getStaNo());
-                if (staProtocol == null) {
-                    continue;
-                } else {
-                    staProtocol = staProtocol.clone();
-                }
-
-                // 绔欑偣鏉′欢鍒ゆ柇
-                if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable()
-                        && staProtocol.isEmptyMk() && ((staProtocol.getWorkNo() > 32222 && staProtocol.getWorkNo() <= 63333) || staProtocol.getWorkNo()==0)  && staProtocol.isPakMk()) {
-                    //鍥炲簱鏍囪
-                    if (emptyInSta.getStaNo()==310 || emptyInSta.getStaNo()==312){
-                        RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign("sign"+emptyInSta.getStaNo());
-                        if (Cools.isEmpty(rgvOneSign) || rgvOneSign.getRgvOneSign()!=1){
-                            continue;
-                        }
-                    }
-                    try {
-                        LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
-
-                        SearchLocParam param = new SearchLocParam();
-                        param.setIoType(10);
-                        param.setSourceStaNo(emptyInSta.getStaNo());
-                        param.setLocType1(locTypeDto.getLocType1());
-                        String response = new HttpHandler.Builder()
-                                .setUri(wmsUrl)
-                                .setPath("/rpc/pakin/loc/v1")
-                                .setJson(JSON.toJSONString(param))
-                                .build()
-                                .doPost();
-                        JSONObject jsonObject = JSON.parseObject(response);
-                        if (jsonObject.getInteger("code").equals(200)) {
-                            StartupDto dto = jsonObject.getObject("data", StartupDto.class);
-
-                            // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
-                            staProtocol.setWorkNo(dto.getWorkNo());
-                            staProtocol.setStaNo(dto.getStaNo());
-                            devpThread.setPakMk(staProtocol.getSiteId(), false);
-                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                            if (!result) {
-                                throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
-                            }
-                        } else {
-                            log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
-                        }
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                    }
-                }
-            }
-        }
-    }
-
-    /**
-     * 鍏ュ簱  ===>> 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,1妤煎彔鐩樻満鍙犵洏
-     */
-    public synchronized void storeEmptyPlt2() {
-        for (DevpSlave devp : slaveProperties.getDevp()) {
-            if (devp.getId()==2) continue;
-            // 閬嶅巻绌烘澘鍏ュ簱鍙�
-            for (DevpSlave.Sta emptyInSta : devp.getEmptyInSta()) {
-                // 鑾峰彇绌烘澘鍏ュ簱绔欎俊鎭�
-                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
-                StaProtocol staProtocol = devpThread.getStation().get(emptyInSta.getStaNo());
-                if (staProtocol == null) {
-                    continue;
-                } else {
-                    staProtocol = staProtocol.clone();
-                }
-
-                // 绔欑偣鏉′欢鍒ゆ柇
-                if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable()
-                        && staProtocol.isEmptyMk() && ((staProtocol.getWorkNo() > 32222 && staProtocol.getWorkNo() <= 63333) || staProtocol.getWorkNo()==0) && staProtocol.isPakMk()) {
-                    try {
-                        WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(staProtocol.getSiteId() + 19999L);
-                        if (Cools.isEmpty(wrkMastSta)){
-                            WrkMastSta wrkMastSta1 = new WrkMastSta(new Date(),staProtocol.getSiteId());
-                            wrkMastSta1.setType(2);
-                            wrkMastSta1.setWrkType(1);//宸ヤ綔绫诲瀷  1:鍙栵紙鍙犵洏锛�  2锛氭媶鐩�  3锛氬彇鏀� 5锛氭弧鍙�  6锛氭弧鏀�
-                            wrkMastStaMapper.insert(wrkMastSta1);
-                        }
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                    }
-                }
-            }
-        }
-    }
-
-    /**
-     * 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐�
-     */
-    public synchronized void storeEmptyPlt3() {
-        try{
-            RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign("oneSign");
-            if (Cools.isEmpty(rgvOneSign) || rgvOneSign.getRgvOneSign()==1){
                 return;
             }
+            List<BasDevpPosition> basDevpPositions = basDevpPositionService.selectList(new EntityWrapper<BasDevpPosition>().orderBy("plc_position",false));
+            Integer devNo = SortTheExecutionOfTheCarUtil.LatelyAndLessThan(basDevpPositions, rgvProtocol.getRgvPos());
+            BasDevpPosition[] basDevpPositionsList = SortTheExecutionOfTheCarUtil.devpNoSort(basDevpPositions, devNo);
+            BasDevpPosition[] basDevpPositionsListUN = SortTheExecutionOfTheCarUtil.devpNoSortUN(basDevpPositionsList);
+            List<List<WrkMast>> wrkMastLists = getWrkMastLists(basDevpPositionsListUN);
+            //涓嬪彂浠诲姟
+            taskDown(wrkMastLists);
+        } catch (Exception e){
+            log.error("鑷姩涓嬪彂灏忚溅鍙栨斁浠诲姟澶辫触锛屽紓甯革細"+e);
+        }
+    }
+
+    //鑾峰彇灏忚溅鍙栨斁浠诲姟鍒楄〃澶辫触
+    public synchronized List<List<WrkMast>> getWrkMastLists(BasDevpPosition[] basDevpPositionsListUN) {
+        List<List<WrkMast>> wrkMastLists = new ArrayList<>();
+        try{
+            List<WrkMast> wrkMastlistA = new ArrayList<>();
+            List<WrkMast> wrkMastlistB = new ArrayList<>();
+            for (BasDevpPosition basDevpPosition : basDevpPositionsListUN){
+                WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("sta_no", basDevpPosition.getDevNo()).eq("wrk_sts",1L));
+                if (!Cools.isEmpty(wrkMast)){
+                    if (SortTheExecutionOfTheCarUtil.devpNoSortbj(basDevpPositionsListUN,wrkMast.getSourceStaNo(),wrkMast.getStaNo())){
+                        wrkMastlistA.add(wrkMast);
+                    } else {
+                        wrkMastlistB.add(wrkMast);
+                    }
+                }
+            }
+            wrkMastLists.add(wrkMastlistA);
+            wrkMastLists.add(wrkMastlistB);
+            return wrkMastLists;
+        } catch (Exception e){
+            log.error("鑾峰彇灏忚溅鍙栨斁浠诲姟鍒楄〃澶辫触锛屽紓甯革細"+e);
+            return wrkMastLists;
+        }
+    }
+
+    public synchronized void taskDown(List<List<WrkMast>> wrkMastLists) {
+        long rgvId = 0;
+        runRgv:
+        for (List<WrkMast> wrkMastList : wrkMastLists){
+            for (WrkMast wrkMast: wrkMastList){
+                log.error("瀛樺湪浠诲姟锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(wrkMast));
+
+                rgvId++;
+                BasCircularShuttle basCircularShuttle = basCircularShuttleService.selectOne(new EntityWrapper<BasCircularShuttle>().eq("rgv_id", 1L));
+                RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, basCircularShuttle.getRgvNo());
+                RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+                if (rgvProtocol != null
+                        && rgvProtocol.modeType == RgvModeType.AUTO
+                        && (rgvProtocol.getStatusType() == RgvStatusType.IDLE || rgvProtocol.getStatusType() == RgvStatusType.ROAM)
+                        && rgvProtocol.getTaskNo1()==0
+                        && rgvProtocol.getAlarm() == 0){
+                    RgvCommand rgvCommand = new RgvCommand();
+                    rgvCommand.setRgvNo(rgvProtocol.getRgvNo());
+                    rgvCommand.setAckFinish1((short) 0);  // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
+                    rgvCommand.setTaskNo1(wrkMast.getWrkNo().shortValue());
+                    rgvCommand.setTaskMode1(RgvTaskModeType.FETCH_PUT); // 宸ヤ綅1浠诲姟妯″紡:  鍙栨斁璐�
+                    rgvCommand.setSourceStaNo1(wrkMast.getSourceStaNo().shortValue());   //宸ヤ綅1璧风偣
+                    rgvCommand.setDestinationStaNo1(wrkMast.getStaNo().shortValue());   //宸ヤ綅1鐩爣绔欑偣
+                    rgvCommand.setCommand((short) 1);   //宸ヤ綅1浠诲姟纭
+                    if (!MessageQueue.offer(SlaveType.Rgv, rgvProtocol.getRgvNo(), new Task(2, rgvCommand))) {
+                        //
+                        log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
+                        break runRgv;
+                    }
+                    log.error("RGV鍛戒护涓嬪彂鎴愬姛锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
+
+                    wrkMast.setWrkSts(2L);
+                    wrkMast.setRgvNo(rgvProtocol.getRgvNo());
+                    wrkMast.setAppeTime(new Date());
+                    try{
+                        wrkMastService.updateById(wrkMast);
+                        continue ;
+                    }catch (Exception e){
+                        log.error("鏇存柊灏忚溅浠诲姟澶辫触,浠诲姟鍙凤細"+wrkMast.getWrkNo());
+                    }
+                    break runRgv;
+                } else {
+                    break runRgv;
+                }
+            }
+        }
+    }
+
+    //浠诲姟瀹屾垚
+    public synchronized void rgvCompleteWrkMastSta() {
+        try{
             for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
                 RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
                 RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
@@ -4013,4389 +284,51 @@
                     log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgvSlave.getId());
                     continue;
                 }
-
-                // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾湁鐗�//rgv鍙敤
-                if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
+                if (rgvProtocol.getStatusType() == RgvStatusType.WAITING){
+                    log.info("{}鍙峰皬杞︾瓑寰厀cs纭锛岀姸鎬亄}锛屽弬鏁皗}",rgvProtocol.getRgvNo(),rgvProtocol.getStatusType(),rgvProtocol);
+                }
+                // 鍙湁褰揜GV绛夊緟WCS纭銆佽嚜鍔�
+                if (rgvProtocol.getStatusType() == RgvStatusType.WAITING
                         && rgvProtocol.getModeType() == RgvModeType.AUTO
-                        && rgvProtocol.getStatusType1() == RgvStatusType.IDLE
-                        && rgvProtocol.getStatusType2() == RgvStatusType.IDLE
-                        && rgvProtocol.getTaskNo1()==0 && rgvProtocol.getTaskNo2()==0
-//                        &&  (rgvProtocol.getLoaded2()==2  || rgvProtocol.getLoaded2()==3 ) ////0 鏃犵墿锛�1 涓�灞傛棤鐗╀簩灞傛湁鐗�  锛�2涓�灞傛湁鐗╀簩灞傛棤鐗� 锛堝彧鑳芥弧鏀撅級锛�3  1銆�2灞傞兘鏈夌墿  4锛氾紙锛夊彧鍏佽鎷嗙洏
-                        &&  rgvProtocol.getLoaded2()==3 ////0 鏃犵墿锛�1 涓�灞傛棤鐗╀簩灞傛湁鐗�  锛�2涓�灞傛湁鐗╀簩灞傛棤鐗� 锛堝彧鑳芥弧鏀撅級锛�3  1銆�2灞傞兘鏈夌墿  4锛氾紙锛夊彧鍏佽鎷嗙洏
+                        && rgvProtocol.getTaskNo1()!=0
                 ) {
-                    try {
-                        WrkMast wrkMast1 = wrkMastMapper.selectPakOutStep3(122);
-                        if (!Cools.isEmpty(wrkMast1)){
-                            continue;
-                        }
-                        // 鑾峰彇绌烘澘鍏ュ簱绔欎俊鎭�
-
-                        SearchLocParam param = new SearchLocParam();
-                        param.setIoType(10);
-                        param.setSourceStaNo(122);
-                        param.setLocType1((short)1);
-                        String response = new HttpHandler.Builder()
-                                .setUri(wmsUrl)
-                                .setPath("/rpc/pakin/empty/loc/v1")
-                                .setJson(JSON.toJSONString(param))
-                                .build()
-                                .doPost();
-                        JSONObject jsonObject = JSON.parseObject(response);
-                        if (jsonObject.getInteger("code").equals(200)) {
-                            StartupDto dto = jsonObject.getObject("data", StartupDto.class);
-                            // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
-                            WrkMast wrkMast = wrkMastMapper.selectPakInStep3(dto.getWorkNo());
-                            if (!Cools.isEmpty(wrkMast) && wrkMast.getIoType()==10 && wrkMast.getWrkSts()==2){
-                                WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(wrkMast.getWrkNo().longValue());
-                                if (Cools.isEmpty(wrkMastSta)){
-                                    WrkMastSta wrkMastSta1 = new WrkMastSta(new Date(),wrkMast.getStaNo());
-                                    wrkMastSta1.setWrkNo(wrkMast.getWrkNo().longValue());
-                                    wrkMastSta1.setType(2);
-                                    wrkMastSta1.setWrkType(6);//宸ヤ綔绫诲瀷  1:鍙栵紙鍙犵洏锛�  2锛氭媶鐩�  3锛氬彇鏀� 5锛氭弧鍙�  6锛氭弧鏀�
-                                    wrkMastStaMapper.insert(wrkMastSta1);
-                                }
-                            }
-                        } else {
-                            log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/empty/loc/v1", JSON.toJSONString(param), response);
-                        }
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                    }
-                }
-            }
-        }catch (Exception e){
-            log.error("3933琛屾墽琛屽皬杞︽斁绌烘澘浠诲姟涓嬪彂澶辫触");
-            log.error("3933琛�"+e);
-        }
-    }
-
-    /**
-     * 鍑哄簱  ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�
-     */
-    public synchronized void ledExecute() {
-        for (LedSlave led : slaveProperties.getLed()) {
-            // 鑾峰彇杈撻�佺嚎plc绾跨▼
-            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId());
-            // 鍛戒护闆嗗悎
-            List<LedCommand> commands = new ArrayList<>();
-            // 宸ヤ綔妗i泦鍚�
-            List<WrkMast> wrkMasts = new ArrayList<>();
-            for (Integer staNo : led.getStaArr()) {
-                // 鑾峰彇鍙夎溅绔欑偣
-                StaProtocol staProtocol = devpThread.getStation().get(staNo);
-                if (null == staProtocol || null == staProtocol.getWorkNo() || 0 == staProtocol.getWorkNo() || !staProtocol.isLoading()) {
-                    continue;
-                } else {
-                    staProtocol = staProtocol.clone();
-                }
-                // 鑾峰彇宸ヤ綔妗f暟鎹�
-                WrkMast wrkMast = wrkMastMapper.selectById(staProtocol.getWorkNo());
-//                if (null == wrkMast || wrkMast.getWrkSts() < 14 || wrkMast.getIoType() < 100) { continue; }
-                if (null == wrkMast) {
-                    continue;
-                }
-                wrkMasts.add(wrkMast);
-                // 缁勮鍛戒护
-                LedCommand ledCommand = new LedCommand();
-                ledCommand.setWorkNo(wrkMast.getWrkNo());
-                ledCommand.setIoType(wrkMast.getIoType());
-                // 鍑哄簱妯″紡
-                switch (wrkMast.getIoType()) {
-                    case 1:
-                    case 202:
-                        ledCommand.setTitle("鍏ㄦ澘鍏ュ簱");
-                        break;
-                    case 10:
-                        ledCommand.setTitle("绌烘澘鍏ュ簱");
-                        break;
-                    case 101:
-                        ledCommand.setTitle("鍏ㄦ澘鍑哄簱");
-                        break;
-                    case 103:
-                        ledCommand.setTitle("鎷f枡鍑哄簱");
-                        break;
-                    case 104:
-                        ledCommand.setTitle("骞舵澘鍑哄簱");
-                        break;
-                    case 107:
-                        ledCommand.setTitle("鐩樼偣鍑哄簱");
-                        break;
-                    case 110:
-                        ledCommand.setTitle("绌烘澘鍑哄簱");
-                        ledCommand.setEmptyMk(true);
-                        break;
-                    case 212:
-                        ledCommand.setTitle("绌烘澘鍑哄簱");
-                        ledCommand.setEmptyMk(true);
-                        break;
-                    default:
-                        log.error("浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkMast.getWrkNo(), wrkMast.getIoType());
-                        break;
-                }
-                ledCommand.setSourceLocNo(wrkMast.getSourceLocNo());
-                ledCommand.setLocNo(wrkMast.getLocNo());
-                ledCommand.setStaNo(wrkMast.getStaNo());
-//                ledCommand.setSourceStaNo(wrkMast.getSourceStaNo());
-                if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) {
-                    List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo());
-                    wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl)));
-                }
-                commands.add(ledCommand);
-            }
-            Set<Integer> workNos = wrkMasts.stream().map(WrkMast::getWrkNo).collect(Collectors.toSet());
-            // 鑾峰彇LED绾跨▼
-            LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId());
-            // 鐩稿悓宸ヤ綔鍙烽泦鍚堝垯杩囨护
-            if (CollectionUtils.equals(ledThread.getWorkNos(), workNos)) {
-                continue;
-            }
-            // 鍛戒护涓嬪彂 -------------------------------------------------------------------------------
-            if (!commands.isEmpty()) {
-//                if (led.getId() == 7) {
-                    if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(3, commands))) {
-                        log.error("{}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
-                        continue;
-                    } else {
-                        ledThread.setLedMk(false);
-                    }
-//                }
-//                else {
-//                    if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(1, commands))) {
-//                        log.error("{}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
-//                        continue;
-//                    } else {
-//                        ledThread.setLedMk(false);
-//                    }
-//                }
-
-            }
-
-            try {
-                // 淇敼涓绘。led鏍囪
-                for (WrkMast wrkMast : wrkMasts) {
-                    wrkMast.setOveMk("Y");
-                    wrkMast.setModiTime(new Date());
-                    if (wrkMastMapper.updateById(wrkMast) == 0) {
-                        throw new CoolException("鏇存柊宸ヤ綔妗eけ璐�");
-                    }
-                }
-
-                // 鏇存柊绾跨▼褰撳墠宸ヤ綔鍙烽泦鍚�
-                ledThread.setWorkNos(workNos);
-
-            } catch (Exception e) {
-                e.printStackTrace();
-                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-            }
-
-        }
-    }
-
-    /**
-     * 鍏朵粬  ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅
-     */
-    public synchronized void ledReset() {
-        for (LedSlave led : slaveProperties.getLed()) {
-            // 鑾峰彇杈撻�佺嚎plc绾跨▼
-            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId());
-            // 鍛戒护闆嗗悎
-            boolean reset = true;
-            for (Integer staNo : led.getStaArr()) {
-                // 鑾峰彇鍙夎溅绔欑偣
-                StaProtocol staProtocol = devpThread.getStation().get(staNo);
-                if (staProtocol == null) {
-                    continue;
-                }
-                if (staProtocol.getWorkNo() != 0 && staProtocol.isLoading()) {
-                    reset = false;
-                    break;
-                }
-            }
-            // 鑾峰彇led绾跨▼
-            LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId());
-            // led鏄剧ず榛樿鍐呭
-            if (reset && !ledThread.isLedMk()) {
-                if (led.getId() == 7) {
-                    ledThread.setLedMk(true);
-                    if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(4, new ArrayList<>()))) {
-                        log.error("{}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
-                    } else {
-
-                    }
-                } else {
-                    ledThread.setLedMk(true);
-                    if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(2, new ArrayList<>()))) {
-                        log.error("{}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
-                    } else {
-
-                    }
-                }
-            }
-        }
-    }
-
-    /**
-     * 鍥犲弻娣卞簱浣嶉樆濉烇紝瀵规祬搴撲綅杩涜绉昏浆锛堝叆搴撶増)
-     * tip锛氬悓姝�
-     */
-    @Transactional
-    public synchronized void moveLocForDeepLocPakin(CrnSlave crn, LocMast shallowLoc, WrkMast pakinWrkMast) {
-        LocMast loc = locMastService.selectById(pakinWrkMast.getLocNo());
-
-        // 鑾峰彇宸ヤ綔鍙�
-        int workNo = commonService.getWorkNo(0);
-        Date now = new Date();
-        // 淇濆瓨宸ヤ綔妗�
-        WrkMast wrkMast = new WrkMast();
-        wrkMast.setWrkNo(workNo);
-        wrkMast.setIoTime(now);
-        wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
-        wrkMast.setIoType(11); // 鍏ュ嚭搴撶姸鎬侊細 11.搴撴牸绉昏浇
-        wrkMast.setIoPri(15D);
-        wrkMast.setCrnNo(crn.getId());
-        wrkMast.setSourceLocNo(shallowLoc.getLocNo()); // 婧愬簱浣�
-        wrkMast.setLocNo(loc.getLocNo()); // 鐩爣搴撲綅
-        wrkMast.setFullPlt(shallowLoc.getFullPlt()); // 婊℃澘
-        wrkMast.setPicking("N"); // 鎷f枡
-        wrkMast.setExitMk("N"); // 閫�鍑�
-        wrkMast.setEmptyMk(shallowLoc.getLocSts().equals("D") ? "Y" : "N"); // 绌烘澘
-        wrkMast.setBarcode(shallowLoc.getBarcode()); // 鎵樼洏鐮�
-        wrkMast.setLinkMis("N");
-        wrkMast.setCtnNo("Y");  // 鍏ュ簱闃诲搴撲綅绉昏浆鏍囪
-        wrkMast.setAppeTime(now);
-        wrkMast.setModiTime(now);
-        int res = wrkMastMapper.insert(wrkMast);
-        if (res == 0) {
-            throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
-        }
-        // 宸ヤ綔妗f槑缁嗕繚瀛�
-        if (shallowLoc.getLocSts().equals("F")) {
-            List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", shallowLoc.getLocNo()));
-            for (LocDetl locDetl : locDetls) {
-                WrkDetl wrkDetl = new WrkDetl();
-                wrkDetl.setWrkNo(workNo);
-                wrkDetl.setIoTime(now);
-                wrkDetl.setAnfme(locDetl.getAnfme());
-                VersionUtils.setWrkDetl(wrkDetl, locDetl); // 鐗堟湰鎺у埗
-                wrkDetl.setAppeTime(now);
-                wrkDetl.setModiTime(now);
-                if (!wrkDetlService.insert(wrkDetl)) {
-                    throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
-                }
-            }
-        }
-        // 淇敼婧愬簱浣嶇姸鎬�
-        if (shallowLoc.getLocSts().equals("D") || shallowLoc.getLocSts().equals("F")) {
-            shallowLoc.setLocSts("S"); // S.鍏ュ簱棰勭害锛屽叆搴撻樆濉炲簱浣嶇Щ杞�
-            shallowLoc.setModiTime(now);
-            if (!locMastService.updateById(shallowLoc)) {
-                throw new CoolException("鏇存柊婧愬簱浣嶇姸鎬佸け璐�");
-            }
-        } else {
-            throw new CoolException("婧愬簱浣嶅嚭搴撳け璐�");
-        }
-//        // 淇敼鐩爣搴撲綅鐘舵��
-//        if (loc.getLocSts().equals("O")) {
-//            loc.setLocSts("S"); // S.鍏ュ簱棰勭害
-//            loc.setModiTime(new Date());
-//            if (!locMastService.updateById(loc)) {
-//                throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
-//            }
-//        } else {
-//            throw new CoolException("绉昏浆澶辫触");
-//        }
-        wrkMast.setLocNo(shallowLoc.getLocNo());
-        if (wrkMastMapper.updateById(wrkMast) == 0) {
-            throw new CoolException("淇敼闃诲鍏ュ簱浠诲姟澶辫触");
-        }
-    }
-
-    /**
-     * 鍥犲弻娣卞簱浣嶉樆濉烇紝瀵规祬搴撲綅杩涜绉昏浆锛堢珛鍗虫墽琛岀増)
-     * tip锛氬悓姝�
-     */
-    private synchronized void moveLocForDeepLoc(CrnSlave crn, LocMast shallowLoc) {
-        try {
-            List<Integer> rows = locMastService.queryDistinctRow(crn.getId());
-            LocMast loc = null;
-            for (Integer row : rows) {
-                if (Utils.isDeepLoc(slaveProperties, row)) {
-                    loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1());
-
-                    if (loc != null) {
-                        if (Utils.isDeepLoc(slaveProperties, loc.getLocNo())) {
-                            String shallowLocNo = Utils.getShallowLoc(slaveProperties, loc.getLocNo());
-                            LocMast shallowLoc1 = locMastService.selectById(shallowLocNo);
-                            if (!shallowLoc1.getLocSts().equals("O")) {
-                                loc = null;
-                            }
-                        }
-                    }
-                    if (null != loc) {
-                        break;
-                    }
-                }
-            }
-            if (null == loc) {
-                for (Integer row : rows) {
-                    if (Utils.isShallowLoc(slaveProperties, row)) {
-                        loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1());
-
-                        if (null != loc) {//瀵瑰簲娣卞簱浣嶉潪鍦ㄥ簱鐘舵��,涓嶈兘绉诲簱
-                            String deepLoc = Utils.getDeepLoc(slaveProperties, loc.getLocNo());
-                            LocMast deepLoc1 = locMastService.selectById(deepLoc);
-                            if (!deepLoc1.getLocSts().equals("F") && !deepLoc1.getLocSts().equals("D")) {
-                                loc = null;
-                            }
-                        }
-
-                        if (null != loc) {
-                            break;
-                        }
-                    }
-                }
-            }
-
-            if (null == loc) {
-                log.error("鍙屾繁搴撲綅 --- 娴呭簱浣嶉樆濉炲紓甯革紒 寰呯Щ杞祬搴撲綅锛�" + shallowLoc.getLocNo());
-                throw new CoolException("鍙屾繁搴撲綅 --- 娴呭簱浣嶉樆濉炲紓甯革紒 寰呯Щ杞祬搴撲綅锛�" + shallowLoc.getLocNo());
-            }
-
-            // 鑾峰彇宸ヤ綔鍙�
-            int workNo = commonService.getWorkNo(0);
-            // 淇濆瓨宸ヤ綔妗�
-            WrkMast wrkMast = new WrkMast();
-            wrkMast.setWrkNo(workNo);
-            wrkMast.setIoTime(new Date());
-            wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
-            wrkMast.setIoType(11); // 鍏ュ嚭搴撶姸鎬侊細 11.搴撴牸绉昏浇
-            wrkMast.setIoPri(13D);
-            wrkMast.setCrnNo(crn.getId());
-            wrkMast.setSourceLocNo(shallowLoc.getLocNo()); // 婧愬簱浣�
-            wrkMast.setLocNo(loc.getLocNo()); // 鐩爣搴撲綅
-            wrkMast.setFullPlt(shallowLoc.getFullPlt()); // 婊℃澘
-            wrkMast.setPicking("N"); // 鎷f枡
-            wrkMast.setExitMk("N"); // 閫�鍑�
-            wrkMast.setEmptyMk(shallowLoc.getLocSts().equals("D") ? "Y" : "N"); // 绌烘澘
-            wrkMast.setBarcode(shallowLoc.getBarcode()); // 鎵樼洏鐮�
-            wrkMast.setLinkMis("N");
-            wrkMast.setAppeTime(new Date());
-            wrkMast.setModiTime(new Date());
-            int res = wrkMastMapper.insert(wrkMast);
-            if (res == 0) {
-                throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
-            }
-            // 宸ヤ綔妗f槑缁嗕繚瀛�
-            if (shallowLoc.getLocSts().equals("F")) {
-                List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", shallowLoc.getLocNo()));
-                for (LocDetl locDetl : locDetls) {
-                    WrkDetl wrkDetl = new WrkDetl();
-                    wrkDetl.setWrkNo(workNo);
-                    wrkDetl.setIoTime(new Date());
-                    wrkDetl.setAnfme(locDetl.getAnfme());
-                    VersionUtils.setWrkDetl(wrkDetl, locDetl); // 鐗堟湰鎺у埗
-                    wrkDetl.setAppeTime(new Date());
-                    wrkDetl.setModiTime(new Date());
-                    if (!wrkDetlService.insert(wrkDetl)) {
-                        throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
-                    }
-                }
-            }
-            // 淇敼婧愬簱浣嶇姸鎬�
-            if (shallowLoc.getLocSts().equals("D") || shallowLoc.getLocSts().equals("F")) {
-                shallowLoc.setLocSts("R"); // R.鍑哄簱棰勭害
-                shallowLoc.setModiTime(new Date());
-                if (!locMastService.updateById(shallowLoc)) {
-                    throw new CoolException("鏇存柊婧愬簱浣嶇姸鎬佸け璐�");
-                }
-            } else {
-                throw new CoolException("婧愬簱浣嶅嚭搴撳け璐�");
-            }
-            // 淇敼鐩爣搴撲綅鐘舵��
-            if (loc.getLocSts().equals("O")) {
-                loc.setLocSts("S"); // S.鍏ュ簱棰勭害
-                loc.setModiTime(new Date());
-                if (!locMastService.updateById(loc)) {
-                    throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
-                }
-            } else {
-                throw new CoolException("绉昏浆澶辫触");
-            }
-        } catch (Exception e) {
-            log.error("鍙屾繁搴撲綅闃诲锛屽娴呭簱浣嶈繘琛岀Щ杞け璐�", e);
-            e.printStackTrace();
-            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-        }
-    }
-
-    /**
-     * 鍫嗗灈鏈烘紨绀�  ===>> 搴撲綅绉昏浆
-     */
-    public synchronized void crnDemoOfLocMove1() {
-        try {
-            for (CrnSlave crn : slaveProperties.getCrn()) {
-                if (!crn.getDemo()) {
-                    continue;
-                }   // 蹇呴』涓烘紨绀虹姸鎬�
-
-                CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
-                CrnProtocol crnProtocol = crnThread.getCrnProtocol();
-                if (crnProtocol == null) {
-                    continue;
-                }
-
-                // 鍙湁褰撳爢鍨涙満绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
-                if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO) {
-                    // 鑾峰彇绉诲簱宸ヤ綔妗d俊鎭�
-                    WrkMast wrkMast = wrkMastMapper.selectLocMove(crn.getId());
-                    if (null != wrkMast) {
+                    log.info("{}鍙峰皬杞︾瓑寰厀cs纭锛岀姸鎬亄}锛屽弬鏁皗}",rgvProtocol.getRgvNo(),rgvProtocol.getStatusType(),rgvProtocol);
+                    WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", rgvProtocol.getTaskNo1().longValue()));
+                    if (Cools.isEmpty(wrkMast) || !wrkMast.getWrkSts().equals(2L)){
+                        log.error("鏈煡鍒板皬杞︽墽琛屼换鍔℃垨鑰呮墽琛屼换鍔$姸鎬佷笉绗﹀悎锛�"+wrkMast);
                         continue;
                     }
-
-                    LocMast sourceLoc = locMastService.queryDemoSourceLoc(crn.getId());
-                    LocMast loc = locMastService.queryDemoLoc(crn.getId());
-                    if (null == sourceLoc || null == loc) {
-                        continue;
+                    boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo());
+                    if (!rgvComplete){
+                        log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo());
+                        break;
                     }
-
-                    String sourceLocNo = sourceLoc.getLocNo();
-                    String locNo = loc.getLocNo();
-
-                    // 鑾峰彇宸ヤ綔鍙�
-                    int workNo = commonService.getWorkNo(0);
-                    // 淇濆瓨宸ヤ綔妗�
-                    wrkMast = new WrkMast();
-                    wrkMast.setWrkNo(workNo);
-                    wrkMast.setIoTime(new Date());
-                    wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
-                    wrkMast.setIoType(11); // 鍏ュ嚭搴撶姸鎬侊細 11.搴撴牸绉昏浇
-                    wrkMast.setIoPri(13D);
-                    wrkMast.setCrnNo(crn.getId());
-                    wrkMast.setSourceLocNo(sourceLocNo); // 婧愬簱浣�
-                    wrkMast.setLocNo(locNo); // 鐩爣搴撲綅
-                    wrkMast.setFullPlt("N"); // 婊℃澘锛歒
-                    wrkMast.setPicking("N"); // 鎷f枡
-                    wrkMast.setExitMk("N"); // 閫�鍑�
-                    wrkMast.setEmptyMk(sourceLoc.getLocSts().equals("D") ? "Y" : "N"); // 绌烘澘
-                    wrkMast.setBarcode(sourceLoc.getBarcode()); // 鎵樼洏鐮�
-                    wrkMast.setLinkMis("N");
+                    wrkMast.setWrkSts(3L);
                     wrkMast.setAppeTime(new Date());
-                    wrkMast.setModiTime(new Date());
-                    int res = wrkMastMapper.insert(wrkMast);
-                    if (res == 0) {
-                        throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
-                    }
-                    // 宸ヤ綔妗f槑缁嗕繚瀛�
-//                List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", sourceLocNo));
-//                for (LocDetl locDetl : locDetls) {
-//                    WrkDetl wrkDetl = new WrkDetl();
-//                    wrkDetl.setWrkNo(workNo);
-//                    wrkDetl.setIoTime(new Date());
-//                    wrkDetl.setAnfme(locDetl.getAnfme());
-//                    VersionUtils.setWrkDetl(wrkDetl, locDetl); // 鐗堟湰鎺у埗
-//                    wrkDetl.setAppeTime(new Date());
-//                    wrkDetl.setModiTime(new Date());
-//                    if (!wrkDetlService.insert(wrkDetl)) {
-//                        throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
-//                    }
-//                }
-                    // 淇敼婧愬簱浣嶇姸鎬�
-                    if (sourceLoc.getLocSts().equals("D")) {
-                        sourceLoc.setLocSts("R"); // R.鍑哄簱棰勭害
-                        sourceLoc.setModiTime(new Date());
-                        if (!locMastService.updateById(sourceLoc)) {
-                            throw new CoolException("鏇存柊婧愬簱浣嶇姸鎬佸け璐�");
-                        }
-                    } else {
-                        throw new CoolException("婧愬簱浣嶅嚭搴撳け璐�");
-                    }
-                    // 淇敼鐩爣搴撲綅鐘舵��
-                    if (loc.getLocSts().equals("O")) {
-                        loc.setLocSts("S"); // S.鍏ュ簱棰勭害
-                        loc.setModiTime(new Date());
-                        if (!locMastService.updateById(loc)) {
-                            throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
-                        }
-                    } else {
-                        throw new CoolException("绉昏浆澶辫触");
-                    }
-
+                    wrkMastService.updateById(wrkMast);
                 }
             }
-        } catch (Exception e) {
-            log.error("鍫嗗灈鏈烘紨绀�  ===>> 搴撲綅绉昏浆澶辫触", e);
-            e.printStackTrace();
-            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+        } catch (Exception e){
+            log.error("灏忚溅澶嶄綅绾跨▼鎶ラ敊锛�"+e);
         }
-    }
-
-    /**
-     * 鍏ュ嚭搴�  ===>>  灏忚溅浣滀笟涓嬪彂
-     */
-    public synchronized boolean steIoExecute(Integer sign) {
-        return false;
-    }
-    /**
-     * 鍏ュ嚭搴�  ===>>  鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂
-     */
-    public synchronized void crnIoExecuteTwoExecute(Integer i) {
-        for (CrnSlave crn : slaveProperties.getCrn()) {
-            try{
-                switch (crn.getId()){
-                    case 3:
-                    case 4:
-                    case 5:
-                        crnWrkMastSplitTwinExecute(crn,i);
-                        continue;
-                    default:
-                        continue;
-                }
-            }catch (Exception e){
-                log.error("鍫嗗灈鏈哄嚭鍏ュ簱鎵ц浠诲姟涓嬪彂鎶ラ敊,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={}",crn.getId(),e.getMessage());
-            }
-        }
-    }
-
-
-    public synchronized boolean crnWrkMastSplitTwinExecute(CrnSlave crn,Integer i){
-        try{
-            // 鑾峰彇鍫嗗灈鏈轰俊鎭�
-            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
-            CrnProtocol crnProtocol = crnThread.getCrnProtocol();
-            if (crnProtocol == null) {
-                return false;
-            }
-            BasCrnp basCrnp = basCrnpService.selectById(crn.getId());
-            if (basCrnp == null) {
-                log.error("{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crn.getId());
-                return false;
-            }
-
-
-            int[] sign = new int[]{0,0};
-            // 鍙湁褰撳爢鍨涙満鑷姩鏃舵墠缁х画鎵ц
-            if (crnProtocol.getModeType() == CrnModeType.AUTO) {
-                //鍙�
-                if (crnProtocol.getStatusType() == CrnStatusType.SEPARATE_IDLE
-                        && crnProtocol.getTaskNo() == 0
-                        && crnProtocol.getLoaded() == 1
-                        && crnProtocol.getForkPos() == 0) {
-                    if (crnProtocol.getStatusTypeTwo() == CrnStatusType.SEPARATE_IDLE
-                            && crnProtocol.getTaskNoTwo() == 0
-                            && crnProtocol.getLoadedTwo() == 1
-                            && crnProtocol.getForkPosTwo() == 0){
-                        List<WrkMastSplitTwin> wrkMastSplitTwinList1 = wrkMastSplitTwinService.getWrkMastSplitTwin(crn.getId(),1,2,2,0);
-                        List<WrkMastSplitTwin> wrkMastSplitTwinList2 = wrkMastSplitTwinService.getWrkMastSplitTwin(crn.getId(),2,2,2,0);
-                        if (!wrkMastSplitTwinList1.isEmpty() && !wrkMastSplitTwinList2.isEmpty() ){
-                            if (wrkMastSplitTwinList1.size()>1 || wrkMastSplitTwinList2.size()>1 ){
-                                log.error("Pair鍫嗗灈鏈哄嚭鍏ュ簱涓嬪彂寮傚父,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={}",crn.getId(),"瀛樺湪澶氱瑪鍙墽琛屼綔涓氾紝璇峰垹闄ゆ棤鏁堜綔涓氾紒锛侊紒",sign[1],sign[0]);
-                                return false;
-                            }
-                            WrkMastSplitTwin wrkMastSplitTwin1 = wrkMastSplitTwinList1.get(0);
-                            WrkMastSplitTwin wrkMastSplitTwin2 = wrkMastSplitTwinList2.get(0);
-                            boolean ack =  crnExecutePutFullPair(crn.getId(), wrkMastSplitTwin1,wrkMastSplitTwin2, sign[1]);
-                            if (ack){
-                                wrkMastSplitTwin1.setWrkSts(wrkMastSplitTwin1.getWrkType()==1? 1:3);
-                                wrkMastSplitTwinService.updateById(wrkMastSplitTwin1);
-                                wrkMastSplitTwin2.setWrkSts(wrkMastSplitTwin2.getWrkType()==1? 1:3);
-                                wrkMastSplitTwinService.updateById(wrkMastSplitTwin2);
-                            }else {
-                                log.error("鍫嗗灈鏈哄嚭鍏ュ簱涓嬪彂鎶ラ敊,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={}",crn.getId(),"涓嬪彂浠诲姟杩斿洖鍊间负锛�"+ack);
-                            }
-
-                            return false;
-                        }
-
-                    }
-                }
-                // 鍙湁褰撳爢鍨涙満宸ヤ綅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]);
-                    return false;
-                }
-                for (WrkMastSplitTwin wrkMastSplitTwin:wrkMastSplitTwinList){
-                    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){
-            log.error("鍫嗗灈鏈哄嚭鍏ュ簱涓嬪彂鎶ラ敊,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={}",crn.getId(),e.getMessage());
-        }
-        return false;
     }
 
     /*
-     * 鍫嗗灈鏈哄彇璐ц嚦宸ヤ綅浠诲姟
+     * 灏忚溅澶嶄綅
      * */
-    public synchronized boolean crnExecuteTakeFull(Integer crnNo,WrkMastSplitTwin wrkMastSplitTwin, Integer crnStation){
+    public synchronized boolean rgvComplete(Integer rgvId){
         try{
             //  鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-            // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
-            CrnCommand crnCommand = new CrnCommand();
-            crnCommand.setCrnNo(crnNo); // 鍫嗗灈鏈虹紪鍙�
-            crnCommand.setTaskNo(wrkMastSplitTwin.getWrkNo().shortValue()); // 宸ヤ綔鍙�
-            crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
-            crnCommand.setTaskMode(CrnTaskModeType.SEPARATE_TAKE); // 浠诲姟妯″紡:  鍗曞彇璐�
-            crnCommand.setSourcePosX(wrkMastSplitTwin.getStartRow().shortValue());     // 婧愬簱浣嶆帓
-            crnCommand.setSourcePosY(wrkMastSplitTwin.getStartBay().shortValue());     // 婧愬簱浣嶅垪
-            crnCommand.setSourcePosZ(wrkMastSplitTwin.getStartLev().shortValue());     // 婧愬簱浣嶅眰
-            crnCommand.setDestinationPosX((short)0);     // 鐩爣搴撲綅鎺�
-            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.toJSONString(crnCommand));
+            if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(3, new RgvCommand()))) {
+                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 crnExecutePutFull(Integer crnNo,WrkMastSplitTwin wrkMastSplitTwin, Integer crnStation){
-        try{
-            //  鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-            // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
-            CrnCommand crnCommand = new CrnCommand();
-            crnCommand.setCrnNo(crnNo); // 鍫嗗灈鏈虹紪鍙�
-            crnCommand.setTaskNo(wrkMastSplitTwin.getWrkNo().shortValue()); // 宸ヤ綔鍙�
-            crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
-            crnCommand.setTaskMode(CrnTaskModeType.SEPARATE_PUT); // 浠诲姟妯″紡:  鍗曟斁璐�
-            crnCommand.setSourcePosX((short)0);     // 婧愬簱浣嶆帓
-            crnCommand.setSourcePosY((short)0);     // 婧愬簱浣嶅垪
-            crnCommand.setSourcePosZ((short)0);     // 婧愬簱浣嶅眰
-            crnCommand.setDestinationPosX(wrkMastSplitTwin.getEndRow().shortValue());     // 鐩爣搴撲綅鎺�
-            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.toJSONString(crnCommand));
-                return false;
-            } else {
-                return true;
-            }
-        }catch (Exception e){
-            return false;
-        }
-    }
-
-    /*
-     * 鍫嗗灈鏈哄彇璐ц嚦宸ヤ綅浠诲姟
-     * */
-    public synchronized boolean crnExecuteTakeFullPair(Integer crnNo,WrkMastSplitTwin wrkMastSplitTwinOne,WrkMastSplitTwin wrkMastSplitTwinTwo, Integer crnStation){
-        try{
-            //  鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-            // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
-            CrnCommandParam crnCommandParam = new CrnCommandParam();
-            crnCommandParam.setCrnNo(crnNo); // 鍫嗗灈鏈虹紪鍙�
-            crnCommandParam.setTaskNo(wrkMastSplitTwinOne.getWrkNo().shortValue()); // 宸ヤ綔鍙�
-            crnCommandParam.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
-            crnCommandParam.setTaskMode(CrnTaskModeType.SEPARATE_TAKE); // 浠诲姟妯″紡:  鍗曞彇璐�
-            crnCommandParam.setSourcePosX(wrkMastSplitTwinOne.getStartRow().shortValue());     // 婧愬簱浣嶆帓
-            crnCommandParam.setSourcePosY(wrkMastSplitTwinOne.getStartBay().shortValue());     // 婧愬簱浣嶅垪
-            crnCommandParam.setSourcePosZ(wrkMastSplitTwinOne.getStartLev().shortValue());     // 婧愬簱浣嶅眰
-            crnCommandParam.setDestinationPosX((short)0);     // 鐩爣搴撲綅鎺�
-            crnCommandParam.setDestinationPosY((short)0);     // 鐩爣搴撲綅鍒�
-            crnCommandParam.setDestinationPosZ((short)0);     // 鐩爣搴撲綅灞�
-
-            crnCommandParam.setTaskNo2(wrkMastSplitTwinTwo.getWrkNo().shortValue()); // 宸ヤ綔鍙�
-            crnCommandParam.setAckFinish2((short) 0);  // 浠诲姟瀹屾垚纭浣�
-            crnCommandParam.setTaskMode2(CrnTaskModeType.SEPARATE_TAKE); // 浠诲姟妯″紡:  鍗曞彇璐�
-            crnCommandParam.setSourcePosX2(wrkMastSplitTwinTwo.getStartRow().shortValue());     // 婧愬簱浣嶆帓
-            crnCommandParam.setSourcePosY2(wrkMastSplitTwinTwo.getStartBay().shortValue());     // 婧愬簱浣嶅垪
-            crnCommandParam.setSourcePosZ2(wrkMastSplitTwinTwo.getStartLev().shortValue());     // 婧愬簱浣嶅眰
-            crnCommandParam.setDestinationPosX2((short)0);     // 鐩爣搴撲綅鎺�
-            crnCommandParam.setDestinationPosY2((short)0);     // 鐩爣搴撲綅鍒�
-            crnCommandParam.setDestinationPosZ2((short)0);     // 鐩爣搴撲綅灞�
-            if (!MessageQueue.offer(SlaveType.Crn, crnCommandParam.getCrnNo(), new Task(9, crnCommandParam))) {
-                log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", crnCommandParam.getCrnNo(), JSON.toJSONString(crnCommandParam));
-                return false;
-            } else {
-                return true;
-            }
-        }catch (Exception e){
-            return false;
-        }
-    }
-
-    /*
-     * 鍫嗗灈鏈烘斁璐ц揣鑷冲嚭搴撶珯鐐逛换鍔�
-     * */
-    public synchronized boolean crnExecutePutFullPair(Integer crnNo,WrkMastSplitTwin wrkMastSplitTwinOne,WrkMastSplitTwin wrkMastSplitTwinTwo, Integer crnStation){
-        try{
-            //  鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-            // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
-            CrnCommandParam crnCommandParam = new CrnCommandParam();
-            crnCommandParam.setCrnNo(crnNo); // 鍫嗗灈鏈虹紪鍙�
-            crnCommandParam.setTaskNo(wrkMastSplitTwinOne.getWrkNo().shortValue()); // 宸ヤ綔鍙�
-            crnCommandParam.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
-            crnCommandParam.setTaskMode(CrnTaskModeType.SEPARATE_PUT); // 浠诲姟妯″紡:  鍗曟斁璐�
-            crnCommandParam.setSourcePosX((short)0);     // 婧愬簱浣嶆帓
-            crnCommandParam.setSourcePosY((short)0);     // 婧愬簱浣嶅垪
-            crnCommandParam.setSourcePosZ((short)0);     // 婧愬簱浣嶅眰
-            crnCommandParam.setDestinationPosX(wrkMastSplitTwinOne.getEndRow().shortValue());     // 鐩爣搴撲綅鎺�
-            crnCommandParam.setDestinationPosY(wrkMastSplitTwinOne.getEndBay().shortValue());     // 鐩爣搴撲綅鍒�
-            crnCommandParam.setDestinationPosZ(wrkMastSplitTwinOne.getEndLev().shortValue());     // 鐩爣搴撲綅灞�
-
-            crnCommandParam.setTaskNo2(wrkMastSplitTwinTwo.getWrkNo().shortValue()); // 宸ヤ綔鍙�
-            crnCommandParam.setAckFinish2((short) 0);  // 浠诲姟瀹屾垚纭浣�
-            crnCommandParam.setTaskMode2(CrnTaskModeType.SEPARATE_PUT); // 浠诲姟妯″紡:  鍗曟斁璐�
-            crnCommandParam.setSourcePosX2((short)0);     // 婧愬簱浣嶆帓
-            crnCommandParam.setSourcePosY2((short)0);     // 婧愬簱浣嶅垪
-            crnCommandParam.setSourcePosZ2((short)0);     // 婧愬簱浣嶅眰
-            crnCommandParam.setDestinationPosX2(wrkMastSplitTwinTwo.getEndRow().shortValue());     // 鐩爣搴撲綅鎺�
-            crnCommandParam.setDestinationPosY2(wrkMastSplitTwinTwo.getEndBay().shortValue());     // 鐩爣搴撲綅鍒�
-            crnCommandParam.setDestinationPosZ2(wrkMastSplitTwinTwo.getEndLev().shortValue());     // 鐩爣搴撲綅灞�
-            if (!MessageQueue.offer(SlaveType.Crn, crnCommandParam.getCrnNo(), new Task(9, crnCommandParam))) {
-                log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", crnCommandParam.getCrnNo(), JSON.toJSONString(crnCommandParam));
-                return false;
-            } else {
-                return true;
-            }
-        }catch (Exception e){
-            return false;
-        }
-    }
-
-    /**
-     *  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;
-                            }
-                            BasJar basJar = basJarMapper.selectById(jarSlave.getId());
-                            int count = basJarMastService.selectCount(new EntityWrapper<BasJarMast>().eq("jar_regin", basJar.getRegion()).lt("status", 17).gt("status", 11));
-                            if (count>0){
-                                break;
-                            }
-                            if (basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),3)!=0){
-                                if (basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),3)==7){
-                                    JarThread jarOtherThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getJarOtherId());
-                                    JarProtocol jarOtherProtocol = jarOtherThread.getJarProtocol();
-                                    if (jarOtherProtocol == null) {
-                                        break;
-                                    }
-                                    if (jarOtherProtocol.getJarTemperature()>jarTemperature){
-                                        log.info("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....鍏堟墽琛屽叆缃愪换鍔★紒锛侊紒",jarOtherProtocol.getJarNo());
-                                    } else {
-                                        if (basJarMastService.getJarMastByJarIdCount(jarSlave.getId())>0){
-                                            log.info("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛屽厛鎵ц浜嗗叆缃愪换鍔★紝鎵ц瀹屾瘯鍐嶈繘琛屽喎鍗达紒锛侊紒",jarOtherProtocol.getJarNo());
-                                        } else {
-                                            break;
-                                        }
-                                    }
-                                }
-                            }
-                            if (basJarMastService.getJarMastByJarIdCount(jarSlave.getId())>=jarMaxLoc*2){
-                                break;
-                            }
-                            if (basJarMastService.selectJarMastOperation(jarSlave.getId(),0,9)>=jarMaxLoc){
-                                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()<jarMaxLoc){
-                                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()>jarTemperature){
-                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);
-                        if (wrkMastExecute.getIoType()<7 || wrkMastExecute.getIoType()==9){
-                            BasJarMast jarMastByWrkNo = basJarMastService.getJarMastByWrkNo(wrkMastExecute.getWrkNo());
-                            jarMastByWrkNo.setStatus(jarMastByWrkNo.getStatusComplete(wrkMastExecute.getIoType()));
-                            if (wrkMastExecute.getIoType()==3 && jarMastByWrkNo.getStatus()==8){
-                                List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarMastByWrkNo.getJarId(), new ArrayList<Integer>() {{
-                                    add(6);//纭寲瀹屾垚
-                                }});
-                                if (basJarMastList.isEmpty()){
-                                    continue;
-                                }
-                                Integer integer = basJarMastService.updateStatus(jarMastByWrkNo.getJarId(), 6, 8);
-                                if (basJarMastList.size()!=integer){
-                                    log.error("{}鍙风~鍖栫綈纭寲瀹屾垚鍚庡紑闂ㄥ畬鎴愪慨鏀圭~鍖栨。妗堢姸鎬佺粨鏋滄暟閲忎笉涓�鑷达紒锛侊紒鏌ヨ璧勬枡鏁伴噺={}锛屾洿鏂拌繑鍥炴暟閲�={}",jarMastByWrkNo.getJarId(),basJarMastList.size(),integer);
-                                }
-                            } else if (wrkMastExecute.getIoType()==2 && jarMastByWrkNo.getStatus()==5){
-                                List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarMastByWrkNo.getJarId(), new ArrayList<Integer>() {{
-                                    add(4);//纭寲瀹屾垚
-                                }});
-                                if (basJarMastList.isEmpty()){
-                                    continue;
-                                }
-                                Integer integer = basJarMastService.updateStatus(jarMastByWrkNo.getJarId(), 4, 5);
-                                if (basJarMastList.size()!=integer){
-                                    log.error("{}鍙风~鍖栫綈纭寲瀹屾垚鍚庡紑闂ㄥ畬鎴愪慨鏀圭~鍖栨。妗堢姸鎬佺粨鏋滄暟閲忎笉涓�鑷达紒锛侊紒鏌ヨ璧勬枡鏁伴噺={}锛屾洿鏂拌繑鍥炴暟閲�={}",jarMastByWrkNo.getJarId(),basJarMastList.size(),integer);
-                                }
-                            } else {
-                                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;
-                }
-
-
-                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 (jarProtocol.getJarTemperature()>jarTemperature){
-                                log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
-                                continue;
-                            }
-                            if (jarWrkMastExecuteGenerate2(jarSlave,sign)){
-                                signExecute[i] = true;
-                                break;//鍏宠繘鏂欓棬
-                            }
-                        case 3:
-                            if (jarWrkMastExecuteGenerate3(jarSlave,sign)){
-                                signExecute[i] = true;
-                                break;//寮�鍑烘枡闂�
-                            }
-                        case 4:
-                            if (jarProtocol.getJarTemperature()>jarTemperature){
-                                log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
-                                continue;
-                            }
-                            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()>jarTemperature){
-                    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;
-                        //鍐峰嵈瀹屾垚涓婅緭閫佺嚎
-                    }
-                    continue;
-                }
-            } 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()>jarTemperature){
-                    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()>jarTemperature){
-                            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;
-                        }
-
-                        if (wrkMastExecuteService.getWrkMastExecuteByjarReginCount(basJar.getRegion())!=0){
-                            return false;
-                        }
-
-                        int count = basJarMastService.selectCount(new EntityWrapper<BasJarMast>().eq("jar_regin", basJar.getRegion()).lt("status", 17).gt("status", 11));
-                        if (count>0){
-                            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() != jarMaxLoc){
-                return false;
-            }
-
-            BasJarMast basJarMastSign = basJarMastList.get(0);
-            if (Cools.isEmpty(basJarMastSign)){
-                return false;
-            }
-
-            if (wrkMastExecuteService.getWrkMastExecuteByjarReginCount(basJarMastSign.getJarRegin())!=0){
-                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()>jarTemperature){
-                    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().equals(jarMaxLoc)){
-                    log.error("{}鍙风~鍖栫綈鏌ヨ璁惧搴撳瓨鏁板紓甯革紒锛侊紒搴撳瓨寰呭叆鏁帮細{}",jarProtocol.getJarNo(),basJar.getJarCount());
-                    return false;
-                }
-
-                //闂ㄤ綔涓�  鏃�
-                if (jarProtocol.isAutoing() && jarProtocol.statusType != JarStatusType.SOS && 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() != jarMaxLoc){
-                return false;
-            }
-//            if (basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),5)!=0
-//                    && basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),5)!=7
-//                    && basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),5)!=14){
-//                return false;
-//            }
-
-            BasJarMast basJarMastSign = basJarMastList.get(0);
-            if (Cools.isEmpty(basJarMastSign)){
-                return false;
-            }
-
-            if (wrkMastExecuteService.getWrkMastExecuteByjarReginCount(basJarMastSign.getJarRegin())!=0){
-                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()>jarTemperature){
-//                    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;
-            }
-            List<BasJarMast> basJarMastList10 = basJarMastService.getJarMastByJarIdAndStatusList(jarSlave.getId(), new ArrayList<Integer>() {{
-                add(10);
-            }});
-            if (basJarMastList10.size()==jarMaxLoc){
-                return false;
-            }
-            if (basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),4)!=0 && basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),4)!=7){
-                return false;
-            }
-
-            BasJarMast jarMastByJarIdMin = basJarMastService.getJarMastByJarIdMin(jarSlave.getId(),8,8);
-            if (Cools.isEmpty(jarMastByJarIdMin)){
-                return false;
-            }
-            if (wrkMastExecuteService.getWrkMastExecuteByjarReginCount(jarMastByJarIdMin.getJarRegin())!=0){
-                return false;
-            }
-
-            int count = basJarMastService.selectCount(new EntityWrapper<BasJarMast>().eq("jar_regin", jarMastByJarIdMin.getJarRegin()).lt("status", 17).gt("status", 10));
-            if (count>0){
-                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 (basJar.getJarCode()==1){
-                    JarThread jarOtherThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getJarOtherId());
-                    JarProtocol jarOtherProtocol = jarOtherThread.getJarProtocol();
-                    if (jarOtherProtocol == null) {
-                        return false;
-                    }
-
-                    if (!jarOtherProtocol.isAutoing() || jarOtherProtocol.jarErr!=0
-                            || !jarOtherProtocol.isLeftDoor() || !jarOtherProtocol.isRightDoor()
-                            || jarOtherProtocol.leftDoorOpen==1  || jarOtherProtocol.leftDoorClose==1 || jarOtherProtocol.rightDoorOpen==1  || jarOtherProtocol.rightDoorClose==1){
-                        log.error("{}鍙风~鍖栫綈鏌ヨ璁惧涓嶆弧瓒冲墠寰�鍐峰嵈姹犳潯浠讹紝浠e彿2纭寲缃愰棬娌″紑锛侊紒锛�",jarOtherProtocol.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 (wrkMastExecuteService.getWrkMastExecuteByjarReginCount(jarMastByJarIdMin.getJarRegin())!=0){
-                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()>jarTemperature){
-                    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(jarProtocol.getJarNo()));
-                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 (!jarProtocolOther.isRightDoor()){
-                    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,boolean chargeSign) {
-        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.getCharge()<31.0F && chargeSign){
-                log.error(steNo + "鍙峰皬杞﹀綋鍓嶇數閲忚繃浣庯紝鍑嗗鍏呯數...褰撳墠鐢甸噺"+steProtocol.getCharge().toString());
-                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;
-    }
-
-    public synchronized boolean jarWrkMastExecuteGenerateSteStatusCharge(Integer steNo,Integer type,SteStatusType steStatusType,boolean chargeSign) {
-        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.getCharge()<31.0F && chargeSign){
-                log.error(steNo + "鍙峰皬杞﹀綋鍓嶇數閲忚繃浣庯紝鍑嗗鍏呯數...褰撳墠鐢甸噺"+steProtocol.getCharge().toString());
-                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  100:灏忚溅鍏呯數浠诲姟
-            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
-                * 100锛氬厖鐢典换鍔�
-                * */
-                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;
-                    case 100:
-                        if (jarWrkMastExecuteActionExecute100(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()>jarTemperature){
-//                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()>jarTemperature){
-                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()>jarTemperature){
-                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,true)){
-                        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()>jarTemperature){
-                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,true)){
-                            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()>jarTemperature){
-                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 (!jarProtocolOther.isRightDoor()){
-                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,true)){
-                        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()>jarTemperature){
-                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 (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() , jarProtocolOther.getJarNo())){
-                        //鍒ゆ柇灏忚溅鐘舵��
-                        if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),2,SteStatusType.WAITING2,false)){
-                            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,SteAndJarUtil.getJarNoEndRow(basJar.getBurial()))){
-                            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()>jarTemperature){
-                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,true)){
-                                //璋冭溅  == > 绉诲姩
-                                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,false)){
-                                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,false)){
-                                //璋冭溅  == > 绉诲姩
-                                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,false)){
-                                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(jarProtocolOther.getJarNo()))){
-                            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()>jarTemperature){
-//                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,true)){
-                        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,false)){
-                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()>jarTemperature){
-                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,true)){
-                                //璋冭溅  == > 绉诲姩
-                                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,false)){
-                                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,false)){
-                                //璋冭溅  == > 绉诲姩
-                                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,false)){
-                                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浠诲姟==>涓嬪彂 //瀹屾垚
-     *  100锛氬厖鐢典换鍔�
-     *  浠诲姟涓嬪彂
-     */
-    public synchronized boolean jarWrkMastExecuteActionExecute100(WrkMastExecute wrkMastExecute,Integer sign) {
-        try{
-            // 鑾峰彇纭寲缃愪俊鎭�
-            BasJar basJar = basJarMapper.selectById(wrkMastExecute.getJarId());
-            if (Cools.isEmpty(basJar)){
-                log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",wrkMastExecute.getJarId());
-                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;
-            }
-
-            if (staProtocolRGV.rgvBoolean(1) || staProtocolRGV.rgvBoolean(2)){
-                //闂ㄤ綔涓�  鏃�
-                //鑷姩銆佺┖闂层��
-                    log.error("100:鍏呯數浠诲姟==>浠诲姟涓嬪彂===>琛�={}",6899);
-                    //鍒ゆ柇灏忚溅鐘舵��
-                    if (!jarWrkMastExecuteGenerateSteStatusCharge(basJar.getEnterSteNo(),1,SteStatusType.IDLE,false)){
-                        return false;
-                    }
-                    //璋冭溅  == > 鍙栬揣
-                    if (!jarSteTake(wrkMastExecute,SteLocaType.POINT20.id,SteLocaType.POINT20.id,SteTaskModeType.START_CHARGE,false,wrkMastExecute.getJarId())){
-                        log.error("绌挎鏉縎te鍏呯數鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={}",
-                                wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute));
-                    }
-                    wrkMastExecute.setWrkType(1);
-                    wrkMastExecute.setWrkSts(99);
-                    if (!wrkMastExecuteService.updateById(wrkMastExecute)){
-                        log.error("绌挎鏉縎te鍏呯數鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={}",
-                                wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute));
-                    }
-                    return true;
-                }
-                return false;
-        } catch (Exception e){
-            log.error("绌挎鏉縎te鍏呯數鍛戒护涓嬪彂澶辫触,寮傚父==銆媤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;
-                }
-                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)){
-                    if (jarProtocol.getJarTemperature()>jarTemperature){
-                        log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
-                        return false;
-                    }
-                    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)){
-                    if (jarProtocol.getJarTemperature()>jarTemperature){
-                        log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
-                        return false;
-                    }
-                    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;
-                } else {
-                    log.error("{}鍙峰钩琛¤溅褰撳墠鐘舵�佷笉婊¤冻鍏ョ~鍖栫綈鏉′欢锛屽綋鍓嶄换鍔★紝骞宠 杞︿粠鍙栬揣");
-                }
-            }
-            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,false)){
-                        List<WrkMastExecute> wrkMastExecutes = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 5, null,steProtocol.getSteNo().intValue());
-                        List<WrkMastExecute> wrkMastExecutes100 = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 100, null,steProtocol.getSteNo().intValue());
-                        if (wrkMastExecutes.isEmpty() && wrkMastExecutes100.isEmpty()){
-                            List<WrkMastExecute> wrkMastExecutesB = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 6, null,steProtocol.getSteNo().intValue());
-                            List<WrkMastExecute> wrkMastExecutesC = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 9, null,steProtocol.getSteNo().intValue());
-
-                            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,false)){
-                        List<WrkMastExecute> wrkMastExecutes = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 6, null,steProtocol.getSteNo().intValue());
-                        if (wrkMastExecutes.isEmpty()){
-                            List<WrkMastExecute> wrkMastExecutesA = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 5, null,steProtocol.getSteNo().intValue());
-                            List<WrkMastExecute> wrkMastExecutesC = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 9, null,steProtocol.getSteNo().intValue());
-                            List<WrkMastExecute> wrkMastExecutes100 = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 100, null,steProtocol.getSteNo().intValue());
-                            if (!wrkMastExecutes100.isEmpty()){
-                                WrkMastExecute wrkMastExecute = wrkMastExecutes100.get(0);
-                                BasJar basJar = basJarMapper.selectById(wrkMastExecute.getJarId());
-                                if (Cools.isEmpty(basJar)){
-                                    log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",wrkMastExecute.getJarId());
-                                    return false;
-                                }
-
-                                BasJarMast jarMastByWrkNo = new BasJarMast(basJar);
-                                jarMastByWrkNo.setWrkNo(Integer.toUnsignedLong(wrkMastExecute.getWrkNo().intValue()));//宸ヤ綔鍙�
-                                jarMastByWrkNo.setJarEnterStaNo(basJar.getEnterRgvNo());
-                                jarMastByWrkNo.setEnterStaNo(basJar.getEnterRgvNo());
-                                jarMastByWrkNo.setOutStaNo(basJar.getOutRgvNo());
-                                //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 (!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,false)){
-                        List<WrkMastExecute> wrkMastExecutes = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 9, null,steProtocol.getSteNo().intValue());
-                        if (wrkMastExecutes.isEmpty()){
-                            List<WrkMastExecute> wrkMastExecutesB = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 6, null,steProtocol.getSteNo().intValue());
-                            List<WrkMastExecute> wrkMastExecutesA = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 5, null,steProtocol.getSteNo().intValue());
-                            List<WrkMastExecute> wrkMastExecutes100 = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 100, null,steProtocol.getSteNo().intValue());
-                            if (!wrkMastExecutes100.isEmpty()){
-                                WrkMastExecute wrkMastExecute = wrkMastExecutes100.get(0);
-                                BasJar basJar = basJarMapper.selectById(wrkMastExecute.getJarId());
-                                if (Cools.isEmpty(basJar)){
-                                    log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",wrkMastExecute.getJarId());
-                                    return false;
-                                }
-
-                                BasJarMast jarMastByWrkNo = new BasJarMast(basJar);
-                                jarMastByWrkNo.setWrkNo(Integer.toUnsignedLong(wrkMastExecute.getWrkNo().intValue()));//宸ヤ綔鍙�
-                                jarMastByWrkNo.setJarEnterStaNo(basJar.getEnterRgvNo());
-                                jarMastByWrkNo.setEnterStaNo(basJar.getEnterRgvNo());
-                                jarMastByWrkNo.setOutStaNo(basJar.getOutRgvNo());
-                                //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;
-                            }
-                            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;
-    }
-    /**
-     *  ste鍏呯數浠诲姟鍒涘缓   //瀹屾垚
-     */
-    public synchronized boolean jarChargeGenerate() {
-        try{
-            //80%鐢甸噺 鏃犱换鍔�  鍏呯數  >50鐢甸噺  鏈変换鍔�  鏂數
-            //30%鐢甸噺  涓嶆帴鍙栦换鍔�  鏃犺繘琛屼腑浠诲姟  鍏呯數     >50鐢甸噺  鏈変换鍔�  鏂數
-            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 || steProtocol.getChargeStatus()!=0) {
-                    continue;
-                }
-                WrkMastExecute wrkMastExecuteByCharge = wrkMastExecuteService.getWrkMastExecuteByCharge(steSlave.getId());
-                if (!Cools.isEmpty(wrkMastExecuteByCharge)){
-                    continue;
-                }
-
-                if (steProtocol.getCharge()<30.0F){
-                    if (wrkMastExecuteService.selectMoveStartCharge(steSlave.getId())!=0){
-                        continue;
-                    }
-                } else if (steProtocol.getCharge()<80.0F){
-                    List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusListCharge(steSlave.getId(), new ArrayList<Integer>() {{
-                        add(5);
-                        add(11);
-                        add(17);
-                    }});
-                    if(!basJarMastList.isEmpty()){
-                        continue;
-                    }
-                    if (wrkMastExecuteService.selectNoStart(steSlave.getId())!=0){
-                        continue;
-                    }
-                    if (wrkMastExecuteService.selectMoveStart(steSlave.getId())!=0){
-                        continue;
-                    }
-                } else {
-                    continue;
-                }
-
-                try{
-                    boolean jarIDLESign = false;
-                    if (jarWrkMastExecuteGenerateSteStatus(steSlave.getId(),1,SteStatusType.IDLE,false)){
-                        //鐢熸垚鍏呯數浠诲姟
-                        //A
-                        BasJar basJar = basJarMapper.selectById(steSlave.getId()==1? 1:3);
-                        int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(7));//鍏呯數宸ヤ綔鍙�
-                        BasJarMast basJarMast = new BasJarMast(basJar);
-                        basJarMast.setWrkNo(Integer.toUnsignedLong(workNo));//宸ヤ綔鍙�
-                        basJarMast.setJarEnterStaNo(basJar.getEnterRgvNo());
-                        basJarMast.setEnterStaNo(basJar.getEnterRgvNo());
-                        basJarMast.setOutStaNo(basJar.getOutRgvNo());
-                        if (!jarWrkMastExecuteGenerateExecute(basJar,basJarMast,basJar.getJarNo(),new int[]{basJar.getOutSteNo(),basJar.getOutRgvNo(),100,1})){
-                            log.error("JarWrkMastExecute鍏呯數浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(basJarMast));
-                        }
-                        continue;
-                    } else if (jarWrkMastExecuteGenerateSteStatus(steSlave.getId(),2,SteStatusType.IDLE,false)){
-                        jarIDLESign =true;
-                    } else if (jarWrkMastExecuteGenerateSteStatus(steSlave.getId(),3,SteStatusType.IDLE,false)){
-                        jarIDLESign =true;
-                    }
-                    if (jarIDLESign){
-                        //鐢熸垚鍏呯數浠诲姟
-                        //C==>A
-                        BasJar basJar = null;
-                        List<BasJar> basJarList = basJarMapper.selectList(new EntityWrapper<BasJar>().eq("region", steSlave.getId()));
-                        for (BasJar basJarNow : basJarList){
-                            // 鑾峰彇纭寲缃愪俊鎭�0.0
-                            JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, basJarNow.getJarNo());
-                            JarProtocol jarProtocol = jarThread.getJarProtocol();
-                            if (jarProtocol == null) {
-                                continue;
-                            }
-                            if (jarProtocol.modeType != JarModeType.AUTO){
-                                continue;
-                            }
-                            if (jarProtocol.statusType .equals(JarStatusType.SOS)){
-                                continue;
-                            }
-                            if (jarProtocol.getJarTemperature()>jarTemperature){
-                                continue;
-                            }
-                            if (jarProtocol.leftDoorOpen != 0 || jarProtocol.rightDoorOpen != 0){
-                                continue;
-                            }
-                            basJar = basJarNow;
-                            break;
-                        }
-                        if (basJar == null){
-                            continue;
-                        }
-                        int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(7));//鍏呯數宸ヤ綔鍙�
-                        BasJarMast basJarMast = new BasJarMast(basJar);
-                        basJarMast.setWrkNo(Integer.toUnsignedLong(workNo));//宸ヤ綔鍙�
-                        basJarMast.setJarEnterStaNo(basJar.getEnterRgvNo());
-                        basJarMast.setEnterStaNo(basJar.getEnterRgvNo());
-                        basJarMast.setOutStaNo(basJar.getOutRgvNo());
-                        if (!jarWrkMastExecuteGenerateExecute(basJar,basJarMast,basJar.getJarNo(),new int[]{basJar.getOutSteNo(),basJar.getOutRgvNo(),100,1})){
-                            log.error("JarWrkMastExecute鍏呯數浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(basJarMast));
-                        }
-                    }
-                }catch (Exception e){
-                    log.error("鍏呯數浠诲姟鍒涘缓寮傚父,steProtocol={},寮傚父淇℃伅={}",JSON.toJSONString(steProtocol),e.getMessage());
-                }
-            }
-        } catch (Exception e){
-            log.error("纭寲鍖哄煙鍒嗘鍏呯數浠诲姟鍒涘缓寮傚父,寮傚父淇℃伅={}",e.getMessage());
-        }
-        return false;
-    }
-    /**
-     *  Ste鍏呯數浠诲姟瀹屾垚   //瀹屾垚
-     */
-    public synchronized boolean jarChargeComplete() {
-        try{
-            //80%鐢甸噺 鏃犱换鍔�  鍏呯數  >50鐢甸噺  鏈変换鍔�  鏂數
-            //30%鐢甸噺  涓嶆帴鍙栦换鍔�  鏃犺繘琛屼腑浠诲姟  鍏呯數     >50鐢甸噺  鏈変换鍔�  鏂數
-            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 || steProtocol.getChargeStatus()!=1) {
-                    continue;
-                }
-
-                if (steProtocol.getCharge()>95.0F || steProtocol.getFullCharge()){
-                } else if (steProtocol.getCharge()>50.0F){
-                    List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusListCharge(steSlave.getId(), new ArrayList<Integer>() {{
-                        add(5);
-                        add(11);
-                        add(17);
-                    }});
-                    if(basJarMastList.isEmpty()){
-                        if (wrkMastExecuteService.selectNoStartCharge(steSlave.getId())==0){
-                            if (wrkMastExecuteService.selectMoveStart(steSlave.getId())==0){
-                                boolean sign = true;
-                                for (SteSlave.InStn inStn : steSlave.getSteInStn()){
-                                    //妫�娴嬬珯鐐圭姸鎬�
-                                    DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, inStn.getDevpPlcId());
-                                    StaProtocol staProtocol = devpThread.getStation().get(inStn.getStaNo());
-                                    if (staProtocol == null) {
-                                        continue;
-                                    } else {
-                                        staProtocol = staProtocol.clone();
-                                    }
-                                    if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0) {
-                                        // 鑾峰彇纭寲缃愪俊鎭�
-                                        JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, inStn.getJarNo());
-                                        JarProtocol jarProtocol = jarThread.getJarProtocol();
-                                        if (jarProtocol == null) {
-                                            continue;
-                                        }
-                                        if (jarProtocol.modeType != JarModeType.AUTO){
-                                            continue;
-                                        }
-                                        if (jarProtocol.statusType .equals(JarStatusType.SOS)){
-                                            continue;
-                                        }
-                                        if (jarProtocol.getJarTemperature()>jarTemperature){
-                                            continue;
-                                        }
-                                        sign = false;
-                                    }
-                                }
-                                if(sign){
-                                    continue;
-                                }
-                            }
-                        }
-                    }
-                } else {
-                    continue;
-                }
-
-                WrkMastExecute wrkMastExecuteByCharge = wrkMastExecuteService.getWrkMastExecuteByCharge(steSlave.getId());
-                if (Cools.isEmpty(wrkMastExecuteByCharge)){
-                    BasJar basJar = basJarMapper.selectById(steSlave.getId()==1? 1:3);
-                    int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(7));//鍏呯數宸ヤ綔鍙�
-                    BasJarMast basJarMast = new BasJarMast(basJar);
-                    basJarMast.setWrkNo(Integer.toUnsignedLong(workNo));//宸ヤ綔鍙�
-                    basJarMast.setJarEnterStaNo(basJar.getEnterRgvNo());
-                    basJarMast.setEnterStaNo(basJar.getEnterRgvNo());
-                    basJarMast.setOutStaNo(basJar.getOutRgvNo());
-                    wrkMastExecuteByCharge = new WrkMastExecute(basJarMast);
-                    wrkMastExecuteByCharge.setJarId(basJar.getJarNo());
-                    wrkMastExecuteByCharge.setSteId(steSlave.getId());//绌挎鏉縄D
-                    wrkMastExecuteByCharge.setRgvId(basJar.getEnterRgvNo());//RGV ID  enter
-                    wrkMastExecuteByCharge.setRgvEndId(basJar.getOutRgvNo());//RGV ID  out
-                    wrkMastExecuteByCharge.setIoType(100);//浠诲姟绫诲瀷 0: 鏈煡  1: 寮�杩涙枡闂�  2: 鍏宠繘鏂欓棬  3: 寮�鍑烘枡闂�  4: 鍏冲嚭鏂欓棬  5: 鍏ョ~鍖栫綈  6: 鍏ュ喎鍗存Ы  7: 绌挎杞﹁繘鍐峰嵈妲�  8: 绌挎杞︾寮�鍐峰嵈妲�  9: 鍑哄喎鍗存Ы 10锛欰=>B 11:B=>A  100:灏忚溅鍏呯數浠诲姟
-                    wrkMastExecuteByCharge.setType(1);//璁惧  0: 鏈煡  1: 纭寲缃�  2: 鍐峰嵈妲�  3: 纭寲缃�==>鍐峰嵈妲�
-                }
-
-                try{
-                    if (jarWrkMastExecuteGenerateSteStatusCharge(steSlave.getId(),1,SteStatusType.CHARGE,true)){
-                        //瀹屾垚鍏呯數浠诲姟
-                        //璋冭溅  == > 鏂紑鍏呯數
-                        if (!jarSteTake(wrkMastExecuteByCharge,SteLocaType.POINT20.id,SteLocaType.POINT20.id,SteTaskModeType.CLOSE_CHARGE,true,wrkMastExecuteByCharge.getJarId())){
-                            log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={}",
-                                    wrkMastExecuteByCharge.getSteId(), JSON.toJSONString(wrkMastExecuteByCharge));
-                        }
-                        wrkMastExecuteByCharge.setWrkType(2);
-                        wrkMastExecuteByCharge.setWrkSts(100);
-                        if (!wrkMastExecuteService.updateById(wrkMastExecuteByCharge)){
-                            log.error("鍏呯數浠诲姟瀹屾垚鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={}",
-                                    wrkMastExecuteByCharge.getSteId(), JSON.toJSONString(wrkMastExecuteByCharge));
-                        }
-                    }
-                }catch (Exception e){
-                    log.error("鍏呯數浠诲姟瀹屾垚寮傚父,steProtocol={},寮傚父淇℃伅={}",JSON.toJSONString(steProtocol),e.getMessage());
-                }
-            }
-        } catch (Exception e){
-            log.error("纭寲鍖哄煙鍒嗘浠诲姟鍏呯數浠诲姟瀹屾垚寮傚父,寮傚父淇℃伅={}",e.getMessage());
-        }
-        return false;
-    }
-    /**
-     * 鍏朵粬  ===>> 607鍒嗛厤纭寲缃�
-     */
-    public synchronized void stackingCompletionDriveTray() {
-        Integer staNo1 = jarGetStartStaNo(607);
-        if (staNo1!=0){
-            SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 2);
-            StaProtocol staProtocol607 = devpThread.getStation().get(607);
-            if (staProtocol607.getWorkNo()<9001 && staProtocol607.getWorkNo()!=0 && staProtocol607.isLoading() && staProtocol607.isAutoing() && staProtocol607.getStaNo() == 607){
-                staProtocol607.setStaNo(staNo1);
-                boolean result2 = MessageQueue.offer(SlaveType.Devp, 2, new Task(5, staProtocol607));
-            }
-        }
-    }
-    public synchronized Integer jarGetStartStaNo(Integer staNo) {
-        try {
-            int[] jarNos=new int[]{3,1,4,2};//(607鍒嗛厤纭寲缃�)
-            ArrayList<Integer> staNos = new ArrayList<Integer>() {{
-                add(607);add(608);add(609);add(610);add(611);add(612);
-                add(613);add(614);add(615);add(616);add(617);add(618);
-                add(619);add(620);add(621);add(622);
-            }};
-            ArrayList<Integer> jarNoList = new ArrayList<>();
-            ArrayList<Integer> jarNoList1 = new ArrayList<>();
-            ArrayList<Integer> jarNoListNow = new ArrayList<>();
-            for (int jarNo : jarNos) {
-                List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarNo, new ArrayList<Integer>() {{
-                    add(0);
-                    add(1);
-                    add(2);
-                    add(3);
-                    add(4);
-                }});
-                if (basJarMastList.isEmpty()){
-                    continue;
-                }
-                if (basJarMastList.size()>0 && basJarMastList.size()<jarMaxLoc){
-                    jarNoList.add(jarNo);
-                }
-            }
-            for (int jarNo : jarNos) {
-                if (!jarNoList.contains(jarNo)){
-                    jarNoList1.add(jarNo);
-                }
-            }
-            for (int jarNo : jarNoList1) {
-                List<BasJarMast> jarMastByJarIdAndStatusList = basJarMastService.getJarMastByJarIdAndStatusList(8, jarNo);
-                if (jarMastByJarIdAndStatusList.isEmpty()){
-                    jarNoList.add(jarNo);
-                }
-            }
-            jarNoList1 = new ArrayList<Integer>();
-            for (int jarNo : jarNos) {
-                if (!jarNoList.contains(jarNo)){
-                    jarNoList1.add(jarNo);
-                }
-            }
-            for (int jarNo : jarNoList1) {
-                List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarNo, new ArrayList<Integer>() {{
-                    add(5);
-                    add(6);
-                    add(7);
-                    add(8);
-                    add(9);
-                    add(13);
-                    add(14);
-                    add(15);
-                }});
-                if (basJarMastList.isEmpty()){
-                    jarNoList.add(jarNo);
-                }
-            }
-            for (int jarNo : jarNoList) {
-                if (jarNoListNow.contains(jarNo)){
-                    continue;
-                }
-                // 鑾峰彇纭寲缃愪俊鎭�
-                JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarNo);
-                JarProtocol jarProtocol = jarThread.getJarProtocol();
-                if (jarProtocol == null) {
-                    continue;
-                }
-                if (jarProtocol.modeType != JarModeType.AUTO){
-                    continue;
-                }
-                if (jarProtocol.statusType .equals(JarStatusType.SOS)){
-                    continue;
-                }
-                if (jarProtocol.getJarTemperature()>jarTemperature){
-                    log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
-                    continue;
-                }
-
-                BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
-                if (Cools.isEmpty(basJar)){
-                    log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
-                    continue;
-                }
-                List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarNo, new ArrayList<Integer>() {{
-                    add(0);
-                    add(1);
-                    add(2);
-                    add(3);
-                    add(4);
-                }});
-                DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 2);
-                Integer count = basJarMastList.size();
-                ArrayList<Integer> wrkNoList = new ArrayList<>();
-
-                for (Integer staNoEnt : staNos){
-                    StaProtocol staProtocolEnt = devpThread.getStation().get(staNoEnt);
-                    if (staProtocolEnt != null && staProtocolEnt.getWorkNo()!=0 && !wrkNoList.contains(staProtocolEnt.getWorkNo())){
-                        if (staProtocolEnt.getStaNo().equals(basJar.getEntStaNo$())){
-                            count++;
-                            wrkNoList.add(staProtocolEnt.getWorkNo());
-                        }
-                    }
-                }
-                if (count<jarMaxLoc){
-                    return basJar.getEntStaNo$();
-                }
-            }
-        }catch (Exception e){
-//            e.printStackTrace();
-//            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-            log.error("鍏朵粬  ===>> 鍒嗛厤纭寲缃愯繘鍏ヤ笅涓�姝�"+e);
-        }
-        return 0;
-    }
-
 }

--
Gitblit v1.9.1