From 0fe2f60a5f2018fa97ead4727e04b055d4907e99 Mon Sep 17 00:00:00 2001
From: 野心家 <1051256694@qq.com>
Date: 星期六, 17 五月 2025 08:50:37 +0800
Subject: [PATCH] 初始化

---
 src/main/java/com/zy/core/thread/LedThread.java             |   10 ++
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   92 +++++++++++++++++-----
 src/main/webapp/static/wcs/js/console.map.js                |    2 
 src/main/java/com/zy/asrs/controller/MonitorController.java |   68 +++++------------
 src/main/resources/application-prod.yml                     |   10 +-
 src/main/java/com/zy/core/MainProcess.java                  |    8 +
 src/main/java/com/zy/core/thread/SiemensDevpThread.java     |   34 ++++----
 7 files changed, 128 insertions(+), 96 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/MonitorController.java b/src/main/java/com/zy/asrs/controller/MonitorController.java
index 508f0d0..f689993 100644
--- a/src/main/java/com/zy/asrs/controller/MonitorController.java
+++ b/src/main/java/com/zy/asrs/controller/MonitorController.java
@@ -12,7 +12,9 @@
 import com.zy.core.CrnThread;
 import com.zy.core.cache.SlaveConnection;
 import com.zy.core.enums.SlaveType;
+import com.zy.core.model.LedSlave;
 import com.zy.core.model.protocol.CrnProtocol;
+import com.zy.core.properties.SlaveProperties;
 import com.zy.core.thread.LedThread;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -34,6 +36,8 @@
 
     @Autowired
     private ReportQueryMapper reportQueryMapper;
+    @Autowired
+    private SlaveProperties slaveProperties;
 
     /**
      * 鑾峰彇褰撳墠鏃堕棿
@@ -232,50 +236,6 @@
                 .add("usedPr", usedPr)
         );
     }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
     /**
      * 鑷姩琛ラ浂
      */
@@ -347,8 +307,20 @@
         }
 
     }
-
-
-
-
+    /**
+     * 寮傚父閫氱煡
+     */
+    @GetMapping("/led/error")
+    public R monitorLedError(@RequestParam("ledId") Integer ledId) {
+        String errorMsg = "";
+        for (LedSlave slave : slaveProperties.getLed()) {
+            if (slave.getStaArr().contains(ledId)) {
+                LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, slave.getId());
+                if (null != ledThread) {
+                    errorMsg = ledThread.getErrorMsg().toString();
+                }
+            }
+        }
+        return R.ok().add(errorMsg);
+    }
 }
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 0d945f2..68bbb31 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -29,6 +29,7 @@
 import com.zy.core.enums.*;
 import com.zy.core.model.CrnSlave;
 import com.zy.core.model.DevpSlave;
+import com.zy.core.model.LedSlave;
 import com.zy.core.model.Task;
 import com.zy.core.model.command.CommandPackage;
 import com.zy.core.model.command.CrnCommand;
@@ -36,6 +37,7 @@
 import com.zy.core.model.protocol.StaProtocol;
 import com.zy.core.properties.SlaveProperties;
 import com.zy.core.thread.BarcodeThread;
+import com.zy.core.thread.LedThread;
 import com.zy.core.thread.SiemensDevpThread;
 import com.zy.system.entity.Config;
 import com.zy.system.service.ConfigService;
@@ -343,27 +345,29 @@
                             && staProtocol.isPakMk()) {
                         // 鑾峰彇鏉$爜鎵弿浠俊鎭�
                         BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode());
-                        if (barcodeThread == null) {
-                            continue;
-                        }
-                        String BoxNo = barcodeThread.getBarcode();
-                        TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode", BoxNo));
-                        if (!Cools.isEmpty(taskWrk1)) {
-                            log.info("鎵樼洏鐮侊細" + BoxNo + "浠诲姟妗e瓨鍦�");
-                            if (taskWrk1.getIoType() == 1 && taskWrk1.getStartPoint().equals(staProtocol.getSiteId().toString())) {
-                                StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
-                                        .eq("crn_no", taskWrk1.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
-                                if (Cools.isEmpty(staDesc)) {
-                                    return;
-                                } else {
-                                    continue;
+                        String BoxNo = "";
+                        if (barcodeThread != null) {
+                            BoxNo = barcodeThread.getBarcode();
+                            TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode", BoxNo));
+                            if (!Cools.isEmpty(taskWrk1)) {
+                                log.info("鎵樼洏鐮侊細" + BoxNo + "浠诲姟妗e瓨鍦�");
+                                if (taskWrk1.getIoType() == 1 && taskWrk1.getStartPoint().equals(staProtocol.getSiteId().toString())) {
+                                    StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
+                                            .eq("crn_no", taskWrk1.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
+                                    if (Cools.isEmpty(staDesc)) {
+                                        return;
+                                    } else {
+                                        continue;
+                                    }
                                 }
                             }
+                            if (back) {
+                                storageEscalationParam.setWCSStatus(1);
+                                storageEscalationParam.setWCSErrorMessage(storageEscalationParam.getWCSErrorMessage() + errMsg);
+                            }
                         }
-                        if (back) {
-                            storageEscalationParam.setWCSStatus(1);
-                            storageEscalationParam.setWCSErrorMessage(storageEscalationParam.getWCSErrorMessage() + errMsg);
-                        }
+
+
                         storageEscalationParam.setBoxNo(BoxNo);
                         //鏄惁婊℃澘 1婊℃澘  0绌烘澘
                         storageEscalationParam.setStaType(staProtocol.isEmptyMk() ? 0 : 1);
@@ -504,13 +508,19 @@
                             && staProtocol.isPakMk()) {
                         // 鑾峰彇鏉$爜鎵弿浠俊鎭�
                         String BoxNo = "";
+                        //绔欑偣鎷f枡鍥炲簱浠诲姟鏄細鏈変竴鏉�
+                        TaskWrk taskWrkk =taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("start_point",staProtocol.getSiteId()));
+                        if (!Cools.isEmpty(taskWrkk)) {
+                            continue;
+                        }
                         if(!staProtocol.isEmptyMk()&&staProtocol.getWorkNo()<9990){
-                            TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("task_no", workNo));
+
+                            TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("wrk_no", workNo));
 
                             if (!Cools.isEmpty(taskWrk1)) {
                                 BoxNo = taskWrk1.getBarcode();
                             } else {
-                                TaskWrkLog taskWrkLog = taskWrkLogService.selectOne(new EntityWrapper<TaskWrkLog>().eq("task_no", workNo).orderBy("modi_time", false));
+                                TaskWrkLog taskWrkLog = taskWrkLogService.selectOne(new EntityWrapper<TaskWrkLog>().eq("wrk_no", workNo).orderBy("modi_time", false));
                                 if (taskWrkLog != null) {
                                     BoxNo = taskWrkLog.getBarcode();
                                 }
@@ -536,6 +546,7 @@
 
                             if (!Cools.isEmpty(response) && !Cools.isEmpty(jsonObject.get("ReturnStatus")) && jsonObject.get("ReturnStatus").equals(0) && !Cools.isEmpty(jsonObject.get("Result").toString())) {
                                 Result result = JSON.parseObject(jsonObject.get("Result").toString(), Result.class);
+
                                 // 鍒涙柊涓�涓叆搴撳伐浣滄。
                                 TaskWrk taskWrk = taskWrkService.selectByTaskNo(result.getTaskNo());
                                 if (Cools.isEmpty(taskWrk)) {
@@ -932,7 +943,7 @@
                             staProtocol.setStaNo(staDesc.getStnNo().shortValue());
                             boolean offer = false;
                             try {
-                                offer = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
+                                offer = MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol));
                             } catch (Exception e) {
                                 log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:" + e);
                                 log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:offer:" + offer);
@@ -1836,4 +1847,43 @@
         return taskWrk;
     }
 
+    //----------------------------------------------------------鐢佃鏈烘樉绀哄鐞�----------------------------------------
+    /**
+     * 鍏朵粬  ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅
+     */
+    public synchronized void ledReset(Integer mark) {
+
+//        log.info(""+mark+" - 0"+" - 寮�濮嬫墽琛�:鍏朵粬  ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅");
+        for (LedSlave led : slaveProperties.getLed()) {
+
+            // 鑾峰彇杈撻�佺嚎plc绾跨▼
+            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId());
+            // 鍛戒护闆嗗悎
+            boolean reset = true;
+            for (Integer staNo : led.getStaArr()) {
+                // 鑾峰彇鍙夎溅绔欑偣
+                StaProtocol staProtocol = devpThread.getStation().get(staNo);
+                if (staProtocol == null) {
+                    continue;
+                }
+                if (staProtocol.getWorkNo() != 0 && staProtocol.isLoading()) {
+                    reset = false;
+                    break;
+                }
+            }
+            // 鑾峰彇led绾跨▼
+            LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId());
+            // led鏄剧ず榛樿鍐呭
+            if (reset && !ledThread.isLedMk()) {
+                ledThread.setLedMk(true);
+                if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(4, new ArrayList<>()))) {
+                    log.error(""+mark+" - 1"+" - {}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
+                } else {
+
+                }
+            }
+        }
+//        log.info(""+mark+" - 0"+" - 鎵ц瀹屾垚锛氬叾浠�  ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅");
+    }
+
 }
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index 99398a8..51c67c8 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -50,6 +50,8 @@
                     mainService.crnDemoOfLocMove1();
                     // 鍏ュ簱  ===>> 鍏ュ簱绔欏埌鍫嗗灈鏈虹珯锛屾牴鎹潯鐮佹壂鎻忕敓鎴愬叆搴撳伐浣滄。
                     mainService.generateStoreWrkFile1(); // 缁勬墭
+                    // 鍏ュ簱  ===>> 鎷f枡鐩樼偣鍥炲簱锛岃緭閫佺嚎宸ヤ綔鍙蜂繚鐣欑殑鎯呭喌涓嬪叆搴�
+                    mainService.PickingAndReturningToTheWarehouse();
                     // 鍑哄簱  ===>>  鍫嗗灈鏈哄嚭搴撶珯鍒板嚭搴撶珯
                     mainService.crnStnToOutStn();
                     // 鍏ュ嚭搴�  ===>>  鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂
@@ -59,8 +61,10 @@
 
                     // 鍫嗗灈鏈哄紓甯镐俊鎭褰�
                     mainService.recCrnErr();
-                    // 鍏ュ簱  ===>> 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐�
-//                    mainService.storeEmptyPlt();
+
+                    // 鍏朵粬  ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅
+                    mainService.ledReset(10);
+
 
 //                    mainService.outOfDevp();
 
diff --git a/src/main/java/com/zy/core/thread/LedThread.java b/src/main/java/com/zy/core/thread/LedThread.java
index 056c0e8..a0995f5 100644
--- a/src/main/java/com/zy/core/thread/LedThread.java
+++ b/src/main/java/com/zy/core/thread/LedThread.java
@@ -48,6 +48,7 @@
     private Set<Integer> workNos = new HashSet<>();
     private boolean ledMk = false;
     private boolean resetStatus = false;    // 澶嶄綅鐘舵��
+    private StringBuffer errorMsg = new StringBuffer();
 
     public LedThread(Slave slave) {
         this.slave = slave;
@@ -77,6 +78,9 @@
                         // 澶嶄綅
                         case 2:
                             reset();
+                            break;
+                        case 5:
+                            error((String) task.getData());
                             break;
                         default:
                             break;
@@ -459,8 +463,10 @@
         //
         // 缁у紑涓庢帶鍒跺櫒涔嬮棿鐨勯摼鎺�
         screen.disconnect();
-
-
+    }
+    private void error(String msg) {
+        errorMsg.delete(0, errorMsg.length());
+        errorMsg.append(msg);
     }
 
 }
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 1c7f818..b81bb55 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -324,23 +324,23 @@
         }
 
 
-        OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.922.0", (short) (staNoSize * 4));
-        if (resultErr.IsSuccess) {
-            for (int i = 0; i < staNoSize; i++) {
-                Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
-                boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i * 4, 1);
-                StaProtocol staProtocol = station.get(siteId);
-                staProtocol.setBreakerErr(status[0]);
-                staProtocol.setInfraredErr(status[1]);
-                staProtocol.setOutTimeErr(status[2]);
-                staProtocol.setSeizeSeatErr(status[3]);
-                staProtocol.setWrkYgoodsN(status[4]);
-                staProtocol.setInverterErr(status[5]);
-                staProtocol.setContactErr(status[6]);
-                staProtocol.setUpcontactErr(status[7]);
-
-            }
-        }
+//        OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.922.0", (short) (staNoSize * 4));
+//        if (resultErr.IsSuccess) {
+//            for (int i = 0; i < staNoSize; i++) {
+//                Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
+//                boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i * 4, 1);
+//                StaProtocol staProtocol = station.get(siteId);
+//                staProtocol.setBreakerErr(status[0]);
+//                staProtocol.setInfraredErr(status[1]);
+//                staProtocol.setOutTimeErr(status[2]);
+//                staProtocol.setSeizeSeatErr(status[3]);
+//                staProtocol.setWrkYgoodsN(status[4]);
+//                staProtocol.setInverterErr(status[5]);
+//                staProtocol.setContactErr(status[6]);
+//                staProtocol.setUpcontactErr(status[7]);
+//
+//            }
+//        }
 
 
 //        //RGV鍙拌溅浣嶇疆
diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml
index 9fc070b..bec2f22 100644
--- a/src/main/resources/application-prod.yml
+++ b/src/main/resources/application-prod.yml
@@ -1,10 +1,10 @@
 wcs-slave:
   doubleDeep: true #鍙屾繁
-  doubleLocs: 1,4 #鍙屾繁搴撲綅鎺掑彿 1,4
+  doubleLocs: 5,8 #鍙屾繁搴撲綅鎺掑彿 1,4
   groupCount: 4 #涓�涓爢鍨涙満璐熻矗鐨勮揣鏋舵帓鏁�
   crn[0]: #鍫嗗灈鏈�1
     id: 1
-    ip: 10.10.10.110
+    ip: 192.168.110.100
     slot: 0
     demo: false
     rack: 0
@@ -38,7 +38,7 @@
       devpPlcId: ${wcs-slave.devp[1].id}
   crn[1]: #鍫嗗灈鏈�2
     id: 2
-    ip: 10.10.10.120
+    ip: 192.168.110.90
     slot: 0
     demo: false
     rack: 0
@@ -196,12 +196,12 @@
     rack: 0
     port: 102
     slot: 0
-    emptyInSta[0]: #绌烘澘鍏ュ簱鍙�0
-      staNo: 1058
     inSta[0]: #鍏ュ簱鍙�1
       staNo: 1052
       backSta: 1051
       barcode: ${wcs-slave.barcode[2].id}
+    inSta[1]: #绌烘澘鍏ュ簱鍙�0
+        staNo: 1058
     outSta[0]: #鍑哄簱鍙�1
       staNo: 1053
   devp[3]: #杈撻�佺嚎--鎴愬搧2F
diff --git a/src/main/webapp/static/wcs/js/console.map.js b/src/main/webapp/static/wcs/js/console.map.js
index 792a4fd..e041664 100644
--- a/src/main/webapp/static/wcs/js/console.map.js
+++ b/src/main/webapp/static/wcs/js/console.map.js
@@ -14,7 +14,7 @@
         "width": 795,
         "height": 23,
         "minBayNo": 1,
-        "maxBayNo": 22,
+        "maxBayNo": 50,
         "hiddenArr": [1,22]
     }, {
         "type": "rack",

--
Gitblit v1.9.1