From 276d837c0bb808e6d93ac7c7ba6abe654c75552e Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期一, 09 二月 2026 08:45:45 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  156 +++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 105 insertions(+), 51 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 c285e6a..432677f 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -10,6 +10,7 @@
 import com.zy.asrs.domain.enums.LedErrorAreaType;
 import com.zy.asrs.domain.enums.TaskStatusType;
 import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.param.InboundTaskApplyParam;
 import com.zy.asrs.mapper.*;
 import com.zy.asrs.service.*;
 import com.zy.asrs.utils.*;
@@ -82,6 +83,8 @@
     private BasDevpPositionService basDevpPositionService;
     @Autowired
     private TaskWrkService taskWrkService;
+    @Autowired
+    private OpenService openService;
 
     @Value("${wms.url}")
     private String wmsUrl;
@@ -137,16 +140,6 @@
                 if (barcodeThread == null) {
                     continue;
                 }
-                String barcode = barcodeThread.getBarcode();
-
-                if (!Cools.isEmpty(barcode)) {
-//                    log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
-                    if ("00000000".endsWith(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode) || !CodeDetectionUtil.barcodeDetection(barcode)) {
-                        continue;
-                    }
-                } else {
-                    continue;
-                }
 
                 // 鑾峰彇鍏ュ簱绔欎俊鎭�
 //                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
@@ -156,6 +149,17 @@
                     continue;
                 } else {
                     staProtocol = staProtocol.clone();
+                }
+
+                String barcode = barcodeThread.getBarcode();
+
+                if (!Cools.isEmpty(barcode)) {
+//                    log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
+                    if ("00000000".endsWith(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode) || !CodeDetectionUtil.barcodeDetection(barcode)) {
+                        continue;
+                    }
+                } else {
+                    continue;
                 }
 
                 // 灏哄妫�娴嬪紓甯�
@@ -191,6 +195,15 @@
                 }
                 // 閫�鍥�
                 if (back) {
+                    barcodeThread.setBarcode("");
+                    // 鑾峰彇宸ヤ綔鍙�
+                    int workNo = commonService.getWorkNo(3);
+
+                    staProtocol.setWorkNo(workNo);
+                    staProtocol.setStaNo(inSta.getBackSta().shortValue());
+
+                    devpThread.setPakMk(staProtocol.getSiteId(), false,201);
+                    boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                     // led 寮傚父鏄剧ず
                     LedErrorThreadUtil.ledErrorThread(errMsg,inSta.getLed(), LedErrorAreaType.FOUR_BARCODE.getDesc());
                     continue;
@@ -248,46 +261,84 @@
 
                     try {
 
-                        LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
-
-                        SearchLocParam param = new SearchLocParam();
-                        param.setBarcode(barcode);
-                        param.setIoType(1);
-                        param.setSourceStaNo(inSta.getStaNo());
-                        param.setLocType1(locTypeDto.getLocType1());
+                        // 鏇挎崲涓烘柊鐨勪换鍔$敵璇锋帴鍙�
+                        InboundTaskApplyParam applyParam = new InboundTaskApplyParam();
+                        applyParam.setBarcode(barcode);
+                        applyParam.setStationCode(String.valueOf(inSta.getStaNo()));
+                        applyParam.setStatus(1); // 1:婊℃澘
+                        
                         String response = new HttpHandler.Builder()
                                 .setUri(wmsUrl)
-                                .setPath("/rpc/pakin/loc/v1")
-                                .setJson(JSON.toJSONString(param))
+                                .setPath("/inboundTaskApply")
+                                .setJson(JSON.toJSONString(applyParam))
                                 .build()
                                 .doPost();
+                        
+                        // 瑙f瀽鍝嶅簲锛屽彧纭鐢宠鏄惁鎴愬姛
                         JSONObject jsonObject = JSON.parseObject(response);
-                        if (jsonObject.getInteger("code").equals(200)) {
-                            StartupDto dto = jsonObject.getObject("data", StartupDto.class);
-
-//                            LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
-
-
-                            barcodeThread.setBarcode("");
-                            staProtocol.setWorkNo(dto.getWorkNo());
-
-//                            if(Cools.isEmpty(dto.getRgvNo()) || dto.getRgvNo() <= 0) {
-//                                staProtocol.setStaNo(607);//607
-//                            } else {//濡傛灉瀛樺湪RGV缂栧彿锛岃鏄庨渶瑕丷GV鎺ラ┏锛屽厛涓嬪彂浠诲姟鍒癛GV婧愮珯
-                            staProtocol.setStaNo(dto.getRgvSstaNo().shortValue());
-//                            }
-
-                            devpThread.setPakMk(staProtocol.getSiteId(), false,283);
+                        if (jsonObject != null && jsonObject.getInteger("code") != null && jsonObject.getInteger("code") == 200) {
+                            log.info("鍏ュ簱浠诲姟鐢宠鎴愬姛锛岀瓑寰匴MS涓嬪彂浠诲姟銆傛潯鐮侊細{}锛岀珯鐐癸細{}", barcode, inSta.getStaNo());
+                            staProtocol.setWorkNo(9998);//璁剧疆涓�9998绛夊緟涓婁綅鏈轰笅鍙戜换鍔�/9997鏄┖鏉垮叆搴撳垽鏂紝寰呬笅鍙戞椂涔熷啓鍏�9998
                             boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                             if (!result) {
                                 LedErrorThreadUtil.ledErrorThread("鏇存柊plc绔欑偣淇℃伅澶辫触!绔欑偣鍙凤細"+inSta.getStaNo(),inSta.getLed(), LedErrorAreaType.ONE_OTHER.getDesc());
                                 throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
                             }
                         } else {
+                            //                            // 鑾峰彇宸ヤ綔鍙�
+                            int workNo = commonService.getWorkNo(3);
+
+                            staProtocol.setWorkNo(workNo);
+                            staProtocol.setStaNo(inSta.getBackSta().shortValue());
+
+                            devpThread.setPakMk(staProtocol.getSiteId(), false,201);
+                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                             // led 寮傚父鏄剧ず
                             LedErrorThreadUtil.ledErrorThread("鍏ュ簱璇锋眰澶辫触"+jsonObject.getInteger("code"),inSta.getLed(), LedErrorAreaType.ONE_OTHER.getDesc());
-                            log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
+                            log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/inboundTaskApply", JSON.toJSONString(applyParam), response);
                         }
+                        
+                        // 鍘熸湁閫昏緫娉ㄩ噴鎺�
+//                        LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
+//
+//                        SearchLocParam param = new SearchLocParam();
+//                        param.setBarcode(barcode);
+//                        param.setIoType(1);
+//                        param.setSourceStaNo(inSta.getStaNo());
+//                        param.setLocType1(locTypeDto.getLocType1());
+//                        String response = new HttpHandler.Builder()
+//                                .setUri(wmsUrl)
+//                                .setPath("/rpc/pakin/loc/v1")
+//                                .setJson(JSON.toJSONString(param))
+//                                .build()
+//                                .doPost();
+//                        JSONObject jsonObject = JSON.parseObject(response);
+//                        if (jsonObject.getInteger("code").equals(200)) {
+//                            StartupDto dto = jsonObject.getObject("data", StartupDto.class);
+//
+//                            barcodeThread.setBarcode("");
+//                            staProtocol.setWorkNo(dto.getWorkNo());
+//                            staProtocol.setStaNo(wrkMast.getStaNoSou$().shortValue());
+//
+//                            devpThread.setPakMk(staProtocol.getSiteId(), false,283);
+//                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+//                            if (!result) {
+//                                LedErrorThreadUtil.ledErrorThread("鏇存柊plc绔欑偣淇℃伅澶辫触!绔欑偣鍙凤細"+inSta.getStaNo(),inSta.getLed(), LedErrorAreaType.ONE_OTHER.getDesc());
+//                                throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
+//                            }
+//                        } else {
+//                            // 鑾峰彇宸ヤ綔鍙�
+//                            int workNo = commonService.getWorkNo(3);
+//
+//                            staProtocol.setWorkNo(workNo);
+//                            staProtocol.setStaNo(inSta.getBackSta().shortValue());
+//
+//                            devpThread.setPakMk(staProtocol.getSiteId(), false,201);
+//                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+//                            // led 寮傚父鏄剧ず
+//                            LedErrorThreadUtil.ledErrorThread("鍏ュ簱璇锋眰澶辫触"+jsonObject.getInteger("code"),inSta.getLed(), LedErrorAreaType.ONE_OTHER.getDesc());
+//                            log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
+//                        }
 
                     } catch (Exception e) {
                         e.printStackTrace();
@@ -317,36 +368,35 @@
                 }
                 // 绔欑偣鏉′欢鍒ゆ柇
                 if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable()
-                        && staProtocol.isEmptyMk() && ((staProtocol.getWorkNo() > 9000 && staProtocol.getWorkNo() <= 9999) || staProtocol.getWorkNo()==0)  && staProtocol.isPakMk()) {
+                        && staProtocol.isEmptyMk() && ((staProtocol.getWorkNo() > 9000 && staProtocol.getWorkNo() <= 9997) || staProtocol.getWorkNo()==0)  && staProtocol.isPakMk()) {
 
                     try {
                         LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
 
-                        SearchLocParam param = new SearchLocParam();
-                        param.setIoType(10);
-                        param.setSourceStaNo(emptyInSta.getStaNo());
-                        param.setLocType1(locTypeDto.getLocType1());
+                        InboundTaskApplyParam applyParam = new InboundTaskApplyParam();
+                        applyParam.setBarcode(null);
+                        applyParam.setStationCode(String.valueOf(emptyInSta.getStaNo()));
+                        applyParam.setStatus(0); // 1:婊℃澘
+
                         String response = new HttpHandler.Builder()
                                 .setUri(wmsUrl)
-                                .setPath("/rpc/pakin/loc/v1")
-                                .setJson(JSON.toJSONString(param))
+                                .setPath("/inboundTaskApply")
+                                .setJson(JSON.toJSONString(applyParam))
                                 .build()
                                 .doPost();
-                        JSONObject jsonObject = JSON.parseObject(response);
-                        if (jsonObject.getInteger("code").equals(200)) {
-                            StartupDto dto = jsonObject.getObject("data", StartupDto.class);
 
-                            // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
-                            staProtocol.setWorkNo(dto.getWorkNo());
-                            staProtocol.setStaNo(dto.getStaNoSou$(dto.getStaNo(),staProtocol.getSiteId()).shortValue());
-                            devpThread.setPakMk(staProtocol.getSiteId(), false,4087);
+                        // 瑙f瀽鍝嶅簲锛屽彧纭鐢宠鏄惁鎴愬姛
+                        JSONObject jsonObject = JSON.parseObject(response);
+                        if (jsonObject != null && jsonObject.getInteger("code") != null && jsonObject.getInteger("code") == 200) {
+                            log.info("鍏ュ簱浠诲姟鐢宠鎴愬姛锛岀瓑寰匴MS涓嬪彂浠诲姟锛岀珯鐐癸細{}",emptyInSta.getStaNo());
+                            staProtocol.setWorkNo(9998);//璁剧疆涓�9998绛夊緟涓婁綅鏈轰笅鍙戜换鍔�
                             boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                             if (!result) {
                                 LedErrorThreadUtil.ledErrorThread("鏇存柊plc绔欑偣淇℃伅澶辫触!绔欑偣鍙凤細"+emptyInSta.getStaNo(),emptyInSta.getLed(), LedErrorAreaType.ONE_OTHER.getDesc());
                                 throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
                             }
                         } else {
-                            log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
+                            log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/inboundTaskApply", JSON.toJSONString(applyParam), response);
                         }
                     } catch (Exception e) {
                         e.printStackTrace();
@@ -525,6 +575,10 @@
                         if (wrkMastMapper.updateById(wrkMast) != 0) {
                             // 澶嶄綅鍫嗗灈鏈�
                             crnThread.setResetFlag(true);
+                            if(wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107) { //鎷f枡鍑哄簱浠诲姟鐘舵�佷笂鎶ワ紝鍏朵粬涓婃姤鍦╳ms浠诲姟瀹屾垚瀹氭椂浠诲姟涓�
+                                openService.reportTaskStatus(String.valueOf(wrkMast.getWrkNo()),3,1,wrkMast.getBarcode());
+                            }
+
                         } else {
                             log.error("鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", wrkMast.getWrkNo());
                         }

--
Gitblit v1.9.1