From b44b85a4d7512615b8c19c95dc21e537a15a0d5b Mon Sep 17 00:00:00 2001
From: zjj <zjj123456>
Date: 星期四, 08 五月 2025 09:37:01 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   64 ++++++++++++++++++++++----------
 1 files changed, 44 insertions(+), 20 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 ffb5484..880f67e 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -49,6 +49,7 @@
 
 import java.io.IOException;
 import java.util.*;
+import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
 import static com.zy.common.utils.RandomValidateCodeUtil.code;
@@ -105,6 +106,8 @@
     private String wmsUrl;
 
     public int workNo = 9900;
+
+    public int workNoMax = 12000;
 
     /**
      * 缁勬墭
@@ -237,6 +240,7 @@
                         param.setSourceStaNo(inSta.getStaNo());
                         param.setLocType1(locTypeDto.getLocType1());
                         String response = new HttpHandler.Builder()
+                                .setTimeout(30, TimeUnit.SECONDS)
                                 .setUri(wmsUrl)
                                 .setPath("/rpc/pakin/loc/v1")
                                 .setJson(JSON.toJSONString(param))
@@ -275,6 +279,11 @@
                             }
                         } else {
                             log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
+                            ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
+                            if (ledThread != null) {
+                                String errorMsg = barcode + jsonObject.get("msg");
+                                MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
+                            }
                         }
 
                     } catch (Exception e) {
@@ -481,6 +490,7 @@
                         param.setSourceStaNo(inSta.getStaNo());
                         param.setLocType1(locTypeDto.getLocType1());
                         String response = new HttpHandler.Builder()
+                                .setTimeout(30,TimeUnit.SECONDS)
                                 .setUri(wmsUrl)
                                 .setPath("/rpc/pakin/loc/v1")
                                 .setJson(JSON.toJSONString(param))
@@ -518,6 +528,11 @@
                                 MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
                             }
                         } else {
+                            ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
+                            if (ledThread != null) {
+                                String errorMsg = jsonObject.getString("msg");
+                                MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
+                            }
                             log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
                         }
 
@@ -1618,6 +1633,11 @@
                                 throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
                             }
                         } else {
+                            ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, emptyInSta.getLed());
+                            if (ledThread != null) {
+                                String errorMsg = jsonObject.getString("msg");
+                                MessageQueue.offer(SlaveType.Led, emptyInSta.getLed(), new Task(3, errorMsg));
+                            }
                             log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
                         }
                     } catch (Exception e) {
@@ -1891,7 +1911,7 @@
                 log.error("鍙屾繁搴撲綅 --- 娴呭簱浣嶉樆濉炲紓甯革紒 寰呯Щ杞祬搴撲綅锛�" + shallowLoc.getLocNo());
                 throw new CoolException("鍙屾繁搴撲綅 --- 娴呭簱浣嶉樆濉炲紓甯革紒 寰呯Щ杞祬搴撲綅锛�" + shallowLoc.getLocNo());
             }
-
+            List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", shallowLoc.getLocNo()));
             // 鑾峰彇宸ヤ綔鍙�
             int workNo = commonService.getWorkNo(0);
             // 淇濆瓨宸ヤ綔妗�
@@ -1904,7 +1924,7 @@
             wrkMast.setCrnNo(crn.getId());
             wrkMast.setSourceLocNo(shallowLoc.getLocNo()); // 婧愬簱浣�
             wrkMast.setLocNo(loc.getLocNo()); // 鐩爣搴撲綅
-            wrkMast.setFullPlt(shallowLoc.getFullPlt()); // 婊℃澘
+            wrkMast.setFullPlt(Cools.isEmpty(locDetls)?"N":"Y"); // 婊℃澘锛歒
             wrkMast.setPicking("N"); // 鎷f枡
             wrkMast.setExitMk("N"); // 閫�鍑�
             wrkMast.setEmptyMk(shallowLoc.getLocSts().equals("D") ? "Y" : "N"); // 绌烘澘
@@ -1918,7 +1938,7 @@
             }
             // 宸ヤ綔妗f槑缁嗕繚瀛�
             if (shallowLoc.getLocSts().equals("F")) {
-                List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", shallowLoc.getLocNo()));
+
                 for (LocDetl locDetl : locDetls) {
                     WrkDetl wrkDetl = new WrkDetl();
                     wrkDetl.setWrkNo(workNo);
@@ -2842,6 +2862,7 @@
                         if (rgvSlave.getId() != 2 ){
                             continue;
                         }
+                        if (workNo >= workNoMax){ workNo = 9900;}
                         workNo1 = workNo++;
                         souSta1 = Utils.getRgvStaNo(rgvSlave.getId(),inStn.getSourceStaNo());
                         if (inStn.getSourceStaNo() == 4007 && staProtocol.getTongType() == 1){
@@ -2968,6 +2989,7 @@
                             if (rgvSlave.getId() != 2 ){
                                 continue;
                             }
+                            if (workNo >= workNoMax){ workNo = 9900;}
                             workNo2 = workNo++;
                             souSta2 = Utils.getRgvStaNo(rgvSlave.getId(),inStn.getSourceStaNo());
                             if (inStn.getSourceStaNo() == 4007 && staProtocol.getTongType() == 1){
@@ -3085,26 +3107,10 @@
                     command.setWeight2(weight2);
 
                     if (workNo1 == 0 && workNo2 !=0){
-                        if("0".equals(matnr2) || "".equals(batch2) ){
-                            log.error("婧愮珯"+souSta2+"宸ヤ綅涓�浠诲姟缂哄皯淇℃伅锛岀墿鏂欎唬鐮�:"+matnr+",batch:"+batch);
-                            continue;
-                        }
                         command.setTaskMode(RgvTaskModeType.FETCH_PUT2); // 浠诲姟妯″紡: 2鍙栨斁璐�
                     } else if (workNo1 != 0 && workNo2 ==0) {
-                        if("0".equals(matnr) || "".equals(batch) ){
-                            log.error("婧愮珯"+souSta1+"宸ヤ綅浜屼换鍔$己灏戜俊鎭紝鐗╂枡浠g爜:"+matnr+",batch:"+batch);
-                            continue;
-                        }
                         command.setTaskMode(RgvTaskModeType.FETCH_PUT1); // 浠诲姟妯″紡: 1鍙栨斁璐�
                     }else {
-                        if("0".equals(matnr) || "".equals(batch) ){
-                            log.error("婧愮珯"+souSta1+"宸ヤ綅涓�浠诲姟缂哄皯淇℃伅锛岀墿鏂欎唬鐮�:"+matnr+",batch:"+batch);
-                            continue;
-                        }
-                        if("0".equals(matnr2) || "".equals(batch2) ){
-                            log.error("婧愮珯"+souSta2+"宸ヤ綅浜屼换鍔$己灏戜俊鎭紝鐗╂枡浠g爜:"+matnr+",batch:"+batch);
-                            continue;
-                        }
                         command.setTaskMode(RgvTaskModeType.FETCH_PUT_ALL); // 浠诲姟妯″紡: all鍙栨斁璐�
                     }
                     command.setCommand(false);
@@ -3653,6 +3659,7 @@
                                 param.setSourceStaNo(inSta.getStaNo());
                                 param.setLocType1(locTypeDto.getLocType1());
                                 String response = new HttpHandler.Builder()
+                                        .setTimeout(30,TimeUnit.SECONDS)
                                         .setUri(wmsUrl)
                                         .setPath("/rpc/process/in/loc/v1")
                                         .setJson(JSON.toJSONString(param))
@@ -3681,6 +3688,11 @@
                                         MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
                                     }
                                 } else {
+                                    ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
+                                    if (ledThread != null) {
+                                        String errorMsg = jsonObject.getString("msg");
+                                        MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
+                                    }
                                     log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/process/in/loc/v1", JSON.toJSONString(param), response);
                                 }
 
@@ -3720,7 +3732,7 @@
                             LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
                             if (jsonObject.getInteger("code").equals(200)) {
                                 StartupDto dto = jsonObject.getObject("data", StartupDto.class);
-
+                                log.error(barcode + "鐢熸垚浠诲姟鎴愬姛锛�"+dto);
                                 barcodeThread.setBarcode("");
                                 staProtocol.setWorkNo(dto.getWorkNo().shortValue());
                                 staProtocol.setStaNo(dto.getStaNo().shortValue());
@@ -3739,6 +3751,11 @@
                                     MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
                                 }
                             } else {
+                                ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
+                                if (ledThread != null) {
+                                    String errorMsg = jsonObject.getString("msg");
+                                    MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
+                                }
                                 log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
                             }
 
@@ -3837,6 +3854,13 @@
 //        MatnrCode matnrCode = matnrCodeService.selectByCode(code);
         Mat mat = matService.selectByCode(code);
         if (Cools.isEmpty(mat)){
+            //zc 娣诲姞鏄剧ず灞忎俊鎭紝杈撳嚭鐗╂枡鏃犳硶鎴栧埆绛夋儏鍐�
+            // led 寮傚父鏄剧ず
+            LedThread   ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
+            if (ledThread != null) {
+                String errorMsg = code + "鏈壘鍒板搴旂殑鐗╂枡淇℃伅锛�";
+                MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
+            }
             throw new  CoolException("鏈壘鍒板搴旂殑鐗╂枡淇℃伅");
         }
         CombParam combParam = new CombParam();

--
Gitblit v1.9.1