From 73cf8ac847af5a3c22e83f64e92692e31e4576d0 Mon Sep 17 00:00:00 2001
From: dubin <dubin>
Date: 星期四, 21 八月 2025 22:34:43 +0800
Subject: [PATCH] 联调

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  417 +++++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 261 insertions(+), 156 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 44d3135..9a50fd6 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -4,6 +4,7 @@
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.baomidou.mybatisplus.plugins.Page;
 import com.core.common.Cools;
 import com.core.common.DateUtils;
 import com.core.exception.CoolException;
@@ -94,6 +95,8 @@
     private WrkMastService wrkMastService;
     @Autowired
     private BasRgvMapService basRgvMapService;
+    @Autowired
+    private BasCrnOptService crnOptService;
 
     @Value("${wms.url}")
     private String wmsUrl;
@@ -194,7 +197,8 @@
                         && staProtocol.isLoading()
                         && staProtocol.isInEnable()
                         && !staProtocol.isEmptyMk()
-                        && staProtocol.isPakMk()) {
+                        && staProtocol.isPakMk()
+                        && staProtocol.getWorkNo()==9999) {
                     if (Cools.isEmpty(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode) || "00000000".equals(barcode)) {
                         News.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
 
@@ -412,11 +416,11 @@
             // 閬嶅巻鎷f枡鍏ュ簱鍙�
             for (DevpSlave.Sta pickSta : devp.getPickSta()) {
                 // 鑾峰彇鏉$爜鎵弿浠俊鎭�
-                BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, pickSta.getBarcode());
-                if (barcodeThread == null) {
-                    continue;
-                }
-                String barcode = barcodeThread.getBarcode();
+//                BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, pickSta.getBarcode());
+//                if (barcodeThread == null) {
+//                    continue;
+//                }
+//                String barcode = barcodeThread.getBarcode();
                 // 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭�
                 SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
 
@@ -427,87 +431,87 @@
                     continue;
                 }
                 // 灏哄妫�娴嬪紓甯�
-                boolean back = false;
-                String errMsg = "";
-                if (!back && staProtocol.isFrontErr()) {
-                    errMsg = "鍓嶈秴闄�";
-                    back = true;
-                }
-                if (!back && staProtocol.isBackErr()) {
-                    errMsg = "鍚庤秴闄�";
-                    back = true;
-                }
-                if (!back && staProtocol.isHighErr()) {
-                    errMsg = "楂樿秴闄�";
-                    back = true;
-                }
-                if (!back && staProtocol.isLeftErr()) {
-                    errMsg = "宸﹁秴闄�";
-                    back = true;
-                }
-                if (!back && staProtocol.isRightErr()) {
-                    errMsg = "鍙宠秴闄�";
-                    back = true;
-                }
-                if (!back && staProtocol.isWeightErr()) {
-                    errMsg = "瓒呴噸";
-                    back = true;
-                }
-                if (!back && staProtocol.isBarcodeErr()) {
-                    errMsg = "鎵爜澶辫触";
-                    back = true;
-                }
-                if(staProtocol.getSiteId() > 400){
-                    back = false;
-                }
+//                boolean back = false;
+//                String errMsg = "";
+//                if (!back && staProtocol.isFrontErr()) {
+//                    errMsg = "鍓嶈秴闄�";
+//                    back = true;
+//                }
+//                if (!back && staProtocol.isBackErr()) {
+//                    errMsg = "鍚庤秴闄�";
+//                    back = true;
+//                }
+//                if (!back && staProtocol.isHighErr()) {
+//                    errMsg = "楂樿秴闄�";
+//                    back = true;
+//                }
+//                if (!back && staProtocol.isLeftErr()) {
+//                    errMsg = "宸﹁秴闄�";
+//                    back = true;
+//                }
+//                if (!back && staProtocol.isRightErr()) {
+//                    errMsg = "鍙宠秴闄�";
+//                    back = true;
+//                }
+//                if (!back && staProtocol.isWeightErr()) {
+//                    errMsg = "瓒呴噸";
+//                    back = true;
+//                }
+//                if (!back && staProtocol.isBarcodeErr()) {
+//                    errMsg = "鎵爜澶辫触";
+//                    back = true;
+//                }
+//                if(staProtocol.getSiteId() > 400){
+//                    back = false;
+//                }
 
                 // 閫�鍥�
-                if (back) {
-                    log.info("errmsg: " + errMsg);
-//                        News.warn("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", inSta.getStaNo(), errMsg);
-                    MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(5, errMsg));
-                    if (!staProtocol.isLoading()) {
-                        continue;
-                    }
-                    if (!staProtocol.isPakMk()) {
-                        continue;
-                    }
-                    staProtocol.setWorkNo(wrkNo);
-                    News.info("{}鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", pickSta.getStaNo(), errMsg, wrkNo);
-                    wrkNo++;
-                    staProtocol.setStaNo(pickSta.getBackSta().shortValue());
-                    devpThread.setPakMk(staProtocol.getSiteId(), false);
-                    MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                    log.error("杈撻�佺嚎涓嬪彂1锛�" + 9999 + "," + pickSta.getBackSta());
-                    LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed());
-
-                    // led 寮傚父鏄剧ず
-                    if (ledThread != null) {
-                        MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(5, errMsg));
-                    }
-                    continue;
-                }
-                if(staProtocol.getSiteId() < 400){
-                    if (!Cools.isEmpty(barcode)) {
-                        News.infoNoLog("" + mark + " - 1" + " - {}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", pickSta.getBarcode(), barcode);
-                        if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
-                            continue;
-                        }
-                    } else {
-                        continue;
-                    }
-
-
-                    if (!Cools.isEmpty(barcode)) {
-//                    News.info(""+mark+" - 1"+" - {}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", pickSta.getBarcode(), barcode);
-                        if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
-                            continue;
-                        }
-                    } else {
-                        continue;
-                    }
-
-                }
+//                if (back) {
+//                    log.info("errmsg: " + errMsg);
+////                        News.warn("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", inSta.getStaNo(), errMsg);
+//                    MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(5, errMsg));
+//                    if (!staProtocol.isLoading()) {
+//                        continue;
+//                    }
+//                    if (!staProtocol.isPakMk()) {
+//                        continue;
+//                    }
+//                    staProtocol.setWorkNo(wrkNo);
+//                    News.info("{}鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", pickSta.getStaNo(), errMsg, wrkNo);
+//                    wrkNo++;
+//                    staProtocol.setStaNo(pickSta.getBackSta().shortValue());
+//                    devpThread.setPakMk(staProtocol.getSiteId(), false);
+//                    MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+//                    log.error("杈撻�佺嚎涓嬪彂1锛�" + 9999 + "," + pickSta.getBackSta());
+//                    LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed());
+//
+//                    // led 寮傚父鏄剧ず
+//                    if (ledThread != null) {
+//                        MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(5, errMsg));
+//                    }
+//                    continue;
+//                }
+//                if(staProtocol.getSiteId() < 400){
+//                    if (!Cools.isEmpty(barcode)) {
+//                        News.infoNoLog("" + mark + " - 1" + " - {}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", pickSta.getBarcode(), barcode);
+//                        if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
+//                            continue;
+//                        }
+//                    } else {
+//                        continue;
+//                    }
+//
+//
+//                    if (!Cools.isEmpty(barcode)) {
+////                    News.info(""+mark+" - 1"+" - {}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", pickSta.getBarcode(), barcode);
+//                        if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
+//                            continue;
+//                        }
+//                    } else {
+//                        continue;
+//                    }
+//
+//                }
 
 
                 if (staProtocol == null) {
@@ -521,10 +525,11 @@
 
                 if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk()) {
                     News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛�");
-                    WrkMast wrkMast = wrkMastMapper.selectPickStep(barcode);
-                    if(staProtocol.getSiteId() > 400){
-                        wrkMast = wrkMastMapper.selectPickStep3(staProtocol.getWorkNo());
-                    }
+//                    WrkMast wrkMast = wrkMastMapper.selectPickStep(barcode);
+                    WrkMast wrkMast = wrkMastMapper.selectPakInStep3(staProtocol.getWorkNo().intValue());
+//                    if(staProtocol.getSiteId() > 400){
+//                        wrkMast = wrkMastMapper.selectPickStep3(staProtocol.getWorkNo());
+//                    }
 //                    WrkMast wrkMast = wrkMastMapper.selectPakInStep3(staProtocol.getWorkNo().intValue());
                     if (wrkMast == null) {
                         // 鏃犳嫞鏂欐暟鎹�
@@ -551,12 +556,12 @@
                             .eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿
                     StaDesc staDesc = staDescService.selectOne(wrapper);
                     if (Cools.isEmpty(staDesc)) {
-                        News.error("" + mark + " - 2" + " - 鍏ュ簱璺緞涓嶅瓨鍦紒type_no={},stn_no={},crn_no={}", wrkMast.getIoType(), pickSta.getStaNo(), wrkMast.getCrnNo());
-                        staProtocol.setWorkNo(wrkNo++);
-                        staProtocol.setStaNo((short) (pickSta.getStaNo().shortValue() - (short) 1));
-                        devpThread.setPakMk(staProtocol.getSiteId(), false);
-                        MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                        log.error("杈撻�佺嚎涓嬪彂4锛�" + 9989 + "," + (pickSta.getStaNo().shortValue() - (short) 1));
+//                        News.error("" + mark + " - 2" + " - 鍏ュ簱璺緞涓嶅瓨鍦紒type_no={},stn_no={},crn_no={}", wrkMast.getIoType(), pickSta.getStaNo(), wrkMast.getCrnNo());
+//                        staProtocol.setWorkNo(wrkNo++);
+//                        staProtocol.setStaNo((short) (pickSta.getStaNo().shortValue() - (short) 1));
+//                        devpThread.setPakMk(staProtocol.getSiteId(), false);
+//                        MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+//                        log.error("杈撻�佺嚎涓嬪彂4锛�" + 9989 + "," + (pickSta.getStaNo().shortValue() - (short) 1));
                         //LED
                         LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed());
                         // led 寮傚父鏄剧ず
@@ -609,9 +614,9 @@
 
                     // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
                     staProtocol.setWorkNo(wrkMast.getWrkNo());
-                    if(staProtocol.getSiteId() < 400){
+//                    if(staProtocol.getSiteId() < 400){
                         staProtocol.setStaNo(Short.valueOf(wrkMast.getStaNo().toString()));
-                    }
+//                    }
                     devpThread.setPakMk(staProtocol.getSiteId(), false);
                     boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                     log.error("杈撻�佺嚎涓嬪彂5锛�" + wrkMast.getWrkNo() + "," + wrkMast.getStaNo());
@@ -627,7 +632,7 @@
             }
 
         }
-//        News.infoNoLog(""+mark+" - 0"+" - 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱  ===銆嬫墽琛屽畬鎴�");
+        News.infoNoLog(""+mark+" - 0"+" - 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱  ===銆嬫墽琛屽畬鎴�");
     }
 
 
@@ -943,7 +948,7 @@
             }
             // 搴撲綅绉昏浆
             //mark - 3 - ....
-//            this.locToLoc(crn, crnProtocol, mark);
+            this.locToLoc(crn, crnProtocol, mark);
 //            this.crnRebackHp(crnProtocol, crnThread);
 
         }
@@ -1170,7 +1175,7 @@
 //            WrkMast wrkMast = wrkMastMapper.selectPakOutStep1(slave.getId(), crnStn.getStaNo());
             List<WrkMast> wrkMasts = wrkMastMapper.selectPakOutStep11(slave.getId(), crnStn.getStaNo());
             for (WrkMast wrkMast : wrkMasts) {
-                if (wrkMast == null) {
+                 if (wrkMast == null) {
                     continue;
                 }
                 // 宸ヤ綔妗g姸鎬佸垽鏂�
@@ -1190,9 +1195,26 @@
                 if (staProtocol == null) {
                     News.infoNoLog("" + mark + " - 2" + " - 3" + " - 鍫嗗灈鏈哄嚭搴撶珯淇℃伅(staProtocol!=null缁х画鎵ц,鍚﹀垯寰幆缁堟)锛歴taProtocol=" + staProtocol);
                     break;
-//                    continue;
                 } else {
                     staProtocol = staProtocol.clone();
+                }
+                StaProtocol staProtocol1 = devpThread.getStation().get(crnStn.getStaNo() - 1);
+                if (staProtocol1 == null) {
+                    News.infoNoLog("" + mark + " - 2" + " - 3" + " - 鍫嗗灈鏈哄嚭搴撶珯淇℃伅(staProtocol!=null缁х画鎵ц,鍚﹀垯寰幆缁堟)锛歴taProtocol=" + staProtocol);
+                    break;
+                } else {
+                    staProtocol1 = staProtocol1.clone();
+                }
+                StaProtocol staProtocol2 = devpThread.getStation().get(crnStn.getStaNo() - 2);
+                if (staProtocol2 == null) {
+                    News.infoNoLog("" + mark + " - 2" + " - 3" + " - 鍫嗗灈鏈哄嚭搴撶珯淇℃伅(staProtocol!=null缁х画鎵ц,鍚﹀垯寰幆缁堟)锛歴taProtocol=" + staProtocol);
+                    break;
+                } else {
+                    staProtocol2 = staProtocol2.clone();
+                }
+                //鍑哄叆鍙h緭閫佺嚎鍙厑璁稿瓨鍦ㄤ竴涓墭鐩�
+                if(staProtocol.isLoading() || staProtocol1.isLoading() || staProtocol2.isLoading() ) {
+                    break;
                 }
 
 //            // 鍏ュ嚭搴撴ā寮忓垽鏂�
@@ -1220,54 +1242,54 @@
                         break;
                     }
 
-//                    // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
-//                    if (Utils.isDeepLoc(slaveProperties, wrkMast.getSourceLocNo())) {
-//                        News.warnNoLog("" + mark + " - 2" + " - 6" + " - 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞� : 寮�濮嬫墽琛� 浠诲姟鍙�={}", wrkMast.getWrkNo());
-//                        String shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getSourceLocNo());
-//                        LocMast shallowLoc = locMastService.selectById(shallowLocNo);
-//                        // O.绌哄簱浣嶃�丵.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴撱�丼.鍏ュ簱棰勭害銆乆.绂佺敤 鐩存帴鎼紒
-//                        if (shallowLoc.getLocSts().equals("P") || shallowLoc.getLocSts().equals("R")) {
-//                            News.warnNoLog("" + mark + " - 2" + " - 7" + " - // O.绌哄簱浣嶃�丵.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴撱�丼.鍏ュ簱棰勭害銆乆.绂佺敤 鐩存帴鎼紒搴撲綅鐘舵��={}", shallowLoc.getLocSts());
+                    // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
+                    if (Utils.isDeepLoc(slaveProperties, wrkMast.getSourceLocNo())) {
+                        News.warnNoLog("" + mark + " - 2" + " - 6" + " - 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞� : 寮�濮嬫墽琛� 浠诲姟鍙�={}", wrkMast.getWrkNo());
+                        String shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getSourceLocNo());
+                        LocMast shallowLoc = locMastService.selectById(shallowLocNo);
+                        // O.绌哄簱浣嶃�丵.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴撱�丼.鍏ュ簱棰勭害銆乆.绂佺敤 鐩存帴鎼紒
+                        if (shallowLoc.getLocSts().equals("P") || shallowLoc.getLocSts().equals("R")) {
+                            News.warnNoLog("" + mark + " - 2" + " - 7" + " - // O.绌哄簱浣嶃�丵.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴撱�丼.鍏ュ簱棰勭害銆乆.绂佺敤 鐩存帴鎼紒搴撲綅鐘舵��={}", shallowLoc.getLocSts());
+                            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("" + mark + " - 2" + " - 8" + " - 璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
+                                    }
+                                    continue;
+                                } else {
+
+                                }
+                            }
+                        } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) {
+                            News.warnNoLog("" + mark + " - 2" + " - 9" + " - // F銆丏  搴撲綅鐘舵��={}", shallowLoc.getLocSts());
 //                            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("" + mark + " - 2" + " - 8" + " - 璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
-//                                    }
-//                                    continue;
-//                                } else {
-//
-//                                }
-//                            }
-//                        } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) {
-//                            News.warnNoLog("" + mark + " - 2" + " - 9" + " - // F銆丏  搴撲綅鐘舵��={}", shallowLoc.getLocSts());
-////                            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, mark);
-//                            }
-//                            News.error("{}浠诲姟鍑哄簱澶辫触锛屾祬搴撲綅鍫靛锛佹祬搴撲綅鍙�:{}", wrkMast.getWrkNo(), shallowLocNo);
-//                            continue;
-//                        } else if (shallowLoc.getLocSts().equals("Q") || shallowLoc.getLocSts().equals("S")) {
-//                            News.warnNoLog("" + mark + " - 2" + " - 10" + " - // Q銆丼  搴撲綅鐘舵��={}", shallowLoc.getLocSts());
-//                            WrkMast waitWrkMast = wrkMastMapper.selectByLocNo1(shallowLocNo);
-//                            if (null != waitWrkMast && waitWrkMast.getWrkSts() == 4) {
-//                                News.infoNoLog("" + mark + " - 2" + " - 11" + " - // F銆丏  宸ヤ綔鐘舵��(鍒ゆ柇鏉′欢涓�==4)={}", waitWrkMast.getWrkSts());
-//                                continue;
-//                            }
-//                        }
-//                    }
+                            //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, mark);
+                            }
+                            News.error("{}浠诲姟鍑哄簱澶辫触锛屾祬搴撲綅鍫靛锛佹祬搴撲綅鍙�:{}", wrkMast.getWrkNo(), shallowLocNo);
+                            continue;
+                        } else if (shallowLoc.getLocSts().equals("Q") || shallowLoc.getLocSts().equals("S")) {
+                            News.warnNoLog("" + mark + " - 2" + " - 10" + " - // Q銆丼  搴撲綅鐘舵��={}", shallowLoc.getLocSts());
+                            WrkMast waitWrkMast = wrkMastMapper.selectByLocNo1(shallowLocNo);
+                            if (null != waitWrkMast && waitWrkMast.getWrkSts() == 4) {
+                                News.infoNoLog("" + mark + " - 2" + " - 11" + " - // F銆丏  宸ヤ綔鐘舵��(鍒ゆ柇鏉′欢涓�==4)={}", waitWrkMast.getWrkSts());
+                                continue;
+                            }
+                        }
+                    }
 
                     // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
                     if (wrkMastMapper.selectWorking(slave.getId()) != null) {
@@ -1867,14 +1889,14 @@
                         } 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() == 101 || wrkMast.getIoType() == 1 || wrkMast.getIoType() == 53 || wrkMast.getIoType() == 57) {
+                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getOrderNo(),wrkDetl.getOutOrderNo(),wrkDetl.getUnit(),wrkDetl.getWeight(),wrkDetl.getSupp(),wrkDetl.getLength() ,wrkDetl.getTemp1(), wrkDetl.getProType(),wrkDetl.getAnfme(),wrkDetl.getTemp2(), 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() == 103 ) {
+                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getOrderNo(),wrkDetl.getOutOrderNo(),wrkDetl.getUnit(),wrkDetl.getWeight(),wrkDetl.getSupp(),wrkDetl.getLength() ,wrkDetl.getTemp1(), wrkDetl.getProType(),wrkDetl.getAnfme(),wrkDetl.getTemp2(), total));
                         }
                         if (wrkMast.getIoType() == 107) {
-                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(), total));
+                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getOrderNo(),wrkDetl.getOutOrderNo(),wrkDetl.getUnit(),wrkDetl.getWeight(),wrkDetl.getSupp(),wrkDetl.getLength() ,wrkDetl.getTemp1(), wrkDetl.getProType(),wrkDetl.getAnfme(),wrkDetl.getTemp2(), total));
                         }
                     });
                 }
@@ -2388,10 +2410,8 @@
         SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
         List<Integer> list = new ArrayList<>();
         list.add(101);
-        list.add(112);
         Map<Integer, Integer> map = new HashMap<>();
         map.put(101, 102);
-        map.put(112, 111);
         for (Integer site : list) {
             WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("sta_no", map.get(site)));
             if (!Cools.isEmpty(wrkMast)) {
@@ -2415,7 +2435,7 @@
                 }
                 Short loctype1 = 1;
                 if (site == 101) {
-                    loctype1 = 2;
+                    loctype1 = 1;
                 }
                 LocTypeDto locTypeDto = new LocTypeDto(loctype1, (short) 1, (short) 1);
                 locTypeDto.setSiteId(site);
@@ -3176,4 +3196,89 @@
         }
     }
 
+    public synchronized void crnMove() {
+        for (CrnSlave crn : slaveProperties.getCrn()) {
+            // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
+            CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+            if (crnProtocol == null) {
+                continue;
+            }
+            BasCrnp basCrnp = basCrnpService.selectById(crn.getId());
+            if (basCrnp == null) {
+                log.error("{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crn.getId());
+                continue;
+            }
+
+            if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO) {
+
+//                if ((crnProtocol.getCrnNo()==3 || crnProtocol.getCrnNo()==4) && crnProtocol.getBay()==0 && crnProtocol.getLevel() == 1) {
+//                    continue;
+//                }
+//                if ((crnProtocol.getCrnNo()==1 || crnProtocol.getCrnNo()==2) && crnProtocol.getBay()==1 && crnProtocol.getLevel() == 1) {
+//                    continue;
+//                }
+                if (crnProtocol.getCrnNo()==1 && crnProtocol.getBay()==1 && crnProtocol.getLevel() == 1) {
+                    continue;
+                }
+                Page<BasCrnOpt> basCrnOptPage = crnOptService.selectPage(new Page<>(1, 1), new EntityWrapper<BasCrnOpt>().eq("crn_no", crn.getId()).orderBy("send_time", false));
+                if (basCrnOptPage != null && basCrnOptPage.getRecords() != null && basCrnOptPage.getRecords().size() > 0) {
+                    if (System.currentTimeMillis() - basCrnOptPage.getRecords().get(0).getSendTime().getTime() < 1000 * 60 * 3) {
+                        continue;
+                    }
+                } else {
+                    if (System.currentTimeMillis() - crnProtocol.getLastCommandTime() < 1000 * 60 * 2) {
+                        continue;
+                    }
+                }
+                List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
+                        .eq("crn_no", crn.getId())
+                        .notIn("wrk_sts", 5, 14, 15)
+                );
+                if (!wrkMasts.isEmpty()) {
+                    continue;
+                }
+
+                CrnSlave.CrnStn crnStn = crn.getCrnInStn().get(0);
+
+                News.info("鍫嗗灈鏈烘棤浠诲姟鑷姩鍥炲叆搴撳彛寰呮満==>>" + crnProtocol.getCrnNo() + "鍙峰爢鍨涙満");
+                // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+                CrnCommand crnCommand = new CrnCommand();
+//                if (crnProtocol.getCrnNo()==3 || crnProtocol.getCrnNo()==4){
+//                    crnCommand.setCrnNo(crnProtocol.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
+//                    crnCommand.setTaskNo((short) 9999); // 宸ヤ綔鍙�
+//                    crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
+//                    crnCommand.setTaskMode(CrnTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡:  鍫嗗灈鏈虹Щ鍔�
+//                    crnCommand.setSourcePosX(crnStn.getRow().shortValue());     // 婧愬簱浣嶆帓
+//                    crnCommand.setSourcePosY((short) 0);     // 婧愬簱浣嶅垪
+//                    crnCommand.setSourcePosZ((short) 1);     // 婧愬簱浣嶅眰
+//                    crnCommand.setDestinationPosX((short) 0);     // 鐩爣搴撲綅鎺�
+//                    crnCommand.setDestinationPosY((short) 0);     // 鐩爣搴撲綅鍒�
+//                    crnCommand.setDestinationPosZ((short) 0);     // 鐩爣搴撲綅灞�
+//                    crnCommand.setCommand((short) 1);
+//                }else {
+                    crnCommand.setCrnNo(crnProtocol.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
+                    crnCommand.setTaskNo((short) 9999); // 宸ヤ綔鍙�
+                    crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
+                    crnCommand.setTaskMode(CrnTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡:  鍫嗗灈鏈虹Щ鍔�
+                    crnCommand.setSourcePosX(crnStn.getRow().shortValue());     // 婧愬簱浣嶆帓
+                    crnCommand.setSourcePosY((short) 1);     // 婧愬簱浣嶅垪
+                    crnCommand.setSourcePosZ((short) 1);     // 婧愬簱浣嶅眰
+                    crnCommand.setDestinationPosX((short) 0);     // 鐩爣搴撲綅鎺�
+                    crnCommand.setDestinationPosY((short) 0);     // 鐩爣搴撲綅鍒�
+                    crnCommand.setDestinationPosZ((short) 0);     // 鐩爣搴撲綅灞�
+                    crnCommand.setCommand((short) 1);
+//                }
+                if (!MessageQueue.offer(SlaveType.Crn, crnProtocol.getCrnNo(), new Task(2, crnCommand))) {
+                    News.error("鍫嗗灈鏈虹Щ鍔ㄥ懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", crnProtocol.getCrnNo(), JSON.toJSON(crnCommand));
+                }
+                crnThread.setBackHpFlag(true);
+                try {
+                    Thread.sleep(500);
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+    }
 }

--
Gitblit v1.9.1