|
|
|
@ -112,6 +112,7 @@ public class RobotCommonTaskServiceImpl implements RobotCommonTaskService {
|
|
|
|
|
@Resource
|
|
|
|
|
private RedisUtil redisUtil;
|
|
|
|
|
|
|
|
|
|
private static String SERIAL_KEY = "SERIAL_KEY";
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 让机器人自动充电
|
|
|
|
@ -129,7 +130,6 @@ public class RobotCommonTaskServiceImpl implements RobotCommonTaskService {
|
|
|
|
|
/**
|
|
|
|
|
* 客户下发的任务
|
|
|
|
|
*
|
|
|
|
|
* @param list
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
@Async(NOTIFY_THREAD_POOL_TASK_EXECUTOR)
|
|
|
|
@ -194,24 +194,26 @@ public class RobotCommonTaskServiceImpl implements RobotCommonTaskService {
|
|
|
|
|
private Pair<List<RobotAcceptTaskData>, List<RobotTaskDetailActionLogDO>> releaseTask(TaskPPDistribution v,
|
|
|
|
|
RobotTaskDetailDO robotTaskDetailDO,
|
|
|
|
|
Map<Long, WareHouseLocationDO> locationMap) {
|
|
|
|
|
Integer serial = 1;
|
|
|
|
|
|
|
|
|
|
Map<String,Integer> serialMap = new HashMap<>();
|
|
|
|
|
serialMap.put(SERIAL_KEY, 1);
|
|
|
|
|
|
|
|
|
|
List<RobotAcceptTaskData> list = new ArrayList<>();
|
|
|
|
|
List<RobotTaskDetailActionLogDO> logList = new ArrayList<>();
|
|
|
|
|
//行走-放
|
|
|
|
|
RobotTaskDetailActionLogDO logNight = new RobotTaskDetailActionLogDO();
|
|
|
|
|
RobotAcceptTaskData nightMove = getToMovePose(logNight, serial, v, robotTaskDetailDO);
|
|
|
|
|
RobotAcceptTaskData nightMove = getToMovePose(logNight, v, robotTaskDetailDO,serialMap);
|
|
|
|
|
//抬高高度
|
|
|
|
|
RobotTaskDetailActionLogDO logTen = new RobotTaskDetailActionLogDO();
|
|
|
|
|
RobotAcceptTaskData tenFork = getTakeFork(logTen, serial, v, robotTaskDetailDO, false, locationMap, takeForkHeight,
|
|
|
|
|
dongReleaseMsg);
|
|
|
|
|
RobotAcceptTaskData tenFork = getTakeFork(logTen, v, robotTaskDetailDO, false, locationMap, takeForkHeight,
|
|
|
|
|
dongReleaseMsg,serialMap);
|
|
|
|
|
//放货点位
|
|
|
|
|
RobotTaskDetailActionLogDO logEleven = new RobotTaskDetailActionLogDO();
|
|
|
|
|
RobotAcceptTaskData elevenFork = getMovePose(logEleven, serial, v, robotTaskDetailDO, locationMap, false,
|
|
|
|
|
dongReleaseMsg);
|
|
|
|
|
RobotAcceptTaskData elevenFork = getMovePose(logEleven, v, robotTaskDetailDO, locationMap, false,
|
|
|
|
|
dongReleaseMsg,serialMap);
|
|
|
|
|
//抬高高度
|
|
|
|
|
RobotTaskDetailActionLogDO logTwelve = new RobotTaskDetailActionLogDO();
|
|
|
|
|
RobotAcceptTaskData twelveFork = getInitFork(logTwelve, serial, v, robotTaskDetailDO, true, locationMap);
|
|
|
|
|
RobotAcceptTaskData twelveFork = getInitFork(logTwelve, v, robotTaskDetailDO, true, locationMap,serialMap);
|
|
|
|
|
|
|
|
|
|
//放货完成使用
|
|
|
|
|
String robotActionReleaseGoodsKey = RobotTaskChcheConstant.ROBOT_ACTION_RELEASE_GOODS + robotTaskDetailDO.getId();
|
|
|
|
@ -239,38 +241,40 @@ public class RobotCommonTaskServiceImpl implements RobotCommonTaskService {
|
|
|
|
|
*/
|
|
|
|
|
private Pair<List<RobotAcceptTaskData>, List<RobotTaskDetailActionLogDO>> takeTask(TaskPPDistribution v, RobotTaskDetailDO robotTaskDetailDO,
|
|
|
|
|
Map<Long, WareHouseLocationDO> locationMap) {
|
|
|
|
|
Integer serial = 1;
|
|
|
|
|
|
|
|
|
|
Map<String,Integer> serialMap = new HashMap<>();
|
|
|
|
|
serialMap.put(SERIAL_KEY, 1);
|
|
|
|
|
|
|
|
|
|
List<RobotAcceptTaskData> list = new ArrayList<>();
|
|
|
|
|
List<RobotTaskDetailActionLogDO> logList = new ArrayList<>();
|
|
|
|
|
//移动
|
|
|
|
|
RobotTaskDetailActionLogDO logOne = new RobotTaskDetailActionLogDO();
|
|
|
|
|
RobotAcceptTaskData oneMoveAndFork = getOneMoveAndFork(logOne, serial, v, robotTaskDetailDO);
|
|
|
|
|
RobotAcceptTaskData oneMoveAndFork = getOneMoveAndFork(logOne, v, robotTaskDetailDO,serialMap);
|
|
|
|
|
//抬叉
|
|
|
|
|
RobotTaskDetailActionLogDO logTwo = new RobotTaskDetailActionLogDO();
|
|
|
|
|
RobotAcceptTaskData twoFork = getTakeFork(logTwo, serial, v, robotTaskDetailDO, true, locationMap, getPalletTopicHeight,
|
|
|
|
|
dongTakeMsg);
|
|
|
|
|
RobotAcceptTaskData twoFork = getTakeFork(logTwo, v, robotTaskDetailDO, true, locationMap, getPalletTopicHeight,
|
|
|
|
|
dongTakeMsg,serialMap);
|
|
|
|
|
//等待
|
|
|
|
|
RobotTaskDetailActionLogDO logThree = new RobotTaskDetailActionLogDO();
|
|
|
|
|
RobotAcceptTaskData threeWait = getWait(logThree, serial, v, robotTaskDetailDO);
|
|
|
|
|
RobotAcceptTaskData threeWait = getWait(logThree, v, robotTaskDetailDO,serialMap);
|
|
|
|
|
//获取托盘位置
|
|
|
|
|
RobotTaskDetailActionLogDO logFour = new RobotTaskDetailActionLogDO();
|
|
|
|
|
RobotAcceptTaskData fourGetPalletTopic = getPalletTopic(logFour, serial, v, robotTaskDetailDO);
|
|
|
|
|
RobotAcceptTaskData fourGetPalletTopic = getPalletTopic(logFour, v, robotTaskDetailDO,serialMap);
|
|
|
|
|
//抬高高度
|
|
|
|
|
RobotTaskDetailActionLogDO logFive = new RobotTaskDetailActionLogDO();
|
|
|
|
|
RobotAcceptTaskData fiveFork = getTakeFork(logFive, serial, v, robotTaskDetailDO, true, locationMap, null,
|
|
|
|
|
dongTakeMsg);
|
|
|
|
|
RobotAcceptTaskData fiveFork = getTakeFork(logFive, v, robotTaskDetailDO, true, locationMap, null,
|
|
|
|
|
dongTakeMsg,serialMap);
|
|
|
|
|
//移动到取货终点
|
|
|
|
|
RobotTaskDetailActionLogDO logSix = new RobotTaskDetailActionLogDO();
|
|
|
|
|
RobotAcceptTaskData sixMoveToPalletPose = moveToPalletPose(logSix, serial, v, robotTaskDetailDO, dongTakeMsg);
|
|
|
|
|
RobotAcceptTaskData sixMoveToPalletPose = moveToPalletPose(logSix, v, robotTaskDetailDO, dongTakeMsg,serialMap);
|
|
|
|
|
//抬高高度
|
|
|
|
|
RobotTaskDetailActionLogDO logSeven = new RobotTaskDetailActionLogDO();
|
|
|
|
|
RobotAcceptTaskData sevenFork = getTakeFork(logSeven, serial, v, robotTaskDetailDO, true, locationMap, takeForkHeight,
|
|
|
|
|
dongTakeMsg);
|
|
|
|
|
RobotAcceptTaskData sevenFork = getTakeFork(logSeven, v, robotTaskDetailDO, true, locationMap, takeForkHeight,
|
|
|
|
|
dongTakeMsg,serialMap);
|
|
|
|
|
//路径最后一个点
|
|
|
|
|
RobotTaskDetailActionLogDO logEight = new RobotTaskDetailActionLogDO();
|
|
|
|
|
RobotAcceptTaskData eightFork = getMovePose(logEight, serial, v, robotTaskDetailDO, locationMap, true,
|
|
|
|
|
dongTakeMsg);
|
|
|
|
|
RobotAcceptTaskData eightFork = getMovePose(logEight, v, robotTaskDetailDO, locationMap, true,
|
|
|
|
|
dongTakeMsg,serialMap);
|
|
|
|
|
|
|
|
|
|
//取货完成使用
|
|
|
|
|
String robotActionTakeGoodsKey = RobotTaskChcheConstant.ROBOT_ACTION_TAKE_GOODS + robotTaskDetailDO.getId();
|
|
|
|
@ -300,14 +304,16 @@ public class RobotCommonTaskServiceImpl implements RobotCommonTaskService {
|
|
|
|
|
private Pair<List<RobotAcceptTaskData>, List<RobotTaskDetailActionLogDO>> moveTask(TaskPPDistribution v,
|
|
|
|
|
RobotTaskDetailDO robotTaskDetailDO,
|
|
|
|
|
Map<Long, WareHouseLocationDO> locationMap) {
|
|
|
|
|
Integer serial = 1;
|
|
|
|
|
|
|
|
|
|
Map<String,Integer> serialMap = new HashMap<>();
|
|
|
|
|
serialMap.put(SERIAL_KEY, 1);
|
|
|
|
|
|
|
|
|
|
List<RobotAcceptTaskData> list = new ArrayList<>();
|
|
|
|
|
List<RobotTaskDetailActionLogDO> logList = new ArrayList<>();
|
|
|
|
|
//移动
|
|
|
|
|
RobotTaskDetailActionLogDO logOne = new RobotTaskDetailActionLogDO();
|
|
|
|
|
String msg = parkingSpace + robotTaskDetailDO.getToLocationNo();
|
|
|
|
|
RobotAcceptTaskData oneMoveAndFork = onlyMove(logOne, serial, v, msg);
|
|
|
|
|
RobotAcceptTaskData oneMoveAndFork = onlyMove(logOne, v, msg,serialMap);
|
|
|
|
|
|
|
|
|
|
list.add(oneMoveAndFork);
|
|
|
|
|
logList.add(logOne);
|
|
|
|
@ -320,17 +326,19 @@ public class RobotCommonTaskServiceImpl implements RobotCommonTaskService {
|
|
|
|
|
* 仅放货、移动
|
|
|
|
|
*
|
|
|
|
|
* @param logOne
|
|
|
|
|
* @param serial
|
|
|
|
|
* @param v
|
|
|
|
|
*/
|
|
|
|
|
private RobotAcceptTaskData onlyMove(RobotTaskDetailActionLogDO logOne, Integer serial, TaskPPDistribution v,
|
|
|
|
|
String msg) {
|
|
|
|
|
private RobotAcceptTaskData onlyMove(RobotTaskDetailActionLogDO logOne, TaskPPDistribution v,
|
|
|
|
|
String msg,Map<String,Integer> serialMap) {
|
|
|
|
|
logOne.setCommandId(getId());
|
|
|
|
|
logOne.setTaskDetailId(v.getId());
|
|
|
|
|
RobotAcceptTaskData robotAcceptTaskData = new RobotAcceptTaskData();
|
|
|
|
|
int serial = serialMap.get(SERIAL_KEY);
|
|
|
|
|
robotAcceptTaskData.setSerial(String.valueOf(serial));
|
|
|
|
|
serialMap.put(SERIAL_KEY, ++serial);
|
|
|
|
|
|
|
|
|
|
robotAcceptTaskData.setCommand_id(String.valueOf(logOne.getCommandId()));
|
|
|
|
|
serial++;
|
|
|
|
|
|
|
|
|
|
robotAcceptTaskData.setCommand_type(CommandTypeEnum.MOVE_POSES_AND_FORK.getType());
|
|
|
|
|
List<TaskPathPlanningDTO> takes = v.getReleases();
|
|
|
|
|
List<Pose2ds> pose2ds = BeanUtils.toBean(takes, Pose2ds.class);
|
|
|
|
@ -351,55 +359,57 @@ public class RobotCommonTaskServiceImpl implements RobotCommonTaskService {
|
|
|
|
|
*/
|
|
|
|
|
private Pair<List<RobotAcceptTaskData>, List<RobotTaskDetailActionLogDO>> takeReleaseTask(TaskPPDistribution v, RobotTaskDetailDO robotTaskDetailDO,
|
|
|
|
|
Map<Long, WareHouseLocationDO> locationMap) {
|
|
|
|
|
Integer serial = 1;
|
|
|
|
|
|
|
|
|
|
Map<String,Integer> serialMap = new HashMap<>();
|
|
|
|
|
serialMap.put(SERIAL_KEY, 1);
|
|
|
|
|
|
|
|
|
|
List<RobotAcceptTaskData> list = new ArrayList<>();
|
|
|
|
|
List<RobotTaskDetailActionLogDO> logList = new ArrayList<>();
|
|
|
|
|
//移动
|
|
|
|
|
RobotTaskDetailActionLogDO logOne = new RobotTaskDetailActionLogDO();
|
|
|
|
|
RobotAcceptTaskData oneMoveAndFork = getOneMoveAndFork(logOne, serial, v, robotTaskDetailDO);
|
|
|
|
|
RobotAcceptTaskData oneMoveAndFork = getOneMoveAndFork(logOne, v, robotTaskDetailDO,serialMap);
|
|
|
|
|
//抬叉
|
|
|
|
|
RobotTaskDetailActionLogDO logTwo = new RobotTaskDetailActionLogDO();
|
|
|
|
|
RobotAcceptTaskData twoFork = getTakeFork(logTwo, serial, v, robotTaskDetailDO, true, locationMap, getPalletTopicHeight,
|
|
|
|
|
dongTakeMsg);
|
|
|
|
|
RobotAcceptTaskData twoFork = getTakeFork(logTwo, v, robotTaskDetailDO, true, locationMap, getPalletTopicHeight,
|
|
|
|
|
dongTakeMsg,serialMap);
|
|
|
|
|
//等待
|
|
|
|
|
RobotTaskDetailActionLogDO logThree = new RobotTaskDetailActionLogDO();
|
|
|
|
|
RobotAcceptTaskData threeWait = getWait(logThree, serial, v, robotTaskDetailDO);
|
|
|
|
|
RobotAcceptTaskData threeWait = getWait(logThree, v, robotTaskDetailDO,serialMap);
|
|
|
|
|
//获取托盘位置
|
|
|
|
|
RobotTaskDetailActionLogDO logFour = new RobotTaskDetailActionLogDO();
|
|
|
|
|
RobotAcceptTaskData fourGetPalletTopic = getPalletTopic(logFour, serial, v, robotTaskDetailDO);
|
|
|
|
|
RobotAcceptTaskData fourGetPalletTopic = getPalletTopic(logFour, v, robotTaskDetailDO,serialMap);
|
|
|
|
|
//抬高高度
|
|
|
|
|
RobotTaskDetailActionLogDO logFive = new RobotTaskDetailActionLogDO();
|
|
|
|
|
RobotAcceptTaskData fiveFork = getTakeFork(logFive, serial, v, robotTaskDetailDO, true, locationMap, null,
|
|
|
|
|
dongTakeMsg);
|
|
|
|
|
RobotAcceptTaskData fiveFork = getTakeFork(logFive, v, robotTaskDetailDO, true, locationMap, null,
|
|
|
|
|
dongTakeMsg,serialMap);
|
|
|
|
|
//移动到取货终点
|
|
|
|
|
RobotTaskDetailActionLogDO logSix = new RobotTaskDetailActionLogDO();
|
|
|
|
|
RobotAcceptTaskData sixMoveToPalletPose = moveToPalletPose(logSix, serial, v, robotTaskDetailDO, dongTakeMsg);
|
|
|
|
|
RobotAcceptTaskData sixMoveToPalletPose = moveToPalletPose(logSix, v, robotTaskDetailDO, dongTakeMsg,serialMap);
|
|
|
|
|
//抬高高度
|
|
|
|
|
RobotTaskDetailActionLogDO logSeven = new RobotTaskDetailActionLogDO();
|
|
|
|
|
RobotAcceptTaskData sevenFork = getTakeFork(logSeven, serial, v, robotTaskDetailDO, true, locationMap, takeForkHeight,
|
|
|
|
|
dongTakeMsg);
|
|
|
|
|
RobotAcceptTaskData sevenFork = getTakeFork(logSeven, v, robotTaskDetailDO, true, locationMap, takeForkHeight,
|
|
|
|
|
dongTakeMsg,serialMap);
|
|
|
|
|
//路径最后一个点
|
|
|
|
|
RobotTaskDetailActionLogDO logEight = new RobotTaskDetailActionLogDO();
|
|
|
|
|
RobotAcceptTaskData eightFork = getMovePose(logEight, serial, v, robotTaskDetailDO, locationMap, true,
|
|
|
|
|
dongTakeMsg);
|
|
|
|
|
RobotAcceptTaskData eightFork = getMovePose(logEight, v, robotTaskDetailDO, locationMap, true,
|
|
|
|
|
dongTakeMsg,serialMap);
|
|
|
|
|
//取货完成使用
|
|
|
|
|
String robotActionTakeGoodsKey = RobotTaskChcheConstant.ROBOT_ACTION_TAKE_GOODS + robotTaskDetailDO.getId();
|
|
|
|
|
redisUtil.set(robotActionTakeGoodsKey, eightFork.getCommand_id());
|
|
|
|
|
//行走-放
|
|
|
|
|
RobotTaskDetailActionLogDO logNight = new RobotTaskDetailActionLogDO();
|
|
|
|
|
RobotAcceptTaskData nightMove = getToMovePose(logNight, serial, v, robotTaskDetailDO);
|
|
|
|
|
RobotAcceptTaskData nightMove = getToMovePose(logNight, v, robotTaskDetailDO,serialMap);
|
|
|
|
|
//抬高高度
|
|
|
|
|
RobotTaskDetailActionLogDO logTen = new RobotTaskDetailActionLogDO();
|
|
|
|
|
RobotAcceptTaskData tenFork = getTakeFork(logTen, serial, v, robotTaskDetailDO, false, locationMap, takeForkHeight,
|
|
|
|
|
dongReleaseMsg);
|
|
|
|
|
RobotAcceptTaskData tenFork = getTakeFork(logTen, v, robotTaskDetailDO, false, locationMap, takeForkHeight,
|
|
|
|
|
dongReleaseMsg,serialMap);
|
|
|
|
|
//放货点位
|
|
|
|
|
RobotTaskDetailActionLogDO logEleven = new RobotTaskDetailActionLogDO();
|
|
|
|
|
RobotAcceptTaskData elevenFork = getMovePose(logEleven, serial, v, robotTaskDetailDO, locationMap, false,
|
|
|
|
|
dongReleaseMsg);
|
|
|
|
|
RobotAcceptTaskData elevenFork = getMovePose(logEleven, v, robotTaskDetailDO, locationMap, false,
|
|
|
|
|
dongReleaseMsg,serialMap);
|
|
|
|
|
//抬初始化高度
|
|
|
|
|
RobotTaskDetailActionLogDO logTwelve = new RobotTaskDetailActionLogDO();
|
|
|
|
|
RobotAcceptTaskData twelveFork = getInitFork(logTwelve, serial, v, robotTaskDetailDO, true, locationMap);
|
|
|
|
|
RobotAcceptTaskData twelveFork = getInitFork(logTwelve, v, robotTaskDetailDO, true, locationMap,serialMap);
|
|
|
|
|
//放货完成使用
|
|
|
|
|
String robotActionReleaseGoodsKey = RobotTaskChcheConstant.ROBOT_ACTION_RELEASE_GOODS + robotTaskDetailDO.getId();
|
|
|
|
|
redisUtil.set(robotActionReleaseGoodsKey, twelveFork.getCommand_id());
|
|
|
|
@ -423,13 +433,15 @@ public class RobotCommonTaskServiceImpl implements RobotCommonTaskService {
|
|
|
|
|
return pair;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private RobotAcceptTaskData getInitFork(RobotTaskDetailActionLogDO logTwelve, Integer serial, TaskPPDistribution v,
|
|
|
|
|
RobotTaskDetailDO robotTaskDetailDO, boolean b, Map<Long, WareHouseLocationDO> locationMap
|
|
|
|
|
) {
|
|
|
|
|
private RobotAcceptTaskData getInitFork(RobotTaskDetailActionLogDO logTwelve, TaskPPDistribution v,
|
|
|
|
|
RobotTaskDetailDO robotTaskDetailDO, boolean b, Map<Long, WareHouseLocationDO> locationMap,
|
|
|
|
|
Map<String,Integer> serialMap) {
|
|
|
|
|
logTwelve.setCommandId(getId());
|
|
|
|
|
logTwelve.setTaskDetailId(robotTaskDetailDO.getId());
|
|
|
|
|
RobotAcceptTaskData robotAcceptTaskData = new RobotAcceptTaskData();
|
|
|
|
|
int serial = serialMap.get(SERIAL_KEY);
|
|
|
|
|
robotAcceptTaskData.setSerial(String.valueOf(serial));
|
|
|
|
|
serialMap.put(SERIAL_KEY, ++serial);
|
|
|
|
|
robotAcceptTaskData.setCommand_id(String.valueOf(logTwelve.getCommandId()));
|
|
|
|
|
|
|
|
|
|
robotAcceptTaskData.setCommand_type(CommandTypeEnum.FORK.getType());
|
|
|
|
@ -446,13 +458,12 @@ public class RobotCommonTaskServiceImpl implements RobotCommonTaskService {
|
|
|
|
|
* 行走--放
|
|
|
|
|
*
|
|
|
|
|
* @param logNight
|
|
|
|
|
* @param serial
|
|
|
|
|
* @param v
|
|
|
|
|
* @param robotTaskDetailDO
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
private RobotAcceptTaskData getToMovePose(RobotTaskDetailActionLogDO logNight, Integer serial, TaskPPDistribution v,
|
|
|
|
|
RobotTaskDetailDO robotTaskDetailDO) {
|
|
|
|
|
private RobotAcceptTaskData getToMovePose(RobotTaskDetailActionLogDO logNight, TaskPPDistribution v,
|
|
|
|
|
RobotTaskDetailDO robotTaskDetailDO,Map<String,Integer> serialMap) {
|
|
|
|
|
List<TaskPathPlanningDTO> releases = v.getReleases();
|
|
|
|
|
if (releases.size() == 1) {
|
|
|
|
|
return null;
|
|
|
|
@ -460,9 +471,10 @@ public class RobotCommonTaskServiceImpl implements RobotCommonTaskService {
|
|
|
|
|
logNight.setCommandId(getId());
|
|
|
|
|
logNight.setTaskDetailId(robotTaskDetailDO.getId());
|
|
|
|
|
RobotAcceptTaskData robotAcceptTaskData = new RobotAcceptTaskData();
|
|
|
|
|
int serial = serialMap.get(SERIAL_KEY);
|
|
|
|
|
robotAcceptTaskData.setSerial(String.valueOf(serial));
|
|
|
|
|
serialMap.put(SERIAL_KEY, ++serial);
|
|
|
|
|
robotAcceptTaskData.setCommand_id(String.valueOf(logNight.getCommandId()));
|
|
|
|
|
serial++;
|
|
|
|
|
robotAcceptTaskData.setCommand_type(CommandTypeEnum.MOVE_POSES_AND_FORK.getType());
|
|
|
|
|
releases.remove(releases.size() - 1);
|
|
|
|
|
List<Pose2ds> pose2ds = BeanUtils.toBean(releases, Pose2ds.class);
|
|
|
|
@ -478,21 +490,21 @@ public class RobotCommonTaskServiceImpl implements RobotCommonTaskService {
|
|
|
|
|
* 移动到最后一个点位
|
|
|
|
|
*
|
|
|
|
|
* @param logEight
|
|
|
|
|
* @param serial
|
|
|
|
|
* @param v
|
|
|
|
|
* @param robotTaskDetailDO
|
|
|
|
|
* @param locationMap
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
private RobotAcceptTaskData getMovePose(RobotTaskDetailActionLogDO logEight, Integer serial, TaskPPDistribution v,
|
|
|
|
|
private RobotAcceptTaskData getMovePose(RobotTaskDetailActionLogDO logEight, TaskPPDistribution v,
|
|
|
|
|
RobotTaskDetailDO robotTaskDetailDO, Map<Long, WareHouseLocationDO> locationMap,
|
|
|
|
|
Boolean isTake, String msg) {
|
|
|
|
|
Boolean isTake, String msg,Map<String,Integer> serialMap) {
|
|
|
|
|
logEight.setCommandId(getId());
|
|
|
|
|
logEight.setTaskDetailId(robotTaskDetailDO.getId());
|
|
|
|
|
RobotAcceptTaskData robotAcceptTaskData = new RobotAcceptTaskData();
|
|
|
|
|
int serial = serialMap.get(SERIAL_KEY);
|
|
|
|
|
robotAcceptTaskData.setSerial(String.valueOf(serial));
|
|
|
|
|
serialMap.put(SERIAL_KEY, ++serial);
|
|
|
|
|
robotAcceptTaskData.setCommand_id(String.valueOf(logEight.getCommandId()));
|
|
|
|
|
serial++;
|
|
|
|
|
robotAcceptTaskData.setCommand_type(CommandTypeEnum.MOVE_POSE.getType());
|
|
|
|
|
|
|
|
|
|
TaskPathPlanningDTO taskPathPlanningDTO = null;
|
|
|
|
@ -515,19 +527,19 @@ public class RobotCommonTaskServiceImpl implements RobotCommonTaskService {
|
|
|
|
|
* 移动到取货终点
|
|
|
|
|
*
|
|
|
|
|
* @param logSix
|
|
|
|
|
* @param serial
|
|
|
|
|
* @param v
|
|
|
|
|
* @param robotTaskDetailDO
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
private RobotAcceptTaskData moveToPalletPose(RobotTaskDetailActionLogDO logSix, Integer serial, TaskPPDistribution v,
|
|
|
|
|
RobotTaskDetailDO robotTaskDetailDO, String msg) {
|
|
|
|
|
private RobotAcceptTaskData moveToPalletPose(RobotTaskDetailActionLogDO logSix, TaskPPDistribution v,
|
|
|
|
|
RobotTaskDetailDO robotTaskDetailDO, String msg,Map<String,Integer> serialMap) {
|
|
|
|
|
logSix.setCommandId(getId());
|
|
|
|
|
logSix.setTaskDetailId(robotTaskDetailDO.getId());
|
|
|
|
|
RobotAcceptTaskData robotAcceptTaskData = new RobotAcceptTaskData();
|
|
|
|
|
int serial = serialMap.get(SERIAL_KEY);
|
|
|
|
|
robotAcceptTaskData.setSerial(String.valueOf(serial));
|
|
|
|
|
serialMap.put(SERIAL_KEY, ++serial);
|
|
|
|
|
robotAcceptTaskData.setCommand_id(String.valueOf(logSix.getCommandId()));
|
|
|
|
|
serial++;
|
|
|
|
|
robotAcceptTaskData.setCommand_type(CommandTypeEnum.MOVE_TO_PALLET_POSE.getType());
|
|
|
|
|
logSix.setActionMsg(msg);
|
|
|
|
|
setCommand(logSix, robotAcceptTaskData, robotTaskDetailDO.getRobotNo());
|
|
|
|
@ -538,19 +550,19 @@ public class RobotCommonTaskServiceImpl implements RobotCommonTaskService {
|
|
|
|
|
* 获取托盘位置
|
|
|
|
|
*
|
|
|
|
|
* @param logFour
|
|
|
|
|
* @param serial
|
|
|
|
|
* @param v
|
|
|
|
|
* @param robotTaskDetailDO
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
private RobotAcceptTaskData getPalletTopic(RobotTaskDetailActionLogDO logFour, Integer serial, TaskPPDistribution v,
|
|
|
|
|
RobotTaskDetailDO robotTaskDetailDO) {
|
|
|
|
|
private RobotAcceptTaskData getPalletTopic(RobotTaskDetailActionLogDO logFour, TaskPPDistribution v,
|
|
|
|
|
RobotTaskDetailDO robotTaskDetailDO,Map<String,Integer> serialMap) {
|
|
|
|
|
logFour.setCommandId(getId());
|
|
|
|
|
logFour.setTaskDetailId(robotTaskDetailDO.getId());
|
|
|
|
|
RobotAcceptTaskData robotAcceptTaskData = new RobotAcceptTaskData();
|
|
|
|
|
int serial = serialMap.get(SERIAL_KEY);
|
|
|
|
|
robotAcceptTaskData.setSerial(String.valueOf(serial));
|
|
|
|
|
serialMap.put(SERIAL_KEY, ++serial);
|
|
|
|
|
robotAcceptTaskData.setCommand_id(String.valueOf(logFour.getCommandId()));
|
|
|
|
|
serial++;
|
|
|
|
|
robotAcceptTaskData.setCommand_type(CommandTypeEnum.GET_PALLET_TOPIC.getType());
|
|
|
|
|
logFour.setActionMsg(getPalletTopic);
|
|
|
|
|
setCommand(logFour, robotAcceptTaskData, robotTaskDetailDO.getRobotNo());
|
|
|
|
@ -558,14 +570,15 @@ public class RobotCommonTaskServiceImpl implements RobotCommonTaskService {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//等待
|
|
|
|
|
private RobotAcceptTaskData getWait(RobotTaskDetailActionLogDO logThree, Integer serial, TaskPPDistribution v,
|
|
|
|
|
RobotTaskDetailDO robotTaskDetailDO) {
|
|
|
|
|
private RobotAcceptTaskData getWait(RobotTaskDetailActionLogDO logThree, TaskPPDistribution v,
|
|
|
|
|
RobotTaskDetailDO robotTaskDetailDO,Map<String,Integer> serialMap) {
|
|
|
|
|
logThree.setCommandId(getId());
|
|
|
|
|
logThree.setTaskDetailId(robotTaskDetailDO.getId());
|
|
|
|
|
RobotAcceptTaskData robotAcceptTaskData = new RobotAcceptTaskData();
|
|
|
|
|
int serial = serialMap.get(SERIAL_KEY);
|
|
|
|
|
robotAcceptTaskData.setSerial(String.valueOf(serial));
|
|
|
|
|
serialMap.put(SERIAL_KEY, ++serial);
|
|
|
|
|
robotAcceptTaskData.setCommand_id(String.valueOf(logThree.getCommandId()));
|
|
|
|
|
serial++;
|
|
|
|
|
robotAcceptTaskData.setCommand_type(CommandTypeEnum.WAIT.getType());
|
|
|
|
|
RobotArgDTO arg = RobotArgDTO.builder().time(parm).build();
|
|
|
|
|
|
|
|
|
@ -579,21 +592,21 @@ public class RobotCommonTaskServiceImpl implements RobotCommonTaskService {
|
|
|
|
|
* 默认取的抬叉
|
|
|
|
|
*
|
|
|
|
|
* @param logTwo
|
|
|
|
|
* @param serial
|
|
|
|
|
* @param v
|
|
|
|
|
* @param robotTaskDetailDO
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
private RobotAcceptTaskData getTakeFork(RobotTaskDetailActionLogDO logTwo, Integer serial, TaskPPDistribution v,
|
|
|
|
|
private RobotAcceptTaskData getTakeFork(RobotTaskDetailActionLogDO logTwo, TaskPPDistribution v,
|
|
|
|
|
RobotTaskDetailDO robotTaskDetailDO, Boolean isTake,
|
|
|
|
|
Map<Long, WareHouseLocationDO> locationMap, Double addHeight,
|
|
|
|
|
String msg) {
|
|
|
|
|
String msg,Map<String,Integer> serialMap) {
|
|
|
|
|
logTwo.setCommandId(getId());
|
|
|
|
|
logTwo.setTaskDetailId(robotTaskDetailDO.getId());
|
|
|
|
|
RobotAcceptTaskData robotAcceptTaskData = new RobotAcceptTaskData();
|
|
|
|
|
int serial = serialMap.get(SERIAL_KEY);
|
|
|
|
|
robotAcceptTaskData.setSerial(String.valueOf(serial));
|
|
|
|
|
serialMap.put(SERIAL_KEY, ++serial);
|
|
|
|
|
robotAcceptTaskData.setCommand_id(String.valueOf(logTwo.getCommandId()));
|
|
|
|
|
serial++;
|
|
|
|
|
robotAcceptTaskData.setCommand_type(CommandTypeEnum.FORK.getType());
|
|
|
|
|
|
|
|
|
|
WareHouseLocationDO wareHouseLocationDO = null;
|
|
|
|
@ -620,7 +633,8 @@ public class RobotCommonTaskServiceImpl implements RobotCommonTaskService {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//移动
|
|
|
|
|
public RobotAcceptTaskData getOneMoveAndFork(RobotTaskDetailActionLogDO logOne, Integer serial, TaskPPDistribution v, RobotTaskDetailDO robotTaskDetailDO) {
|
|
|
|
|
public RobotAcceptTaskData getOneMoveAndFork(RobotTaskDetailActionLogDO logOne, TaskPPDistribution v,
|
|
|
|
|
RobotTaskDetailDO robotTaskDetailDO,Map<String,Integer> serialMap) {
|
|
|
|
|
List<TaskPathPlanningDTO> takes = v.getTakes();
|
|
|
|
|
//说明机器人不需要移动
|
|
|
|
|
if (takes.size() == 1) {
|
|
|
|
@ -630,9 +644,10 @@ public class RobotCommonTaskServiceImpl implements RobotCommonTaskService {
|
|
|
|
|
logOne.setCommandId(getId());
|
|
|
|
|
logOne.setTaskDetailId(robotTaskDetailDO.getId());
|
|
|
|
|
RobotAcceptTaskData robotAcceptTaskData = new RobotAcceptTaskData();
|
|
|
|
|
int serial = serialMap.get(SERIAL_KEY);
|
|
|
|
|
robotAcceptTaskData.setSerial(String.valueOf(serial));
|
|
|
|
|
serialMap.put(SERIAL_KEY, ++serial);
|
|
|
|
|
robotAcceptTaskData.setCommand_id(String.valueOf(logOne.getCommandId()));
|
|
|
|
|
serial++;
|
|
|
|
|
robotAcceptTaskData.setCommand_type(CommandTypeEnum.MOVE_POSES_AND_FORK.getType());
|
|
|
|
|
|
|
|
|
|
if (takes.size() > 0) {
|
|
|
|
@ -679,13 +694,14 @@ public class RobotCommonTaskServiceImpl implements RobotCommonTaskService {
|
|
|
|
|
robotTask.setTopic(RobotTopicConstant.ROBOT_TASK_TOPIC + mac);
|
|
|
|
|
robotTask.setOrder_type(RobotTaksOrderTypeEnum.AUTO_CHARGE.getType());
|
|
|
|
|
|
|
|
|
|
Integer serial = 1;
|
|
|
|
|
Map<String,Integer> serialMap = new HashMap<>();
|
|
|
|
|
serialMap.put(SERIAL_KEY, 1);
|
|
|
|
|
|
|
|
|
|
List<RobotAcceptTaskData> list = new ArrayList<>();
|
|
|
|
|
//移动
|
|
|
|
|
RobotTaskDetailActionLogDO logOne = new RobotTaskDetailActionLogDO();
|
|
|
|
|
String msg = charge + chargeLogDO.getDeviceNo();
|
|
|
|
|
RobotAcceptTaskData oneMoveAndFork = onlyMove(logOne, serial, v, msg);
|
|
|
|
|
RobotAcceptTaskData oneMoveAndFork = onlyMove(logOne, v, msg,serialMap);
|
|
|
|
|
|
|
|
|
|
list.add(oneMoveAndFork);
|
|
|
|
|
robotTask.setData(list);
|
|
|
|
|