From 538ce7e95297953686db099cacd63e76d2d83154 Mon Sep 17 00:00:00 2001
From: L <L@132>
Date: 星期一, 08 十二月 2025 09:24:11 +0800
Subject: [PATCH] *

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  113 ++++++++++++++++++---------
 src/main/webapp/views/deviceOperate/crnOperate.html         |    6 
 src/main/java/com/zy/asrs/controller/BasCrnpController.java |   38 +++++----
 src/main/java/com/zy/asrs/utils/LocFCSUtils.java            |   47 +++++++++--
 4 files changed, 134 insertions(+), 70 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/BasCrnpController.java b/src/main/java/com/zy/asrs/controller/BasCrnpController.java
index 682b00e..e2bdf11 100644
--- a/src/main/java/com/zy/asrs/controller/BasCrnpController.java
+++ b/src/main/java/com/zy/asrs/controller/BasCrnpController.java
@@ -139,21 +139,21 @@
                     }
                 }
             }
-//            if (Cools.isEmpty(basCrnpParam.getLocMastDemoE())){
-//                return R.error("璇疯緭鍏ユ祴璇曠┖搴撲綅鍒楄〃").add("璇疯緭鍏ユ祴璇曠┖搴撲綅鍒楄〃");
-//            } else {
-//                String[] split = basCrnpParam.getLocMastDemoE().split(";");
-//                if (split.length!=basCrnpParam.getLocMastDemoCount()){
-//                    return R.error("杈撳叆娴嬭瘯绌哄簱浣嶅垪琛ㄦ暟閲忎笉鍖归厤").add("杈撳叆娴嬭瘯绌哄簱浣嶅垪琛ㄦ暟閲忎笉鍖归厤");
-//                }
-//                basCrnpParam.setLocMastDemoListE(new ArrayList<>(Arrays.asList(split)));
-//                for (String locNo : basCrnpParam.getLocMastDemoListE()){
-//                    boolean locNoDetection = CodeDetectionUtil.locNoDetection(locNo);
-//                    if (!locNoDetection){
-//                        return R.error("杈撳叆娴嬭瘯绌哄簱浣嶅紓甯�").add("杈撳叆娴嬭瘯绌哄簱浣嶅紓甯�");
-//                    }
-//                }
-//            }
+            if (Cools.isEmpty(basCrnpParam.getLocMastDemoE())){
+                return R.error("璇疯緭鍏ユ祴璇曠┖搴撲綅鍒楄〃").add("璇疯緭鍏ユ祴璇曠┖搴撲綅鍒楄〃");
+            } else {
+                String[] split = basCrnpParam.getLocMastDemoE().split(";");
+                if (split.length!=basCrnpParam.getLocMastDemoCount()){
+                    return R.error("杈撳叆娴嬭瘯绌哄簱浣嶅垪琛ㄦ暟閲忎笉鍖归厤").add("杈撳叆娴嬭瘯绌哄簱浣嶅垪琛ㄦ暟閲忎笉鍖归厤");
+                }
+                basCrnpParam.setLocMastDemoListE(new ArrayList<>(Arrays.asList(split)));
+                for (String locNo : basCrnpParam.getLocMastDemoListE()){
+                    boolean locNoDetection = CodeDetectionUtil.locNoDetection(locNo);
+                    if (!locNoDetection){
+                        return R.error("杈撳叆娴嬭瘯绌哄簱浣嶅紓甯�").add("杈撳叆娴嬭瘯绌哄簱浣嶅紓甯�");
+                    }
+                }
+            }
 
             if (Cools.isEmpty(basCrnpParam.getStaOutDemo())){
                 return R.error("璇疯緭鍏ユ祴璇曞嚭搴撶珯").add("璇疯緭鍏ユ祴璇曞嚭搴撶珯");
@@ -199,12 +199,14 @@
             }
             crnProtocol.setLocMastDemoCount(basCrnpParam.getLocMastDemoCount());
             crnProtocol.setLocMastDemoListF(basCrnpParam.getLocMastDemoListF());
-            ArrayList<String[]> locS = LocFCSUtils.getLocS(basCrnpParam.getLocMastDemoListF());
+            crnProtocol.setLocMastDemoListE(basCrnpParam.getLocMastDemoListE());
+            ArrayList<String[]> locSF = LocFCSUtils.getLocS(basCrnpParam.getLocMastDemoListF());
+            ArrayList<String[]> locSE = LocFCSUtils.getLocS(basCrnpParam.getLocMastDemoListE());
+            ArrayList<String[]> locS = LocFCSUtils.updateLocSInPlace(locSF,locSE);
 
-//            crnProtocol.setLocMastDemoListE(basCrnpParam.getLocMastDemoListE());
             ArrayList<String> locMastDemoList = new ArrayList<>();
             locMastDemoList.addAll(basCrnpParam.getLocMastDemoListF());
-//            locMastDemoList.addAll(basCrnpParam.getLocMastDemoListF());
+            locMastDemoList.addAll(basCrnpParam.getLocMastDemoListE());
             crnProtocol.setLocMastDemoList(locMastDemoList);
             crnProtocol.setLocMastDemoListSign(locS);
             crnProtocol.setStaOutDemo(basCrnpParam.getStaOutDemo());
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 34299f8..7572934 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -2818,37 +2818,47 @@
                     if (basCrnp.getInEnable().equals("Y")) {
                         boolean crnStnToLocDemo = this.crnStnToLocDemo(crnSlave, crnProtocol);//  鍏ュ簱
                         if (crnStnToLocDemo){
+                            crnProtocol.setSignIntOut(true);
                             crnProtocol.setLastIo("O");
                         } else if (!crnProtocol.isSignIntOut()){
                             crnProtocol.setLastIo("O");
                         }
                     } else if (basCrnp.getOutEnable().equals("Y")) {
-                        boolean locToCrnStnDemo = this.locToCrnStnDemo(crnSlave, crnProtocol);//  鍑哄簱
-                        if (locToCrnStnDemo && crnProtocol.isSignIntOut()){
+                        if (!crnProtocol.isSignIntOut()){
                             crnProtocol.setLastIo("I");
-                        } else if (locToCrnStnDemo){
-                            crnProtocol.setLastIo("I");
-                            crnProtocol.setSignIntOut(true);
-                        } else if (!crnProtocol.isSignIntOut()){
-                            crnProtocol.setLastIo("I");
+                        } else {
+                            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")) {
-                        boolean locToCrnStnDemo = this.locToCrnStnDemo(crnSlave, crnProtocol);//  鍑哄簱
-                        if (locToCrnStnDemo && crnProtocol.isSignIntOut()){
+                        if (!crnProtocol.isSignIntOut()) {
                             crnProtocol.setLastIo("I");
-                        } else if (locToCrnStnDemo){
-                            crnProtocol.setLastIo("I");
-                            crnProtocol.setSignIntOut(true);
-                        } else if (!crnProtocol.isSignIntOut()){
-                            crnProtocol.setLastIo("I");
+                        } else {
+                            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")) {
                         boolean crnStnToLocDemo = this.crnStnToLocDemo(crnSlave, crnProtocol);//  鍏ュ簱
                         if (crnStnToLocDemo){
+                            crnProtocol.setSignIntOut(true);
                             crnProtocol.setLastIo("O");
                         } else if (!crnProtocol.isSignIntOut()){
                             crnProtocol.setLastIo("O");
@@ -3307,33 +3317,58 @@
                     if (Cools.isEmpty(basCrnp.getHpMk()) || !basCrnp.getHpMk().equals("Y")){
                         continue;
                     }
+                    boolean signIn = false;
+                    for (String[] locS : crnProtocol.getLocMastDemoListSign()){
+                        if (locS[3].equals(String.valueOf(locS.length))){
+                            String locNo1 = locS[0];
+                            String locNo2 = locS[2];
+                            ArrayList<String> locNoList = new ArrayList<>();
+                            locNoList.add(locNo1);
+                            locNoList.add(locNo2);
+                            for (String locNo : locNoList) {
+                                TaskWrk taskWrk1 = taskWrkService.selectByTaskNo(locNo+"r");
+                                if (Cools.isEmpty(taskWrk1)){
+                                    continue;
+                                }
+                                signIn = true;
+                                break;
+                            }
+                        }
+                    }
+                    if (signIn){
+                        continue;
+                    }
                     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+"r");
-                                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());
+                            String locNo1 = locS[0];
+                            String locNo2 = locS[2];
+                            ArrayList<String> locNoList = new ArrayList<>();
+                            locNoList.add(locNo1);
+                            locNoList.add(locNo2);
+                            for (String locNo : locNoList) {
+                                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);
+                                } else if (locMast.getLocSts().equals("O")){
+                                    CarryParam carryParam = new CarryParam();
+                                    carryParam.setTaskNo(locNo+"r");
+                                    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);
+                                    LocFCSUtils.updateLocSInPlace(crnProtocol.getLocMastDemoListSign());
+                                }
                             }
                         }
                     }
diff --git a/src/main/java/com/zy/asrs/utils/LocFCSUtils.java b/src/main/java/com/zy/asrs/utils/LocFCSUtils.java
index b43850d..d58e5ce 100644
--- a/src/main/java/com/zy/asrs/utils/LocFCSUtils.java
+++ b/src/main/java/com/zy/asrs/utils/LocFCSUtils.java
@@ -15,16 +15,26 @@
 
 
     public static void main(String[] args) {
-        ArrayList<String> locS = new ArrayList<>();
-        locS.add("0102101");
-        locS.add("0100102");
-        locS.add("0100101");
-        locS.add("0101001");
-        locS.add("0107101");
-        locS.add("0108101");
-        System.out.println(Arrays.toString(locS.toArray()));
-        ArrayList<String[]> locS1 = LocFCSUtils.getLocS(locS);
-        for (String[] loc : locS1) {
+        ArrayList<String> locSF = new ArrayList<>();
+        locSF.add("0102101");
+        locSF.add("0100102");
+        locSF.add("0100101");
+        locSF.add("0101001");
+        locSF.add("0107101");
+        locSF.add("0108101");
+        ArrayList<String> locSE = new ArrayList<>();
+        locSE.add("0202101");
+        locSE.add("0200102");
+        locSE.add("0200101");
+        locSE.add("0201001");
+        locSE.add("0207101");
+        locSE.add("0208101");
+        System.out.println(Arrays.toString(locSF.toArray()));
+        System.out.println(Arrays.toString(locSE.toArray()));
+        ArrayList<String[]> locS1 = LocFCSUtils.getLocS(locSF);
+        ArrayList<String[]> locS2 = LocFCSUtils.getLocS(locSE);
+        ArrayList<String[]> arrayList = LocFCSUtils.updateLocSInPlace(locS1, locS2);
+        for (String[] loc : arrayList) {
             System.out.println(Arrays.toString(loc));
         }
 
@@ -78,5 +88,22 @@
             }
         }
     }
+    public static ArrayList<String[]> updateLocSInPlace(ArrayList<String[]> locSF,ArrayList<String[]> locSE) {
+        if (locSF == null || locSF.isEmpty()) {
+            return new ArrayList<>();
+        }
+        if (locSE == null || locSE.isEmpty()) {
+            return new ArrayList<>();
+        }
+
+        for (String[] rowF : locSF) {
+            for (String[] rowE : locSE) {
+                if (rowF[3].equals(rowE[3])) {
+                    rowF[2] =  rowE[0];
+                }
+            }
+        }
+        return locSF;
+    }
 
 }
diff --git a/src/main/webapp/views/deviceOperate/crnOperate.html b/src/main/webapp/views/deviceOperate/crnOperate.html
index eaf5684..874abdf 100644
--- a/src/main/webapp/views/deviceOperate/crnOperate.html
+++ b/src/main/webapp/views/deviceOperate/crnOperate.html
@@ -81,9 +81,9 @@
 							<el-form-item label="鍘熷鍑哄簱搴撲綅">
 								<el-input v-model="formParam.locMastDemoF" placeholder="鍘熷鏈夌墿搴撲綅"></el-input>
 							</el-form-item>
-<!--							<el-form-item label="鍘熷绌哄簱浣�">-->
-<!--								<el-input v-model="formParam.locMastDemoE" placeholder="鍘熷鏈夌墿搴撲綅"></el-input>-->
-<!--							</el-form-item>-->
+							<el-form-item label="鍘熷绌哄簱浣�">
+								<el-input v-model="formParam.locMastDemoE" placeholder="鍘熷鏃犵墿搴撲綅"></el-input>
+							</el-form-item>
 							<el-form-item label="鍫嗗灈鏈烘斁璐х珯鐐�">
 								<el-input v-model="formParam.staOutDemo" placeholder="鍫嗗灈鏈烘斁璐х珯鐐�"></el-input>
 							</el-form-item>

--
Gitblit v1.9.1