机器人充电任务优化
This commit is contained in:
parent
981a8fdb56
commit
ee3631b559
@ -109,4 +109,10 @@ public interface RobotTaskDetailMapper extends BaseMapperX<RobotTaskDetailDO> {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<RobotTaskDetailDO> getLastTaskGroupByRobotNo();
|
List<RobotTaskDetailDO> getLastTaskGroupByRobotNo();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置状态为完成
|
||||||
|
* @param ids
|
||||||
|
*/
|
||||||
|
void updateDoneByIds(@Param("ids") List<Long> ids);
|
||||||
}
|
}
|
@ -73,4 +73,10 @@ public interface RobotTaskMapper extends BaseMapperX<RobotTaskDO> {
|
|||||||
*/
|
*/
|
||||||
IPage<RobotTaskDetailLogResoVO> selectLogPageList(@Param("mpPage") IPage mpPage,
|
IPage<RobotTaskDetailLogResoVO> selectLogPageList(@Param("mpPage") IPage mpPage,
|
||||||
@Param("pageReqVO") RobotTaskDetailLogVO pageReqVO);
|
@Param("pageReqVO") RobotTaskDetailLogVO pageReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新任务完成
|
||||||
|
* @param ids
|
||||||
|
*/
|
||||||
|
void updateDoneByIds(@Param("ids") List<Long> ids);
|
||||||
}
|
}
|
@ -219,7 +219,7 @@ public class AutoChargeServiceImpl implements AutoChargeService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (ObjectUtil.isNotEmpty(detailMap) && detailMap.containsKey(robot.getRobotNo())
|
if (ObjectUtil.isNotEmpty(detailMap) && detailMap.containsKey(robot.getRobotNo())
|
||||||
&& ObjectUtil.isEmpty(robot.getAutoCharge()) && ObjectUtil.isNotEmpty(chargeConfig.getStartAutoCharge())) {
|
&& ObjectUtil.isNotEmpty(chargeConfig.getStartAutoCharge())) {
|
||||||
//任务充电
|
//任务充电
|
||||||
BigDecimal robotConfigElectricity = new BigDecimal(String.valueOf(chargeConfig.getStartAutoCharge()));
|
BigDecimal robotConfigElectricity = new BigDecimal(String.valueOf(chargeConfig.getStartAutoCharge()));
|
||||||
if (robotRemainingElectricity.compareTo(robotConfigElectricity) < 0) {
|
if (robotRemainingElectricity.compareTo(robotConfigElectricity) < 0) {
|
||||||
@ -234,7 +234,7 @@ public class AutoChargeServiceImpl implements AutoChargeService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (ObjectUtil.isNotEmpty(detailMap) && detailMap.containsKey(robot.getRobotNo())
|
if (ObjectUtil.isNotEmpty(detailMap) && detailMap.containsKey(robot.getRobotNo())
|
||||||
&& ObjectUtil.isEmpty(robot.getAutoCharge()) && ObjectUtil.isNotEmpty(chargeConfig.getChanceChargeStart())) {
|
&& ObjectUtil.isNotEmpty(chargeConfig.getChanceChargeStart())) {
|
||||||
//任务充电
|
//任务充电
|
||||||
BigDecimal robotConfigElectricity = new BigDecimal(String.valueOf(chargeConfig.getChanceChargeStart()));
|
BigDecimal robotConfigElectricity = new BigDecimal(String.valueOf(chargeConfig.getChanceChargeStart()));
|
||||||
if (robotRemainingElectricity.compareTo(robotConfigElectricity) < 0) {
|
if (robotRemainingElectricity.compareTo(robotConfigElectricity) < 0) {
|
||||||
|
@ -97,9 +97,11 @@ public class CycleServiceImpl implements CycleService {
|
|||||||
List<RobotTaskDetailDO> taskDetailDOS = getTaskDetailData(taskData,taskIdMap,v.getId());
|
List<RobotTaskDetailDO> taskDetailDOS = getTaskDetailData(taskData,taskIdMap,v.getId());
|
||||||
taskDOList.add(taskData);
|
taskDOList.add(taskData);
|
||||||
taskDetailList.addAll(taskDetailDOS);
|
taskDetailList.addAll(taskDetailDOS);
|
||||||
|
v.setRemainingCycleNumber(0l);
|
||||||
}
|
}
|
||||||
|
|
||||||
taskMapper.insertBatch(taskDOList);
|
taskMapper.insertBatch(taskDOList);
|
||||||
|
taskMapper.updateBatch(taskList);
|
||||||
taskDetailMapper.insertBatch(taskDetailList);
|
taskDetailMapper.insertBatch(taskDetailList);
|
||||||
|
|
||||||
List<Long> fromLocationIds = taskDetailList.stream().map(RobotTaskDetailDO::getFromLocationId).collect(Collectors.toList());
|
List<Long> fromLocationIds = taskDetailList.stream().map(RobotTaskDetailDO::getFromLocationId).collect(Collectors.toList());
|
||||||
|
@ -98,6 +98,8 @@ public class DistributeTasksServiceImpl implements DistributeTasksService {
|
|||||||
lastTaskDetailMap = lastTaskDetails.stream().collect(Collectors.toMap(v -> v.getRobotNo(), Function.identity()));
|
lastTaskDetailMap = lastTaskDetails.stream().collect(Collectors.toMap(v -> v.getRobotNo(), Function.identity()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CommonConfigVO chargeConfig = JSONUtil.toBean(commonConfigDO.getConfigStr(), CommonConfigVO.class);
|
||||||
|
|
||||||
for (RobotInformationDO robot : robots) {
|
for (RobotInformationDO robot : robots) {
|
||||||
String taskStatusKey = RobotTaskChcheConstant.ROBOT_TASK_STATUS + robot.getMacAddress();
|
String taskStatusKey = RobotTaskChcheConstant.ROBOT_TASK_STATUS + robot.getMacAddress();
|
||||||
String cargoDetectedKey = RobotTaskChcheConstant.ROBOT_CARGO_DETECTED + robot.getMacAddress();
|
String cargoDetectedKey = RobotTaskChcheConstant.ROBOT_CARGO_DETECTED + robot.getMacAddress();
|
||||||
@ -114,6 +116,19 @@ public class DistributeTasksServiceImpl implements DistributeTasksService {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ObjectUtil.isNotEmpty(chargeConfig) && ObjectUtil.isNotEmpty(chargeConfig.getStartAutoCharge())) {
|
||||||
|
String pose2dKey = RobotTaskChcheConstant.ROBOT_INFORMATION_POSE_BAT_SOC + robot.getMacAddress();
|
||||||
|
Object poseCache = redisUtil.get(pose2dKey);
|
||||||
|
RobotStatusDataPoseDTO dataPoseDTO = JSON.parseObject((String) poseCache, RobotStatusDataPoseDTO.class);
|
||||||
|
BigDecimal robotRemainingElectricity = new BigDecimal(dataPoseDTO.getBatSoc());
|
||||||
|
BigDecimal robotEndElectricity = new BigDecimal(chargeConfig.getStartAutoCharge()+"");
|
||||||
|
if (robotRemainingElectricity.compareTo(robotEndElectricity) < 0) {
|
||||||
|
robot.setRobotStatus(RobotStatusEnum.DOING.getType());
|
||||||
|
log.info("机器人的电量少于自动充电电量,不能接任务 :{}",robot.getRobotNo());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (ObjectUtil.isEmpty(cargoDetected) || RobotStatusCodeConstant.CARGO_DETECTED.equals(Boolean.parseBoolean(String.valueOf(cargoDetected)))) {
|
if (ObjectUtil.isEmpty(cargoDetected) || RobotStatusCodeConstant.CARGO_DETECTED.equals(Boolean.parseBoolean(String.valueOf(cargoDetected)))) {
|
||||||
robot.setRobotStatus(RobotStatusEnum.DOING.getType());
|
robot.setRobotStatus(RobotStatusEnum.DOING.getType());
|
||||||
log.info("车机上报传感器被按下--不允许接任务 :{}",robot.getRobotNo());
|
log.info("车机上报传感器被按下--不允许接任务 :{}",robot.getRobotNo());
|
||||||
|
@ -23,6 +23,7 @@ import cn.iocoder.yudao.module.system.dal.mysql.houselocation.WareHouseLocationM
|
|||||||
import cn.iocoder.yudao.module.system.dal.mysql.positionmap.PositionMapItemMapper;
|
import cn.iocoder.yudao.module.system.dal.mysql.positionmap.PositionMapItemMapper;
|
||||||
import cn.iocoder.yudao.module.system.dal.mysql.positionmap.PositionMapMapper;
|
import cn.iocoder.yudao.module.system.dal.mysql.positionmap.PositionMapMapper;
|
||||||
import cn.iocoder.yudao.module.system.dal.mysql.robot.RobotTaskDetailMapper;
|
import cn.iocoder.yudao.module.system.dal.mysql.robot.RobotTaskDetailMapper;
|
||||||
|
import cn.iocoder.yudao.module.system.dal.mysql.robot.RobotTaskMapper;
|
||||||
import cn.iocoder.yudao.module.system.dal.mysql.wait.MoveToWaitMapper;
|
import cn.iocoder.yudao.module.system.dal.mysql.wait.MoveToWaitMapper;
|
||||||
import cn.iocoder.yudao.module.system.enums.common.ZeroOneEnum;
|
import cn.iocoder.yudao.module.system.enums.common.ZeroOneEnum;
|
||||||
import cn.iocoder.yudao.module.system.enums.item.PositionMapItemEnum;
|
import cn.iocoder.yudao.module.system.enums.item.PositionMapItemEnum;
|
||||||
@ -93,6 +94,9 @@ public class RobotPathPlanningServiceImpl implements RobotPathPlanningService {
|
|||||||
@Resource
|
@Resource
|
||||||
private MoveToWaitMapper moveToWaitMapper;
|
private MoveToWaitMapper moveToWaitMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private RobotTaskMapper robotTaskMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 下发任务给PP
|
* 下发任务给PP
|
||||||
*/
|
*/
|
||||||
@ -117,11 +121,46 @@ public class RobotPathPlanningServiceImpl implements RobotPathPlanningService {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//停车不锁车
|
||||||
|
taskDetailDOS = doPark(taskDetailDOS);
|
||||||
|
if (ObjectUtil.isEmpty(taskDetailDOS)) {
|
||||||
|
log.info("--不存在需要执行的任务---");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
log.info("-------查找到车子和任务------");
|
log.info("-------查找到车子和任务------");
|
||||||
distributeTasksToPP(robots, taskDetailDOS);
|
distributeTasksToPP(robots, taskDetailDOS);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理停车不锁车的任务
|
||||||
|
* @param taskDetailDOS
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private List<RobotTaskDetailDO> doPark(List<RobotTaskDetailDO> taskDetailDOS) {
|
||||||
|
List<RobotTaskDetailDO> parkList = new ArrayList<>();
|
||||||
|
List<RobotTaskDetailDO> detailList = new ArrayList<>();
|
||||||
|
for (RobotTaskDetailDO v : taskDetailDOS) {
|
||||||
|
if (RobotTaskTypeEnum.PARK.getType().equals(v.getTaskType())
|
||||||
|
&& ZeroOneEnum.ZERO.getType().equals(v.getNeedLock())) {
|
||||||
|
parkList.add(v);
|
||||||
|
}else if (!RobotTaskTypeEnum.CHARGE.getType().equals(v.getTaskType())){
|
||||||
|
detailList.add(v);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ObjectUtil.isNotEmpty(parkList)) {
|
||||||
|
List<Long> detailIds = parkList.stream().map(RobotTaskDetailDO::getId).collect(Collectors.toList());
|
||||||
|
List<RobotTaskDetailDO> taskDetails = robotTaskDetailMapper.selectBatchIds(detailIds);
|
||||||
|
List<Long> taskIds = taskDetails.stream().map(RobotTaskDetailDO::getRobotTaskId).collect(Collectors.toList());
|
||||||
|
robotTaskDetailMapper.updateDoneByIds(detailIds);
|
||||||
|
robotTaskMapper.updateDoneByIds(taskIds);
|
||||||
|
}
|
||||||
|
|
||||||
|
return detailList;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 派车辆去等待点
|
* 派车辆去等待点
|
||||||
*
|
*
|
||||||
@ -252,6 +291,7 @@ public class RobotPathPlanningServiceImpl implements RobotPathPlanningService {
|
|||||||
.priority(1l)
|
.priority(1l)
|
||||||
.createTime(LocalDateTime.now())
|
.createTime(LocalDateTime.now())
|
||||||
.taskType(PathTaskTypeToRobotEnum.MOVE.getType())
|
.taskType(PathTaskTypeToRobotEnum.MOVE.getType())
|
||||||
|
.waitIds(waitIds)
|
||||||
.build();
|
.build();
|
||||||
pathPlanningList.add(pathPlanning);
|
pathPlanningList.add(pathPlanning);
|
||||||
}
|
}
|
||||||
@ -348,6 +388,18 @@ public class RobotPathPlanningServiceImpl implements RobotPathPlanningService {
|
|||||||
//前一个任务是仅取货
|
//前一个任务是仅取货
|
||||||
List<String> robotDoTake = getRobotDoTake(robots);
|
List<String> robotDoTake = getRobotDoTake(robots);
|
||||||
|
|
||||||
|
List<PositionMapItemDO> positionMapItems = positionMapItemMapper.selectList(new LambdaQueryWrapperX<PositionMapItemDO>()
|
||||||
|
.eq(PositionMapItemDO::getType, PositionMapItemEnum.STOP.getType())
|
||||||
|
.eq(PositionMapItemDO::getUseStatus, ZeroOneEnum.ZERO.getType()));
|
||||||
|
List<String> waitIds = null;
|
||||||
|
if (ObjectUtil.isNotEmpty(positionMapItems)) {
|
||||||
|
waitIds = positionMapItems
|
||||||
|
.stream()
|
||||||
|
.map(u -> u.getId() + "")
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
Integer i = 0;
|
||||||
|
|
||||||
log.info("开始组装需要下发给PP的任务");
|
log.info("开始组装需要下发给PP的任务");
|
||||||
for (RobotTaskDetailDO taskDetailDO : taskDetailDOS) {
|
for (RobotTaskDetailDO taskDetailDO : taskDetailDOS) {
|
||||||
|
|
||||||
@ -360,6 +412,15 @@ public class RobotPathPlanningServiceImpl implements RobotPathPlanningService {
|
|||||||
.createTime(taskDetailDO.getCreateTime())
|
.createTime(taskDetailDO.getCreateTime())
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
if (RobotTaskTypeEnum.PARK.getType().equals(taskDetailDO.getTaskType())
|
||||||
|
&& (ObjectUtil.isEmpty(waitIds) || waitIds.size() < i)) {
|
||||||
|
log.info("停车任务,没有多余的空闲点位 :{}",taskDetailDO.getId());
|
||||||
|
return;
|
||||||
|
}else if (RobotTaskTypeEnum.PARK.getType().equals(taskDetailDO.getTaskType())) {
|
||||||
|
pathPlanning.setWaitIds(waitIds);
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
|
||||||
if (ObjectUtil.isNotEmpty(robotDoTake) && ObjectUtil.isNotEmpty(taskDetailDO.getRobotNo())
|
if (ObjectUtil.isNotEmpty(robotDoTake) && ObjectUtil.isNotEmpty(taskDetailDO.getRobotNo())
|
||||||
&& robotDoTake.contains(taskDetailDO.getRobotNo())
|
&& robotDoTake.contains(taskDetailDO.getRobotNo())
|
||||||
&& !RobotTaskTypeEnum.RELEASE.getType().equals(taskDetailDO.getTaskType())) {
|
&& !RobotTaskTypeEnum.RELEASE.getType().equals(taskDetailDO.getTaskType())) {
|
||||||
@ -383,51 +444,36 @@ public class RobotPathPlanningServiceImpl implements RobotPathPlanningService {
|
|||||||
|
|
||||||
WareHouseLocationDO fromLocation = locationDOMap.get(taskDetailDO.getFromLocationId());
|
WareHouseLocationDO fromLocation = locationDOMap.get(taskDetailDO.getFromLocationId());
|
||||||
WareHouseLocationDO toLocation = locationDOMap.get(taskDetailDO.getToLocationId());
|
WareHouseLocationDO toLocation = locationDOMap.get(taskDetailDO.getToLocationId());
|
||||||
//取是线库
|
|
||||||
if (ObjectUtil.isNotEmpty(taskDetailDO.getFromLocationId())
|
|
||||||
&& ObjectUtil.isNotEmpty(taskDetailDO.getFromLaneId())) {
|
|
||||||
|
|
||||||
|
if (ObjectUtil.isNotEmpty(taskDetailDO.getFromLocationId())) {
|
||||||
|
pathPlanning.setTakeLocationNumber(Math.abs(locationNumberReduce - taskDetailDO.getFromLocationNumber()));
|
||||||
|
pathPlanning.setTakePointId(fromLocation.getMapItemId());
|
||||||
|
if (ObjectUtil.isNotEmpty(fromLocation.getLocationTrayHeight())) {
|
||||||
|
pathPlanning.setTakeHeight(Double.valueOf(fromLocation.getLocationTrayHeight() + ""));
|
||||||
|
}
|
||||||
|
pathPlanning.setTakeLevel(fromLocation.getLocationStorey());
|
||||||
|
pathPlanning.setTakeOffsetHeight(offsetHeight);
|
||||||
|
if (ObjectUtil.isNotEmpty(taskDetailDO.getFromLaneId())) {
|
||||||
pathPlanning.setTakeGroupId("LINE_" + taskDetailDO.getFromLaneId());
|
pathPlanning.setTakeGroupId("LINE_" + taskDetailDO.getFromLaneId());
|
||||||
pathPlanning.setTakeLocationNumber(Math.abs(locationNumberReduce - taskDetailDO.getFromLocationNumber()));
|
}else {
|
||||||
pathPlanning.setTakePointId(fromLocation.getMapItemId());
|
|
||||||
pathPlanning.setTakeHeight(Double.valueOf(fromLocation.getLocationTrayHeight() + ""));
|
|
||||||
pathPlanning.setTakeLevel(fromLocation.getLocationStorey());
|
|
||||||
pathPlanning.setTakeOffsetHeight(offsetHeight);
|
|
||||||
|
|
||||||
} else if (ObjectUtil.isNotEmpty(taskDetailDO.getFromLocationId())
|
|
||||||
&& ObjectUtil.isEmpty(taskDetailDO.getFromLaneId())) {
|
|
||||||
//取的是普通点位
|
|
||||||
pathPlanning.setTakeGroupId("POINT_" + taskDetailDO.getFromMapItemId());
|
pathPlanning.setTakeGroupId("POINT_" + taskDetailDO.getFromMapItemId());
|
||||||
pathPlanning.setTakeLocationNumber(Math.abs(locationNumberReduce - taskDetailDO.getFromLocationNumber()));
|
}
|
||||||
pathPlanning.setTakePointId(fromLocation.getMapItemId());
|
|
||||||
pathPlanning.setTakeHeight(Double.valueOf(fromLocation.getLocationTrayHeight() + ""));
|
|
||||||
pathPlanning.setTakeLevel(fromLocation.getLocationStorey());
|
|
||||||
pathPlanning.setTakeOffsetHeight(offsetHeight);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//放是线库
|
if (ObjectUtil.isNotEmpty(taskDetailDO.getToLocationId())){
|
||||||
if (ObjectUtil.isNotEmpty(taskDetailDO.getToLocationId())
|
pathPlanning.setReleaseLocationNumber(taskDetailDO.getToLocationNumber());
|
||||||
&& ObjectUtil.isNotEmpty(taskDetailDO.getToLaneId())) {
|
pathPlanning.setReleasePointId(toLocation.getMapItemId());
|
||||||
|
if (ObjectUtil.isNotEmpty(toLocation.getLocationTrayHeight())) {
|
||||||
|
pathPlanning.setReleaseHeight(Double.valueOf(toLocation.getLocationTrayHeight() + ""));
|
||||||
|
}
|
||||||
|
pathPlanning.setReleaseLevel(toLocation.getLocationStorey());
|
||||||
|
pathPlanning.setReleaseOffsetHeight(offsetHeight);
|
||||||
|
if (ObjectUtil.isNotEmpty(taskDetailDO.getToLaneId())){
|
||||||
pathPlanning.setReleaseGroupId("LINE_" + taskDetailDO.getToLaneId());
|
pathPlanning.setReleaseGroupId("LINE_" + taskDetailDO.getToLaneId());
|
||||||
pathPlanning.setReleaseLocationNumber(taskDetailDO.getToLocationNumber());
|
}else {
|
||||||
pathPlanning.setReleasePointId(toLocation.getMapItemId());
|
|
||||||
pathPlanning.setReleaseHeight(Double.valueOf(toLocation.getLocationTrayHeight() + ""));
|
|
||||||
pathPlanning.setReleaseLevel(toLocation.getLocationStorey());
|
|
||||||
pathPlanning.setReleaseOffsetHeight(offsetHeight);
|
|
||||||
|
|
||||||
} else if (ObjectUtil.isNotEmpty(taskDetailDO.getToLocationId())
|
|
||||||
&& ObjectUtil.isEmpty(taskDetailDO.getToLaneId())) {
|
|
||||||
//放的是普通点位
|
|
||||||
pathPlanning.setReleaseGroupId("POINT_" + taskDetailDO.getToMapItemId());
|
pathPlanning.setReleaseGroupId("POINT_" + taskDetailDO.getToMapItemId());
|
||||||
pathPlanning.setReleaseLocationNumber(taskDetailDO.getToLocationNumber());
|
|
||||||
pathPlanning.setReleasePointId(toLocation.getMapItemId());
|
|
||||||
pathPlanning.setReleaseHeight(Double.valueOf(toLocation.getLocationTrayHeight() + ""));
|
|
||||||
pathPlanning.setReleaseLevel(toLocation.getLocationStorey());
|
|
||||||
pathPlanning.setReleaseOffsetHeight(offsetHeight);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
pathPlanningList.add(pathPlanning);
|
pathPlanningList.add(pathPlanning);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -554,8 +600,6 @@ public class RobotPathPlanningServiceImpl implements RobotPathPlanningService {
|
|||||||
List<RobotTaskDetailDO> detailDOS = taskDetailDOS.stream()
|
List<RobotTaskDetailDO> detailDOS = taskDetailDOS.stream()
|
||||||
.filter(v -> !laneIds.contains(v.getFromLaneId())
|
.filter(v -> !laneIds.contains(v.getFromLaneId())
|
||||||
&& !laneIds.contains(v.getToLaneId())
|
&& !laneIds.contains(v.getToLaneId())
|
||||||
&& !RobotTaskTypeEnum.PARK.getType().equals(v.getTaskType()) //停车在充电的任务做
|
|
||||||
&& !RobotTaskTypeEnum.CHARGE.getType().equals(v.getTaskType()) //停车在充电的任务做
|
|
||||||
&& !mapIds.contains(v.getFromMapItemId())
|
&& !mapIds.contains(v.getFromMapItemId())
|
||||||
&& !mapIds.contains(v.getToMapItemId()))
|
&& !mapIds.contains(v.getToMapItemId()))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
@ -615,6 +659,8 @@ public class RobotPathPlanningServiceImpl implements RobotPathPlanningService {
|
|||||||
} else if (RobotTaskTypeEnum.TAKE.getType().equals(v.getTaskType())) {
|
} else if (RobotTaskTypeEnum.TAKE.getType().equals(v.getTaskType())) {
|
||||||
//仅取货
|
//仅取货
|
||||||
takeSetTask(list, v, fromLane, toLane, fromLocation, toLocation, toHaveFrom, fromHaveTo);
|
takeSetTask(list, v, fromLane, toLane, fromLocation, toLocation, toHaveFrom, fromHaveTo);
|
||||||
|
}else if (RobotTaskTypeEnum.PARK.getType().equals(v.getTaskType())) {
|
||||||
|
list.add(v);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -28,6 +28,7 @@
|
|||||||
<result property="robotAction" column="robot_action" jdbcType="VARCHAR"/>
|
<result property="robotAction" column="robot_action" jdbcType="VARCHAR"/>
|
||||||
<result property="taskStatus" column="task_status" jdbcType="INTEGER"/>
|
<result property="taskStatus" column="task_status" jdbcType="INTEGER"/>
|
||||||
<result property="taskStage" column="task_stage" jdbcType="INTEGER"/>
|
<result property="taskStage" column="task_stage" jdbcType="INTEGER"/>
|
||||||
|
<result property="needLock" column="need_lock" jdbcType="INTEGER"/>
|
||||||
<result property="startTime" column="start_time" jdbcType="TIMESTAMP"/>
|
<result property="startTime" column="start_time" jdbcType="TIMESTAMP"/>
|
||||||
<result property="endTime" column="end_time" jdbcType="TIMESTAMP"/>
|
<result property="endTime" column="end_time" jdbcType="TIMESTAMP"/>
|
||||||
<result property="creator" column="creator" jdbcType="VARCHAR"/>
|
<result property="creator" column="creator" jdbcType="VARCHAR"/>
|
||||||
@ -70,6 +71,7 @@
|
|||||||
from_location_number,
|
from_location_number,
|
||||||
to_location_number,
|
to_location_number,
|
||||||
from_map_item_id,
|
from_map_item_id,
|
||||||
|
need_lock,
|
||||||
to_map_item_id
|
to_map_item_id
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
@ -317,6 +319,19 @@
|
|||||||
</set>
|
</set>
|
||||||
where id = #{id}
|
where id = #{id}
|
||||||
</update>
|
</update>
|
||||||
|
<update id="updateDoneByIds">
|
||||||
|
update
|
||||||
|
robot_task_detail
|
||||||
|
set
|
||||||
|
task_status = '2',
|
||||||
|
task_stage = '5'
|
||||||
|
where
|
||||||
|
id in
|
||||||
|
<foreach collection="ids" item="id" index="index" open="(" close=")"
|
||||||
|
separator=",">
|
||||||
|
#{id}
|
||||||
|
</foreach>
|
||||||
|
</update>
|
||||||
|
|
||||||
<!--通过主键删除-->
|
<!--通过主键删除-->
|
||||||
<delete id="deleteById">
|
<delete id="deleteById">
|
||||||
|
@ -461,6 +461,19 @@
|
|||||||
</set>
|
</set>
|
||||||
where id = #{id}
|
where id = #{id}
|
||||||
</update>
|
</update>
|
||||||
|
<update id="updateDoneByIds">
|
||||||
|
update
|
||||||
|
robot_task
|
||||||
|
set
|
||||||
|
task_status = '2',
|
||||||
|
task_stage = '5'
|
||||||
|
where
|
||||||
|
id in
|
||||||
|
<foreach collection="ids" item="id" index="index" open="(" close=")"
|
||||||
|
separator=",">
|
||||||
|
#{id}
|
||||||
|
</foreach>
|
||||||
|
</update>
|
||||||
|
|
||||||
<!--通过主键删除-->
|
<!--通过主键删除-->
|
||||||
<delete id="deleteById">
|
<delete id="deleteById">
|
||||||
|
Loading…
Reference in New Issue
Block a user