From 7e68f81b38116bba40e70620c563168fcde66a37 Mon Sep 17 00:00:00 2001
From: L <L@132>
Date: 星期五, 05 十二月 2025 09:18:38 +0800
Subject: [PATCH] *

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  134 +++++++++++++++++++++++---------------------
 1 files changed, 69 insertions(+), 65 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 9e470b1..646cd0a 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -2816,21 +2816,43 @@
                 // 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡
                 if (crnProtocol.getLastIo().equals("I")) {
                     if (basCrnp.getInEnable().equals("Y")) {
-                        this.crnStnToLocDemo(crnSlave, crnProtocol); //  鍏ュ簱
-                        crnProtocol.setLastIo("O");
+                        boolean crnStnToLocDemo = this.crnStnToLocDemo(crnSlave, crnProtocol);//  鍏ュ簱
+                        if (crnStnToLocDemo){
+                            crnProtocol.setLastIo("O");
+                        } else if (!crnProtocol.isSignIntOut()){
+                            crnProtocol.setLastIo("O");
+                        }
                     } else if (basCrnp.getOutEnable().equals("Y")) {
-                        this.locToCrnStnDemo(crnSlave, crnProtocol); //  鍑哄簱
-                        crnProtocol.setLastIo("I");
+                        boolean locToCrnStnDemo = this.locToCrnStnDemo(crnSlave, crnProtocol);//  鍑哄簱
+                        if (locToCrnStnDemo && crnProtocol.isSignIntOut()){
+                            crnProtocol.setLastIo("I");
+                        } else if (locToCrnStnDemo){
+                            crnProtocol.setLastIo("I");
+                            crnProtocol.setSignIntOut(true);
+                        } else if (!crnProtocol.isSignIntOut()){
+                            crnProtocol.setLastIo("I");
+                        }
                     }
                 }
                 // 濡傛灉鏈�杩戜竴娆℃槸鍑哄簱妯″紡
                 else if (crnProtocol.getLastIo().equals("O")) {
                     if (basCrnp.getOutEnable().equals("Y")) {
-                        this.locToCrnStnDemo(crnSlave, crnProtocol); //  鍑哄簱
-                        crnProtocol.setLastIo("I");
+                        boolean locToCrnStnDemo = this.locToCrnStnDemo(crnSlave, crnProtocol);//  鍑哄簱
+                        if (locToCrnStnDemo && crnProtocol.isSignIntOut()){
+                            crnProtocol.setLastIo("I");
+                        } else if (locToCrnStnDemo){
+                            crnProtocol.setLastIo("I");
+                            crnProtocol.setSignIntOut(true);
+                        } else if (!crnProtocol.isSignIntOut()){
+                            crnProtocol.setLastIo("I");
+                        }
                     } else if (basCrnp.getInEnable().equals("Y")) {
-                        this.crnStnToLocDemo(crnSlave, crnProtocol); //  鍏ュ簱
-                        crnProtocol.setLastIo("O");
+                        boolean crnStnToLocDemo = this.crnStnToLocDemo(crnSlave, crnProtocol);//  鍏ュ簱
+                        if (crnStnToLocDemo){
+                            crnProtocol.setLastIo("O");
+                        } else if (!crnProtocol.isSignIntOut()){
+                            crnProtocol.setLastIo("O");
+                        }
                     }
                 }
             }  else {
@@ -2852,7 +2874,8 @@
     /**
      * 鍏ュ簱  ===>>  鍫嗗灈鏈虹珯鍒板簱浣�
      */
-    public void crnStnToLocDemo(CrnSlave slave, CrnProtocol crnProtocol) throws IOException {
+    public boolean crnStnToLocDemo(CrnSlave slave, CrnProtocol crnProtocol) throws IOException {
+        boolean result = false;
         for (CrnSlave.CrnStn crnStn : slave.getCrnInStn()) {
             List<StaDesc> staDescs = staDescMapper.selectList(new EntityWrapper<StaDesc>().eq("CRN_NO", crnProtocol.getLaneNo()).eq("CRN_STN", crnStn.getStaNo()));
 
@@ -2944,6 +2967,7 @@
 
                     throw new CoolException("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐�");
                 } else {
+                    result = true;
                     try {
                         devpThread.setErrorDev(staProtocol.getSiteId(), "-");
                         CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "-");
@@ -2956,16 +2980,18 @@
                 }
             }
         }
+        return result;
     }
 
     /**
      * 鍑哄簱  ===>>  搴撲綅鍒板爢鍨涙満绔�
      * 2022-06-09 TQS淇敼锛屾煡璇㈠伐浣滄。LIST锛岄亶鍘嗕笅鍙戯紝闃叉绗竴涓换鍔″牭濉炲嚭搴�
      */
-    public void locToCrnStnDemo(CrnSlave slave, CrnProtocol crnProtocol) {
+    public boolean locToCrnStnDemo(CrnSlave slave, CrnProtocol crnProtocol) {
+        boolean result = false;
         List<TaskWrk> taskWrksInitial = taskWrkMapper.selectPakOut(crnProtocol.getLaneNo(), null);
         if (taskWrksInitial.size() == 0) {
-            return;
+            return result;
         }
         for (CrnSlave.CrnStn crnStn : slave.getCrnOutStn()) {
             List<StaDesc> staDescs = staDescMapper.selectList(new EntityWrapper<StaDesc>().eq("CRN_NO", crnProtocol.getLaneNo()).eq("CRN_STN", crnStn.getStaNo()));
@@ -3038,6 +3064,7 @@
                             CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "杩愯鍛戒护涓嬪彂澶辫触");
                             throw new CoolException("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐�");
                         } else {
+                            result = true;
                             try {
                                 // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
                                 Date now = new Date();
@@ -3051,39 +3078,11 @@
                                 if (taskWrkMapper.updateById(taskWrk) == 0) {
                                     log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo());
                                 }
+
+
                             } catch (Exception e) {
                                 log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo());
                                 log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽紓甯革細" + e);
-                            }
-                            try {
-                                HashMap<String, Object> headParam = new HashMap<>();
-                                headParam.put("taskNo",taskWrk.getTaskNo());
-                                headParam.put("taskStatus",taskWrk.getStatusWms());
-                                headParam.put("ioType",taskWrk.getIoTypeWms());
-                                headParam.put("barCode",taskWrk.getBarcode());
-                                headParam.put("reportTime", LocalDateTime.now());
-                                headParam.put("weight",taskWrk.getScWeight().doubleValue());
-
-                                String response;
-                                response = new HttpHandler.Builder()
-                                        // .setHeaders(headParam)
-                                        .setUri(wmsUrl)
-                                        .setPath(taskStatusFeedbackPath)
-                                        .setJson(JSON.toJSONString(headParam))
-                                        .build()
-                                        .doPost();
-                                JSONObject jsonObject = JSON.parseObject(response);
-                                apiLogService.save("wcs娲惧彂鍑哄簱浠诲姟涓婃姤wms"
-                                        , wmsUrl + taskStatusFeedbackPath
-                                        , null
-                                        , "127.0.0.1"
-                                        , JSON.toJSONString(headParam)
-                                        , response
-                                        , true
-                                );
-                            } catch (Exception e) {
-                                log.error("wcs娲惧彂鍑哄簱浠诲姟涓婃姤wms澶辫触", JSON.toJSONString(taskWrk));
-//                                throw new CoolException("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms澶辫触");
                             }
                         }
                     } else {
@@ -3108,6 +3107,7 @@
                 }
             }
         }
+        return result;
     }
 
     /**
@@ -3307,30 +3307,34 @@
                     if (Cools.isEmpty(basCrnp.getHpMk()) || !basCrnp.getHpMk().equals("Y")){
                         continue;
                     }
-                    for (String locNo : crnProtocol.getLocMastDemoList()){
-                        LocMast locMast = locMastService.selectByLocNo(locNo);
-                        if (locMast.getLocSts().equals("F")){
-                            CarryParam carryParam = new CarryParam();
-                            carryParam.setTaskNo(locNo);
-                            carryParam.setBarcode(locNo);
-                            carryParam.setIoType(1);//浠诲姟绫诲瀷=銆�1锛氬嚭搴撱��2锛氱Щ搴撱��3锛氬叆搴�   ====杞崲涓�====>  1锛氬叆搴擄紝2锛氬嚭搴擄紝3锛氱Щ搴�
-                            carryParam.setTaskPriority(1);
-                            carryParam.setTargetPoint("1012");
-                            carryParam.setStartPoint(BarcodeUtils.formatCode(locNo));
-                            carryParam.setMeno("Demo");
-                            taskWrkController.addTaskPoint(carryParam);
-                            Thread.sleep(50);
-                        } else if (locMast.getLocSts().equals("O")){
-                            CarryParam carryParam = new CarryParam();
-                            carryParam.setTaskNo(locNo);
-                            carryParam.setBarcode(locNo);
-                            carryParam.setIoType(3);//浠诲姟绫诲瀷=銆�1锛氬嚭搴撱��2锛氱Щ搴撱��3锛氬叆搴�   ====杞崲涓�====>  1锛氬叆搴擄紝2锛氬嚭搴擄紝3锛氱Щ搴�
-                            carryParam.setTaskPriority(1);
-                            carryParam.setStartPoint("1012");
-                            carryParam.setTargetPoint(BarcodeUtils.formatCode(locNo));
-                            carryParam.setMeno("Demo");
-                            taskWrkController.addTaskPoint(carryParam);
-                            Thread.sleep(50);
+                    for (String[] locS : crnProtocol.getLocMastDemoListSign()){
+                        if (locS[3].equals("1")){
+                            String locNo = locS[0];
+                            LocMast locMast = locMastService.selectByLocNo(locNo);
+                            if (locMast.getLocSts().equals("F")){
+                                CarryParam carryParam = new CarryParam();
+                                carryParam.setTaskNo(locNo);
+                                carryParam.setBarcode(locNo);
+                                carryParam.setIoType(1);//浠诲姟绫诲瀷=銆�1锛氬嚭搴撱��2锛氱Щ搴撱��3锛氬叆搴�   ====杞崲涓�====>  1锛氬叆搴擄紝2锛氬嚭搴擄紝3锛氱Щ搴�
+                                carryParam.setTaskPriority(1);
+                                carryParam.setTargetPoint("1012");
+                                carryParam.setStartPoint(BarcodeUtils.formatCode(locNo));
+                                carryParam.setMeno("Demo");
+                                taskWrkController.addTaskPoint(carryParam);
+                                Thread.sleep(50);
+                            } else if (locMast.getLocSts().equals("O")){
+                                CarryParam carryParam = new CarryParam();
+                                carryParam.setTaskNo(locNo);
+                                carryParam.setBarcode(locNo);
+                                carryParam.setIoType(3);//浠诲姟绫诲瀷=銆�1锛氬嚭搴撱��2锛氱Щ搴撱��3锛氬叆搴�   ====杞崲涓�====>  1锛氬叆搴擄紝2锛氬嚭搴擄紝3锛氱Щ搴�
+                                carryParam.setTaskPriority(1);
+                                carryParam.setStartPoint("1012");
+                                carryParam.setTargetPoint(BarcodeUtils.formatCode(locNo));
+                                carryParam.setMeno("Demo");
+                                taskWrkController.addTaskPoint(carryParam);
+                                Thread.sleep(50);
+                                LocFCSUtils.updateLocSInPlace(crnProtocol.getLocMastDemoListSign());
+                            }
                         }
                     }
 

--
Gitblit v1.9.1