From 231e55d38511146988fac0d1b09432d8742d5656 Mon Sep 17 00:00:00 2001
From: 野心家 <1051256694@qq.com>
Date: 星期四, 05 十二月 2024 10:04:26 +0800
Subject: [PATCH] 初始化程序

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  586 +++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 359 insertions(+), 227 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 000c375..3e19bc8 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -19,11 +19,13 @@
 import com.zy.common.service.CommonService;
 import com.zy.common.utils.CollectionUtils;
 import com.zy.common.utils.HttpHandler;
+import com.zy.common.utils.News;
 import com.zy.core.CrnThread;
 import com.zy.core.DevpThread;
 import com.zy.core.cache.MessageQueue;
 import com.zy.core.cache.SlaveConnection;
 import com.zy.core.enums.*;
+import com.zy.core.enums.DevpType.DevpWorkType;
 import com.zy.core.model.CrnSlave;
 import com.zy.core.model.DevpSlave;
 import com.zy.core.model.LedSlave;
@@ -45,6 +47,7 @@
 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.ArrayList;
 import java.util.Date;
@@ -96,6 +99,8 @@
 
     @Value("${test.url}")
     private String testUrl;
+    @Autowired
+    private WrkMastService wrkMastService;
 
     /**
      * 缁勬墭
@@ -108,35 +113,74 @@
             for (DevpSlave.Sta inSta : devp.getInSta()) {
                 // 鑾峰彇鏉$爜鎵弿浠俊鎭�
                 BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode());
-                if (barcodeThread == null) {
-                    continue;
-                }
-                String barcode = barcodeThread.getBarcode();
-//                barcode="ILY0127 0001";
-                if(!Cools.isEmpty(barcode)) {
-                    log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
-                    if("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
-                        continue;
-                    }
-                } else {
-                    continue;
-                }
-
                 // 鑾峰彇鍏ュ簱绔欎俊鎭�
-                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+                DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
                 StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
                 if (staProtocol == null) {
                     continue;
                 } else {
                     staProtocol = staProtocol.clone();
                 }
-                //staProtocol.setPakMk(true);
-//                // 鍏ュ嚭搴撴ā寮忓垽鏂�
-//                if ( inSta.getStaNo()==180 && devpThread.ioMode != IoModeType.PAKIN_MODE) { continue; }
-                // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
+                Short workNo = staProtocol.getWorkNo();
+                // 灏哄妫�娴嬪紓甯�
+                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(3, errMsg));
+                    }
+                    continue;
+                }
+                String barcode = barcodeThread.getBarcode();
+                if (!Cools.isEmpty(barcode)&&!barcode.equals("00000000")) {
+                    log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
+                    if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
+                        continue;
+                    }
+                } else {
+                    // led 寮傚父鏄剧ず
+//                    LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
+//                    if (ledThread != null) {
+//                        String errorMsg = "鎵爜澶辫触锛岃閲嶈瘯";
+//                        MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
+//                    }
+                    continue;
+                }
+
                 if (staProtocol.isAutoing() && staProtocol.isLoading()
                         && staProtocol.isInEnable()
-                        && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() == 9999)
+                        && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() >= 9992 && staProtocol.getWorkNo() <= 9999)
                         && staProtocol.isPakMk()){// && !Cools.isEmpty(barcode)) {
 
 //                    if(Cools.isEmpty(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode)) {
@@ -153,33 +197,19 @@
 //                    }
 
                     // 鍒ゆ柇閲嶅宸ヤ綔妗�
-                    WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode.substring(0,6));
+                    WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode);
                     if (wrkMast != null) {
-                        log.error("宸ヤ綔妗d腑宸插瓨鍦ㄨ绔欑姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,宸ヤ綔鍙�={}", wrkMast.getWrkNo());
+                        News.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;
-//                    }
+                    // 鑾峰彇鍏ュ簱閫氱煡妗�
+                    List<WaitPakin> waitPakins = waitPakinMapper.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", barcode).eq("io_status", "N"));
+                    if (waitPakins.isEmpty()) {
+                        log.error("鏃犳鍏ュ簱鏉$爜鏁版嵁銆傛潯鐮佸彿={}", barcode);
+                        continue;
+                    }
 
                     try {
-                        String pack =null;//pack鐮�
-                        if(barcode.length()>6){
-                            pack=barcode.substring(6);
-                            if(pack.equals("00000000000000000000")){
-                                log.error("娌℃湁鑾峰緱Pack鐮�",pack);
-                                continue;
-                            }
-                    }
-                        //String pack="MJY0136 0400";
-                        barcode=barcode.substring(0,6);//鎵樼洏鐮�
-                        if(barcode.equals("000000")){
-                            log.error("娌℃湁鑾峰緱鏉$爜",barcode);
-                            continue;
-                        }
                         LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
                         locTypeDto.setLocType1((short)1);
                         SearchLocParam param = new SearchLocParam();
@@ -187,7 +217,7 @@
                         param.setIoType(1);
                         param.setSourceStaNo(inSta.getStaNo());
                         param.setLocType1(locTypeDto.getLocType1());
-                        param.setPackNo(pack);
+//                        param.setPackNo(pack);
                         String response = new HttpHandler.Builder()
                                 .setUri(wmsUrl)
                                 .setPath("/rpc/pakin/loc/v1")
@@ -203,85 +233,28 @@
                             devpThread.setPakMk(staProtocol.getSiteId(), false);
                             boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                             if (!result) {
+                                News.error("鏇存柊plc绔欑偣淇℃伅澶辫触");
                                 throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
                             }
                         } else if (jsonObject.getInteger("code").equals(700) && (!barcodeThread.getBarcode().equals("NG"))){
                             StartupDto dto = jsonObject.getObject("data", StartupDto.class);
                             barcodeThread.setBarcode("");
-                            staProtocol.setWorkNo((short)9999);
-                            staProtocol.setStaNo((short)201);
-                            devpThread.setPakMk(staProtocol.getSiteId(), false);
+                            staProtocol.setWorkNo((short)9991);
+                            staProtocol.setStaNo(inSta.getBackSta().shortValue());
+                            devpThread.setPakMk(staProtocol.getSiteId(), true);
                             boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                            log.error("url锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl+"/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
+                            News.error("url锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl+"/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
                         }else {
                             StartupDto dto = jsonObject.getObject("data", StartupDto.class);
                             barcodeThread.setBarcode("");
-                            staProtocol.setWorkNo((short)9999);
-                            staProtocol.setStaNo((short)201);
-                            devpThread.setPakMk(staProtocol.getSiteId(), false);
+                            staProtocol.setWorkNo((short)9991);
+                            staProtocol.setStaNo(inSta.getBackSta().shortValue());
+                            devpThread.setPakMk(staProtocol.getSiteId(), true);
                             boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                            log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl+"/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
+                            News.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl+"/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
                         }
-
-
-//                        // 妫�绱㈠簱浣�
-//                        LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
-//                        List<String> matNos = waitPakins.stream().map(WaitPakin::getMatnr).distinct().collect(Collectors.toList());
-//                        StartupDto startupDto = commonService.getLocNo(1, 1, inSta.getStaNo(), matNos, locTypeDto, 0);
-//                        // 宸ヤ綔鍙�
-//                        int workNo = startupDto.getWorkNo();
-//                        // 鎻掑叆宸ヤ綔鏄庣粏妗�
-//                        wrkDetlService.createWorkDetail(workNo, waitPakins, barcode);
-//
-//                        // 鎻掑叆宸ヤ綔涓绘。
-//                        wrkMast = new WrkMast();
-//                        wrkMast.setWrkNo(workNo);
-//                        wrkMast.setIoTime(new Date());
-//                        wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細2.璁惧涓婅蛋
-//                        wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱
-//                        wrkMast.setIoPri(10D); // 浼樺厛绾э細10
-//                        wrkMast.setCrnNo(startupDto.getCrnNo());
-//                        wrkMast.setSourceStaNo(startupDto.getSourceStaNo());
-//                        wrkMast.setStaNo(startupDto.getStaNo());
-//                        wrkMast.setLocNo(startupDto.getLocNo());
-//                        wrkMast.setBarcode(barcode); // 鎵樼洏鐮�
-//                        wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
-//                        wrkMast.setPicking("N"); // 鎷f枡
-//                        wrkMast.setExitMk("N"); // 閫�鍑�
-//                        wrkMast.setEmptyMk("N"); // 绌烘澘
-//                        wrkMast.setLinkMis("N");
-//                        // 鎿嶄綔浜哄憳鏁版嵁
-//                        wrkMast.setAppeTime(new Date());
-//                        wrkMast.setModiTime(new Date());
-//                        Integer insert = wrkMastMapper.insert(wrkMast);
-//                        if (insert == 0) {
-//                            throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
-//                        }
-//                        // 鏇存柊鐩爣搴撲綅鐘舵��
-//                        LocMast locMast = locMastService.selectById(startupDto.getLocNo());
-//                        locMast.setLocSts("S"); // S.鍏ュ簱棰勭害
-//                        locMast.setModiTime(new Date());
-//                        if (!locMastService.updateById(locMast)){
-//                            throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
-//                        }
-//                        // 灏嗗叆搴撻�氱煡妗d慨鏀逛负宸插惎鍔�
-//                        if (wrkMastMapper.updateWaitPakInStep1(barcode) == 0) {
-//                            throw new CoolException("淇敼鍏ュ簱閫氱煡妗g姸鎬佷负宸插惎鍔ㄥけ璐�");
-//                        }
-//
-//                        // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-//
-//                        // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
-//                        barcodeThread.setBarcode("");
-//                        staProtocol.setWorkNo((short) workNo);
-//                        staProtocol.setStaNo(startupDto.getStaNo().shortValue());
-//                        devpThread.setPakMk(staProtocol.getSiteId(), false);
-//                        boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-//                        if (!result) {
-//                            throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
-//                        }
-
                     } catch (Exception e) {
+                        News.error("鎵爜鍏ュ簱鎶ラ敊锛岄敊璇俊鎭�",e);
                         e.printStackTrace();
                         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                     }
@@ -338,7 +311,7 @@
                             log.error("鏇存柊宸ヤ綔妗eけ璐ワ紒锛侊紒 [宸ヤ綔鍙凤細{}]", wrkMast.getWrkNo());
                         }
                     } else {
-                        log.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
+                        News.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
                     }
 
                 }
@@ -500,7 +473,7 @@
                 } else {
                     staProtocol = staProtocol.clone();
                 }
-                if (staProtocol.isAutoing() && (staProtocol.isLoading()||staProtocol.getSiteId()==109) && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == null)) {
+                if (staProtocol.isAutoing() && (staProtocol.isLoading()||staProtocol.getSiteId()==1000) && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == null)) {
                     // 鏌ヨ宸ヤ綔妗�
                     WrkMast wrkMast = wrkMastMapper.selectPakOutStep2(staProtocol.getSiteId());
                     if (wrkMast == null) {
@@ -508,6 +481,7 @@
                     }
                     // 鍒ゆ柇宸ヤ綔妗f潯浠�
                     if (wrkMast.getIoType() < 100 || wrkMast.getStaNo() == null || wrkMast.getSourceStaNo() == null) {
+                        News.error("宸ヤ綔妗f鏉′欢涓嶆弧瓒筹細宸ヤ綔妗f锛�"+wrkMast+";鏉′欢iotype<100鎴栬�卻taNo涓虹┖鎴栬�卻ourceStaNo涓虹┖");
                         continue;
                     }
                     // 鍒ゆ柇鍚婅溅鏄惁瀹為檯宸插畬鎴愶紝涓旂數鑴戠姸鎬佸湪move涓紝浠ュ鐢佃剳杩涜鏇存柊宸ヤ綔妗�
@@ -538,7 +512,7 @@
                             // 澶嶄綅鍫嗗灈鏈�
                             crnThread.setResetFlag(true);
                         } else {
-                            log.error("鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", wrkMast.getWrkNo());
+                            News.error("鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", wrkMast.getWrkNo());
                         }
 
                     }
@@ -559,7 +533,7 @@
             if (crnProtocol == null) { continue; }
             BasCrnp basCrnp = basCrnpService.selectById(crn.getId());
             if (basCrnp == null) {
-                log.error("{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crn.getId());
+                News.error("{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crn.getId());
                 continue;
             }
 
@@ -675,7 +649,7 @@
             // 鏌ヨ绔欑偣璇︾粏淇℃伅
             BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
             if (staDetl == null) {
-                log.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
+                News.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
                 continue;
             }
             if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 && staProtocol.isInEnable()
@@ -694,11 +668,11 @@
             // 鑾峰彇搴撲綅淇℃伅
             LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
             if (locMast == null) {
-                log.error("鏌ヨ搴撳瓨鏃犳暟鎹�--搴撲綅鍙穥}", wrkMast.getLocNo());
+                News.error("鏌ヨ搴撳瓨鏃犳暟鎹�--搴撲綅鍙穥}", wrkMast.getLocNo());
                 continue;
             }
             if (!locMast.getLocSts().equals("S") && !locMast.getLocSts().equals("Q")) {
-                log.error("鍏ュ簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getLocNo(), locMast.getLocSts());
+                News.error("鍏ュ簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getLocNo(), locMast.getLocSts());
                 continue;
             }
 
@@ -720,12 +694,12 @@
                 if (shallowLoc.getLocSts().equals("P") || shallowLoc.getLocSts().equals("R")) {
                     WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
                     if (null == waitWrkMast) {
-                        log.error("{}搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒", shallowLocNo);
+                        News.error("{}搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒", shallowLocNo);
                     } else {
                         waitWrkMast.setIoPri(15D);
                         waitWrkMast.setModiTime(new Date());
                         if (wrkMastMapper.updateById(waitWrkMast) == 0) {
-                            log.error("璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
+                            News.error("璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
                         }
                         continue;
                     }
@@ -763,9 +737,12 @@
             crnCommand.setDestinationPosY(locMast.getBay1().shortValue());     // 鐩爣搴撲綅鍒�
             crnCommand.setDestinationPosZ(locMast.getLev1().shortValue());     // 鐩爣搴撲綅灞俓
             crnCommand.setBarcode(wrkMast.getBarcode());//鎵樼洏鐮�
+            log.error("768 鍫嗗灈鏈哄懡浠や笅鍙�"+crnCommand);
             if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
-                log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
+                News.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
             } else {
+                log.error("772 鍫嗗灈鏈哄懡浠や笅鍙戞垚鍔�"+crnCommand);
+                News.info("772 鍫嗗灈鏈哄懡浠や笅鍙戞垚鍔�"+crnCommand);
 
 //                long startTime = System.currentTimeMillis();
 //                while ((System.currentTimeMillis() - startTime) < COMMAND_TIMEOUT) {
@@ -780,13 +757,17 @@
 //                }
 
                 // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�
+                log.error("787 淇敼宸ヤ綔妗g姸鎬�2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� "+wrkMast);
+                News.info("787 淇敼宸ヤ綔妗g姸鎬�2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� "+wrkMast);
                 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());
+                    News.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
                 }
+                log.error("795 淇敼宸ヤ綔妗g姸鎬佹垚鍔�2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�"+wrkMast);
+                News.info("795 淇敼宸ヤ綔妗g姸鎬佹垚鍔�2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�"+wrkMast);
             }
         }
     }
@@ -806,13 +787,13 @@
                 }
                 // 宸ヤ綔妗g姸鎬佸垽鏂�
                 if (wrkMast.getIoType() < 100 || wrkMast.getSourceStaNo() == null){
-                    log.error("鏌ヨ宸ヤ綔妗f暟鎹笉绗﹀悎鏉′欢--鍏ュ嚭绫诲瀷/绔欑偣, 宸ヤ綔鍙�={}锛屾簮搴撲綅={}锛屽叆鍑虹被鍨�={}", wrkMast.getWrkNo(), wrkMast.getSourceLocNo(), wrkMast.getIoType());
+                    News.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.getLocNo(), sourceSta.getLocSts());
+                    News.error("鍑哄簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getLocNo(), sourceSta.getLocSts());
                     continue;
                 }
                 // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
@@ -831,7 +812,7 @@
                 // 鏌ヨ绔欑偣璇︾粏淇℃伅
                 BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
                 if (staDetl == null) {
-                    log.error("鍑哄簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
+                    News.error("鍑哄簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
                     break;
 //                    continue;
                 }
@@ -840,66 +821,16 @@
                         .eq("loc_sts","R")
                         .eq("loc_no",wrkMast.getSourceLocNo()));
                 if(Cools.isEmpty(locMast)){
-                    log.error("鍑哄簱 ===>> 搴撲綅涓病鏈夎繖绗旇祫鏂�",wrkMast.getSourceLocNo());
+                    News.error("鍑哄簱 ===>> 搴撲綅涓病鏈夎繖绗旇祫鏂�",wrkMast.getSourceLocNo());
                     continue;
                 }
 
-
-                // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵��
-                if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() !=null && staDetl.getCanouting().equals("Y")
-                        && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) {
-                    //娴嬭瘯搴撲綅鍑哄簱蹇呴』瑕佹寜鍚姩鎸夐挳鎵嶈兘鍑哄簱
-                    if(wrkMast.getStaNo()==206 && locMast.getCtnKind()==0){
-                        log.error("鍑哄簱 ===>> 绛夊緟鍚姩鍑哄簱鎸夐挳",wrkMast);
-                        continue;
-                    }
-                    // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-
+                //娑堥槻鎶ヨ鍑哄簱
+                if(wrkMast.getStaNo()==1000&& locMast.getCtnKind()==1){
                     // 鍫嗗灈鏈烘帶鍒惰繃婊�
                     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);
-                            // 姝ゆ爣璁伴伩鍏嶅娆℃墽琛岀Щ搴撲换鍔�
-                            if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())
-                                || Cools.isEmpty(waitWrkMast)) {
-                                wrkMast.setUpdMk("Y");
-                                wrkMastMapper.updateById(wrkMast);
-                                // 鐢熸垚宸ヤ綔妗�,灏嗘祬搴撲綅绉昏浆鍒版柊鐨勫簱浣嶄腑
-                                moveLocForDeepLoc(slave, shallowLoc);
-                            }
-                            log.error("{}浠诲姟鍑哄簱澶辫触锛屾祬搴撲綅鍫靛锛�", wrkMast.getWrkNo());
-                            continue;
-                        } else if (shallowLoc.getLocSts().equals("Q") || shallowLoc.getLocSts().equals("S")){
-                            WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
-                            if (null != waitWrkMast && waitWrkMast.getWrkSts()==4) {
-                                continue;
-                            }
-                        }
                     }
 
                     // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
@@ -922,7 +853,7 @@
                     crnCommand.setDestinationPosZ(crnStn.getLev().shortValue());     // 鐩爣搴撲綅灞�
                     crnCommand.setBarcode(wrkMast.getBarcode());
                     if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
-                        log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
+                        News.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
                     } else {
                         // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
                         Date now = new Date();
@@ -930,9 +861,101 @@
                         wrkMast.setCrnStrTime(now);
                         wrkMast.setModiTime(now);
                         if (wrkMastMapper.updateById(wrkMast) == 0) {
-                            log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+                            News.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
                         }
                         break;
+                    }
+                }else {
+                    // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵��
+                    if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() !=null && staDetl.getCanouting().equals("Y")
+                            && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) {
+                        //娴嬭瘯搴撲綅鍑哄簱蹇呴』瑕佹寜鍚姩鎸夐挳鎵嶈兘鍑哄簱
+                        if((wrkMast.getStaNo()==206 || wrkMast.getStaNo()==1000)&& locMast.getCtnKind()==0){
+                            News.error("鍑哄簱 ===>> 绛夊緟鍚姩鍑哄簱鎸夐挳",wrkMast);
+                            continue;
+                        }
+                        // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+
+                        // 鍫嗗灈鏈烘帶鍒惰繃婊�
+                        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) {
+                                    News.error("{}搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒", shallowLocNo);
+                                } else {
+                                    if(waitWrkMast.getWrkSts() == 11) {
+                                        waitWrkMast.setIoPri(15D);
+                                        waitWrkMast.setModiTime(new Date());
+                                        if (wrkMastMapper.updateById(waitWrkMast) == 0) {
+                                            News.error("璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
+                                        }
+                                        continue;
+                                    } else {
+
+                                    }
+                                }
+                            } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) {
+                                WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
+                                // 姝ゆ爣璁伴伩鍏嶅娆℃墽琛岀Щ搴撲换鍔�
+                                if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())
+                                        || Cools.isEmpty(waitWrkMast)) {
+                                    wrkMast.setUpdMk("Y");
+                                    wrkMastMapper.updateById(wrkMast);
+                                    // 鐢熸垚宸ヤ綔妗�,灏嗘祬搴撲綅绉昏浆鍒版柊鐨勫簱浣嶄腑
+                                    moveLocForDeepLoc(slave, shallowLoc);
+                                }
+                                News.error("{}浠诲姟鍑哄簱澶辫触锛屾祬搴撲綅鍫靛锛�", wrkMast.getWrkNo());
+                                continue;
+                            } else if (shallowLoc.getLocSts().equals("Q") || shallowLoc.getLocSts().equals("S")){
+                                WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(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());     // 鐩爣搴撲綅灞�
+                        crnCommand.setBarcode(wrkMast.getBarcode());
+                        if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
+                            News.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
+                        } else {
+                            // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
+                            Date now = new Date();
+                            wrkMast.setWrkSts(12L);
+                            wrkMast.setCrnStrTime(now);
+                            wrkMast.setModiTime(now);
+                            if (wrkMastMapper.updateById(wrkMast) == 0) {
+                                News.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+                            }
+                            break;
+                        }
                     }
                 }
             }
@@ -1060,15 +1083,42 @@
      * 搴撲綅绉昏浆
      */
     public void locToLoc(CrnSlave slave, CrnProtocol crnProtocol){
+//        log.info("寮�濮嬬Щ搴撲换鍔$▼搴�");
+        //鑾峰彇鎵�鏈夌Щ搴撲换鍔�
+        List<WrkMast> wrkMasts=wrkMastMapper.selectLocMoves(slave.getId());
         // 鑾峰彇宸ヤ綔妗d俊鎭�
-        WrkMast wrkMast = wrkMastMapper.selectLocMove(slave.getId());
-        if (null == wrkMast) {
+        WrkMast wrkMast =null;
+        if(Cools.isEmpty(wrkMasts)){
             return;
         }
+        //鍏堟煡娴嬭瘯搴撲綅杞琌K鎴栬�匩G搴撲綅鎸変簡鎸夐挳鐨�
+        for (WrkMast wm: wrkMasts) {
+            LocMast sourceSta1 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no",wm.getSourceLocNo()));
+            if (!Cools.isEmpty(sourceSta1.getCtnKind())){
+                if(sourceSta1.getCtnKind()==1){
+                    wrkMast=wm;
+                    break;
+                }
+            }
+        }
+        //鍚庢煡绛夊緟搴撲綅杞祴璇曞簱浣�
+        if(Cools.isEmpty(wrkMast)){
+            for (WrkMast wm: wrkMasts) {
+                LocMast sourceSta1 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no",wm.getSourceLocNo()));
+                if (sourceSta1.getLocType1()==3){
+                        wrkMast=wm;
+                }
+            }
+        }
+        //閮芥病鏈夋弧瓒虫潯浠剁殑锛岃烦杩囩Щ搴�
+        if(Cools.isEmpty(wrkMast)){
+            return;
+        }
+
         // 鑾峰彇婧愬簱浣嶄俊鎭�
         LocMast sourceSta = locMastService.selectById(wrkMast.getSourceLocNo());
         if (null == sourceSta) {
-            log.error("宸ヤ綔妗e簱浣嶇Щ杞け璐ワ紝鍘熷洜锛氭绱㈡簮搴撲綅澶辫触锛佸伐浣滃彿={}锛屾簮搴撲綅={}", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
+            News.error("宸ヤ綔妗e簱浣嶇Щ杞け璐ワ紝鍘熷洜锛氭绱㈡簮搴撲綅澶辫触锛佸伐浣滃彿={}锛屾簮搴撲綅={}", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
             return;
         }
         // 婧愬簱浣�  搴撲綅鐘舵�佸垽鏂�
@@ -1078,7 +1128,7 @@
         // 鑾峰彇鐩爣搴撲綅淇℃伅
         LocMast sta = locMastService.selectById(wrkMast.getLocNo());
         if (null == sta) {
-            log.error("宸ヤ綔妗e簱浣嶇Щ杞け璐ワ紝鍘熷洜锛氭绱㈢洰鏍囧簱浣嶅け璐ワ紒宸ヤ綔鍙�={}锛屾簮搴撲綅={}", wrkMast.getWrkNo(), wrkMast.getLocNo());
+            News.error("宸ヤ綔妗e簱浣嶇Щ杞け璐ワ紝鍘熷洜锛氭绱㈢洰鏍囧簱浣嶅け璐ワ紒宸ヤ綔鍙�={}锛屾簮搴撲綅={}", wrkMast.getWrkNo(), wrkMast.getLocNo());
             return;
         }
         // 鑾峰彇鍫嗗灈鏈轰俊鎭� 骞� 鍒ゆ柇鏄惁鍙叆鍑�
@@ -1099,7 +1149,7 @@
 
         //娴嬭瘯搴撲綅鍑哄簱蹇呴』瑕佹寜鍚姩鎸夐挳鎵嶈兘鍑哄簱
         if(sourceSta.getLocType1()==1 && sourceSta.getCtnKind()==0){
-            log.error("鍑哄簱 ===>> 绛夊緟鍚姩鎸夐挳",wrkMast);
+            News.error("鍑哄簱 ===>> 绛夊緟鍚姩鎸夐挳",wrkMast);
             return;
         }
 
@@ -1121,7 +1171,7 @@
             crnCommand.setFireStaut((short) 1);
         }
         if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
-            log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
+            News.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
         } else {
             // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
             Date now = new Date();
@@ -1129,9 +1179,10 @@
             wrkMast.setCrnStrTime(now);
             wrkMast.setModiTime(now);
             if (wrkMastMapper.updateById(wrkMast) == 0) {
-                log.error("銆愬簱浣嶇Щ杞�� 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+                News.error("銆愬簱浣嶇Щ杞�� 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
             }
         }
+        log.info("缁撴潫绉诲簱浠诲姟绋嬪簭");
 
     }
 
@@ -1154,7 +1205,7 @@
                     // 鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。
                     WrkMast wrkMast = wrkMastMapper.selectPakInStep3(crnProtocol.getTaskNo().intValue());
                     if (wrkMast == null) {
-                        log.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo());
+                        News.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo());
                         continue;
                     }
                     // 鍏ュ簱 + 搴撲綅杞Щ  ==> 4.鍏ュ簱瀹屾垚
@@ -1423,7 +1474,7 @@
      * 鍑哄簱  ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�
      */
     @Async
-    public void ledExecute() {
+    public synchronized void ledExecute() {
         for (LedSlave led : slaveProperties.getLed()) {
             // 鑾峰彇杈撻�佺嚎plc绾跨▼
             DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId());
@@ -1434,20 +1485,27 @@
             for (Integer staNo : led.getStaArr()) {
                 // 鑾峰彇鍙夎溅绔欑偣
                 StaProtocol staProtocol = devpThread.getStation().get(staNo);
-                if (null == staProtocol || null == staProtocol.getWorkNo() || 0 == staProtocol.getWorkNo() || !staProtocol.isLoading()) {
+                if (null == staProtocol || null == staProtocol.getWorkNo() || 0 == staProtocol.getWorkNo()) {
                     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:
+                        ledCommand.setTitle("鍏ㄦ澘鍏ュ簱");
+                        break;
+                    case 10:
+                        ledCommand.setTitle("绌烘澘鍏ュ簱");
+                        break;
                     case 101:
                         ledCommand.setTitle("鍏ㄦ澘鍑哄簱");
                         break;
@@ -1465,16 +1523,39 @@
                         ledCommand.setEmptyMk(true);
                         break;
                     default:
-                        log.error("浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkMast.getWrkNo(), wrkMast.getIoType());
+                        News.error("浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkMast.getWrkNo(), wrkMast.getIoType());
                         break;
                 }
                 ledCommand.setSourceLocNo(wrkMast.getSourceLocNo());
                 ledCommand.setStaNo(wrkMast.getStaNo());
-                if (wrkMast.getIoType() != 110) {
+                ledCommand.setBarcode(wrkMast.getBarcode());
+                if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) {
                     List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo());
-                    wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme())));
+
+                    wrkDetls.forEach(wrkDetl -> {
+                        Double total = 0.0;
+                        EntityWrapper<LocDetl> wrapper = new EntityWrapper<>();
+                        LocDetl locDetl = locDetlService.selectOne(wrapper.eq("zpallet", wrkDetl.getZpallet()).eq("matnr", wrkDetl.getMatnr()));
+                        if (Cools.isEmpty(locDetl)) {
+                            total = wrkDetl.getAnfme();
+                        } else {
+                            total = locDetl.getAnfme();
+                        }
+                        if (wrkMast.getIoType() == 101 || wrkMast.getIoType() == 1) {
+                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total));
+                        }
+                        if (wrkMast.getIoType() == 103 && (null == wrkDetl.getInspect() || 0 == wrkDetl.getInspect())) {
+                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total));
+                        }
+                        if (wrkMast.getIoType() == 107 || wrkMast.getIoType() == 104) {
+                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total));
+                        }
+                    });
                 }
                 commands.add(ledCommand);
+            }
+            if(Cools.isEmpty(wrkMasts)){
+                continue;
             }
             Set<Integer> workNos = wrkMasts.stream().map(WrkMast::getWrkNo).collect(Collectors.toSet());
             // 鑾峰彇LED绾跨▼
@@ -1486,10 +1567,8 @@
             // 鍛戒护涓嬪彂 -------------------------------------------------------------------------------
             if (!commands.isEmpty()) {
                 if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(1, commands))) {
-                    log.error("{}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
+                    News.error("{}鍙稬ED鏄剧ず鍐呭鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
                     continue;
-                } else {
-                    ledThread.setLedMk(false);
                 }
             }
 
@@ -1565,12 +1644,12 @@
             // 鑾峰彇led绾跨▼
             LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId());
             // led鏄剧ず榛樿鍐呭
-            if (reset && !ledThread.isLedMk()) {
-                ledThread.setLedMk(true);
+            if (reset) {
+                if (ledThread == null) {
+                    continue;
+                }
                 if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(2, new ArrayList<>()))) {
-                    log.error("{}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
-                } else {
-
+                    News.error("{}鍙稬ED鏄剧ず榛樿鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
                 }
             }
         }
@@ -1890,15 +1969,15 @@
                 if (wrkMast == null) { continue; }
                 // 鍏ュ簱
                 if (wrkMast.getWrkSts() == 1 || wrkMast.getWrkSts() == 2) {
-                    log.warn("鍫嗗灈鏈洪潪绌洪棽鎯呭喌涓嬶紝寮�濮嬩慨鏀瑰伐浣滄。鐘舵�併�俒id:{},鏃堕棿锛歿}] >>>>> 鍫嗗灈鏈哄綋鍓嶇姸鎬佷负锛歿}銆備换鍔″彿:{}", crn.getId(), DateUtils.convert(now, DateUtils.yyyyMMddHHmmsssss_F), crnProtocol.getStatusType().desc, crnProtocol.getTaskNo());
+                    News.warn("鍫嗗灈鏈洪潪绌洪棽鎯呭喌涓嬶紝寮�濮嬩慨鏀瑰伐浣滄。鐘舵�併�俒id:{},鏃堕棿锛歿}] >>>>> 鍫嗗灈鏈哄綋鍓嶇姸鎬佷负锛歿}銆備换鍔″彿:{}", crn.getId(), DateUtils.convert(now, DateUtils.yyyyMMddHHmmsssss_F), crnProtocol.getStatusType().desc, crnProtocol.getTaskNo());
                     // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�
                     wrkMast.setWrkSts(3L);
                     wrkMast.setCrnStrTime(now);
                     wrkMast.setModiTime(now);
                     if (wrkMastMapper.updateById(wrkMast) == 0) {
-                        log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+                        News.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
                     }
-                    log.warn("淇敼宸ヤ綔妗g姸鎬佹垚鍔熴�俒鏃堕棿锛歿}] >>>>> 浠诲姟鍙�:{}",  DateUtils.convert(now, DateUtils.yyyyMMddHHmmsssss_F),  wrkMast.getWrkNo());
+                    News.warn("淇敼宸ヤ綔妗g姸鎬佹垚鍔熴�俒鏃堕棿锛歿}] >>>>> 浠诲姟鍙�:{}",  DateUtils.convert(now, DateUtils.yyyyMMddHHmmsssss_F),  wrkMast.getWrkNo());
                 }
                 // 鍑哄簱銆佺Щ搴�
                 if (wrkMast.getWrkSts() == 11) {
@@ -1908,9 +1987,9 @@
                     wrkMast.setCrnStrTime(now);
                     wrkMast.setModiTime(now);
                     if (wrkMastMapper.updateById(wrkMast) == 0) {
-                        log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+                        News.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
                     }
-                    log.warn("淇敼宸ヤ綔妗g姸鎬佹垚鍔熴�俒鏃堕棿锛歿}] >>>>> 浠诲姟鍙�:{}",  DateUtils.convert(now, DateUtils.yyyyMMddHHmmsssss_F),  wrkMast.getWrkNo());
+                    News.warn("淇敼宸ヤ綔妗g姸鎬佹垚鍔熴�俒鏃堕棿锛歿}] >>>>> 浠诲姟鍙�:{}",  DateUtils.convert(now, DateUtils.yyyyMMddHHmmsssss_F),  wrkMast.getWrkNo());
                 }
 
 
@@ -1984,7 +2063,7 @@
             // 鏌ヨ绔欑偣璇︾粏淇℃伅
             BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
             if (staDetl == null) {
-                log.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
+                News.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
                 continue;
             }
             if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 && staProtocol.isInEnable()
@@ -2029,7 +2108,7 @@
             crnCommand.setDestinationPosY((short)19);     // 鐩爣搴撲綅鍒�
             crnCommand.setDestinationPosZ((short)1);     // 鐩爣搴撲綅灞�
             if (!MessageQueue.offer(SlaveType.Crn, 1, new Task(2, crnCommand))) {
-                log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", 1, JSON.toJSON(crnCommand));
+                News.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", 1, JSON.toJSON(crnCommand));
             } else {
             }
         }
@@ -2295,17 +2374,18 @@
                 if (!Cools.isEmpty(locMast)){
                     //鎶ヨ淇″彿鍐欏叆1
                     if (!MessageQueue.offer(SlaveType.Crn, 1, new Task(4, 1))) {
-                        log.error("鐏  ===>> 缁欏爢鍨涙満鍙戦�佹姤璀︿俊鍙峰け璐�");
+                        News.error("鐏  ===>> 缁欏爢鍨涙満鍙戦�佹姤璀︿俊鍙峰け璐�");
                     }
+                    News.error("鐏!!!!!!!  ===>> 缁欏爢鍨涙満鍙戦�佹姤璀︿俊鍙锋垚鍔�");
                 } else {
                     //鎶ヨ淇″彿娌℃湁鍚庯紝澶嶄綅鍦板潃
                     if (!MessageQueue.offer(SlaveType.Crn, 1, new Task(4, 0))) {
-                        log.error("鐏  ===>> 缁欏爢鍨涙満娓呴浂澶嶄綅鎶ヨ淇″彿澶辫触");
+                        News.error("鐏  ===>> 缁欏爢鍨涙満娓呴浂澶嶄綅鎶ヨ淇″彿澶辫触");
                     }
                 }
             }
         } catch (Exception e) {
-            log.error("鐏  ===>> 缁欏爢鍨涙満鍙戦�佽鎶ュけ璐�", e);
+            News.error("鐏  ===>> 缁欏爢鍨涙満鍙戦�佽鎶ュけ璐�", e);
             e.printStackTrace();
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
         }
@@ -2321,18 +2401,18 @@
             for (DevpSlave devp : slaveProperties.getDevp()) {
                 BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no",103));
                 if (Cools.isEmpty(basDevp)){
-                    log.error("103绔欑偣鏌ヨ澶辫触-MainServiceImpl.java-2255琛�");
+                    News.error("103绔欑偣鏌ヨ澶辫触-MainServiceImpl.java-2255琛�");
                 }
                 if (basDevp.getAutoing().equals("Y") && basDevp.getWrkNo()>0 && basDevp.getLoading().equals("Y") ){
                     WrkDetl wrkDetl = wrkDetlService.devpPackNo(basDevp.getWrkNo());
                     if (Cools.isEmpty(wrkDetl)){
-                        log.error("103绔欑偣鏌ヨ澶辫触-MainServiceImpl.java-2255琛�");
+                        News.error("103绔欑偣鏌ヨ澶辫触-MainServiceImpl.java-2255琛�");
                     }
                     MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(4,wrkDetl.getMatnr()));
                 }
             }
         } catch (Exception e) {
-            log.error("103  ===>> 缁欒緭閫佺嚎鍙戦�丳ack鐮佸け璐�", e);
+            News.error("103  ===>> 缁欒緭閫佺嚎鍙戦�丳ack鐮佸け璐�", e);
             e.printStackTrace();
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
         }
@@ -2345,18 +2425,24 @@
         try {
             // 鏍规嵁杈撻�佺嚎plc閬嶅巻
             for (DevpSlave devp : slaveProperties.getDevp()) {
+                log.info("2363琛岀▼搴忓紑濮嬭繍琛�");
                 SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
                 if(null != devpThread){
                     for (int i = 0; i < 48; i++){
+//                        log.info("2367琛岀▼搴忓紑濮嬭繍琛岋紝绗�"+i+"娆�");
+                        boolean fig=false;
                         //鏌ヨ鍦ㄥ簱鍜岄绾﹀嚭搴�
                         LocMast locMast=locMastService.selectztgx("F","R",i);
                         if(!Cools.isEmpty(locMast)){
+//                            log.info("2372琛岀▼搴忓紑濮嬭繍琛岋紝鏌ヨ娴嬭瘯妗�");
                             TestMast testMast=testMastService.selectOne(new EntityWrapper<TestMast>()
                                     .eq("loc_no",locMast.getLocNo())
                                     .eq("user_id",locMast.getBarcode()));
                             if(Cools.isEmpty(testMast)){
+//                                log.info("2377琛岀▼搴忓紑濮嬭繍琛岋紝娴嬭瘯妗d负绌猴紝璺宠繃");
                                 continue;
                             }
+//                            log.info("2380琛岀▼搴忓紑濮嬭繍琛岋紝娴嬭瘯妗d笉涓虹┖锛屼笅涓�姝�");
                             //devpThread.startSignal[i][0]
                             //0:绌�,1:鍚姩涓�,2:宸ヤ綔涓�,3:鑷姩鏆傚仠,4:姝e父瀹屾垚(OK),5:寮傚父鍋滄(NG),6:鍦ㄧ嚎,7:绂荤嚎,8:绌洪棽
 
@@ -2365,23 +2451,59 @@
 
                             //testMast.setStatus
                             //"鐘舵�� 0: 寰呯敵璇�  1: 鐢宠涓�  2: 宸插鏍� 3:娴嬭瘯涓� 4:瀹屾垚 5:绉诲簱 6:鐏"
-                            if(devpThread.startSignal[i][0]==1){
+                            if(devpThread.startSignal[i][0]==8){
+                                News.info("2390琛岀▼搴忓紑濮嬭繍琛岋紝淇敼娴嬭瘯妗g姸鎬佷负 1銆佺敵璇蜂腑锛屽紑濮嬩慨鏀瑰墠锛�"+ JSON.toJSONString(testMast));
                                 testMast.setStatus(1);
+                                locMast.setPackStatus(1);
                                 testMast.setModiTime(new Date());
-                            }else if(devpThread.startSignal[i][0]==2){
+                                log.info("2394琛岀▼搴忓紑濮嬭繍琛岋紝淇敼娴嬭瘯妗g姸鎬佷负 1銆佺敵璇蜂腑,淇敼鏁版嵁鍚庛�佹湭鏇存柊"+JSON.toJSONString(testMast));
+                            }else if(devpThread.startSignal[i][0]==2 && locMast.getPackStatus()!=2){
+                                News.info("2396琛岀▼搴忓紑濮嬭繍琛岋紝淇敼娴嬭瘯妗g姸鎬佷负 3銆佹祴璇曚腑锛屽紑濮嬩慨鏀瑰墠锛�"+JSON.toJSONString(testMast));
                                 testMast.setStatus(3);
+                                locMast.setPackStatus(2);
                                 testMast.setModiTime(new Date());
+                                log.info("2400锛屼慨鏀规祴璇曟。鐘舵�佷负 3銆佹祴璇曚腑,淇敼鏁版嵁鍚庛�佹湭鏇存柊"+JSON.toJSONString(testMast));
+                                //NG杞琌K闇�瑕佽繕鍘熸簮搴撲綅鍜岀洰鏍囧簱浣嶇姸鎬侊紝OK杞琋G 鍒犻櫎浠诲姟妗�
+                                WrkMast wrkMast=wrkMastService.selectOne(new EntityWrapper<WrkMast>()
+                                        .eq("source_loc_no",locMast.getLocNo())
+                                        .eq("wrk_sts",11));
+                                News.info("2405锛屾煡璇㈢姸鎬佷负鐢熸垚鍑哄簱id鐨勬祴璇曞畬鎴愶紙NG鎴朞K锛変换鍔℃。锛�"+JSON.toJSONString(wrkMast));
+                                if(!Cools.isEmpty(wrkMast)){
+                                    if(wrkMast.getWrkSts()==11){
+                                        if(wrkMast.getIoType()==11){
+                                            log.info("2409锛屽垹闄や换鍔℃。涓虹Щ搴撶殑锛�"+JSON.toJSONString(wrkMast));
+                                            LocMast locMast1=locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no",wrkMast.getLocNo()));
+                                            locMast1.setLocSts("O");
+                                            locMastService.update(locMast1,new EntityWrapper<LocMast>().eq("loc_no",wrkMast.getLocNo()));
+                                        }
+                                        wrkMastMapper.deleteById(wrkMast);
+                                        log.info("2415锛屽垹闄ゅ伐浣滄。"+JSON.toJSONString(wrkMast)+JSON.toJSONString(locMast));
+                                        locMast.setLocSts("F");
+                                        log.info("2417锛屽垹闄ゅ伐浣滄。"+JSON.toJSONString(wrkMast)+JSON.toJSONString(locMast));
+                                        wrkDetlService.delete(new EntityWrapper<WrkDetl>().eq("wrk_no",wrkMast.getWrkNo()));
+                                        log.info("2419锛屽垹闄ゅ伐浣滄槑缁�"+wrkMast.getWrkNo());
+                                        if(!locMastService.update(locMast,new EntityWrapper<LocMast>()
+                                                .eq("channel",i+1))){
+                                            log.error("2422淇敼娴嬭瘯搴撲綅鐘舵�佸け璐�"+locMast.getLocNo()+JSON.toJSONString(locMast));
+                                        }else{
+                                            log.error("2424淇敼娴嬭瘯搴撲綅鐘舵�佹垚鍔�"+locMast.getLocNo()+JSON.toJSONString(locMast));
+                                            fig=true;
+                                        }
+                                    }
+                                }
                             }else if(devpThread.startSignal[i][0]==3){
                                 locMast.setPackStatus(7);
                                 testMast.setModiTime(new Date());
-                            }else if(devpThread.startSignal[i][0]==4){
+                            }else if(devpThread.startSignal[i][0]==4 && testMast.getStatus()!=4&&locMast.getFireStatus()!=1&&testMast.getStatus()!=6){
                                 locMast.setPackStatus(3);
                                 testMast.setStatus(4);
                                 testMast.setModiTime(new Date());
-                            }else if(devpThread.startSignal[i][0]==5){
+                                testMastService.insertPackQualified(true,new Date(),testMast.getBarcode());
+                            }else if(devpThread.startSignal[i][0]==5 && testMast.getStatus()!=4&&locMast.getFireStatus()!=1&&testMast.getStatus()!=6){
                                 locMast.setPackStatus(4);
                                 testMast.setStatus(4);
                                 testMast.setModiTime(new Date());
+                                testMastService.insertPackQualified(false,new Date(),testMast.getBarcode());
                             }
 //                            else if(devpThread.startSignal[i][0]==6||devpThread.startSignal[i][0]==7||devpThread.startSignal[i][0]==8){
 //                                locMast.setPackStatus(devpThread.startSignal[i][0]+3);
@@ -2392,28 +2514,36 @@
                                 if(!locMastService.update(locMast,new EntityWrapper<LocMast>()
                                         .eq("loc_sts","R")
                                         .eq("channel",i+1))){
-                                    log.error("淇敼鍚姩鎸夐挳鐘舵�侊紝娴嬭瘯搴撲綅鐘舵�佸け璐�"+locMast.getLocNo(),locMast);
+                                    News.error("淇敼鍚姩鎸夐挳鐘舵�侊紝娴嬭瘯搴撲綅鐘舵�佸け璐�"+locMast.getLocNo(),locMast);
                                 }
                             }else if(!locMast.getLocSts().equals("R")){
-                                if(!locMastService.update(locMast,new EntityWrapper<LocMast>()
-                                        .eq("loc_sts","F")
-                                        .eq("channel",i+1))){
-                                    log.error("淇敼娴嬭瘯搴撲綅鐘舵�佸け璐�"+locMast.getLocNo(),locMast);
+                                if(!fig){
+                                    if(!locMastService.update(locMast,new EntityWrapper<LocMast>()
+                                            .eq("loc_sts","F")
+                                            .eq("channel",i+1))){
+                                        News.error("淇敼娴嬭瘯搴撲綅鐘舵�佸け璐�"+locMast.getLocNo(),locMast);
+                                    }
                                 }
                                 if(!testMastService.update(testMast,new EntityWrapper<TestMast>()
                                         .eq("loc_no",locMast.getLocNo())
                                         .eq("user_id",locMast.getBarcode()))) {
-                                    log.error("淇敼娴嬭瘯妗g姸鎬佸け璐�" + locMast.getLocNo(), locMast);
+                                    News.error("淇敼娴嬭瘯妗g姸鎬佸け璐�" + locMast.getLocNo(), locMast);
                                 }
                             }
                         }
                     }
+                    //褰撳厖鏀剧數搴撲綅涓篛绌哄簱浣嶆椂
+                    //搴撲綅鐘舵�佹敼涓�8绌洪棽
                     //缁橮LC鍐欐秷闃蹭俊鍙�
                     for (int i=0;i<48;i++){
                         LocMast locMast=locMastService.selectOne(new EntityWrapper<LocMast>().eq("channel",i+1));
                         TestMast testMast=testMastService.selectOne(new EntityWrapper<TestMast>()
                                 .eq("loc_no",locMast.getLocNo())
                                 .eq("user_id",locMast.getBarcode()));
+                        if((locMast.getLocSts().equals("O")||locMast.getLocSts().equals("S"))&&devpThread.startSignal[i][0]!=8){
+                            Thread.sleep(1000);
+                            MessageQueue.offer(SlaveType.Devp, 1, new Task(6,locMast.getChannel()-1));
+                        }
                         try{
                             if(locMast.getFireStatus()!=devpThread.startSignal[i][1]){
                                 messageQueueOffer2(i,(short)((int)locMast.getFireStatus()),SlaveType.Devp, devp.getId());
@@ -2425,20 +2555,22 @@
                                     if(!testMastService.update(testMast,new EntityWrapper<TestMast>()
                                             .eq("loc_no",locMast.getLocNo())
                                             .eq("user_id",locMast.getBarcode()))) {
-                                        log.error("淇敼娴嬭瘯妗g姸鎬佸け璐�" + locMast.getLocNo(), locMast);
+                                        News.error("淇敼娴嬭瘯妗g姸鎬佸け璐�" + locMast.getLocNo(), locMast);
                                     }
                                 }
                             }
                         }catch (Exception e){
-                            log.error("鐏  ===>> 缁欒緭閫佺嚎鍙戦�佽鎶ュけ璐�,閫氶亾鍙凤細", i+1);
+                            News.error("鐏  ===>> 缁欒緭閫佺嚎鍙戦�佽鎶ュけ璐�,閫氶亾鍙凤細", i+1);
                         }
                     }
+
+
 
                 }
 
             }
         } catch (Exception e) {
-            log.error("鑾峰緱娴嬭瘯搴撲綅鐘舵�佸け璐�", e);
+            News.error("鑾峰緱娴嬭瘯搴撲綅鐘舵�佸け璐�", e);
             e.printStackTrace();
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
         }

--
Gitblit v1.9.1