From 63911be5189c5e61d76f8ab2423afbc24718fb20 Mon Sep 17 00:00:00 2001
From: yxFwq <1>
Date: 星期日, 14 七月 2024 10:39:55 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  112 ++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 89 insertions(+), 23 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 19179d0..0c458be 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -224,8 +224,17 @@
                     // 鍒ゆ柇閲嶅宸ヤ綔妗�
                     WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode);
                     if (wrkMast != null) {
-                        log.error("宸ヤ綔妗d腑宸插瓨鍦ㄨ绔欑姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,宸ヤ綔鍙�={}", wrkMast.getWrkNo());
-                        continue;
+                        LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
+                        barcodeThread.setBarcode("");
+                        staProtocol.setWorkNo(wrkMast.getWrkNo());
+                        staProtocol.setStaNo(wrkMast.getStaNo());
+
+                        devpThread.setPakMk(staProtocol.getSiteId(), false);
+                        boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                        if (!result) {
+                            throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
+                        }
+                        return;
                     }
 //                    // 鑾峰彇鍏ュ簱閫氱煡妗�
 //                    List<WaitPakin> waitPakins = waitPakinMapper.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", barcode).eq("io_status", "N"));
@@ -388,6 +397,22 @@
 //                            throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
 //                        }
                         continue;
+                    }
+
+                    // 鍒ゆ柇閲嶅宸ヤ綔妗�
+                    WrkMast wrkMast111 = wrkMastMapper.selectPakInStep111(inSta.getStaNo(), barcode);
+                    if (wrkMast111 != null) {
+                        LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
+                        barcodeThread.setBarcode("");
+                        staProtocol.setWorkNo(wrkMast111.getWrkNo());
+                        staProtocol.setStaNo(wrkMast111.getStaNo());
+
+                        devpThread.setPakMk(staProtocol.getSiteId(), false);
+                        boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                        if (!result) {
+                            throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
+                        }
+                        return;
                     }
 
                     // 鍒ゆ柇閲嶅宸ヤ綔妗�
@@ -558,12 +583,27 @@
 //                        }
                         continue;
                     }
-
+//
+//                    // 鍒ゆ柇閲嶅宸ヤ綔妗�
+//                    WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode);
+//                    if (wrkMast != null) {
+//                        log.error("宸ヤ綔妗d腑宸插瓨鍦ㄨ绔欑姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,宸ヤ綔鍙�={}", wrkMast.getWrkNo());
+//                        continue;
+//                    }
                     // 鍒ゆ柇閲嶅宸ヤ綔妗�
                     WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode);
                     if (wrkMast != null) {
-                        log.error("宸ヤ綔妗d腑宸插瓨鍦ㄨ绔欑姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,宸ヤ綔鍙�={}", wrkMast.getWrkNo());
-                        continue;
+                        LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
+                        barcodeThread.setBarcode("");
+                        staProtocol.setWorkNo(wrkMast.getWrkNo());
+                        staProtocol.setStaNo(wrkMast.getStaNo());
+
+                        devpThread.setPakMk(staProtocol.getSiteId(), false);
+                        boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                        if (!result) {
+                            throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
+                        }
+                        return;
                     }
 //                    // 鑾峰彇鍏ュ簱閫氱煡妗�
 //                    List<WaitPakin> waitPakins = waitPakinMapper.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", barcode).eq("io_status", "N"));
@@ -606,12 +646,27 @@
                                 throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
                             }
                         } else {
-                            log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
+                            SearchLocParam param2 = new SearchLocParam();
+                            param2.setBarcode(barcode);
+                            param2.setSourceStaNo(inSta.getStaNo());
+                            param2.setLocType1(locTypeDto.getLocType1());
+                            String response2 = new HttpHandler.Builder()
+                                    .setUri(wmsUrl)
+                                    .setPath("/rpc/pakin/yx/loc/v33")
+                                    .setJson(JSON.toJSONString(param2))
+                                    .build()
+                                    .doPost();
+                            JSONObject jsonObject2 = JSON.parseObject(response2);
+                            if (jsonObject2.getInteger("code").equals(200)) {
+                                log.info("澶ф枡绠辫嚜鍔ㄧ粍鎵樻垚鍔燂紒锛�");
+                            } else {
+                                log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
 
-                            LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
+                                LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
 
-                            if (ledThread != null) {
-                                MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, "鍏ュ簱澶辫触锛�"));
+                                if (ledThread != null) {
+                                    MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, "鍏ュ簱澶辫触锛�"));
+                                }
                             }
                         }
 
@@ -1033,7 +1088,7 @@
                     case 3:
                     case 4:
                     case 5:
-                        crnStnToOutStnTwo(crnStn,1);
+                        crnStnToOutStnTwo(crnSlave.getId(),crnStn,1);
                         continue;
                     case 6:
                     case 7:
@@ -1166,7 +1221,7 @@
         return false;
     }
 
-    public synchronized boolean crnStnToOutStnTwo(CrnSlave.CrnStn crnStn ,Integer conStation) {
+    public synchronized boolean crnStnToOutStnTwo(Integer crnNo,CrnSlave.CrnStn crnStn ,Integer conStation) {
         try{
             Date now = new Date();
             // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
@@ -1178,19 +1233,21 @@
                 staProtocol = staProtocol.clone();
             }
             if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == null)) {
-                // 鏌ヨ宸ヤ綔妗�
-                WrkMast wrkMast = wrkMastMapper.selectPakOutStep2(staProtocol.getSiteId());
-                if (wrkMast == null) {
-                    return false;
-                }
-                // 鍒ゆ柇宸ヤ綔妗f潯浠�
-                if (wrkMast.getIoType() < 100 || wrkMast.getStaNo() == null || wrkMast.getSourceStaNo() == null) {
-                    return false;
-                }
+
                 // 鍒ゆ柇鍚婅溅鏄惁瀹為檯宸插畬鎴愶紝涓旂數鑴戠姸鎬佸湪move涓紝浠ュ鐢佃剳杩涜鏇存柊宸ヤ綔妗�
-                CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, wrkMast.getCrnNo());
+                CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn,crnNo);
                 CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+
                 if (conStation==1){
+                    // 鏌ヨ宸ヤ綔妗�
+                    WrkMast wrkMast = wrkMastMapper.selectPakOutStep2345(staProtocol.getSiteId(),crnProtocol.getTaskNo().intValue());
+                    if (wrkMast == null) {
+                        return false;
+                    }
+                    // 鍒ゆ柇宸ヤ綔妗f潯浠�
+                    if (wrkMast.getIoType() < 100 || wrkMast.getStaNo() == null || wrkMast.getSourceStaNo() == null) {
+                        return false;
+                    }
                     if (crnProtocol.statusType == CrnStatusType.FETCHING || crnProtocol.statusType == CrnStatusType.PUTTING) {
                         // 绉诲姩涓�
                         return false;
@@ -1236,6 +1293,15 @@
                         }
                     }
                 }else if (conStation==2){
+                    // 鏌ヨ宸ヤ綔妗�
+                    WrkMast wrkMast = wrkMastMapper.selectPakOutStep2345(staProtocol.getSiteId(),crnProtocol.getTaskNoTwo().intValue());
+                    if (wrkMast == null) {
+                        return false;
+                    }
+                    // 鍒ゆ柇宸ヤ綔妗f潯浠�
+                    if (wrkMast.getIoType() < 100 || wrkMast.getStaNo() == null || wrkMast.getSourceStaNo() == null) {
+                        return false;
+                    }
                     if (crnProtocol.statusTypeTwo == CrnStatusType.FETCHING || crnProtocol.statusTypeTwo == CrnStatusType.PUTTING) {
                         // 绉诲姩涓�
                         return false;
@@ -1356,7 +1422,7 @@
                     case 3:
                     case 4:
                     case 5:
-                        crnStnToOutStnTwo(crnStn,2);
+                        crnStnToOutStnTwo(crnSlave.getId(),crnStn,2);
                         continue;
                     default:
                         break;
@@ -4544,7 +4610,7 @@
             //鑷姩銆佺┖闂层�佸彸闂ㄥ叧闂��   Other宸﹂棬鍏抽棴
             if (jarProtocol.isAutoing() && jarProtocol.jarErr==0
                     && jarProtocol.leftDoorOpen==0  && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0  && jarProtocol.rightDoorClose==0){
-                if (jarProtocol.statusType == JarStatusType.IDLE || jarProtocol.statusType == JarStatusType.MOVING){
+                if (jarProtocol.statusType != JarStatusType.SOS){
                     log.error("Jar浠诲姟鍒涘缓===銆嬫墽琛�===>琛�={}",4537);
                     BasJarMast basJarMast = new BasJarMast(basJar, wrkMast, jarLocDigit);
                     basJarMast.setJarEnterStaNo(staNo);//鍏ョ~鍖栫綈绔欑偣

--
Gitblit v1.9.1