From 1983df9f47c76e3c047f386e82e89c5537f345ac Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期三, 05 十一月 2025 12:57:32 +0800
Subject: [PATCH] *

---
 src/main/java/com/zy/asrs/entity/param/BasCrnpParam.java    |    6 
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  376 +++++++++++++++++++++-------------------------
 src/main/java/com/zy/core/MainProcess.java                  |   17 +
 src/main/webapp/views/deviceOperate/crnOperate.html         |   13 +
 src/main/java/com/zy/core/model/protocol/CrnProtocol.java   |    2 
 src/main/java/com/zy/asrs/controller/BasCrnpController.java |   38 +++-
 6 files changed, 224 insertions(+), 228 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/BasCrnpController.java b/src/main/java/com/zy/asrs/controller/BasCrnpController.java
index 8be3d09..26529f7 100644
--- a/src/main/java/com/zy/asrs/controller/BasCrnpController.java
+++ b/src/main/java/com/zy/asrs/controller/BasCrnpController.java
@@ -121,20 +121,35 @@
 
 
             if (Cools.isEmpty(basCrnpParam.getLocMastDemoCount()) || basCrnpParam.getLocMastDemoCount()<1){
-                return R.error("璇疯緭鍏ユ祴璇曞簱浣嶆暟閲�").add("璇疯緭鍏ユ祴璇曞簱浣嶆暟閲�");
+                return R.error("璇疯緭鍏ユ祴璇曞湪搴撳簱浣嶆暟閲�").add("璇疯緭鍏ユ祴璇曞湪搴撳簱浣嶆暟閲�");
             }
-            if (Cools.isEmpty(basCrnpParam.getLocMastDemo())){
-                return R.error("璇疯緭鍏ユ祴璇曞簱浣嶅垪琛�").add("璇疯緭鍏ユ祴璇曞簱浣嶅垪琛�");
+            if (Cools.isEmpty(basCrnpParam.getLocMastDemoF())){
+                return R.error("璇疯緭鍏ユ祴璇曞湪搴撳簱浣嶅垪琛�").add("璇疯緭鍏ユ祴璇曞湪搴撳簱浣嶅垪琛�");
             } else {
-                String[] split = basCrnpParam.getLocMastDemo().split(";");
+                String[] split = basCrnpParam.getLocMastDemoF().split(";");
                 if (split.length!=basCrnpParam.getLocMastDemoCount()){
-                    return R.error("杈撳叆娴嬭瘯搴撲綅鍒楄〃鏁伴噺涓嶅尮閰�").add("杈撳叆娴嬭瘯搴撲綅鍒楄〃鏁伴噺涓嶅尮閰�");
+                    return R.error("杈撳叆娴嬭瘯鍦ㄥ簱搴撲綅鍒楄〃鏁伴噺涓嶅尮閰�").add("杈撳叆娴嬭瘯鍦ㄥ簱搴撲綅鍒楄〃鏁伴噺涓嶅尮閰�");
                 }
-                basCrnpParam.setLocMastDemoList(new ArrayList<>(Arrays.asList(split)));
-                for (String locNo : basCrnpParam.getLocMastDemoList()){
+                basCrnpParam.setLocMastDemoListF(new ArrayList<>(Arrays.asList(split)));
+                for (String locNo : basCrnpParam.getLocMastDemoListF()){
                     boolean locNoDetection = CodeDetectionUtil.locNoDetection(locNo);
                     if (!locNoDetection){
-                        return R.error("杈撳叆娴嬭瘯搴撲綅寮傚父").add("杈撳叆娴嬭瘯搴撲綅寮傚父");
+                        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("杈撳叆娴嬭瘯绌哄簱浣嶅紓甯�");
                     }
                 }
             }
@@ -182,7 +197,12 @@
                 }
             }
             crnProtocol.setLocMastDemoCount(basCrnpParam.getLocMastDemoCount());
-            crnProtocol.setLocMastDemoList(basCrnpParam.getLocMastDemoList());
+            crnProtocol.setLocMastDemoListF(basCrnpParam.getLocMastDemoListF());
+            crnProtocol.setLocMastDemoListE(basCrnpParam.getLocMastDemoListE());
+            ArrayList<String> locMastDemoList = new ArrayList<>();
+            locMastDemoList.addAll(basCrnpParam.getLocMastDemoListF());
+            locMastDemoList.addAll(basCrnpParam.getLocMastDemoListF());
+            crnProtocol.setLocMastDemoList(locMastDemoList);
             crnProtocol.setStaOutDemo(basCrnpParam.getStaOutDemo());
             crnProtocol.setStaIntDemo(basCrnpParam.getStaIntDemo());
         }
diff --git a/src/main/java/com/zy/asrs/entity/param/BasCrnpParam.java b/src/main/java/com/zy/asrs/entity/param/BasCrnpParam.java
index 122bf5f..555548e 100644
--- a/src/main/java/com/zy/asrs/entity/param/BasCrnpParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/BasCrnpParam.java
@@ -94,8 +94,10 @@
 
 
     private Integer locMastDemoCount;//娴嬭瘯搴撲綅鏁伴噺
-    private String locMastDemo;//娴嬭瘯搴撲綅鏁伴噺
-    private ArrayList<String> locMastDemoList;//娴嬭瘯搴撲綅鍒楄〃
+    private String locMastDemoF;//娴嬭瘯搴撲綅鏁伴噺
+    private String locMastDemoE;//娴嬭瘯搴撲綅鏁伴噺
+    private ArrayList<String> locMastDemoListF;//娴嬭瘯搴撲綅鍒楄〃
+    private ArrayList<String> locMastDemoListE;//娴嬭瘯搴撲綅鍒楄〃
     private Integer staOutDemo;//娴嬭瘯搴撲綅鍑哄簱绔�
     private Integer staIntDemo;//娴嬭瘯搴撲綅鍏ュ簱绔�
 
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 e8ee51c..19c5bb7 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -2687,7 +2687,7 @@
     /**
      * 鍫嗗灈鏈虹珯鍑哄簱鍒板嚭搴撶珯
      */
-    public boolean crnStnDEMOStop2() {
+    public int crnStnDEMOStop2() {
         int signHpMk = 0;
         for (CrnSlave crn : slaveProperties.getCrn()) {
 
@@ -2707,10 +2707,13 @@
                 signHpMk++;
             }
         }
-        if (signHpMk == slaveProperties.getCrn().size()){
-            return true;
+        if (signHpMk == 0){
+            return 2;
         }
-        return false;
+        if (signHpMk == slaveProperties.getCrn().size()){
+            return 0;
+        }
+        return 3;
     }
 
 
@@ -2755,61 +2758,33 @@
     /**
      * 婕旂ず妯″紡鍚姩
      */
-    public boolean crnStnDEMOOpen1() {
-        try{
-            int selectCount = taskWrkService.selectCount(new EntityWrapper<TaskWrk>());
-            if (selectCount>0) {
-                return false;
+    public int crnStnDEMOOpen1() {
+        int sign = 0;
+        for (CrnSlave crn : slaveProperties.getCrn()) {
+            // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
+            CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+            if (crnProtocol == null) {
+                continue;
             }
-            for (CrnSlave crn : slaveProperties.getCrn()) {
-                try{
-                    // 鑾峰彇鍫嗗灈鏈轰俊鎭�
-                    CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
-                    CrnProtocol crnProtocol = crnThread.getCrnProtocol();
-                    if (crnProtocol == null) {
-                        continue;
-                    }
-                    BasCrnp basCrnp = basCrnpService.selectById(crn.getId());
-                    if (basCrnp == null) {
-                        log.error("{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crn.getId());
-                        continue;
-                    }
-
-                    if (Cools.isEmpty(basCrnp.getHpMk()) || !basCrnp.getHpMk().equals("Y")){
-                        CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "瀛樺湪鍏跺畠鍫嗗灈鏈哄紑鍚紨绀烘ā寮忥紒");
-                        continue;
-                    }
-//
-                    CrnSlave crnSlave = new CrnSlave(crn);
-                    if (Cools.isEmpty(crnProtocol.getLaneNo()) || crnProtocol.getLaneNo()==0){
-                        CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "鍫嗗灈鏈哄贩閬撳彿寮傚父锛�");
-                        continue;
-                    }
-
-                    if (!crn.getId().equals(crnProtocol.getLaneNo())) {
-                        for (CrnSlave crnOther : slaveProperties.getCrn()) {
-                            if (crnOther.getId().equals(crnProtocol.getLaneNo())) {
-                                crnSlave.updateCrnInStn(crnOther);
-                            }
-                        }
-                    }
-                    for (String locNo : crnProtocol.getLocMastDemoList()){
-                        LocMast locMast = locMastService.selectByLocNo(locNo);
-                        TaskCreateParam taskCreateParam = new TaskCreateParam(crnSlave,locMast);
-                        taskCreateParam.setStartPointSta(crnProtocol.getStaIntDemo());
-                        taskCreateParam.setTargetPointSta(crnProtocol.getStaOutDemo());
-                        openService.taskCreate(taskCreateParam);
-                    }
-                } catch (Exception e) {
-                    CrnErrCache.updateCrnErr(crn.getId(), "婕旂ず妯″紡鐢熸垚浠诲姟寮傚父锛�");
-                    continue;
-                }
-
-                return true;
+            BasCrnp basCrnp = basCrnpService.selectById(crn.getId());
+            if (basCrnp == null) {
+                log.error("{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crn.getId());
+                continue;
             }
-        } catch (Exception e) {
+
+            if (Cools.isEmpty(basCrnp.getHpMk()) || !basCrnp.getHpMk().equals("Y")){
+                continue;
+            }
+            sign++;
         }
-        return false;
+        if (sign == slaveProperties.getCrn().size()){
+            return 2;
+        } else if (sign==0){
+            return 0;
+        } else {
+            return 1;
+        }
     }
 
 
@@ -2830,25 +2805,18 @@
                 continue;
             }
 
-            CrnSlave crn = new CrnSlave(crnSlave);
-            if (Cools.isEmpty(crnProtocol.getLaneNo()) || crnProtocol.getLaneNo()==0){
-                CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "鍫嗗灈鏈哄贩閬撳彿寮傚父锛�");
-                continue;
-            }
-
-            if (!crnSlave.getId().equals(crnProtocol.getLaneNo())) {
-                for (CrnSlave crnOther : slaveProperties.getCrn()) {
-                    if (crnOther.getId().equals(crnProtocol.getLaneNo())) {
-                        crn.updateCrnInStn(crnOther);
-                    }
-                }
-            }
-
-//            try{
-//                // 搴撲綅绉昏浆
-//                this.locToLoc(crn, crnProtocol);
-//            } catch (Exception e) {
-//                log.error("搴撲綅绉昏浆澶辫触");
+//            CrnSlave crn = new CrnSlave(crnSlave);
+//            if (Cools.isEmpty(crnProtocol.getLaneNo()) || crnProtocol.getLaneNo()==0){
+//                CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "鍫嗗灈鏈哄贩閬撳彿寮傚父锛�");
+//                continue;
+//            }
+//
+//            if (!crnSlave.getId().equals(crnProtocol.getLaneNo())) {
+//                for (CrnSlave crnOther : slaveProperties.getCrn()) {
+//                    if (crnOther.getId().equals(crnProtocol.getLaneNo())) {
+//                        crn.updateCrnInStn(crnOther);
+//                    }
+//                }
 //            }
 
             // 鍙湁褰撳爢鍨涙満绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
@@ -2857,24 +2825,20 @@
                 // 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡
                 if (crnProtocol.getLastIo().equals("I")) {
                     if (basCrnp.getInEnable().equals("Y")) {
-                        this.crnStnToLocDemo(crn, crnProtocol); //  鍏ュ簱
+                        this.crnStnToLocDemo(crnSlave, crnProtocol); //  鍏ュ簱
                         crnProtocol.setLastIo("O");
                     } else if (basCrnp.getOutEnable().equals("Y")) {
-                        if (!Cools.isEmpty(basCrnp.getHpMk()) && basCrnp.getHpMk().equals("Y")) {
-                            this.locToCrnStnDemo(crn, crnProtocol); //  鍑哄簱
-                        }
+                        this.locToCrnStnDemo(crnSlave, crnProtocol); //  鍑哄簱
                         crnProtocol.setLastIo("I");
                     }
                 }
                 // 濡傛灉鏈�杩戜竴娆℃槸鍑哄簱妯″紡
                 else if (crnProtocol.getLastIo().equals("O")) {
                     if (basCrnp.getOutEnable().equals("Y")) {
-                        if (!Cools.isEmpty(basCrnp.getHpMk()) && basCrnp.getHpMk().equals("Y")) {
-                            this.locToCrnStnDemo(crn, crnProtocol); //  鍑哄簱
-                        }
+                        this.locToCrnStnDemo(crnSlave, crnProtocol); //  鍑哄簱
                         crnProtocol.setLastIo("I");
                     } else if (basCrnp.getInEnable().equals("Y")) {
-                        this.crnStnToLocDemo(crn, crnProtocol); //  鍏ュ簱
+                        this.crnStnToLocDemo(crnSlave, crnProtocol); //  鍏ュ簱
                         crnProtocol.setLastIo("O");
                     }
                 }
@@ -2894,12 +2858,10 @@
         }
     }
 
-
-
     /**
      * 鍏ュ簱  ===>>  鍫嗗灈鏈虹珯鍒板簱浣�
      */
-    public void crnStnToLocDemo(CrnSlave slave, CrnProtocol crnProtocol) {
+    public void crnStnToLocDemo(CrnSlave slave, CrnProtocol crnProtocol) throws IOException {
         for (CrnSlave.CrnStn crnStn : slave.getCrnInStn()) {
             List<StaDesc> staDescs = staDescMapper.selectList(new EntityWrapper<StaDesc>().eq("CRN_NO", crnProtocol.getLaneNo()).eq("CRN_STN", crnStn.getStaNo()));
 
@@ -2919,7 +2881,7 @@
                     log.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
                     continue;
                 }
-                if (staProtocol.isAutoing() && staProtocol.getWorkNo() > 0
+                if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0
 //                        && staProtocol.isInEnable()
                         && staDetl.getCanining() != null && staDetl.getCanining().equals("Y")) {
                     flag = true;
@@ -2929,11 +2891,20 @@
                 }
 
                 // 鑾峰彇宸ヤ綔鐘舵�佷负2锛堣澶囦笂璧帮級鐨勫叆搴撳伐浣滄。
-                TaskWrk taskWrk = taskWrkMapper.selectPakInDemo(crnProtocol.getLaneNo(), staProtocol.getWorkNo().intValue(), staDesc.getStnNo().toString());
+                TaskWrk taskWrk = null;
+                for (String locNo : crnProtocol.getLocMastDemoList()) {
+                    TaskWrk taskWrk1 = taskWrkService.selectByTaskNo(locNo);
+                    if (Cools.isEmpty(taskWrk1)){
+                        continue;
+                    }
+                    if (taskWrk1.getWrkSts() == 2){
+                        taskWrk = taskWrk1;
+                        break;
+                    }
+                }
                 if (null == taskWrk) {
                     continue;
                 }
-
                 // 鍫嗗灈鏈烘帶鍒惰繃婊�
                 if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE)) {
                     devpThread.setErrorDev(staProtocol.getSiteId(), "鍫嗗灈鏈洪潪绌洪棽");
@@ -2952,11 +2923,8 @@
                     continue;
                 }
 
-//                int workNo = commonService.getWorkNo(WorkNoType.PAKIN.type);//鑾峰彇鍏ュ簱宸ヤ綔鍙�
-//                taskWrk.setWrkNo(workNo);//宸ヤ綔鍙�
                 Date now = new Date();
                 taskWrk.setStatus(TaskStatusType.DISTRIBUTE.id);//娲惧彂鐘舵��
-//                taskWrk.setAssignTime(now);//娲惧彂鏃堕棿
                 taskWrk.setExecuteTime(now);
                 taskWrk.setWrkSts(3);//宸ヤ綔鐘舵�� 3.鍚婅溅鍏ュ簱
                 taskWrk.setCrnNo(staDesc.getCrnNo());//鍫嗗灈鏈哄彿
@@ -2977,7 +2945,7 @@
                 int bay1 = Utils.getBayShort(taskWrk.getTargetPoint()) + 1;
                 crnCommand1.setDestinationPosY((short)bay1);     // 鐩爣搴撲綅灞�
                 crnCommand1.setDestinationPosZ(Utils.getLevShort(taskWrk.getTargetPoint()));     // 鐩爣搴撲綅鎺�
-                crnCommand1.setCommand((short) 0);
+//                crnCommand.setCommand((short) 1);
                 if (!MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, crnCommand1))) {
                     log.error("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", taskWrk.getCrnNo(), JSON.toJSON(crnCommand1));
                     devpThread.setErrorDev(staProtocol.getSiteId(), crnProtocol.getLaneNo()+"宸烽亾鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐�");
@@ -2994,11 +2962,8 @@
                         log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo());
                         log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽紓甯革細" + e);
                     }
-
                 }
             }
-
-            // return;
         }
     }
 
@@ -3007,7 +2972,7 @@
      * 2022-06-09 TQS淇敼锛屾煡璇㈠伐浣滄。LIST锛岄亶鍘嗕笅鍙戯紝闃叉绗竴涓换鍔″牭濉炲嚭搴�
      */
     public void locToCrnStnDemo(CrnSlave slave, CrnProtocol crnProtocol) {
-        List<TaskWrk> taskWrksInitial = taskWrkMapper.selectPakOutDemo(crnProtocol.getLaneNo(), null);
+        List<TaskWrk> taskWrksInitial = taskWrkMapper.selectPakOut(crnProtocol.getLaneNo(), null);
         if (taskWrksInitial.size() == 0) {
             return;
         }
@@ -3015,13 +2980,13 @@
             List<StaDesc> staDescs = staDescMapper.selectList(new EntityWrapper<StaDesc>().eq("CRN_NO", crnProtocol.getLaneNo()).eq("CRN_STN", crnStn.getStaNo()));
             for (StaDesc staDesc : staDescs) {
                 // 鑾峰彇宸ヤ綔鐘舵�佷负11锛堢敓鎴愬嚭搴揑D锛夌殑鍑哄簱宸ヤ綔妗�
-                List<TaskWrk> taskWrks = taskWrkMapper.selectPakOutDemo(crnProtocol.getLaneNo(), staDesc.getStnNo().toString());
+                List<TaskWrk> taskWrks = taskWrkMapper.selectPakOut(crnProtocol.getLaneNo(), staDesc.getStnNo().toString());
                 for (TaskWrk taskWrk : taskWrks) {
                     if (taskWrk == null) {
                         continue;
                     }
                     // 宸ヤ綔妗g姸鎬佸垽鏂�
-                    if (taskWrk.getIoType() != 4 || taskWrk.getTargetPoint() == null || taskWrk.getStartPoint() == null) {
+                    if (taskWrk.getIoType() != 2 || taskWrk.getTargetPoint() == null || taskWrk.getStartPoint() == null) {
                         log.error("鏌ヨ宸ヤ綔妗f暟鎹笉绗﹀悎鏉′欢--鍏ュ嚭绫诲瀷/绔欑偣, 宸ヤ綔鍙�={}锛屾簮搴撲綅={}锛屽叆鍑虹被鍨�={}", taskWrk.getWrkNo(), taskWrk.getStartPoint(), taskWrk.getIoType());
                         continue;
                     }
@@ -3043,12 +3008,6 @@
 
                     // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵��
                     if (staProtocol.isAutoing() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")) {
-
-//                    // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵��
-//                    if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")
-//                            && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) {
-                        // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-
                         // 鍫嗗灈鏈烘帶鍒惰繃婊�
                         if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE)) {
                             devpThread.setErrorDev(staProtocol.getSiteId(), "鍫嗗灈鏈洪潪绌洪棽");
@@ -3105,6 +3064,36 @@
                                 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 {
                         CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "-");
@@ -3130,12 +3119,10 @@
         }
     }
 
-
-
     /**
      * 鍫嗗灈鏈虹珯鍑哄簱鍒板嚭搴撶珯
      */
-    public void crnStnToOutStnDemo() {
+    public void crnStnToOutStnDemo()  {
         for (CrnSlave crn : slaveProperties.getCrn()) {
 
             // 鑾峰彇鍫嗗灈鏈轰俊鎭�
@@ -3179,11 +3166,12 @@
                         }
                         if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == 0)) {
                             // 鏌ヨ宸ヤ綔妗�
-                            TaskWrk taskWrk = taskWrkMapper.selectCrnStaWorkingDemo(crnProtocol.getLaneNo(), staDesc.getStnNo().toString());
+                            TaskWrk taskWrk = taskWrkMapper.selectCrnStaWorking(crnProtocol.getLaneNo(), staDesc.getStnNo().toString());
                             if (taskWrk == null) {
                                 continue;
                             }
                             log.info("涓嬪彂杈撻�佺嚎浠诲姟锛歵askWrk:" + JSON.toJSONString(taskWrk));
+//                            R r = siteController.siteDetlUpdate(Integer.valueOf(taskWrk.getTargetPoint()), taskWrk.getWrkNo().shortValue(), (short) 0, "Y", false, false);
                             staProtocol.setWorkNo(taskWrk.getWrkNo());
                             staProtocol.setStaNo(BarcodeUtils.getStaNo(staProtocol.getSiteId()));
                             boolean offer = false;
@@ -3193,17 +3181,18 @@
                                 log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:" + e);
                                 log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:offer:" + offer);
                             }
+//                            JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(r));
                             if (offer) {
                                 log.info("涓嬪彂杈撻�佺嚎浠诲姟鎴愬姛锛歵askWrk:" + JSON.toJSONString(taskWrk));
                                 Date now = new Date();
-                                taskWrk.setStatus(TaskStatusType.DISTRIBUTE.id);
-
-                                taskWrk.setWrkSts(2);
+                                taskWrk.setStatus(TaskStatusType.OVER3.id);
+                                taskWrk.setWrkSts(14);
                                 taskWrk.setModiTime(now);
                                 taskWrk.setCompleteTime(now);
                                 taskWrkService.updateById(taskWrk);
                             } else {
                                 log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛歵askWrk:" + JSON.toJSONString(taskWrk));
+//                                log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯镐俊鎭�:"+JSON.toJSONString(r));
                             }
                         }
                     } catch (Exception e) {
@@ -3215,77 +3204,6 @@
         }
     }
 
-
-
-    public synchronized void taskStartDemo() {
-        for (RgvSlave rgvSlave : slaveProperties.getRgv()) {
-            try {
-                if (rgvDetection(rgvSlave)) {
-                    String taskNoNow = rgvOtherTaskWrk(rgvSlave);
-                    List<BasDevpPosition> basDevpPositions = basDevpPositionService.selectList(new EntityWrapper<BasDevpPosition>().orderBy("PLC_POSITION", true));
-                    boolean itSmall = new TrackRangeUtils().IsItSmall(rgvSlave);
-                    if (basDevpPositions.isEmpty()) {
-                        log.error("鑾峰彇鎵�鏈夌珯鐐逛俊鎭紓甯�");
-                        try{
-                            DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
-                            deviceErrorService.addDeviceError("rgvErr", rgvSlave.getId(), "鎸囦护鐢熸垚锛氳幏鍙栨墍鏈夌珯鐐逛俊鎭紓甯�");
-                        } catch (Exception e2){
-                        }
-                        continue;
-                    }
-                    List<TaskWrk> taskWrkList = new ArrayList<>();
-                    List<Integer> staList = new ArrayList<>();
-                    for (RgvSlave.RgvStn inSta : rgvSlave.getRgvInSta()) {
-                        TaskWrk taskWrk = deviceDetection(inSta);
-                        if (taskWrk != null) {
-                            if (taskWrk.getWrkNo().toString().equals(taskNoNow)) continue;
-                            taskWrkList.add(taskWrk);
-                            staList.add(inSta.getStaNo());
-                        }
-                    }
-
-                    if (taskWrkList.isEmpty() || staList.isEmpty()) continue;
-
-                    boolean sign = false;
-
-                    if (!sign){
-                        //鍙敤鍖哄煙灏辫繎鍙栬揣
-                        //灏辫繎鎺掑簭
-                        RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(rgvSlave.getId());
-                        List<Integer> rangeList = RouteUtils.SortNearby(staList, rgvProtocol.RgvPos, basDevpPositions);
-                        //  鍗婅竟鍖哄煙鍐呭彇璐т换鍔�
-                        for (Integer staNoNow : rangeList) {
-                            for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) {
-                                if (rgvStn.getStaNo().equals(staNoNow)) {
-                                    TaskWrk taskWrk = deviceDetection(rgvStn);
-                                    if (taskWrk != null) {
-                                        Integer outStaNo = BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint());
-                                        for (RgvSlave.RgvStn rgvStnOut : rgvSlave.getRgvOutSta()) {
-                                            if (rgvStnOut.getStaNo().equals(outStaNo)) {
-                                                sign = taskGenerate(rgvSlave, rgvStn, 0);
-                                                break;
-                                            }
-                                        }
-                                    }
-                                    break;
-                                }
-                            }
-                            if (sign) {
-                                break;
-                            }
-                        }
-                    }
-                }
-            } catch (Exception e) {
-                log.error("浠诲姟鐢熸垚澶辫触===銆嬪紓甯镐俊鎭細{}", e.getMessage());
-                try{
-                    DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
-                    deviceErrorService.addDeviceError("rgvErr", rgvSlave.getId(), "鎸囦护鐢熸垚澶辫触");
-                } catch (Exception e2){
-                }
-            }
-        }
-    }
 
     /**
      * 鎵ц瀵瑰伐浣滄。鐨勫畬鎴愭搷浣�
@@ -3299,13 +3217,6 @@
                 if (crnProtocol == null) {
                     continue;
                 }
-
-                BasCrnp basCrnp = basCrnpService.selectById(crnSlave.getId());
-                if (basCrnp == null) {
-                    log.error("{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crnSlave.getId());
-                    continue;
-                }
-
 
                 CrnSlave crn = new CrnSlave(crnSlave);
                 if (Cools.isEmpty(crnProtocol.getLaneNo()) || crnProtocol.getLaneNo()==0){
@@ -3324,49 +3235,102 @@
                 //  鐘舵�侊細绛夊緟纭 骞朵笖  浠诲姟瀹屾垚浣� = 1
                 if (crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) {
                     //鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。
-                    TaskWrk taskWrk = taskWrkMapper.selectCrnNoInWorkingDemo(crnProtocol.getLaneNo(), crnProtocol.getTaskNo().intValue());
+                    TaskWrk taskWrk = taskWrkMapper.selectCrnNoInWorking(crnProtocol.getLaneNo(), crnProtocol.getTaskNo().intValue());
                     if (Cools.isEmpty(taskWrk) && crnProtocol.getTaskNo() != 999) {
                         log.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽贩閬撳彿={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getLaneNo(), crnProtocol.getTaskNo());
                         continue;
                     }
-
+//                Thread.sleep(300);
+                    //纭瀹屾垚淇″彿
+//                    CrnOperatorParam crnOperatorParam = new CrnOperatorParam();
+//                    crnOperatorParam.setCrnNo(crn.getId());
                     Date now = new Date();
 
+//                    crnController.crnTaskComplete(crnOperatorParam);
+//                    MessageQueue.offer(SlaveType.Crn, crn.getId(), new Task(2, command))
                     crnThread.setResetFlag(true);
 
                     if (!Cools.isEmpty(taskWrk)) {
-                        if (taskWrk.getIoType() == 4 && taskWrk.getWrkSts() == 3) {
-                            taskWrk.setWrkSts(11);//鍏ュ簱瀹屾垚
-                            taskWrk.setStatus(TaskStatusType.RECEIVE.id);//鎺ユ敹
-                            if (Cools.isEmpty(basCrnp.getHpMk()) || !basCrnp.getHpMk().equals("Y")) {
-                                taskWrk.setWrkSts(4);
-                                taskWrk.setStatus(TaskStatusType.OVER.id);
-                            }
+                        if (taskWrk.getIoType() == 1 && taskWrk.getWrkSts() == 3) {
+                            taskWrk.setWrkSts(4);//鍏ュ簱瀹屾垚
+                            taskWrk.setStatus(TaskStatusType.OVER.id);//瀹岀粨
                             //鏇存柊搴撲綅鐘舵��
                             LocMast locMast = locMastService.selectByLocNo(taskWrk.getTargetPoint());
-                            locMast.setLocSts("R");//F.鍦ㄥ簱
-                            if (Cools.isEmpty(basCrnp.getHpMk()) || !basCrnp.getHpMk().equals("Y")) {
-                                locMast.setLocSts("F");//F.鍦ㄥ簱
-                            }
+                            locMast.setLocSts("F");//F.鍦ㄥ簱
                             locMast.setBarcode(taskWrk.getBarcode());//鎵樼洏鐮�
                             locMast.setModiTime(now);
                             locMast.setModiUser(9999L);
                             locMastService.updateById(locMast);
-                        } else if (taskWrk.getIoType() == 4 && taskWrk.getWrkSts() == 12) {
+                        } else if (taskWrk.getIoType() == 2 && taskWrk.getWrkSts() == 12) {
                             taskWrk.setWrkSts(13);//鍑哄簱瀹屾垚
-                            taskWrk.setStatus(TaskStatusType.RECEIVE.id);//鎺ユ敹
+                            taskWrk.setStatus(TaskStatusType.OVER.id);//瀹岀粨
                             //鏇存柊搴撲綅鐘舵��
                             LocMast locMast = locMastService.selectByLocNo(taskWrk.getStartPoint());
-                            locMast.setLocSts("S");//O.绌哄簱浣�
+                            locMast.setLocSts("O");//O.绌哄簱浣�
+                            locMast.setBarcode("");//鎵樼洏鐮�
+                            locMast.setModiTime(now);
+                            locMast.setModiUser(9999L);
+                            locMastService.updateById(locMast);
+                        } else if (taskWrk.getIoType() == 3 && taskWrk.getWrkSts() == 12) {
+                            taskWrk.setWrkSts(4);//鍏ュ簱瀹屾垚
+                            taskWrk.setStatus(TaskStatusType.OVER.id);//瀹岀粨
+                            //鏇存柊搴撲綅鐘舵��
+                            LocMast locMast = locMastService.selectByLocNo(taskWrk.getTargetPoint());
+                            locMast.setLocSts("F");//F.鍦ㄥ簱
                             locMast.setBarcode(taskWrk.getBarcode());//鎵樼洏鐮�
                             locMast.setModiTime(now);
                             locMast.setModiUser(9999L);
                             locMastService.updateById(locMast);
+
+                            LocMast locMast1 = locMastService.selectByLocNo(taskWrk.getStartPoint());
+                            locMast1.setLocSts("O");//O.绌哄簱浣�
+                            locMast1.setBarcode("");//鎵樼洏鐮�
+                            locMast1.setModiTime(now);
+                            locMast1.setModiUser(9999L);
+                            locMastService.updateById(locMast1);
                         }
                         taskWrk.setModiTime(now);
                         taskWrk.setCompleteTime(now);
                         taskWrkService.updateById(taskWrk);
 
+
+//                    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;
+//                        log.error("wcs瀹岀粨浠诲姟涓婃姤wms==銆�", headParam);
+//
+//                        response = new HttpHandler.Builder()
+//                                // .setHeaders(headParam)
+//                                .setUri(wmsUrl)
+//                                .setPath(taskStatusFeedbackPath)
+//                                .setJson(JSON.toJSONString(headParam))
+//                                .build()
+//                                .doPost();
+//                        log.error("wcs瀹岀粨浠诲姟涓婃姤wms==銆�", response);
+//
+////                        JSONObject jsonObject = JSON.parseObject(response);
+////                        log.error("wcs瀹岀粨浠诲姟涓婃姤wms==銆�", jsonObject);
+//
+//                        apiLogService.save("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms"
+//                                , wmsUrl + taskStatusFeedbackPath
+//                                , null
+//                                , "127.0.0.1"
+//                                , JSON.toJSONString(headParam)
+//                                , response
+//                                , true
+//                        );
+//                    } catch (Exception e) {
+//                        log.error("wcs瀹岀粨浠诲姟涓婃姤wms澶辫触", taskWrk);
+//                        log.error("wcs瀹岀粨浠诲姟涓婃姤wms澶辫触,鎶ラ敊淇℃伅锛�", e);
+////                        throw new CoolException("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms澶辫触");
+//                    }
                     }
 
                 }
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index 15990c7..fd7e5fd 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -122,8 +122,6 @@
                 mainService.crnIoExecuteDemo();
                 // 鍏ュ簱  ===>> 鎵ц瀵瑰伐浣滄。鐨勫畬鎴愭搷浣�
                 mainService.storeFinishedDemo();
-                // 浠诲姟涓嬪彂
-                mainService.taskStartDemo();
             } catch (Exception e) {
                 e.printStackTrace();
             }
@@ -138,23 +136,28 @@
                 // 绯荤粺婕旂ず妯″紡杩愯鐘舵�佸彉鍖�
                 if (SystemProperties.WCS_RUNNING_STATUS_DEMO.get()) {
                     if (SystemProperties.WCS_RUNNING_STATUS_DEMO_VALUE == 2) {
-                        boolean signHpMk = mainService.crnStnDEMOStop2();
-                        if (signHpMk) {
+                        int signHpMk = mainService.crnStnDEMOStop2();
+                        if (signHpMk != 2) {
                             SystemProperties.WCS_RUNNING_STATUS_DEMO_VALUE = 3;
                         }
                     } else if (SystemProperties.WCS_RUNNING_STATUS_DEMO_VALUE == 3) {
                         boolean signHpMk = mainService.crnStnDEMOStop3();
-                        if (signHpMk) {
+                        int signHpMk2 = mainService.crnStnDEMOStop2();
+                        if (signHpMk && signHpMk2==0) {
                             SystemProperties.WCS_RUNNING_STATUS_DEMO.set(false);
                             SystemProperties.WCS_RUNNING_STATUS_DEMO_VALUE = 0;
+                        } else if (!signHpMk && signHpMk2==2) {
+                            SystemProperties.WCS_RUNNING_STATUS_DEMO_VALUE = 2;
                         }
                     }
                 } else {
                     if (SystemProperties.WCS_RUNNING_STATUS_DEMO_VALUE == 1) {
-                        boolean signHpMk = mainService.crnStnDEMOOpen1();
-                        if (signHpMk) {
+                        int signHpMk = mainService.crnStnDEMOOpen1();
+                        if (signHpMk == 2) {
                             SystemProperties.WCS_RUNNING_STATUS_DEMO.set(true);
                             SystemProperties.WCS_RUNNING_STATUS_DEMO_VALUE = 2;
+                        } else if (signHpMk == 1) {
+                            SystemProperties.WCS_RUNNING_STATUS_DEMO_VALUE = 1;
                         } else {
                             SystemProperties.WCS_RUNNING_STATUS_DEMO_VALUE = 0;
                         }
diff --git a/src/main/java/com/zy/core/model/protocol/CrnProtocol.java b/src/main/java/com/zy/core/model/protocol/CrnProtocol.java
index 28b5150..0c1b017 100644
--- a/src/main/java/com/zy/core/model/protocol/CrnProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/CrnProtocol.java
@@ -203,6 +203,8 @@
 
 
     public Integer locMastDemoCount;//娴嬭瘯搴撲綅鏁伴噺
+    public ArrayList<String> locMastDemoListF;//娴嬭瘯搴撲綅鍒楄〃
+    public ArrayList<String> locMastDemoListE;//娴嬭瘯搴撲綅鍒楄〃
     public ArrayList<String> locMastDemoList;//娴嬭瘯搴撲綅鍒楄〃
     public Integer staOutDemo;//娴嬭瘯搴撲綅鍑哄簱绔�
     public Integer staIntDemo;//娴嬭瘯搴撲綅鍏ュ簱绔�
diff --git a/src/main/webapp/views/deviceOperate/crnOperate.html b/src/main/webapp/views/deviceOperate/crnOperate.html
index 16af503..db36439 100644
--- a/src/main/webapp/views/deviceOperate/crnOperate.html
+++ b/src/main/webapp/views/deviceOperate/crnOperate.html
@@ -78,8 +78,11 @@
 							<el-form-item label="娴嬭瘯搴撲綅鏁伴噺">
 								<el-input v-model="formParam.locMastDemoCount" placeholder="娴嬭瘯搴撲綅鏁伴噺"></el-input>
 							</el-form-item>
-							<el-form-item label="娴嬭瘯搴撲綅">
-								<el-input v-model="formParam.locMastDemo" placeholder="娴嬭瘯搴撲綅 鍒嗛殧绗�;"></el-input>
+							<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.staOutDemo" placeholder="鍫嗗灈鏈烘斁璐х珯鐐�"></el-input>
@@ -220,7 +223,8 @@
 					sourceLev: 1,
 					staNo: null,
 					locMastDemoCount: 3,
-					locMastDemo: null,
+					locMastDemoF: null,
+					locMastDemoE: null,
 					staOutDemo: null,
 					staIntDemo: null,
 					row: 1,
@@ -352,7 +356,8 @@
 								hpMk: this.hpMkDemo ? "Y" : "N",
 								staOutDemo: this.formParam.staOutDemo,
 								staIntDemo: this.formParam.staIntDemo,
-								locMastDemo: this.formParam.locMastDemo,
+								locMastDemoF: this.formParam.locMastDemoF,
+								locMastDemoE: this.formParam.locMastDemoE,
 								locMastDemoCount: this.formParam.locMastDemoCount,
 								crnNo: this.formParam.crnNo
 							}

--
Gitblit v1.9.1