From d34366b9d348f47a8083aa3dd2e3e0efa2377dcf Mon Sep 17 00:00:00 2001
From: zc <zc@123>
Date: 星期五, 25 四月 2025 20:57:18 +0800
Subject: [PATCH] 初步调试

---
 src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java          |   24 +++++--
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java             |   80 +++++++++++++++++---------
 src/main/java/com/zy/asrs/controller/TVController.java                  |   45 ++++++++------
 src/main/java/com/zy/asrs/service/impl/TransportLiftOutServiceImpl.java |    8 +-
 4 files changed, 100 insertions(+), 57 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/TVController.java b/src/main/java/com/zy/asrs/controller/TVController.java
index 1b8e616..d797b27 100644
--- a/src/main/java/com/zy/asrs/controller/TVController.java
+++ b/src/main/java/com/zy/asrs/controller/TVController.java
@@ -231,30 +231,37 @@
      */
     @GetMapping("/led")
     public R monitorLed(@RequestParam("ledId") Integer ledId) {
-        int dev_no = 1012;
+        int dev_no1 = 1011;
+        int dev_no2 = 1012;
+        int dev_no3 = 1015;
         if (ledId == 1) {
-            dev_no = 1012;
+            dev_no1 = 1011;
+            dev_no2 = 1012;
         } else if (ledId == 2) {
-            dev_no = 1014;
+            dev_no1 = 1013;
+            dev_no2 = 1015;
+            dev_no3 = 1015;
         } else if (ledId == 3) {
-            dev_no = 1021;
+            dev_no1 = 1021;
+            dev_no2 = 1022;
+            dev_no3 = 1023;
         } else if (ledId == 4) {
-            dev_no = 1024;
+            dev_no1 = 1024;
+            dev_no2 = 1025;
+            dev_no3 = 1026;
         }
-        BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", dev_no));
-        if (Cools.isEmpty(basDevp)) {
-            return R.ok();
-        }
-        if (Cools.isEmpty(basDevp.getWrkNo1())) {
-            return R.ok();
-        }
-        if (basDevp.getWrkNo() == null || basDevp.getWrkNo() == 0) {
-            return R.ok();
-        }
-        Object o = redisUtil.get("LED_" + dev_no);
-        if (o != null) {
-            log.info("鐢佃鏈烘樉绀猴細{}",JSONObject.toJSONString(o));
-            return R.ok().add(o);
+        Object o1 = redisUtil.get("LED_" + dev_no1);
+        Object o2 = redisUtil.get("LED_" + dev_no2);
+        Object o3 = redisUtil.get("LED_" + dev_no3);
+        if (o1 != null) {
+            log.info("鐢佃鏈烘樉绀�1锛歿}", JSONObject.toJSONString(o1));
+            return R.ok().add(o1);
+        } else if (o2 != null) {
+            log.info("鐢佃鏈烘樉绀�2锛歿}", JSONObject.toJSONString(o2));
+            return R.ok().add(o2);
+        } else if (o3 != null) {
+            log.info("鐢佃鏈烘樉绀�3锛歿}", JSONObject.toJSONString(o3));
+            return R.ok().add(o3);
         }
         return R.ok();
 
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 4840377..65dcae0 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -22,10 +22,7 @@
 import com.zy.core.cache.SlaveConnection;
 import com.zy.core.dispatcher.ShuttleDispatchUtils;
 import com.zy.core.enums.*;
-import com.zy.core.model.DevpSlave;
-import com.zy.core.model.LiftSlave;
-import com.zy.core.model.ShuttleSlave;
-import com.zy.core.model.Task;
+import com.zy.core.model.*;
 import com.zy.core.model.command.*;
 import com.zy.core.model.protocol.ForkLiftStaProtocol;
 import com.zy.core.model.protocol.LiftProtocol;
@@ -37,7 +34,9 @@
 import com.zy.core.thread.LiftThread;
 import com.zy.core.thread.ShuttleThread;
 import com.zy.core.thread.impl.FyDevpThread;
+import com.zy.core.thread.impl.NormalLedThread;
 import com.zy.system.service.ConfigService;
+import io.swagger.models.auth.In;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -200,15 +199,8 @@
                     }
                     // 閫�鍥�
                     if (back) {
-                        if (!staProtocol.isLoading()) {
-                            continue;
-                        }
-                        if (!staProtocol.isPakMk()) {
-                            continue;
-                        }
                         // led 寮傚父鏄剧ず
                         if (ledThread != null) {
-                            MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errMsg));
                             ledThread.error(errMsg);
                         }
                     }
@@ -231,8 +223,6 @@
                             wrkMast.setWrkSts(WrkStsType.INBOUND_DEVICE_RUN.sts);
                             wrkMast.setModiTime(new Date());
                             wrkMastService.updateById(wrkMast);
-                            setLedData(wrkMast.getWrkNo(), wrkMast.getStaNo());
-
                         } else if (wrkMast != null && wrkMast.getWrkSts() != WrkStsType.NEW_INBOUND.sts) {
                             continue;
                         }
@@ -308,6 +298,34 @@
                     } else {
                         staProtocol = staProtocol.clone();
                     }
+                    LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
+                    String errMsg = "";
+                    boolean back = false;
+                    if (!back && staProtocol.isBackErr()) {
+                        errMsg = "瓒呭寮傚父";
+                        back = true;
+                    }
+                    if (!back && staProtocol.isHighErr()) {
+                        errMsg = "瓒呴珮寮傚父";
+                        back = true;
+                    }
+                    if (!back && staProtocol.isRightErr()) {
+                        errMsg = "瓒呴暱寮傚父";
+                        back = true;
+                    }
+                    if (!back && staProtocol.isWeightErr()) {
+                        errMsg = "瓒呴噸";
+                        back = true;
+                    }
+                    // 閫�鍥�
+                    if (back) {
+
+                        // led 寮傚父鏄剧ず
+                        if (ledThread != null) {
+                            ledThread.error(errMsg);
+                        }
+                    }
+
                     Short workNo = staProtocol.getWorkNo();
                     if (staProtocol.isAutoing() && staProtocol.isLoading() && isInEnable(devpThread, inSta.getStaNo()) && !staProtocol.isEmptyMk() && (workNo == 0 || (workNo >= 9990 && workNo <= 9999)) && staProtocol.isPakMk()) {
                         String barcode = staProtocol.getBarcode();
@@ -329,7 +347,6 @@
                                 JSONObject jsonObject = JSON.parseObject(response);
                                 Integer code = jsonObject.getInteger("code");
                                 if (code.equals(200)) {
-                                    setLedData(wrkMast.getWrkNo(), wrkMast.getStaNo());
 
                                 } else {
                                     String msg = jsonObject.getString("msg");
@@ -401,6 +418,8 @@
                 wrkMast.setModiTime(new Date());
                 if (!wrkMastService.updateById(wrkMast)) {
                     News.info("{}浠诲姟锛屾洿鏂板伐浣滄。澶辫触", wrkMast.getWrkNo());
+                } else {
+                    setLedData(Integer.parseInt(wrkMast.getWmsWrkNo()), wrkMast.getStaNo());
                 }
             }
         }
@@ -516,7 +535,7 @@
                         wrkMast.setModiTime(new Date());
                         wrkMast.setShuttleNo(null);
                         wrkMastService.updateById(wrkMast);
-                        setLedData(wrkMast.getWrkNo(), wrkMast.getStaNo());
+                        setLedData(Integer.parseInt(wrkMast.getWmsWrkNo()), wrkMast.getStaNo());
                     }
                 }
             }
@@ -526,7 +545,6 @@
 
     private void setLedData(Integer wrkNo, Integer staNo) {
         try {
-            List<LedCommand> commands = new ArrayList<>();
             Map<String, Object> param = new HashMap<>();
             param.put("taskNo", wrkNo);
             String response = null;
@@ -541,9 +559,10 @@
             if (code.equals(200)) {
                 String data = jsonObject.getString("data");
                 List<LedCommand> wrkDetls = JSONArray.parseArray(data, LedCommand.class);
-                commands.addAll(wrkDetls);
-                redisUtil.set("LED_" + staNo, commands, 10);
-                log.info("鐢佃鏈烘暟鎹缃細{}", data);
+                redisUtil.set("LED_" + staNo, wrkDetls, 30);
+                log.info("鐢佃鏈烘暟鎹缃細{},{}", staNo, data);
+            } else {
+                log.info("鐢佃鏈烘暟鎹缃紓甯革細{},{}", wrkNo, response);
             }
         } catch (Exception e) {
             e.printStackTrace();
@@ -949,19 +968,21 @@
                 }
             }
             String barcode = staProtocol.getBarcode();
-            if (Cools.isEmpty(barcode) || "?".endsWith(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode) || "00000000".equals(barcode)) {
-                return false;
-            }
-            if (!staProtocol.isAutoing()) {
-                News.info("{}浠诲姟锛寋}绔欑偣锛屼笉鍦ㄨ嚜鍔ㄧ姸鎬�", wrkMast.getWrkNo(), staProtocol.getSiteId());
-                return false;
-            }
+
+
 
             if (!staProtocol.isLoading()) {
                 News.info("{}浠诲姟锛寋}绔欑偣锛屾棤鎵樼洏", wrkMast.getWrkNo(), staProtocol.getSiteId());
                 return false;
             }
             if (wrkMast.getSourceStaNo() != 1031) {
+                if (!staProtocol.isAutoing()) {
+                    News.info("{}浠诲姟锛寋}绔欑偣锛屼笉鍦ㄨ嚜鍔ㄧ姸鎬�", wrkMast.getWrkNo(), staProtocol.getSiteId());
+                    return false;
+                }
+                if (Cools.isEmpty(barcode) || "?".endsWith(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode) || "00000000".equals(barcode)) {
+                    return false;
+                }
                 if (!staProtocol.getBarcode().equals(wrkMast.getBarcode())) {
                     News.info("{}浠诲姟锛寋}绔欑偣锛屾墭鐩樼爜涓嶅尮閰嶏紝绔欑偣鎵樼洏鐮侊細{}锛屼换鍔℃墭鐩樼爜锛歿}", wrkMast.getWrkNo(), staProtocol.getSiteId(), staProtocol.getBarcode(), wrkMast.getBarcode());
                     return false;
@@ -993,6 +1014,7 @@
             wrkMast.setSystemMsg("");//娓呯┖娑堟伅
             wrkMast.setModiTime(now);
             if (wrkMastService.updateById(wrkMast)) {
+                setLedData(Integer.parseInt(wrkMast.getWmsWrkNo()), wrkMast.getStaNo());
                 return false;
             }
             return false;
@@ -1341,7 +1363,7 @@
             wrkMast.setModiTime(now);
 
             if (wrkMastService.updateById(wrkMast)) {
-                setLedData(wrkMast.getWrkNo(), wrkMast.getStaNo());
+                setLedData(Integer.parseInt(wrkMast.getWmsWrkNo()), wrkMast.getStaNo());
                 //涓嬪彂浠诲姟
                 liftAction.assignWork(wrkMast.getLiftNo(), assignCommand);
                 return false;
@@ -2301,6 +2323,10 @@
      * 鍏ュ嚭搴撴ā寮忓垏鎹㈠嚱鏁�
      */
     public synchronized void ioConvert() {
+        for (LedSlave led : slaveProperties.getLed()) {
+            NormalLedThread ledThread = (NormalLedThread) SlaveConnection.get(SlaveType.Led, led.getId());
+            ledThread.reset();
+        }
         try {
             // 鏍规嵁杈撻�佺嚎plc閬嶅巻
             FyDevpThread devpThread = (FyDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
diff --git a/src/main/java/com/zy/asrs/service/impl/TransportLiftOutServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/TransportLiftOutServiceImpl.java
index dea517b..2dd8e9c 100644
--- a/src/main/java/com/zy/asrs/service/impl/TransportLiftOutServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/TransportLiftOutServiceImpl.java
@@ -542,19 +542,19 @@
             //鍘诲緟鏈轰綅
             String locNo = Utils.getLocNo(Utils.getRow(liftStandByLocNo) + 1, Utils.getBay(liftStandByLocNo) - 1, Utils.getLev(liftStandByLocNo));
             //闃叉鍙︿竴杈嗚溅鍗犵敤寰呮満浣�
-            try{
+            try {
                 if (shuttleProtocol.getShuttleNo() == 2) {
                     ShuttleThread shuttleThread1 = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, 1);
                     if (locNo.equals(shuttleThread1.getStatus().getCurrentLocNo())) {
-                        locNo = Utils.getLocNo(Utils.getRow(liftStandByLocNo) + 2, Utils.getBay(liftStandByLocNo) - 1, Utils.getLev(liftStandByLocNo));
+                        locNo = Utils.getLocNo(Utils.getRow(liftStandByLocNo) - 1, Utils.getBay(liftStandByLocNo) - 1, Utils.getLev(liftStandByLocNo));
                     }
                 } else {
                     ShuttleThread shuttleThread2 = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, 2);
                     if (locNo.equals(shuttleThread2.getStatus().getCurrentLocNo())) {
-                        locNo = Utils.getLocNo(Utils.getRow(liftStandByLocNo) + 2, Utils.getBay(liftStandByLocNo) - 1, Utils.getLev(liftStandByLocNo));
+                        locNo = Utils.getLocNo(Utils.getRow(liftStandByLocNo) - 1, Utils.getBay(liftStandByLocNo) - 1, Utils.getLev(liftStandByLocNo));
                     }
                 }
-            }catch (Exception e){
+            } catch (Exception e) {
 
             }
             //鑾峰彇灏忚溅鍒版彁鍗囨満寰呮満琛岃蛋鍛戒护
diff --git a/src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java b/src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java
index 9c4b360..10bd959 100644
--- a/src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java
+++ b/src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java
@@ -434,7 +434,7 @@
                     if (wrkMast1.getIoType() == 101 && currentLocNo.equals(locNo)) {
                         //杞﹁締褰撳墠浣嶇疆宸茬粡鏄洰鏍囧簱浣嶏紝璋冨害璇ヨ溅
                         //缁欏伐浣滄。缁戝畾灏忚溅鍙�
-                        diffShuttles.put(-1, shuttleThread);
+                        diffShuttles.put(-2, shuttleThread);
                     } else {
 //                        if (tongLev && diffLev.size() >= 2) {
 //                            //褰撳墠绌挎杞︾嚎绋嬪埌鐩爣鍦扮偣璺濈
@@ -445,14 +445,24 @@
 //                            Integer currentAllDistance = navigateUtils.getOriginPathAllDistance(currentShuttlePath);//璁$畻褰撳墠璺緞琛岃蛋鎬昏窛绂�
 //                            diffShuttles.put(currentAllDistance, shuttleThread);
 //                        } else {
-                            //ABS(鐩爣妤煎眰 - 褰撳墠妤煎眰) 寰楀埌宸窛锛屽彇鏈�灏忓樊鍊�
-                            int currentValue = Math.abs(lev - currentLev);
-                            if (diffShuttles.get(currentValue) != null) {
+                        //ABS(鐩爣妤煎眰 - 褰撳墠妤煎眰) 寰楀埌宸窛锛屽彇鏈�灏忓樊鍊�
+                        int currentValue = Math.abs(lev - currentLev);
+                        if (diffShuttles.get(currentValue) != null) {
+                            try {
+                                List<NavigateNode> currentShuttlePath = navigateUtils.calc(currentLocNo, locNo, NavigationMapType.NORMAL.id, Utils.getShuttlePoints(shuttleProtocol.getShuttleNo(), Utils.getLev(currentLocNo)), null);//鎼滅储绌洪棽绌挎杞︼紝浣跨敤姝e父閫氶亾鍦板浘
+                                if (currentShuttlePath == null) {
+                                    continue;
+                                }
+                                Integer currentAllDistance = navigateUtils.getOriginPathAllDistance(currentShuttlePath);//璁$畻褰撳墠璺緞琛岃蛋鎬昏窛绂�
+                                diffShuttles.put(currentAllDistance, shuttleThread);
+                                diffShuttles.put(currentValue - 1, shuttleThread);
+                            } catch (Exception e) {
                                 diffShuttles.put(currentValue + 1, shuttleThread);
-                            } else {
-                                diffShuttles.put(currentValue, shuttleThread);
                             }
-    //                   }
+                        } else {
+                            diffShuttles.put(currentValue, shuttleThread);
+                        }
+                        //                   }
                     }
                 }
 

--
Gitblit v1.9.1