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