From d9cea3d7757a8d580bb0574d419ba6dd9c2478e7 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期五, 13 十二月 2024 15:11:50 +0800
Subject: [PATCH] #search shuttle
---
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/NyShuttleThread.java | 104 +++++++++++++++++++++++++++++++++++++---------------
1 files changed, 74 insertions(+), 30 deletions(-)
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/NyShuttleThread.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/NyShuttleThread.java
index 56f00c1..ee3af41 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/NyShuttleThread.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/NyShuttleThread.java
@@ -31,6 +31,7 @@
import com.zy.asrs.wcs.rcs.constant.DeviceRedisConstant;
import com.zy.asrs.wcs.rcs.entity.Device;
import com.zy.asrs.wcs.rcs.entity.DeviceDataLog;
+import com.zy.asrs.wcs.rcs.model.CommandResponse;
import com.zy.asrs.wcs.rcs.model.command.NyShuttleHttpCommand;
import com.zy.asrs.wcs.rcs.model.enums.ShuttleProtocolStatusType;
import com.zy.asrs.wcs.rcs.model.enums.SlaveType;
@@ -123,6 +124,8 @@
//灏忚溅绌洪棽涓旀湁璺戝簱绋嬪簭
shuttleAction.moveLoc(device);
+
+ Thread.sleep(200);
} catch (Exception e) {
e.printStackTrace();
}
@@ -173,6 +176,7 @@
BasShuttle basShuttle = shuttleService.getOne(new LambdaQueryWrapper<BasShuttle>()
.eq(BasShuttle::getShuttleNo, device.getDeviceNo())
.eq(BasShuttle::getHostId, device.getHostId()));
+
if (basShuttle == null) {
basShuttle = new BasShuttle();
//鍥涘悜绌挎杞﹀彿
@@ -182,6 +186,10 @@
basShuttle.setHostId(device.getHostId());
basShuttle.setDeviceId(device.getId().intValue());
shuttleService.save(basShuttle);
+ }else {
+ Integer shuttleId = basShuttle.getId();
+ basShuttle = new BasShuttle();
+ basShuttle.setId(shuttleId);
}
//浠诲姟鍙�
basShuttle.setTaskNo(shuttleProtocol.getTaskNo().intValue());
@@ -429,12 +437,14 @@
}
@Override
- public boolean movePath(List<NavigateNode> nodes, Integer taskNo) {
- return true;
+ public CommandResponse movePath(List<NavigateNode> nodes, Integer taskNo) {
+ CommandResponse response = new CommandResponse(true);
+ return response;
}
@Override
- public boolean move(ShuttleCommand command) {
+ public CommandResponse move(ShuttleCommand command) {
+ CommandResponse response = new CommandResponse(false);
try {
//鍙戝嚭璇锋眰
NyShuttleHttpCommand httpCommand = JSON.parseObject(command.getBody(), NyShuttleHttpCommand.class);
@@ -473,70 +483,86 @@
for (NyShuttleHttpCommand requestCommand : commandList) {
JSONObject result = requestCommand(requestCommand);
-// if (result == null) {
-// return false;//璇锋眰澶辫触
-// }
+ if (result == null) {
+ return response;//璇锋眰澶辫触
+ }
this.shuttleProtocol.setSendTime(System.currentTimeMillis());//鎸囦护涓嬪彂鏃堕棿
+ response.setMessage(JSON.toJSONString(result));
+ response.setResult(true);
}
- return true;
- } catch (IOException e) {
- return false;
+ return response;
+ } catch (Exception e) {
+ e.printStackTrace();
+ response.setMessage(e.getMessage());
+ return response;
}
}
@Override
- public boolean lift(ShuttleCommand command) {
+ public CommandResponse lift(ShuttleCommand command) {
+ CommandResponse response = new CommandResponse(false);
try {
//鍙戝嚭璇锋眰
NyShuttleHttpCommand httpCommand = JSON.parseObject(command.getBody(), NyShuttleHttpCommand.class);
JSONObject result = requestCommand(httpCommand);
if (result == null) {
- return false;//璇锋眰澶辫触
+ return response;//璇锋眰澶辫触
}
this.shuttleProtocol.setSendTime(System.currentTimeMillis());//鎸囦护涓嬪彂鏃堕棿
- return true;
- } catch (IOException e) {
- return false;
+ response.setMessage(JSON.toJSONString(result));
+ response.setResult(true);
+ return response;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return response;
}
}
@Override
- public boolean charge(ShuttleCommand command) {
+ public CommandResponse charge(ShuttleCommand command) {
+ CommandResponse response = new CommandResponse(false);
try {
//鍙戝嚭璇锋眰
NyShuttleHttpCommand httpCommand = JSON.parseObject(command.getBody(), NyShuttleHttpCommand.class);
JSONObject result = requestCommand(httpCommand);
if (result == null) {
- return false;//璇锋眰澶辫触
+ return response;//璇锋眰澶辫触
}
this.shuttleProtocol.setSendTime(System.currentTimeMillis());//鎸囦护涓嬪彂鏃堕棿
- return true;
- } catch (IOException e) {
- return false;
+ response.setMessage(JSON.toJSONString(result));
+ response.setResult(true);
+ return response;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return response;
}
}
@Override
- public boolean reset(ShuttleCommand command) {
+ public 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 {
//鍙戝嚭璇锋眰
NyShuttleHttpCommand httpCommand = JSON.parseObject(command.getBody(), NyShuttleHttpCommand.class);
JSONObject result = requestCommand(httpCommand);
if (result == null) {
- return false;//璇锋眰澶辫触
+ return response;//璇锋眰澶辫触
}
this.shuttleProtocol.setSendTime(System.currentTimeMillis());//鎸囦护涓嬪彂鏃堕棿
- return true;
- } catch (IOException e) {
- return false;
+ response.setMessage(JSON.toJSONString(result));
+ response.setResult(true);
+ return response;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return response;
}
}
@@ -787,6 +813,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) {
NavigateMapData navigateMapData = SpringUtils.getBean(NavigateMapData.class);
NyShuttleHttpCommand httpStandard = getHttpStandard(Integer.parseInt(device.getDeviceNo()), taskNo);
@@ -794,9 +829,10 @@
ArrayList<HashMap<String, Object>> path = new ArrayList<>();
+ Integer taskId = getTaskId();
HashMap<String, Object> body = new HashMap<>();
body.put("requestType", "move");//绉诲姩鍛戒护
- body.put("taskId", getTaskId());//TaskID闇�瑕侀殢鏈�
+ body.put("taskId", taskId);//TaskID闇�瑕侀殢鏈�
// body.put("start", navigateNodeToNyPointNode(NavigatePositionConvert.codeToNode(startCodeNum, device.getHostId())));//璧风偣
// body.put("target", navigateNodeToNyPointNode(NavigatePositionConvert.codeToNode(distCodeNum, device.getHostId())));//缁堢偣
body.put("path", path);
@@ -839,6 +875,7 @@
command.setBody(JSON.toJSONString(httpStandard));
command.setMode(ShuttleCommandModeType.MOVE.id);
command.setTargetLocNo(loc.getLocNo());
+ command.setTaskNo(taskId);
return command;
}
@@ -847,9 +884,10 @@
NyShuttleHttpCommand httpStandard = getHttpStandard(Integer.parseInt(device.getDeviceNo()), taskNo);
NyShuttleHttpCommand.NyRequest request = httpStandard.getRequest();
+ Integer taskId = getTaskId();//TaskID闇�瑕侀殢鏈�
HashMap<String, Object> body = new HashMap<>();
body.put("requestType", lift ? "liftUp" : "liftDown");//椤跺崌鎴栦笅闄嶅懡浠�
- body.put("taskId", getTaskId());//TaskID闇�瑕侀殢鏈�
+ body.put("taskId", taskId);
request.setBody(body);
httpStandard.setRequest(request);
@@ -858,6 +896,7 @@
command.setShuttleNo(Integer.parseInt(this.device.getDeviceNo()));
command.setBody(JSON.toJSONString(httpStandard));
command.setMode(lift ? ShuttleCommandModeType.PALLET_LIFT.id : ShuttleCommandModeType.PALLET_DOWN.id);
+ command.setTaskNo(taskId);
return command;
}
@@ -866,9 +905,10 @@
NyShuttleHttpCommand httpStandard = getHttpStandard(Integer.parseInt(device.getDeviceNo()), taskNo);
NyShuttleHttpCommand.NyRequest request = httpStandard.getRequest();
+ Integer taskId = getTaskId();//TaskID闇�瑕侀殢鏈�
HashMap<String, Object> body = new HashMap<>();
body.put("requestType", charge ? "charge" : "stopCharge");//鍏呯數鎴栧仠姝㈠厖鐢�
- body.put("taskId", getTaskId());//TaskID闇�瑕侀殢鏈�
+ body.put("taskId", taskId);
request.setBody(body);
httpStandard.setRequest(request);
@@ -877,6 +917,7 @@
command.setShuttleNo(Integer.parseInt(this.device.getDeviceNo()));
command.setBody(JSON.toJSONString(httpStandard));
command.setMode(charge ? ShuttleCommandModeType.CHARGE_OPEN.id : ShuttleCommandModeType.CHARGE_CLOSE.id);
+ command.setTaskNo(taskId);
return command;
}
@@ -896,6 +937,7 @@
command.setShuttleNo(Integer.parseInt(this.device.getDeviceNo()));
command.setBody(JSON.toJSONString(httpStandard));
command.setMode(ShuttleCommandModeType.UPDATE_LOCATION.id);
+ command.setTaskNo(taskNo);
return command;
}
@@ -950,6 +992,7 @@
command.setShuttleNo(Integer.parseInt(this.device.getDeviceNo()));
command.setBody(JSON.toJSONString(httpStandard));
command.setMode(ShuttleCommandModeType.RESET.id);
+ command.setTaskNo(taskNo);
return command;
}
@@ -1050,8 +1093,9 @@
} catch (Exception e) {
e.printStackTrace();
}
+ }else {
+ break;
}
- break;
}
return result;//杩斿洖Body缁撴灉闆�
}
--
Gitblit v1.9.1