From 844381b5feeb874c4a6f51bf0521611b3f097993 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期三, 08 一月 2025 17:00:29 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/controller/ShuttleController.java | 368 ++++++++++++++++++++++++----------------------------
1 files changed, 172 insertions(+), 196 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/ShuttleController.java b/src/main/java/com/zy/asrs/controller/ShuttleController.java
index 7ed35f3..30d15d4 100644
--- a/src/main/java/com/zy/asrs/controller/ShuttleController.java
+++ b/src/main/java/com/zy/asrs/controller/ShuttleController.java
@@ -2,13 +2,8 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.annotations.ManagerAuth;
-import com.core.common.BaseRes;
-import com.core.common.Cools;
import com.core.common.R;
-import com.core.exception.CoolException;
-import com.zy.asrs.domain.param.ShuttleOperatorParam;
import com.zy.asrs.domain.vo.*;
import com.zy.asrs.entity.BasShuttle;
import com.zy.asrs.entity.WrkMast;
@@ -16,26 +11,19 @@
import com.zy.asrs.service.LocMastService;
import com.zy.asrs.service.WrkMastService;
import com.zy.asrs.utils.Utils;
-import com.zy.common.model.NyShuttleOperaResult;
-import com.zy.common.model.enums.NavigationMapType;
import com.zy.common.service.CommonService;
-import com.zy.common.utils.NyHttpUtils;
-import com.zy.common.utils.NyShuttleOperaUtils;
import com.zy.common.utils.RedisUtil;
-import com.zy.common.utils.ShuttleDispatchUtils;
-import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.OutputQueue;
import com.zy.core.cache.SlaveConnection;
+import com.zy.core.dispatcher.ShuttleDispatchUtils;
import com.zy.core.enums.*;
import com.zy.core.model.ShuttleSlave;
-import com.zy.core.model.Task;
-import com.zy.core.model.command.NyShuttleHttpCommand;
import com.zy.core.model.command.ShuttleAssignCommand;
+import com.zy.core.model.command.ShuttleCommand;
import com.zy.core.model.command.ShuttleRedisCommand;
-import com.zy.core.model.protocol.NyShuttleProtocol;
+import com.zy.core.model.param.ShuttleMoveLocParam;
import com.zy.core.model.protocol.ShuttleProtocol;
import com.zy.core.properties.SlaveProperties;
-import com.zy.core.thread.NyShuttleThread;
import com.zy.core.thread.ShuttleThread;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -77,11 +65,11 @@
baseObj.put("shuttleNo", slave.getId());
list.add(baseObj);
// 鑾峰彇鍥涘悜绌挎杞︿俊鎭�
- NyShuttleThread shuttleThread = (NyShuttleThread) SlaveConnection.get(SlaveType.Shuttle, slave.getId());
+ ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, slave.getId());
if (shuttleThread == null) {
continue;
}
- NyShuttleProtocol shuttleProtocol = shuttleThread.getShuttleProtocol();
+ ShuttleProtocol shuttleProtocol = shuttleThread.getStatus();
JSONObject shuttleData = JSON.parseObject(JSON.toJSONString(shuttleProtocol));
if (shuttleProtocol == null || shuttleProtocol.getShuttleNo()==null) {
if (shuttleData != null) {
@@ -93,13 +81,19 @@
shuttleData.put("moveAdvancePath", null);//绌挎杞﹂璁¤矾寰�
if (shuttleProtocol.getTaskNo() != 0) {
//瀛樺湪浠诲姟锛岃幏鍙栨寚浠�
- Object object = redisUtil.get("shuttle_wrk_no_" + shuttleProtocol.getTaskNo());
+ Object object = redisUtil.get(RedisKeyType.SHUTTLE_WORK_FLAG.key + shuttleProtocol.getTaskNo());
if (object != null) {
ShuttleRedisCommand redisCommand = JSON.parseObject(object.toString(), ShuttleRedisCommand.class);
shuttleData.put("moveAdvancePath", redisCommand.getAssignCommand().getNodes());//绌挎杞﹂璁¤矾寰�
}
}
+ Integer chargeLine = basShuttleService.selectById(slave.getId()).getChargeLine();
+ String lowerPower = "N";
+ if (chargeLine != null && shuttleProtocol.getBatteryPower() != null) {
+ lowerPower = Integer.parseInt(shuttleProtocol.getBatteryPower()) <= chargeLine ? "Y" : "N";
+ }
+ shuttleData.put("lowerPower", lowerPower);//鏄惁浣庣數閲�
baseObj.putAll(shuttleData);
}
return R.ok().add(list);
@@ -119,7 +113,7 @@
if (shuttleThread == null) {
continue;
}
- ShuttleProtocol shuttleProtocol = shuttleThread.getShuttleProtocol();
+ ShuttleProtocol shuttleProtocol = shuttleThread.getStatus();
if (shuttleProtocol == null) {
continue;
}
@@ -127,7 +121,7 @@
continue;
}
- vo.setWorkNo(shuttleProtocol.getTaskNo().intValue());//浠诲姟鍙�
+ vo.setWorkNo(shuttleProtocol.getTaskNo());//浠诲姟鍙�
if (shuttleProtocol.getTaskNo() > 0) {
WrkMast wrkMast = wrkMastService.selectById(shuttleProtocol.getTaskNo());
if (wrkMast != null) {
@@ -138,14 +132,6 @@
if (shuttleProtocol.getProtocolStatusType() != null) {
vo.setStatus(shuttleProtocol.getProtocolStatusType().desc);//鐘舵��
}
- vo.setCodeOffsetX(shuttleProtocol.getCodeOffsetX());//璇诲埌鐨勪簩缁寸爜X鏂瑰悜鍋忕Щ閲�
- vo.setCodeOffsetY(shuttleProtocol.getCodeOffsetY());//璇诲埌鐨勪簩缁寸爜Y鏂瑰悜鍋忕Щ閲�
- vo.setCurrentVoltage(shuttleProtocol.getCurrentVoltage());//褰撳墠鐨勭數鍘嬪��
- vo.setCurrentAnalogValue(shuttleProtocol.getCurrentAnalogValue());//褰撳墠鐨勬ā鎷熼噺鍊�
- vo.setCurrentMoveServoSpeed(shuttleProtocol.getCurrentMoveServoSpeed());//褰撳墠鐨勮璧颁己鏈嶉�熷害
- vo.setCurrentMoveServoLoad(shuttleProtocol.getCurrentMoveServoLoad() == null ? "" : shuttleProtocol.getCurrentMoveServoLoad() + "%");//褰撳墠鐨勮璧颁己鏈嶈礋杞界巼
- vo.setCurrentLiftServoLoad(shuttleProtocol.getCurrentLiftServoLoad() == null ? "" : shuttleProtocol.getCurrentLiftServoLoad() + "%");//褰撳墠鐨勫崌闄嶄己鏈嶈礋杞界巼
- vo.setCurrentLiftServoSpeed(shuttleProtocol.getCurrentLiftServoSpeed());//褰撳墠鐨勫崌闄嶄己鏈嶉�熷害
vo.setPakMk(shuttleProtocol.getPakMk()?"Y" : "N"); // 浣滀笟鏍囪
vo.setLocNo(shuttleProtocol.getLocNo());//鍥涘悜绌挎杞﹀綋鍓嶅簱浣嶅彿
vo.setLev(shuttleProtocol.getLocNo() == null ? 0 : Utils.getLev(shuttleProtocol.getLocNo()));//鍥涘悜绌挎杞﹀綋鍓嶅眰楂�
@@ -179,7 +165,7 @@
@RequestMapping(value = "/command/query")
public R shuttleCommandQuery(@RequestParam("wrkNo") Integer wrkNo) {
- Object o = redisUtil.get("shuttle_wrk_no_" + wrkNo);
+ Object o = redisUtil.get(RedisKeyType.SHUTTLE_WORK_FLAG.key + wrkNo);
if (o == null) {
return R.error();
}
@@ -191,13 +177,13 @@
@RequestMapping(value = "/command/rollback")
public R shuttleCommandRollback(@RequestParam("wrkNo") Integer wrkNo
, @RequestParam("commandStep") Integer commandStep) {
- Object o = redisUtil.get("shuttle_wrk_no_" + wrkNo);
+ Object o = redisUtil.get(RedisKeyType.SHUTTLE_WORK_FLAG.key + wrkNo);
if (o == null) {
return R.error();
}
ShuttleRedisCommand redisCommand = JSON.parseObject(o.toString(), ShuttleRedisCommand.class);
redisCommand.setCommandStep(commandStep);
- redisUtil.set("shuttle_wrk_no_" + wrkNo, JSON.toJSONString(redisCommand));
+ redisUtil.set(RedisKeyType.SHUTTLE_WORK_FLAG.key + wrkNo, JSON.toJSONString(redisCommand));
return R.ok();
}
@@ -206,53 +192,49 @@
public R shuttleCommandCompleteSwitch(@RequestParam("wrkNo") Integer wrkNo
, @RequestParam("commandStep") Integer commandStep
, @RequestParam("complete") Integer complete) {
- Object o = redisUtil.get("shuttle_wrk_no_" + wrkNo);
+ Object o = redisUtil.get(RedisKeyType.SHUTTLE_WORK_FLAG.key + wrkNo);
if (o == null) {
return R.error();
}
ShuttleRedisCommand redisCommand = JSON.parseObject(o.toString(), ShuttleRedisCommand.class);
ShuttleAssignCommand assignCommand = redisCommand.getAssignCommand();
- List<NyShuttleHttpCommand> commands = assignCommand.getCommands();
- NyShuttleHttpCommand command = commands.get(commandStep);
+ List<ShuttleCommand> commands = assignCommand.getCommands();
+ ShuttleCommand command = commands.get(commandStep);
command.setComplete(complete != 0);
- redisUtil.set("shuttle_wrk_no_" + wrkNo, JSON.toJSONString(redisCommand));
+ redisUtil.set(RedisKeyType.SHUTTLE_WORK_FLAG.key + wrkNo, JSON.toJSONString(redisCommand));
return R.ok();
}
//閲嶅惎浠诲姟(鍛戒护)
@RequestMapping(value = "/command/restart")
public R shuttleCommandCompleteSwitch(@RequestParam("wrkNo") Integer wrkNo) {
- Object o = redisUtil.get("shuttle_wrk_no_" + wrkNo);
+ Object o = redisUtil.get(RedisKeyType.SHUTTLE_WORK_FLAG.key + wrkNo);
if (o == null) {
return R.error();
}
ShuttleRedisCommand redisCommand = JSON.parseObject(o.toString(), ShuttleRedisCommand.class);
- Short shuttleNo = redisCommand.getShuttleNo();
- NyShuttleThread shuttleThread = (NyShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttleNo.intValue());
+ Integer shuttleNo = redisCommand.getShuttleNo();
+ ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttleNo);
if (shuttleThread == null) {
return R.error();
}
- NyShuttleProtocol shuttleProtocol = shuttleThread.getShuttleProtocol();
- if (shuttleProtocol == null) {
- return R.error();
- }
- if (!shuttleProtocol.isIdle()) {
+ if (!shuttleThread.isIdle()) {
return R.error();
}
//鍥涘悜绌挎杞﹀浜庣┖闂茬姸鎬侊紝杩涜浠诲姟鐨勬仮澶�
- shuttleProtocol.setTaskNo(redisCommand.getWrkNo().intValue());//灏嗗洓鍚戠┛姊溅绾跨▼鍒嗛厤浠诲姟鍙�
- shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.WORKING);//宸ヤ綔鐘舵��
+ shuttleThread.setTaskNo(redisCommand.getWrkNo());//灏嗗洓鍚戠┛姊溅绾跨▼鍒嗛厤浠诲姟鍙�
+ shuttleThread.setProtocolStatus(ShuttleProtocolStatusType.WORKING);//宸ヤ綔鐘舵��
return R.ok();
}
//鍒犻櫎浠诲姟(鍛戒护)
@RequestMapping(value = "/command/del")
public R liftCommandDel(@RequestParam("wrkNo") Integer wrkNo) {
- Object o = redisUtil.get("shuttle_wrk_no_" + wrkNo);
+ Object o = redisUtil.get(RedisKeyType.SHUTTLE_WORK_FLAG.key + wrkNo);
if (o == null) {
return R.error();
}
- redisUtil.del("shuttle_wrk_no_" + wrkNo);
+ redisUtil.del(RedisKeyType.SHUTTLE_WORK_FLAG.key + wrkNo);
return R.ok();
}
@@ -260,133 +242,133 @@
/************************** 鎵嬪姩鎿嶄綔 ******************************/
/****************************************************************/
- @ManagerAuth(memo = "鎵嬪姩鎿嶄綔")
- @PostMapping("/operator/shuttle")
- public R shuttleOperator(ShuttleOperatorParam param){
- if (Cools.isEmpty(param.getShuttleNo(), param.getShuttleTaskMode())) {
- return R.parse(BaseRes.PARAM);
- }
-
- ShuttleAssignCommand assignCommand = new ShuttleAssignCommand();
-
- if (param.getShuttleTaskMode() == 1 || param.getShuttleTaskMode() == 2 || param.getShuttleTaskMode() == 14) {
- if (Cools.isEmpty(param.getSourceLocNo(), param.getDistLocNo())) {
- return R.parse(BaseRes.PARAM);
- }
- assignCommand.setSourceLocNo(param.getSourceLocNo());
- assignCommand.setLocNo(param.getDistLocNo());
- }
-
- for (ShuttleSlave shuttleSlave : slaveProperties.getShuttle()) {
- if (param.getShuttleNo().equals(shuttleSlave.getId())) {
- NyShuttleThread shuttleThread = (NyShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttleSlave.getId());
- if (shuttleThread == null) {
- throw new CoolException("鍥涘悜绌挎杞︿笉鍦ㄧ嚎");
- }
- NyShuttleProtocol shuttleProtocol = shuttleThread.getShuttleProtocol();
- if (shuttleProtocol == null) {
- throw new CoolException("鍥涘悜绌挎杞︿笉鍦ㄧ嚎");
- }
-
- ShuttleTaskModeType shuttleTaskModeType = ShuttleTaskModeType.get(param.getShuttleTaskMode());
- assignCommand.setShuttleNo(shuttleSlave.getId().shortValue()); // 鍥涘悜绌挎杞︾紪鍙�
- assignCommand.setTaskMode(shuttleTaskModeType.id.shortValue());
- assignCommand.setTaskNo((short) commonService.getWorkNo(3));//鑾峰彇浠诲姟鍙�
- assignCommand.setAuto(false);//鎵嬪姩妯″紡
-
- if (shuttleTaskModeType == ShuttleTaskModeType.TRANSPORT) {
- //鎼繍璐х墿浠诲姟
- NyShuttleOperaResult result = NyShuttleOperaUtils.getShuttleTransportCommands(shuttleSlave.getId(), assignCommand.getTaskNo().intValue(), shuttleProtocol.getCurrentLocNo(), param.getSourceLocNo(), param.getDistLocNo());
- if (result == null) {
- throw new CoolException("璺緞璁$畻澶辫触");
- }
-
- assignCommand.setCommands(result.getCommands());
- assignCommand.setNodes(result.getNodes());
- } else if (shuttleTaskModeType == ShuttleTaskModeType.MOVE_LOC_NO) {
- //绉诲姩鍒扮洰鏍囧簱浣�
- Integer mapType = NavigationMapType.NORMAL.id;
- if (shuttleProtocol.getLiftPosition() == 2) {
- mapType = NavigationMapType.DFX.id;
- }
- NyShuttleOperaResult result = NyShuttleOperaUtils.getStartToTargetCommands(shuttleSlave.getId(), assignCommand.getTaskNo().intValue(), shuttleProtocol.getCurrentLocNo(), param.getDistLocNo(), mapType);
- if (result == null) {
- throw new CoolException("璺緞璁$畻澶辫触");
- }
-
- assignCommand.setCommands(result.getCommands());
- assignCommand.setNodes(result.getNodes());
- } else if (shuttleTaskModeType == ShuttleTaskModeType.PALLET_LIFT) {
- //鎵樼洏椤跺崌
- NyShuttleHttpCommand command = NyHttpUtils.getPalletLiftCommand(shuttleSlave.getId(), assignCommand.getTaskNo().intValue(), true);
- ArrayList<NyShuttleHttpCommand> commands = new ArrayList<>();
- commands.add(command);
- assignCommand.setCommands(commands);
- } else if (shuttleTaskModeType == ShuttleTaskModeType.PALLET_DOWN) {
- //鎵樼洏涓嬮檷
- NyShuttleHttpCommand command = NyHttpUtils.getPalletLiftCommand(shuttleSlave.getId(), assignCommand.getTaskNo().intValue(), false);
- ArrayList<NyShuttleHttpCommand> commands = new ArrayList<>();
- commands.add(command);
- assignCommand.setCommands(commands);
- } else if (shuttleTaskModeType == ShuttleTaskModeType.CHARGE) {
- //鍏呯數寮�鍏�
- boolean charge = false;
- if (shuttleProtocol.getChargState() == 1) {
- //宸插厖鐢碉紝鍏抽棴鍏呯數
- charge = false;
- }else {
- //寮�鍚厖鐢�
- charge = true;
- }
- NyShuttleHttpCommand command = NyHttpUtils.getChargeCommand(shuttleSlave.getId(), assignCommand.getTaskNo().intValue(), charge);
- ArrayList<NyShuttleHttpCommand> commands = new ArrayList<>();
- commands.add(command);
- assignCommand.setCommands(commands);
- } else if (shuttleTaskModeType == ShuttleTaskModeType.RESET) {
- //澶嶄綅
- shuttleProtocol.setTaskNo(0);//宸ヤ綔鍙锋竻绌�
- shuttleProtocol.setToken(0);//浠ょ墝娓呯┖
- shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.IDLE);//浠诲姟鐘舵��-绌洪棽
- shuttleProtocol.setPakMk(false);//浣滀笟鏍囪澶嶄綅
-
- shuttleProtocol.setMoveLoc(false);
- shuttleProtocol.setMoveType(0);
- shuttleProtocol.setXStart(0);
- shuttleProtocol.setXTarget(0);
- shuttleProtocol.setXCurrent(0);
- shuttleProtocol.setYStart(0);
- shuttleProtocol.setYTarget(0);
- shuttleProtocol.setYCurrent(0);
- return R.ok();
- } else if (shuttleTaskModeType == ShuttleTaskModeType.SHUTTLE_CONTROL) {
- //灏忚溅绠″埗
- NyShuttleHttpCommand suspendCommand = NyHttpUtils.getSuspendCommand(shuttleSlave.getId(), assignCommand.getTaskNo().intValue(), true);
- ArrayList<NyShuttleHttpCommand> commands = new ArrayList<>();
- commands.add(suspendCommand);
- assignCommand.setCommands(commands);
- } else if (shuttleTaskModeType == ShuttleTaskModeType.SHUTTLE_CANCEL_CONTROL) {
- //灏忚溅鍙栨秷绠″埗
- NyShuttleHttpCommand suspendCommand = NyHttpUtils.getSuspendCommand(shuttleSlave.getId(), assignCommand.getTaskNo().intValue(), false);
- ArrayList<NyShuttleHttpCommand> commands = new ArrayList<>();
- commands.add(suspendCommand);
- assignCommand.setCommands(commands);
- } else if (shuttleTaskModeType == ShuttleTaskModeType.MOVE_LOC_NO_WRK_MAST) {
- //绉诲姩鍒扮洰鏍囧簱浣�(鐢熸垚绉诲姩浠诲姟)
- shuttleDispatchUtils.dispatchShuttle(commonService.getWorkNo(3), param.getDistLocNo(), param.getShuttleNo());
- return R.ok();
- } else {
- throw new CoolException("鏈煡鍛戒护");
- }
-
- if (MessageQueue.offer(SlaveType.Shuttle, shuttleSlave.getId(), new Task(3, assignCommand))) {
- return R.ok();
- } else {
- throw new CoolException("鍛戒护涓嬪彂澶辫触");
- }
- }
- }
- return R.error();
- }
+// @ManagerAuth(memo = "鎵嬪姩鎿嶄綔")
+// @PostMapping("/operator/shuttle")
+// public R shuttleOperator(ShuttleOperatorParam param){
+// if (Cools.isEmpty(param.getShuttleNo(), param.getShuttleTaskMode())) {
+// return R.parse(BaseRes.PARAM);
+// }
+//
+// ShuttleAssignCommand assignCommand = new ShuttleAssignCommand();
+//
+// if (param.getShuttleTaskMode() == 1 || param.getShuttleTaskMode() == 2 || param.getShuttleTaskMode() == 14) {
+// if (Cools.isEmpty(param.getSourceLocNo(), param.getDistLocNo())) {
+// return R.parse(BaseRes.PARAM);
+// }
+// assignCommand.setSourceLocNo(param.getSourceLocNo());
+// assignCommand.setLocNo(param.getDistLocNo());
+// }
+//
+// for (ShuttleSlave shuttleSlave : slaveProperties.getShuttle()) {
+// if (param.getShuttleNo().equals(shuttleSlave.getId())) {
+// ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttleSlave.getId());
+// if (shuttleThread == null) {
+// throw new CoolException("鍥涘悜绌挎杞︿笉鍦ㄧ嚎");
+// }
+// ShuttleProtocol shuttleProtocol = shuttleThread.getStatus();
+// if (shuttleProtocol == null) {
+// throw new CoolException("鍥涘悜绌挎杞︿笉鍦ㄧ嚎");
+// }
+//
+// ShuttleTaskModeType shuttleTaskModeType = ShuttleTaskModeType.get(param.getShuttleTaskMode().intValue());
+// assignCommand.setShuttleNo(shuttleSlave.getId()); // 鍥涘悜绌挎杞︾紪鍙�
+// assignCommand.setTaskMode(shuttleTaskModeType.id);
+// assignCommand.setTaskNo(commonService.getWorkNo(3));//鑾峰彇浠诲姟鍙�
+// assignCommand.setAuto(false);//鎵嬪姩妯″紡
+//
+// if (shuttleTaskModeType == ShuttleTaskModeType.TRANSPORT) {
+// //鎼繍璐х墿浠诲姟
+// NyShuttleOperaResult result = NyShuttleOperaUtils.getShuttleTransportCommands(shuttleSlave.getId(), assignCommand.getTaskNo(), shuttleProtocol.getCurrentLocNo(), param.getSourceLocNo(), param.getDistLocNo());
+// if (result == null) {
+// throw new CoolException("璺緞璁$畻澶辫触");
+// }
+//
+// assignCommand.setCommands(result.getCommands());
+// assignCommand.setNodes(result.getNodes());
+// } else if (shuttleTaskModeType == ShuttleTaskModeType.MOVE_LOC_NO) {
+// //绉诲姩鍒扮洰鏍囧簱浣�
+// Integer mapType = NavigationMapType.NORMAL.id;
+// if (shuttleProtocol.getLiftPosition() == 2) {
+// mapType = NavigationMapType.DFX.id;
+// }
+// NyShuttleOperaResult result = NyShuttleOperaUtils.getStartToTargetCommands(shuttleSlave.getId(), assignCommand.getTaskNo().intValue(), shuttleProtocol.getCurrentLocNo(), param.getDistLocNo(), mapType);
+// if (result == null) {
+// throw new CoolException("璺緞璁$畻澶辫触");
+// }
+//
+// assignCommand.setCommands(result.getCommands());
+// assignCommand.setNodes(result.getNodes());
+// } else if (shuttleTaskModeType == ShuttleTaskModeType.PALLET_LIFT) {
+// //鎵樼洏椤跺崌
+// NyShuttleHttpCommand command = NyHttpUtils.getPalletLiftCommand(shuttleSlave.getId(), assignCommand.getTaskNo().intValue(), true);
+// ArrayList<NyShuttleHttpCommand> commands = new ArrayList<>();
+// commands.add(command);
+// assignCommand.setCommands(commands);
+// } else if (shuttleTaskModeType == ShuttleTaskModeType.PALLET_DOWN) {
+// //鎵樼洏涓嬮檷
+// NyShuttleHttpCommand command = NyHttpUtils.getPalletLiftCommand(shuttleSlave.getId(), assignCommand.getTaskNo().intValue(), false);
+// ArrayList<NyShuttleHttpCommand> commands = new ArrayList<>();
+// commands.add(command);
+// assignCommand.setCommands(commands);
+// } else if (shuttleTaskModeType == ShuttleTaskModeType.CHARGE) {
+// //鍏呯數寮�鍏�
+// boolean charge = false;
+// if (shuttleProtocol.getChargState() == 1) {
+// //宸插厖鐢碉紝鍏抽棴鍏呯數
+// charge = false;
+// }else {
+// //寮�鍚厖鐢�
+// charge = true;
+// }
+// NyShuttleHttpCommand command = NyHttpUtils.getChargeCommand(shuttleSlave.getId(), assignCommand.getTaskNo().intValue(), charge);
+// ArrayList<NyShuttleHttpCommand> commands = new ArrayList<>();
+// commands.add(command);
+// assignCommand.setCommands(commands);
+// } else if (shuttleTaskModeType == ShuttleTaskModeType.RESET) {
+// //澶嶄綅
+// shuttleProtocol.setTaskNo(0);//宸ヤ綔鍙锋竻绌�
+// shuttleProtocol.setToken(0);//浠ょ墝娓呯┖
+// shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.IDLE);//浠诲姟鐘舵��-绌洪棽
+// shuttleProtocol.setPakMk(false);//浣滀笟鏍囪澶嶄綅
+//
+// shuttleProtocol.setMoveLoc(false);
+// shuttleProtocol.setMoveType(0);
+// shuttleProtocol.setXStart(0);
+// shuttleProtocol.setXTarget(0);
+// shuttleProtocol.setXCurrent(0);
+// shuttleProtocol.setYStart(0);
+// shuttleProtocol.setYTarget(0);
+// shuttleProtocol.setYCurrent(0);
+// return R.ok();
+// } else if (shuttleTaskModeType == ShuttleTaskModeType.SHUTTLE_CONTROL) {
+// //灏忚溅绠″埗
+// NyShuttleHttpCommand suspendCommand = NyHttpUtils.getSuspendCommand(shuttleSlave.getId(), assignCommand.getTaskNo().intValue(), true);
+// ArrayList<NyShuttleHttpCommand> commands = new ArrayList<>();
+// commands.add(suspendCommand);
+// assignCommand.setCommands(commands);
+// } else if (shuttleTaskModeType == ShuttleTaskModeType.SHUTTLE_CANCEL_CONTROL) {
+// //灏忚溅鍙栨秷绠″埗
+// NyShuttleHttpCommand suspendCommand = NyHttpUtils.getSuspendCommand(shuttleSlave.getId(), assignCommand.getTaskNo().intValue(), false);
+// ArrayList<NyShuttleHttpCommand> commands = new ArrayList<>();
+// commands.add(suspendCommand);
+// assignCommand.setCommands(commands);
+// } else if (shuttleTaskModeType == ShuttleTaskModeType.MOVE_LOC_NO_WRK_MAST) {
+// //绉诲姩鍒扮洰鏍囧簱浣�(鐢熸垚绉诲姩浠诲姟)
+// shuttleDispatchUtils.dispatchShuttle(commonService.getWorkNo(3), param.getDistLocNo(), param.getShuttleNo());
+// return R.ok();
+// } else {
+// throw new CoolException("鏈煡鍛戒护");
+// }
+//
+// if (MessageQueue.offer(SlaveType.Shuttle, shuttleSlave.getId(), new Task(3, assignCommand))) {
+// return R.ok();
+// } else {
+// throw new CoolException("鍛戒护涓嬪彂澶辫触");
+// }
+// }
+// }
+// return R.error();
+// }
@PostMapping("/detl/update")
@ManagerAuth(memo = "淇敼鏁版嵁")
@@ -394,22 +376,15 @@
@RequestParam Integer workNo,
@RequestParam String pakMk,
@RequestParam Integer token) {
- NyShuttleThread shuttleThread = (NyShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttleNo);
+ ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttleNo);
if (shuttleThread == null) {
return R.error("plc宸叉帀绾�");
}
- NyShuttleProtocol shuttleProtocol = shuttleThread.getShuttleProtocol();
- if (shuttleProtocol == null) {
- return R.error("plc宸叉帀绾�");
- }
if (workNo != null) {
- shuttleProtocol.setTaskNo(workNo);
+ shuttleThread.setTaskNo(workNo);
}
if (pakMk != null) {
- shuttleProtocol.setPakMk(pakMk.equals("Y"));
- }
- if (token != null) {
- shuttleProtocol.setToken(token);
+ shuttleThread.setPakMk(pakMk.equals("Y"));
}
return R.ok();
}
@@ -421,7 +396,7 @@
if (basShuttle == null) {
return R.error("鍥涘悜绌挎杞︿笉瀛樺湪");
}
-// basShuttle.setRunSpeed(runSpeed);
+ basShuttle.setRunSpeed(runSpeed);
basShuttle.setChargeLine(chargeLine);
if (!basShuttleService.updateById(basShuttle)) {
return R.error();
@@ -440,28 +415,29 @@
@RequestParam Integer xTarget,
@RequestParam Integer yStart,
@RequestParam Integer yTarget) {
- NyShuttleThread shuttleThread = (NyShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttleNo);
+ ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttleNo);
if (shuttleThread == null) {
return R.error();
}
- NyShuttleProtocol shuttleProtocol = shuttleThread.getShuttleProtocol();
+ ShuttleProtocol shuttleProtocol = shuttleThread.getStatus();
if (shuttleProtocol == null) {
return R.error();
}
- if (!shuttleProtocol.isIdle()) {
+ if (!shuttleThread.isIdle()) {
return R.error("灏忚溅蹇欑涓�");
}
- shuttleProtocol.setMoveLoc(true);//寮�鍚窇搴�
- shuttleProtocol.setMoveType(moveType);
- shuttleProtocol.setXStart(xStart);
- shuttleProtocol.setXTarget(xTarget);
- shuttleProtocol.setXCurrent(xStart);
- shuttleProtocol.setYStart(yStart);
- shuttleProtocol.setYTarget(yTarget);
- shuttleProtocol.setYCurrent(yStart);
+ ShuttleMoveLocParam param = new ShuttleMoveLocParam();
+ param.setShuttleNo(shuttleNo);
+ param.setMoveType(moveType);
+ param.setStartX(xStart);
+ param.setTargetX(xTarget);
+ param.setStartY(yStart);
+ param.setTargetY(yTarget);
+
+ shuttleThread.enableMoveLoc(param, true);
return R.ok();
}
--
Gitblit v1.9.1