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