From 50435a81915932eda06b7f1afd48f9ff1ae84f19 Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期四, 10 四月 2025 17:50:28 +0800
Subject: [PATCH] 1
---
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java | 100 ++++++++++++++++++++++++++++++++-----------------
1 files changed, 65 insertions(+), 35 deletions(-)
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java
index 0b99ab5..aa74579 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java
@@ -28,6 +28,7 @@
import com.zy.asrs.wcs.rcs.cache.OutputQueue;
import com.zy.asrs.wcs.rcs.constant.DeviceRedisConstant;
import com.zy.asrs.wcs.rcs.entity.DeviceDataLog;
+import com.zy.asrs.wcs.rcs.model.CommandResponse;
import com.zy.asrs.wcs.rcs.model.enums.ShuttleProtocolStatusType;
import com.zy.asrs.wcs.rcs.model.enums.SlaveType;
import com.zy.asrs.wcs.rcs.model.protocol.ShuttleProtocol;
@@ -127,7 +128,7 @@
//褰撳墠浜岀淮鐮�
shuttleProtocol.setCurrentCode(data.getString("groundCode") == null ? "0" : data.getString("groundCode"));
//鐢垫睜鐢甸噺
- shuttleProtocol.setBatteryPower(data.getString("battery") == null ? "0%" : data.getString("battery"));
+ shuttleProtocol.setBatteryPower(data.getString("battery") == null ? "0" : data.getString("battery"));
//鏁呴殰
shuttleProtocol.setErrorCode(deviceStatus == 6 ? "1" : "0");
@@ -240,8 +241,10 @@
}
@Override
- public synchronized boolean movePath(List<NavigateNode> nodes, Integer taskNo) {
+ public synchronized CommandResponse movePath(List<NavigateNode> nodes, Integer taskNo) {
+ CommandResponse response = new CommandResponse(false);
try {
+ NavigateUtils navigateUtils = SpringUtils.getBean(NavigateUtils.class);
//榛樿鍦板浘姣嶈建鏂瑰悜x
String mapDirection = "x";
DictService dictService = SpringUtils.getBean(DictService.class);
@@ -254,7 +257,7 @@
String loginToken = requestLoginToken();
if (loginToken == null) {
- return false;
+ return response;
}
HashMap<String, Object> headers = new HashMap<>();
@@ -262,7 +265,7 @@
ArrayList<HashMap<String, Object>> modes = new ArrayList<>();
//鑾峰彇鍒嗘璺緞
- ArrayList<ArrayList<NavigateNode>> data = NavigateUtils.getSectionPath(nodes);
+ ArrayList<ArrayList<NavigateNode>> data = navigateUtils.getSectionPath(nodes);
for (int idx = 0; idx < data.size(); idx++) {
ArrayList<NavigateNode> sectionNodes = data.get(idx);
boolean isRemoveFooterNode = false;//鏄惁鍓旈櫎灏捐妭鐐�
@@ -310,7 +313,7 @@
param.put("taskId", taskNo);
param.put("nodeNum", nodes.size());
param.put("modes", modes);
- String response = new HttpHandler.Builder()
+ String responseStr = new HttpHandler.Builder()
.setUri(API_URL)
.setPath("/RDS/runRoute")
.setHeaders(headers)
@@ -318,33 +321,36 @@
.setTimeout(60, TimeUnit.SECONDS)
.build()
.doPost();
- JSONObject jsonObject = JSON.parseObject(response);
+ JSONObject jsonObject = JSON.parseObject(responseStr);
Integer code = jsonObject.getInteger("code");
System.out.println("璺緞涓嬪彂" + taskNo);
System.out.println(JSON.toJSONString(jsonObject));
System.out.println(JSON.toJSONString(param));
if (code.equals(200)) {
System.out.println("璺緞涓嬪彂" + taskNo);
- return true;
+ response.setResult(true);
+ response.setMessage(responseStr);
+ return response;
}
} catch (Exception e) {
e.printStackTrace();
}
- return false;
+ return response;
}
@Override
- public synchronized boolean move(ShuttleCommand command) {
+ public synchronized CommandResponse move(ShuttleCommand command) {
+ CommandResponse response = new CommandResponse(false);
try {
String loginToken = requestLoginToken();
if (loginToken == null) {
- return false;
+ return response;
}
HashMap<String, Object> headers = new HashMap<>();
headers.put("Authorization", "Bearer " + loginToken);
- String response = new HttpHandler.Builder()
+ String responseStr = new HttpHandler.Builder()
.setUri(API_URL)
.setPath("/RDS/runOrder")
.setHeaders(headers)
@@ -352,31 +358,34 @@
.setTimeout(60, TimeUnit.SECONDS)
.build()
.doPost();
- JSONObject jsonObject = JSON.parseObject(response);
+ JSONObject jsonObject = JSON.parseObject(responseStr);
Integer code = jsonObject.getInteger("code");
System.out.println(JSON.toJSONString(command.getBody()));
if (code.equals(200)) {
this.shuttleProtocol.setSendTime(System.currentTimeMillis());//鎸囦护涓嬪彂鏃堕棿
- return true;
+ response.setResult(true);
+ response.setMessage(responseStr);
+ return response;
}
} catch (Exception e) {
e.printStackTrace();
}
- return false;
+ return response;
}
@Override
- public synchronized boolean lift(ShuttleCommand command) {
+ public synchronized CommandResponse lift(ShuttleCommand command) {
+ CommandResponse response = new CommandResponse(false);
try {
String loginToken = requestLoginToken();
if (loginToken == null) {
- return false;
+ return response;
}
HashMap<String, Object> headers = new HashMap<>();
headers.put("Authorization", "Bearer " + loginToken);
- String response = new HttpHandler.Builder()
+ String responseStr = new HttpHandler.Builder()
.setUri(API_URL)
.setPath("/RDS/actionOrder")
.setHeaders(headers)
@@ -384,30 +393,33 @@
.setTimeout(60, TimeUnit.SECONDS)
.build()
.doPost();
- JSONObject jsonObject = JSON.parseObject(response);
+ JSONObject jsonObject = JSON.parseObject(responseStr);
Integer code = jsonObject.getInteger("code");
if (code.equals(200)) {
this.shuttleProtocol.setSendTime(System.currentTimeMillis());//鎸囦护涓嬪彂鏃堕棿
- return true;
+ response.setResult(true);
+ response.setMessage(responseStr);
+ return response;
}
} catch (Exception e) {
e.printStackTrace();
}
- return false;
+ return response;
}
@Override
- public synchronized boolean charge(ShuttleCommand command) {
+ public synchronized CommandResponse charge(ShuttleCommand command) {
+ CommandResponse response = new CommandResponse(false);
try {
String loginToken = requestLoginToken();
if (loginToken == null) {
- return false;
+ return response;
}
HashMap<String, Object> headers = new HashMap<>();
headers.put("Authorization", "Bearer " + loginToken);
- String response = new HttpHandler.Builder()
+ String responseStr = new HttpHandler.Builder()
.setUri(API_URL)
.setPath("/RDS/actionOrder")
.setHeaders(headers)
@@ -415,38 +427,41 @@
.setTimeout(60, TimeUnit.SECONDS)
.build()
.doPost();
- JSONObject jsonObject = JSON.parseObject(response);
+ JSONObject jsonObject = JSON.parseObject(responseStr);
Integer code = jsonObject.getInteger("code");
if (code.equals(200)) {
this.shuttleProtocol.setSendTime(System.currentTimeMillis());//鎸囦护涓嬪彂鏃堕棿
- return true;
+ response.setResult(true);
+ response.setMessage(responseStr);
+ return response;
}
} catch (Exception e) {
e.printStackTrace();
}
- return false;
+ return response;
}
@Override
- public synchronized boolean reset(ShuttleCommand command) {
+ public synchronized CommandResponse reset(ShuttleCommand command) {
setSyncTaskNo(0);
setProtocolStatus(ShuttleProtocolStatusType.IDLE);
enableMoveLoc(null, false);
- return true;
+ return new CommandResponse(true, JSON.toJSONString(command));
}
@Override
- public boolean updateLocation(ShuttleCommand command) {
+ public CommandResponse updateLocation(ShuttleCommand command) {
+ CommandResponse response = new CommandResponse(false);
try {
String loginToken = requestLoginToken();
if (loginToken == null) {
- return false;
+ return response;
}
HashMap<String, Object> headers = new HashMap<>();
headers.put("Authorization", "Bearer " + loginToken);
- String response = new HttpHandler.Builder()
+ String responseStr = new HttpHandler.Builder()
.setUri(API_URL)
.setPath("/RDS/changeLocation")
.setHeaders(headers)
@@ -454,16 +469,18 @@
.setTimeout(60, TimeUnit.SECONDS)
.build()
.doPost();
- JSONObject jsonObject = JSON.parseObject(response);
+ JSONObject jsonObject = JSON.parseObject(responseStr);
Integer code = jsonObject.getInteger("code");
if (code.equals(200)) {
this.shuttleProtocol.setSendTime(System.currentTimeMillis());//鎸囦护涓嬪彂鏃堕棿
- return true;
+ response.setResult(true);
+ response.setMessage(responseStr);
+ return response;
}
} catch (Exception e) {
e.printStackTrace();
}
- return false;
+ return response;
}
@Override
@@ -549,7 +566,7 @@
if (shuttleService == null) {
return false;
}
- BasShuttle basShuttle = shuttleService.getById(this.device.getDeviceNo());
+ BasShuttle basShuttle = shuttleService.getOne(new LambdaQueryWrapper<BasShuttle>().eq(BasShuttle::getDeviceId, this.device.getId()));
if (basShuttle == null) {
return false;
}
@@ -690,6 +707,15 @@
}
@Override
+ public boolean requestWaiting() {
+ if (this.shuttleProtocol.getProtocolStatusType().equals(ShuttleProtocolStatusType.IDLE)) {
+ this.shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.WAITING);
+ return true;
+ }
+ return false;
+ }
+
+ @Override
public ShuttleCommand getMoveCommand(Integer taskNo, String startCodeNum, String distCodeNum, Integer allDistance, Integer runDirection, Integer runSpeed, List<NavigateNode> nodes) {
HashMap<String, Object> body = new HashMap<>();
body.put("messageName", "runOrder");
@@ -724,6 +750,7 @@
command.setBody(JSON.toJSONString(body));
command.setMode(ShuttleCommandModeType.MOVE.id);
command.setTargetLocNo(loc.getLocNo());
+ command.setTaskNo(taskNo);
return command;
}
@@ -740,6 +767,7 @@
command.setShuttleNo(Integer.parseInt(this.device.getDeviceNo()));
command.setBody(JSON.toJSONString(body));
command.setMode(lift ? ShuttleCommandModeType.PALLET_LIFT.id : ShuttleCommandModeType.PALLET_DOWN.id);
+ command.setTaskNo(taskNo);
return command;
}
@@ -756,6 +784,7 @@
command.setShuttleNo(Integer.parseInt(this.device.getDeviceNo()));
command.setBody(JSON.toJSONString(body));
command.setMode(charge ? ShuttleCommandModeType.CHARGE_OPEN.id : ShuttleCommandModeType.CHARGE_CLOSE.id);
+ command.setTaskNo(taskNo);
return command;
}
@@ -773,6 +802,7 @@
command.setShuttleNo(Integer.parseInt(this.device.getDeviceNo()));
command.setBody(JSON.toJSONString(body));
command.setMode(ShuttleCommandModeType.UPDATE_LOCATION.id);
+ command.setTaskNo(taskNo);
return command;
}
--
Gitblit v1.9.1