From 292ad975aaa9f3a4a74ac2a3f89b5cf3bf9a1bbb Mon Sep 17 00:00:00 2001
From: zc <zc@123>
Date: 星期五, 25 四月 2025 17:47:40 +0800
Subject: [PATCH] 初步调试

---
 src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java |   22 +++++-----
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java    |   50 ++++++++++++++++++++-----
 src/main/java/com/zy/asrs/controller/TVController.java         |   35 ++++++-----------
 3 files changed, 63 insertions(+), 44 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/TVController.java b/src/main/java/com/zy/asrs/controller/TVController.java
index 37b8cd5..1b8e616 100644
--- a/src/main/java/com/zy/asrs/controller/TVController.java
+++ b/src/main/java/com/zy/asrs/controller/TVController.java
@@ -23,6 +23,7 @@
 import com.zy.common.model.SearchLocParam;
 import com.zy.common.service.CommonService;
 import com.zy.common.utils.HttpHandler;
+import com.zy.common.utils.RedisUtil;
 import com.zy.core.cache.SlaveConnection;
 import com.zy.core.enums.SlaveType;
 import com.zy.core.model.LedSlave;
@@ -33,6 +34,7 @@
 import com.zy.core.thread.LedThread;
 import com.zy.core.thread.ShuttleThread;
 import com.zy.core.thread.impl.NormalLedThread;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -47,6 +49,7 @@
 /**
  * Created by vincent on 2020/11/16
  */
+@Slf4j
 @RestController
 @RequestMapping("/monitor")
 public class TVController {
@@ -66,6 +69,9 @@
     private SlaveProperties slaveProperties;
     @Autowired
     private BasShuttleErrService basShuttleErrService;
+
+    @Autowired
+    private RedisUtil redisUtil;
     @Value("${asrs.wmsUrl}")
     private String wmsUrl;
 
@@ -245,30 +251,13 @@
         if (basDevp.getWrkNo() == null || basDevp.getWrkNo() == 0) {
             return R.ok();
         }
-        List<LedCommand> commands = new ArrayList<>();
-        Map<String, Object> param = new HashMap<>();
-        param.put("taskNo", basDevp.getWrkNo());
-        String response = null;
-        try {
-            response = new HttpHandler.Builder()
-                    .setUri(wmsUrl)
-                    .setPath("/rpc/led/getTask2")
-                    .setJson(JSON.toJSONString(param))
-                    .build()
-                    .doPost();
-        } catch (IOException e) {
-            e.printStackTrace();
+        Object o = redisUtil.get("LED_" + dev_no);
+        if (o != null) {
+            log.info("鐢佃鏈烘樉绀猴細{}",JSONObject.toJSONString(o));
+            return R.ok().add(o);
         }
-        JSONObject jsonObject = JSON.parseObject(response);
-        Integer code = jsonObject.getInteger("code");
-        if (code.equals(200)) {
-            String data = jsonObject.getString("data");
-            List<LedCommand> wrkDetls = JSONArray.parseArray(data, LedCommand.class);
-            commands.addAll(wrkDetls);
-        } else {
-            return R.ok();
-        }
-        return R.ok().add(commands);
+        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 98bd691..4840377 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -1,6 +1,7 @@
 package com.zy.asrs.service.impl;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
@@ -25,10 +26,7 @@
 import com.zy.core.model.LiftSlave;
 import com.zy.core.model.ShuttleSlave;
 import com.zy.core.model.Task;
-import com.zy.core.model.command.LiftAssignCommand;
-import com.zy.core.model.command.LiftCommand;
-import com.zy.core.model.command.ShuttleAssignCommand;
-import com.zy.core.model.command.ShuttleCommand;
+import com.zy.core.model.command.*;
 import com.zy.core.model.protocol.ForkLiftStaProtocol;
 import com.zy.core.model.protocol.LiftProtocol;
 import com.zy.core.model.protocol.ShuttleProtocol;
@@ -45,6 +43,7 @@
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
+import java.io.IOException;
 import java.util.*;
 
 /**
@@ -232,6 +231,8 @@
                             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;
                         }
@@ -328,6 +329,7 @@
                                 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");
@@ -514,12 +516,39 @@
                         wrkMast.setModiTime(new Date());
                         wrkMast.setShuttleNo(null);
                         wrkMastService.updateById(wrkMast);
+                        setLedData(wrkMast.getWrkNo(), wrkMast.getStaNo());
                     }
                 }
             }
         }
     }
 
+
+    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;
+            response = new HttpHandler.Builder()
+                    .setUri(wmsUrl)
+                    .setPath("/rpc/led/getTask2")
+                    .setJson(JSON.toJSONString(param))
+                    .build()
+                    .doPost();
+            JSONObject jsonObject = JSON.parseObject(response);
+            Integer code = jsonObject.getInteger("code");
+            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);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
 
     /**
      * 鍒濆鍖栧疄鏃跺湴鍥�
@@ -957,7 +986,7 @@
 
             staProtocol = staProtocol.clone();
             staProtocol.setStaNo(staNo);
-            staProtocol.setWorkNo(wrkMast.getMainWrkNo().shortValue());
+            staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());
             boolean result = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
 
             wrkMast.setWrkSts(WrkStsType.INBOUND_DEVICE_RUN.sts);
@@ -1043,7 +1072,7 @@
                     return false;
                 }
             } else if (sourceStaNo == 1012) {
-                if (staProtocol.getWorkNo().intValue() != wrkMast.getWrkNo()) {
+                if (staProtocol.getFinishWorkNo().intValue() != wrkMast.getWrkNo()) {
                     News.info("{}浠诲姟锛寋}绔欑偣锛屼换鍔″彿涓嶄竴鑷�", wrkMast.getWrkNo(), staProtocol.getSiteId());
                     return false;
                 }
@@ -1060,7 +1089,7 @@
             } else if (wrkMast.getSourceStaNo() == 1032) {
                 locNo = "0200308";
             }
-            boolean dispatchShuttle = shuttleDispatchUtils.searchDispatchShuttleS(wrkMast.getWrkNo(), locNo, wrkMast.getLocNo(), "TRANSPORT_LIFT");
+            boolean dispatchShuttle = shuttleDispatchUtils.searchDispatchShuttleNoLift(wrkMast.getWrkNo(), locNo, wrkMast.getLocNo(), "TRANSPORT_LIFT");
             if (!dispatchShuttle) {
                 News.info("{}浠诲姟锛岃皟搴﹀皬杞﹀け璐�", wrkMast.getWrkNo());
                 return false;
@@ -1287,10 +1316,10 @@
             Integer sourceLev = liftThread.getLevToStaNo(Utils.getLev(wrkMast.getSourceLocNo()));
 
             //鑾峰彇鎻愬崌鏈哄懡浠�
-            List<LiftCommand> liftCommands = liftThread.getPalletOutCommand(wrkMast.getMainWrkNo(), sourceLev, wrkMast.getStaNo());
+            List<LiftCommand> liftCommands = liftThread.getPalletOutCommand(wrkMast.getWrkNo(), sourceLev, wrkMast.getStaNo());
             LiftCommand liftCommand = liftCommands.get(0);
 //            if (wrkMast.getMainWrkNo() != null) {
-            liftCommand.setTaskNo(wrkMast.getMainWrkNo());
+            liftCommand.setTaskNo(wrkMast.getWrkNo());
 //            } else {
 //                int deviceWrk = commonService.getWorkNo(8);//鐢熸垚鎻愬崌鏈鸿澶囧伐浣滃彿
 //                liftCommand.setTaskNo(deviceWrk);//鏇存崲闅忔満浠诲姟鍙�
@@ -1303,7 +1332,7 @@
             LiftAssignCommand assignCommand = new LiftAssignCommand();
             assignCommand.setCommands(commands);
             assignCommand.setLiftNo(liftProtocol.getLiftNo().shortValue());
-            assignCommand.setTaskNo(wrkMast.getMainWrkNo().shortValue());
+            assignCommand.setTaskNo(wrkMast.getWrkNo().shortValue());
             assignCommand.setTaskMode(LiftCommandModeType.PALLET_OUT.id.shortValue());
 
             wrkMast.setWrkSts(WrkStsType.OUTBOUND_LIFT_RUN.sts);
@@ -1312,6 +1341,7 @@
             wrkMast.setModiTime(now);
 
             if (wrkMastService.updateById(wrkMast)) {
+                setLedData(wrkMast.getWrkNo(), wrkMast.getStaNo());
                 //涓嬪彂浠诲姟
                 liftAction.assignWork(wrkMast.getLiftNo(), assignCommand);
                 return false;
diff --git a/src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java b/src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java
index 7641516..9c4b360 100644
--- a/src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java
+++ b/src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java
@@ -399,7 +399,7 @@
             }
         }
 
-        //瀵绘壘绂讳换鍔℃ゼ灞傛渶杩戠殑绌挎杞�(涓嶈�冭檻璺ㄦゼ灞傚皬杞︾Щ鍔ㄨ窛绂�)
+        //
         if (!diffLev.isEmpty()) {
             Map<Integer, ShuttleThread> diffShuttles = new TreeMap<>();//鑷劧鎺掑簭灏忚溅Map
             //鑾峰彇浠诲姟
@@ -436,15 +436,15 @@
                         //缁欏伐浣滄。缁戝畾灏忚溅鍙�
                         diffShuttles.put(-1, shuttleThread);
                     } else {
-                        if (tongLev && diffLev.size() >= 2) {
-                            //褰撳墠绌挎杞︾嚎绋嬪埌鐩爣鍦扮偣璺濈
-                            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);
-                        } else {
+//                        if (tongLev && diffLev.size() >= 2) {
+//                            //褰撳墠绌挎杞︾嚎绋嬪埌鐩爣鍦扮偣璺濈
+//                            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);
+//                        } else {
                             //ABS(鐩爣妤煎眰 - 褰撳墠妤煎眰) 寰楀埌宸窛锛屽彇鏈�灏忓樊鍊�
                             int currentValue = Math.abs(lev - currentLev);
                             if (diffShuttles.get(currentValue) != null) {
@@ -452,7 +452,7 @@
                             } else {
                                 diffShuttles.put(currentValue, shuttleThread);
                             }
-                        }
+    //                   }
                     }
                 }
 

--
Gitblit v1.9.1