代码优化
This commit is contained in:
parent
593d4d983b
commit
0f3a4ac1ed
@ -34,7 +34,9 @@ public class ApiAccessLogInterceptor implements HandlerInterceptor {
|
||||
|
||||
private static final String ATTRIBUTE_STOP_WATCH = "ApiAccessLogInterceptor.StopWatch";
|
||||
|
||||
private static final List<String> ignoreInterfaceUrls = Arrays.asList("/rpc-api/system/task/robotStatusUpdate","/rpc-api/system/task/updateRobotCommonStatus");
|
||||
private static final List<String> ignoreInterfaceUrls = Arrays.asList("/rpc-api/system/task/robotStatusUpdate",
|
||||
"/rpc-api/system/task/robotReactiveStatus",
|
||||
"/rpc-api/system/task/updateRobotCommonStatus");
|
||||
|
||||
@Override
|
||||
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
|
||||
|
@ -22,7 +22,7 @@ public class RobotStatusServiceImpl implements MqttService {
|
||||
*/
|
||||
@Override
|
||||
public void analysisMessage(String message) {
|
||||
// log.info("处理RobotStatusServiceImpl的消息 :{}", message);
|
||||
log.info("处理RobotStatusServiceImpl的消息 :{}", message);
|
||||
RobotPoseStatusDTO robotStatusData = JSON.parseObject(message, RobotPoseStatusDTO.class);
|
||||
robotStatusApi.robotStatusUpdate(robotStatusData);
|
||||
}
|
||||
|
@ -33,9 +33,9 @@ management:
|
||||
|
||||
# MQTT
|
||||
mqtt:
|
||||
# host: tcp://123.57.12.40:1883
|
||||
host: tcp://127.0.0.1:1883
|
||||
# host: tcp://10.10.7.195:1883
|
||||
host: tcp://123.57.12.40:1883
|
||||
# host: tcp://127.0.0.1:1883
|
||||
# host: tcp://10.10.7.116:1883
|
||||
username: adminuser
|
||||
password: adminuser
|
||||
qos: 2
|
||||
|
@ -202,6 +202,7 @@ public interface ErrorCodeConstants {
|
||||
ErrorCode ROBOT_PORT_NOT_COMPLIANCE = new ErrorCode(1-002-034-016, "车辆端口范围在4096至65535之间");
|
||||
ErrorCode ROBOT_IP_NOT_COMPLIANCE = new ErrorCode(1-002-034-017, "请检测车辆IP是否符合规范");
|
||||
ErrorCode ROBOT_IP_OR_PORT_EMPTY = new ErrorCode(1-002-034-020, "车辆IP或者端口为空");
|
||||
ErrorCode ROBOT_PART_AREA = new ErrorCode(1-002-034-021, "车辆选择的楼层,不包含目前车辆停靠的楼层");
|
||||
|
||||
// ========== 机器人任务主表 1-002-035-000 ==========
|
||||
ErrorCode TASK_NOT_EXISTS = new ErrorCode(1-002-035-001, "车辆任务主表不存在");
|
||||
|
@ -108,7 +108,7 @@ public class PathApiImpl implements PathApi {
|
||||
|
||||
@Override
|
||||
public void pathPlanningMove(String message) {
|
||||
log.info("收到路径规划路径的消息 :{}", message);
|
||||
log.info("111111收到路径规划路径的消息 :{}", message);
|
||||
taskExecutor.execute(() -> {
|
||||
TenantContextHolder.setTenantId(1L);
|
||||
pathPlanningService.sendPosedsToRobot(message);
|
||||
@ -145,7 +145,7 @@ public class PathApiImpl implements PathApi {
|
||||
@Override
|
||||
public void graphMatchData(String message) {
|
||||
TenantContextHolder.setTenantId(1L);
|
||||
log.info("匹配路网的消息 :{}",message);
|
||||
log.info("111111匹配路网的消息 :{}",message);
|
||||
pathPlanningService.graphMatchData(message);
|
||||
}
|
||||
|
||||
|
@ -30,7 +30,7 @@ public class RobotGenericsStatusApiImpl implements RobotGenericsStatusApi {
|
||||
}
|
||||
|
||||
public void doUpdateRobotCommonStatus(RobotGenericsDataDTO robotStatusData) {
|
||||
// log.info("车机每3秒上报其他状态信息 :{}", JSONUtil.toJsonStr(robotStatusData));
|
||||
// log.info("111111车机每3秒上报其他状态信息 :{}", JSONUtil.toJsonStr(robotStatusData));
|
||||
if (ObjectUtil.isEmpty(robotStatusData) || ObjectUtil.isEmpty(robotStatusData.getHwStates())
|
||||
|| ObjectUtil.isEmpty(robotStatusData.getMac())) {
|
||||
log.info("参数不全 :{}", JSON.toJSONString(robotStatusData));
|
||||
|
@ -41,7 +41,7 @@ public class RobotObstaclesStatusApiImpl implements RobotObstaclesStatusApi{
|
||||
|
||||
@Override
|
||||
public void robotObstaclesStatus(String message) {
|
||||
log.info("障碍物状态上报 :{}" ,message);
|
||||
log.info("111111障碍物状态上报 :{}" ,message);
|
||||
|
||||
RobotObstaclesStatusDTO data = JSON.parseObject(message, RobotObstaclesStatusDTO.class);
|
||||
if (!data.getObstacles()) {
|
||||
|
@ -41,7 +41,7 @@ public class RobotPathStatusApiImpl implements RobotPathStatusApi {
|
||||
}
|
||||
|
||||
private void doRobotPathStatus(String message) {
|
||||
log.info("导航实时行为上报: {}", message);
|
||||
log.info("111111导航实时行为上报: {}", message);
|
||||
TenantContextHolder.setTenantId(1L);
|
||||
RobotPathStatusDTO data = JSON.parseObject(message, RobotPathStatusDTO.class);
|
||||
String robotNo = robotInformationService.getRobotNoByMac(data.getMac());
|
||||
|
@ -128,7 +128,7 @@ public class RobotTaskStatusApiImpl implements RobotTaskStatusApi {
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void doRobotDoneTask(RobotCompleteTaskDTO robotCompleteTaskDTO) {
|
||||
log.info("机器人完成任务上报 :{}", JSON.toJSONString(robotCompleteTaskDTO));
|
||||
log.info("111111机器人完成任务上报 :{}", JSON.toJSONString(robotCompleteTaskDTO));
|
||||
TenantContextHolder.setTenantId(1L);
|
||||
String robotDoingActionKey = RobotTaskChcheConstant.ROBOT_QUERY_DOING_ACTION + robotCompleteTaskDTO.getMac();
|
||||
|
||||
@ -193,7 +193,7 @@ public class RobotTaskStatusApiImpl implements RobotTaskStatusApi {
|
||||
, null);
|
||||
|
||||
if (PathTaskTypeEnum.AUTO_CHARGE.getType().equals(robotCompleteTaskDTO.getOrderType())
|
||||
|| PathTaskTypeEnum.CHARGE.getType().equals(robotCompleteTaskDTO.getOrderType()) ) {
|
||||
|| PathTaskTypeEnum.CHARGE.getType().equals(robotCompleteTaskDTO.getOrderType())) {
|
||||
chargeDoing(robotCompleteTaskDTO);
|
||||
}
|
||||
}
|
||||
@ -206,6 +206,12 @@ public class RobotTaskStatusApiImpl implements RobotTaskStatusApi {
|
||||
* @param orderId
|
||||
*/
|
||||
public void sendStartDoActionToPP(RobotCommandStateDTO commandStatus, String mac, String orderId) {
|
||||
if (ObjectUtil.isNotEmpty(commandStatus)
|
||||
|| CommandTypeEnum.WORK_PICK_UP_GOODS_MOVE_TO_CHECK.getType().equals(commandStatus.getCommandType())
|
||||
|| CommandTypeEnum.WORK_DROP_OFF_GOODS_MOVE_TO_CHECK.getType().equals(commandStatus.getCommandType())) {
|
||||
log.info("不发作业");
|
||||
return;
|
||||
}
|
||||
if (ObjectUtil.isNotEmpty(commandStatus) && RobotExecutionStateConstant.DOING.equals(commandStatus.getExecutionState())
|
||||
&& !CommandTypeEnum.MOVE_POSES.getType().equals(commandStatus.getCommandType())) {
|
||||
String robotNo = robotInformationService.getRobotNoByMac(mac);
|
||||
@ -247,10 +253,10 @@ public class RobotTaskStatusApiImpl implements RobotTaskStatusApi {
|
||||
} else if (PathTaskTypeEnum.TAKE_RELEASE.getType().equals(robotCompleteTaskDTO.getOrderType())) {
|
||||
RobotTaskDetailDO robotTaskDetailDO = robotTaskDetailMapper.selectById(robotCompleteTaskDTO.getOrderId());
|
||||
if (CommandTypeEnum.WORK_PICK_UP_GOODS.getType().equals(robotCompleteTaskDTO.getCommandStatus().getCommandType())) {
|
||||
log.info("告诉路径规划任务完成 :{}, 状态: {}", robotCompleteTaskDTO.getOrderId(), PathIsReachEnum.END_WORK.getType());
|
||||
log.info("告诉路径规划取货任务完成 :{}, 状态: {}", robotCompleteTaskDTO.getOrderId(), PathIsReachEnum.END_WORK.getType());
|
||||
pathPlanningService.updateBehavior(String.valueOf(robotCompleteTaskDTO.getOrderId()), robotTaskDetailDO.getRobotNo()
|
||||
, "", PathIsReachEnum.END_WORK.getType());
|
||||
robotTaskDetailDO.setTaskStage(RobotTaskStageEnum.TAKEING.getType());
|
||||
robotTaskDetailDO.setTaskStage(RobotTaskStageEnum.GO_RELEASE.getType());
|
||||
robotTaskDetailMapper.updateById(robotTaskDetailDO);
|
||||
return;
|
||||
} else if (CommandTypeEnum.WORK_DROP_OFF_GOODS.getType().equals(robotCompleteTaskDTO.getCommandStatus().getCommandType())) {
|
||||
@ -260,7 +266,7 @@ public class RobotTaskStatusApiImpl implements RobotTaskStatusApi {
|
||||
|
||||
if (PathTaskTypeEnum.AUTO_CHARGE.getType().equals(robotCompleteTaskDTO.getOrderType())
|
||||
|| PathTaskTypeEnum.CHARGE.getType().equals(robotCompleteTaskDTO.getOrderType())) {
|
||||
chargeLogMapper.updateChargStatusByTaskId(robotCompleteTaskDTO.getOrderId(),ChargeTaskStatusEnum.DONE.getType());
|
||||
chargeLogMapper.updateChargStatusByTaskId(robotCompleteTaskDTO.getOrderId(), ChargeTaskStatusEnum.DONE.getType());
|
||||
}
|
||||
taskDetailActionLogMapper.updateActionStatus(robotCompleteTaskDTO.getOrderId(), ActionStatusEnum.DONE.getType(), LocalDateTime.now());
|
||||
|
||||
@ -289,7 +295,7 @@ public class RobotTaskStatusApiImpl implements RobotTaskStatusApi {
|
||||
toWareHouseLocation.setLocationLock(LocationLockEnum.YES.getType());
|
||||
toWareHouseLocation.setLocationUseStatus(LocationUseStatusEnum.YES.getType());
|
||||
locationMapper.updateById(toWareHouseLocation);
|
||||
pushWareLocation(toWareHouseLocation,robotCompleteTaskDTO.getMac(),ZeroOneEnum.ONE.getType());
|
||||
pushWareLocation(toWareHouseLocation, robotCompleteTaskDTO.getMac(), ZeroOneEnum.ONE.getType());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -345,7 +351,7 @@ public class RobotTaskStatusApiImpl implements RobotTaskStatusApi {
|
||||
wareHouseLocationDO.setLocationLock(LocationLockEnum.YES.getType());
|
||||
wareHouseLocationDO.setLocationUseStatus(LocationUseStatusEnum.NO.getType());
|
||||
locationMapper.updateById(wareHouseLocationDO);
|
||||
pushWareLocation(wareHouseLocationDO,robotCompleteTaskDTO.getMac(),ZeroOneEnum.ZERO.getType());
|
||||
pushWareLocation(wareHouseLocationDO, robotCompleteTaskDTO.getMac(), ZeroOneEnum.ZERO.getType());
|
||||
}
|
||||
|
||||
public void pushWareLocation(WareHouseLocationDO wareHouseLocationDO, String mac, Integer type) {
|
||||
@ -393,10 +399,10 @@ public class RobotTaskStatusApiImpl implements RobotTaskStatusApi {
|
||||
// taskService.closeTaskDetail(robotCompleteTaskDTO.getOrderId().toString(),robotCompleteTaskDTO.getMac());
|
||||
String robotNo = robotInformationService.getRobotNoByMac(robotCompleteTaskDTO.getMac());
|
||||
|
||||
String msg = "";
|
||||
String msg = null;
|
||||
RobotTaskDetailDO robotTaskDetailDO = robotTaskDetailMapper.selectById(robotCompleteTaskDTO.getOrderId());
|
||||
if (PathTaskTypeEnum.TAKE_RELEASE.getType().equals(robotCompleteTaskDTO.getOrderType())
|
||||
|| PathTaskTypeEnum.TAKE.getType().equals(robotCompleteTaskDTO.getOrderType())) {
|
||||
RobotTaskDetailDO robotTaskDetailDO = robotTaskDetailMapper.selectById(robotCompleteTaskDTO.getOrderId());
|
||||
if (RobotTaskStageEnum.GO_TAKE.getType().equals(robotTaskDetailDO.getTaskStage())
|
||||
|| RobotTaskStageEnum.UN_START.getType().equals(robotTaskDetailDO.getTaskStage())) {
|
||||
robotTaskDetailDO.setTaskStatus(RobotTaskDetailStatusEnum.NEW.getType());
|
||||
@ -439,8 +445,7 @@ public class RobotTaskStatusApiImpl implements RobotTaskStatusApi {
|
||||
|
||||
String solve = "";
|
||||
String taskNo = "";
|
||||
if (!PathTaskTypeEnum.AUTO_CHARGE.getType().equals(robotCompleteTaskDTO.getOrderType())
|
||||
&& ObjectUtil.isEmpty(msg)) {
|
||||
if (ObjectUtil.isEmpty(msg)) {
|
||||
taskNo = taskDetailService.getTaskNoByDetailId(robotCompleteTaskDTO.getOrderId());
|
||||
solve = " 并且到任务列表关闭任务 " + taskNo;
|
||||
taskDetailService.setTaskDetailError(robotCompleteTaskDTO.getOrderId());
|
||||
@ -478,7 +483,7 @@ public class RobotTaskStatusApiImpl implements RobotTaskStatusApi {
|
||||
setTaskDone(robotCompleteTaskDTO);
|
||||
}
|
||||
|
||||
chargeLogMapper.updateChargStatusByTaskId(robotCompleteTaskDTO.getOrderId(),ChargeTaskStatusEnum.CHARGEING.getType());
|
||||
chargeLogMapper.updateChargStatusByTaskId(robotCompleteTaskDTO.getOrderId(), ChargeTaskStatusEnum.CHARGEING.getType());
|
||||
}
|
||||
|
||||
public RobotTaskDetailDO setTaskDone(RobotCompleteTaskDTO robotCompleteTaskDTO) {
|
||||
@ -513,7 +518,7 @@ public class RobotTaskStatusApiImpl implements RobotTaskStatusApi {
|
||||
*/
|
||||
private void taskDone(RobotCompleteTaskDTO robotCompleteTaskDTO) {
|
||||
|
||||
RobotTaskDetailDO robotTaskDetailDO = setTaskDone(robotCompleteTaskDTO);
|
||||
RobotTaskDetailDO robotTaskDetailDO = setTaskDone(robotCompleteTaskDTO);
|
||||
|
||||
RobotInformationDO robotInformationDO = robotInformationMapper.selectOne(new LambdaQueryWrapperX<RobotInformationDO>()
|
||||
.eq(RobotInformationDO::getRobotNo, robotTaskDetailDO.getRobotNo()));
|
||||
|
@ -50,7 +50,7 @@ public class RobotUpdatePalletHeightApiImpl implements RobotUpdatePalletHeightAp
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updatePalletHeight(String message) {
|
||||
log.info("高度反馈 :{}", message);
|
||||
log.info("111111高度反馈 :{}", message);
|
||||
TenantContextHolder.setTenantId(1L);
|
||||
RobotUpdatePalletHeightDTO data = JSON.parseObject(message, RobotUpdatePalletHeightDTO.class);
|
||||
if (RobotCommandTypeEnum.WORK_DROP_OFF_GOODS.getType().equals(data.getCommandType())) {
|
||||
|
@ -34,7 +34,7 @@ public class RobotWorkStatusApiImpl implements RobotWorkStatusApi {
|
||||
|
||||
@Override
|
||||
public void robotWorkStatus(String message) {
|
||||
log.info("作业实时行为上报: {}", message);
|
||||
log.info("111111作业实时行为上报: {}", message);
|
||||
|
||||
TenantContextHolder.setTenantId(1L);
|
||||
RobotWorkStatusDTO data = JSON.parseObject(message, RobotWorkStatusDTO.class);
|
||||
|
@ -130,4 +130,11 @@ public class RobotTaskController {
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/getRobotTaskNum")
|
||||
@Operation(summary = "获取这台车工作的任务总数")
|
||||
@Parameter(name = "robotNo", description = "车辆编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('robot:task:getRobotTaskNum')")
|
||||
public CommonResult<Integer> getRobotTaskNum(@RequestParam("robotNo") String robotNo) {
|
||||
return success(taskService.getRobotTaskNum(robotNo));
|
||||
}
|
||||
}
|
@ -27,4 +27,10 @@ public interface TaskCycleMapper extends BaseMapperX<TaskCycleDO> {
|
||||
}
|
||||
|
||||
void deletByRobotTaskId(@Param("robotTaskId") Long robotTaskId);
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
* @param taskIds
|
||||
*/
|
||||
void deletByRobotTaskIds(@Param("taskIds") Set<Long> taskIds);
|
||||
}
|
@ -369,6 +369,21 @@ public class RobotInformationServiceImpl extends ServiceImpl<RobotInformationMap
|
||||
validateInformationExists(updateReqVO.getId());
|
||||
RobotInformationDO robotInformationDO = informationMapper.selectById(updateReqVO.getId());
|
||||
|
||||
if (RobotStatusEnum.STAND_BY.getType().equals(robotInformationDO.getRobotStatus()) ) {
|
||||
PositionMapItemDO positionMapItem = positionMapItemMapper.selectOne(new LambdaQueryWrapper<PositionMapItemDO>()
|
||||
.eq(PositionMapItemDO::getRobotNo, robotInformationDO.getRobotNo())
|
||||
.eq(PositionMapItemDO::getUseStatus, UseStatusEnum.USEING.getType())
|
||||
.eq(PositionMapItemDO::getType, PositionMapItemEnum.STOP.getType())
|
||||
.last("limit 1"));
|
||||
if (ObjectUtil.isNotEmpty(positionMapItem) && ObjectUtil.isEmpty(updateReqVO.getFloorAreaJson())) {
|
||||
log.info("车辆 :{} ,停靠在 :{},",robotInformationDO.getRobotNo(), positionMapItem.getPositionMapId());
|
||||
throw exception(ROBOT_PART_AREA);
|
||||
}else if (ObjectUtil.isNotEmpty(positionMapItem) && ObjectUtil.isNotEmpty(updateReqVO.getFloorAreaJson())
|
||||
&& !updateReqVO.getFloorAreaJson().contains(positionMapItem.getPositionMapId())) {
|
||||
throw exception(ROBOT_PART_AREA);
|
||||
}
|
||||
}
|
||||
|
||||
RemoteControllerInformationDO remoteControllerInformation = controllerInformationMapper.selectOne(new LambdaQueryWrapper<RemoteControllerInformationDO>()
|
||||
.eq(RemoteControllerInformationDO::getRobotNo, robotInformationDO.getRobotNo())
|
||||
.last("limit 1"));
|
||||
@ -425,7 +440,7 @@ public class RobotInformationServiceImpl extends ServiceImpl<RobotInformationMap
|
||||
checkIpAndPort(updateObj);
|
||||
|
||||
if (!updateReqVO.getRobotNo().equals(robotInformationDO.getRobotNo())) {
|
||||
updateRobotNo(robotInformationDO.getRobotNo(),updateReqVO.getRobotNo());
|
||||
updateRobotNo(robotInformationDO.getRobotNo(), updateReqVO.getRobotNo());
|
||||
}
|
||||
|
||||
informationMapper.updateById(updateObj);
|
||||
@ -483,15 +498,16 @@ public class RobotInformationServiceImpl extends ServiceImpl<RobotInformationMap
|
||||
|
||||
/**
|
||||
* 跟新车辆编号
|
||||
*
|
||||
* @param oldRobotNo
|
||||
* @param newRobotNo
|
||||
*/
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateRobotNo(String oldRobotNo, String newRobotNo) {
|
||||
|
||||
deviceInformationMapper.updateRobotNo(oldRobotNo,newRobotNo);
|
||||
deviceInformationMapper.updateRobotNo(oldRobotNo, newRobotNo);
|
||||
|
||||
controllerInformationMapper.updateRobotNo(oldRobotNo,newRobotNo);
|
||||
controllerInformationMapper.updateRobotNo(oldRobotNo, newRobotNo);
|
||||
|
||||
RobotChargeLogDO robotChargeLog = chargeLogMapper.selectOne(new LambdaQueryWrapperX<RobotChargeLogDO>()
|
||||
.eq(RobotChargeLogDO::getRobotNo, oldRobotNo)
|
||||
@ -504,11 +520,11 @@ public class RobotInformationServiceImpl extends ServiceImpl<RobotInformationMap
|
||||
|
||||
//这表暂时不改
|
||||
// robotWorkingHoursStatisticsMapper
|
||||
mapStopMapper.updateRobotNo(oldRobotNo,newRobotNo);
|
||||
mapStopMapper.updateRobotNo(oldRobotNo, newRobotNo);
|
||||
|
||||
moveToWaitMapper.updateRobotNo(oldRobotNo,newRobotNo);
|
||||
moveToWaitMapper.updateRobotNo(oldRobotNo, newRobotNo);
|
||||
|
||||
positionMapItemMapper.updateRobotNo(oldRobotNo,newRobotNo);
|
||||
positionMapItemMapper.updateRobotNo(oldRobotNo, newRobotNo);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -668,7 +684,7 @@ public class RobotInformationServiceImpl extends ServiceImpl<RobotInformationMap
|
||||
if (ObjectUtil.isNotEmpty(cargoDetected) && RobotStatusCodeConstant.CARGO_DETECTED.equals(Boolean.parseBoolean(String.valueOf(cargoDetected)))) {
|
||||
//说明取货完成
|
||||
v.setCargoDetected("有货");
|
||||
}else {
|
||||
} else {
|
||||
v.setCargoDetected("空车");
|
||||
}
|
||||
if (RobotStatisticsTypeEnum.STANDBY.getType().equals(pageReqVO.getRobotStatisticsType())
|
||||
@ -1256,7 +1272,7 @@ public class RobotInformationServiceImpl extends ServiceImpl<RobotInformationMap
|
||||
} else if (PathTaskTypeEnum.RELEASE.getType().equals(actionLog.getCommandType())) {
|
||||
releaseTask(pathPlanning);
|
||||
} else if (PathTaskTypeEnum.MOVE.getType().equals(actionLog.getCommandType())
|
||||
|| PathTaskTypeEnum.MOVE_TO_POINT.getType().equals(actionLog.getCommandType())) {
|
||||
|| PathTaskTypeEnum.MOVE_TO_POINT.getType().equals(actionLog.getCommandType())) {
|
||||
|
||||
}
|
||||
}
|
||||
@ -1318,7 +1334,7 @@ public class RobotInformationServiceImpl extends ServiceImpl<RobotInformationMap
|
||||
wareHouseLocation.setLocationUseStatus(LocationUseStatusEnum.NO.getType());
|
||||
wareHouseLocationMapper.updateById(wareHouseLocation);
|
||||
}
|
||||
}else {
|
||||
} else {
|
||||
takeCheck(robotTaskDetail.getFromLocationId(), robotTaskDetail.getRobotTaskId(), isRemote);
|
||||
}
|
||||
releaseCheck(robotTaskDetail.getToLocationId(), robotTaskDetail.getRobotTaskId());
|
||||
@ -1493,7 +1509,7 @@ public class RobotInformationServiceImpl extends ServiceImpl<RobotInformationMap
|
||||
List<String> robotNos = robots.stream().map(RobotInformationDO::getRobotNo).collect(Collectors.toList());
|
||||
|
||||
List<String> list = new ArrayList<>();
|
||||
String floorArea = floor + CommonConstant.SYMBOL + area;
|
||||
String floorArea = floor + CommonConstant.SYMBOL + area;
|
||||
Map<Object, Object> hmget = redisUtil.hmget(floorArea);
|
||||
if (ObjectUtil.isEmpty(hmget)) {
|
||||
return new ArrayList<>();
|
||||
|
@ -246,6 +246,7 @@ public class RobotTaskDetailServiceImpl implements RobotTaskDetailService {
|
||||
public void setTaskDetailError(Long id) {
|
||||
RobotTaskDetailDO robotTaskDetailDO = new RobotTaskDetailDO();
|
||||
robotTaskDetailDO.setId(id);
|
||||
robotTaskDetailDO.setTaskStatus(RobotTaskStatusEnum.Exc.getType());
|
||||
robotTaskDetailDO.setOccurError(ZeroOneEnum.ONE.getType());
|
||||
taskDetailMapper.updateById(robotTaskDetailDO);
|
||||
}
|
||||
|
@ -115,4 +115,11 @@ public interface RobotTaskService extends IService<RobotTaskDO> {
|
||||
* @param robotNo
|
||||
*/
|
||||
void chargeDone(String robotNo);
|
||||
|
||||
/**
|
||||
* 查询车辆的工作总数
|
||||
* @param robotNo
|
||||
* @return
|
||||
*/
|
||||
Integer getRobotTaskNum(String robotNo);
|
||||
}
|
||||
|
@ -512,6 +512,8 @@ public class RobotTaskServiceImpl extends ServiceImpl<RobotTaskMapper, RobotTask
|
||||
|
||||
taskDetailMapper.updateById(taskDetailDOS);
|
||||
|
||||
taskCycleMapper.deletByRobotTaskId(robotTaskDO.getId());
|
||||
|
||||
if (ObjectUtil.isNotEmpty(locationIds)) {
|
||||
locationMapper.releaseLocationLockList(locationIds, robotTaskDO.getId()
|
||||
, LocationLockEnum.YES.getType());
|
||||
@ -536,13 +538,11 @@ public class RobotTaskServiceImpl extends ServiceImpl<RobotTaskMapper, RobotTask
|
||||
robotInformationDO.setRobotTaskModel(RobotTaskModelEnum.REJECTION.getType());
|
||||
}*/
|
||||
//因为机器人如果正在抬叉取货,这时把任务取消,如果货叉刚好伸到托盘底下,还是需要人为控制
|
||||
robotInformationDO.setRobotTaskModel(RobotTaskModelEnum.REJECTION.getType());
|
||||
// robotInformationDO.setRobotTaskModel(RobotTaskModelEnum.REJECTION.getType());
|
||||
robotInformationDO.setRobotStatus(RobotStatusEnum.STAND_BY.getType());
|
||||
}
|
||||
|
||||
informationMapper.updateById(robotInformationDOS);
|
||||
|
||||
taskCycleMapper.deletByRobotTaskId(robotTaskDO.getId());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -582,7 +582,7 @@ public class RobotTaskServiceImpl extends ServiceImpl<RobotTaskMapper, RobotTask
|
||||
*/
|
||||
@Override
|
||||
public void assignTasks(String message) {
|
||||
log.info("PP分配任务,开始更新任务状态 :{}", message);
|
||||
log.info("111111PP分配任务,开始更新任务状态 :{}", message);
|
||||
TaskAssignDTO taskAssignDTO = JSON.parseObject(message, TaskAssignDTO.class);
|
||||
|
||||
String mac = robotInformationService.getMacByRobotNo(taskAssignDTO.getRobotNo());
|
||||
@ -818,6 +818,7 @@ public class RobotTaskServiceImpl extends ServiceImpl<RobotTaskMapper, RobotTask
|
||||
taskDetailMapper.updateById(taskDetailDO);
|
||||
RobotTaskDO task = new RobotTaskDO();
|
||||
task.setId(taskDetailDO.getRobotTaskId());
|
||||
task.setStartTime(LocalDateTime.now());
|
||||
task.setTaskStatus(RobotTaskStatusEnum.DOING.getType());
|
||||
taskMapper.updateById(task);
|
||||
String taskNo = taskDetailMapper.getTaskNoByDetailId(detailId);
|
||||
@ -1622,6 +1623,15 @@ public class RobotTaskServiceImpl extends ServiceImpl<RobotTaskMapper, RobotTask
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer getRobotTaskNum(String robotNo) {
|
||||
List<RobotTaskDetailDO> taskDetailDOS = taskDetailMapper.selectList(new LambdaQueryWrapperX<RobotTaskDetailDO>()
|
||||
.eq(RobotTaskDetailDO::getRobotNo, robotNo)
|
||||
.ne(RobotTaskDetailDO::getTaskStatus, RobotTaskStatusEnum.NEW.getType()));
|
||||
|
||||
return ObjectUtil.isEmpty(taskDetailDOS) ? 0 : taskDetailDOS.size();
|
||||
}
|
||||
|
||||
/**
|
||||
* 任务日志分页
|
||||
*
|
||||
|
@ -7,6 +7,7 @@ import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
|
||||
import cn.iocoder.yudao.module.system.controller.admin.robot.vo.RobotTaskDetailAddVO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.robot.RobotTaskDO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.robot.RobotTaskDetailDO;
|
||||
import cn.iocoder.yudao.module.system.dal.mysql.cycle.TaskCycleMapper;
|
||||
import cn.iocoder.yudao.module.system.dal.mysql.houselocation.WareHouseLocationMapper;
|
||||
import cn.iocoder.yudao.module.system.dal.mysql.robot.RobotTaskDetailMapper;
|
||||
import cn.iocoder.yudao.module.system.dal.mysql.robot.RobotTaskMapper;
|
||||
@ -59,6 +60,9 @@ public class CycleServiceImpl implements CycleService {
|
||||
|
||||
@Resource
|
||||
private RobotTaskService robotTaskService;
|
||||
|
||||
@Resource
|
||||
private TaskCycleMapper taskCycleMapper;
|
||||
/**
|
||||
* 创建循环任务
|
||||
*/
|
||||
@ -120,6 +124,7 @@ public class CycleServiceImpl implements CycleService {
|
||||
taskDetailMap.forEach((k,v) ->{
|
||||
robotTaskService.addCycle(k,v);
|
||||
});
|
||||
taskCycleMapper.deletByRobotTaskIds(taskIds);
|
||||
}
|
||||
|
||||
private List<RobotTaskDetailDO> getTaskDetailData(RobotTaskDO taskData, Map<Long,
|
||||
|
@ -484,15 +484,15 @@ public class RobotPathPlanningServiceImpl implements RobotPathPlanningService {
|
||||
String cargoDetectedKey = RobotTaskChcheConstant.ROBOT_CARGO_DETECTED + mac;
|
||||
Object cargoDetected = redisUtil.get(cargoDetectedKey);
|
||||
log.info("传感器是否按下 :{}", cargoDetected);
|
||||
if (ObjectUtil.isEmpty(cargoDetected) || (RobotStatusCodeConstant.CARGO_DETECTED.equals(Boolean.parseBoolean(String.valueOf(cargoDetected)))
|
||||
/* if (ObjectUtil.isNotEmpty(cargoDetected) && (RobotStatusCodeConstant.CARGO_DETECTED.equals(Boolean.parseBoolean(String.valueOf(cargoDetected)))
|
||||
&& !RobotTaskTypeEnum.RELEASE.getType().equals(taskDetailDO.getTaskType()))) {
|
||||
log.info("车机上报传感器为空, 或者 被按下且任务非仅放货任务 :{} ,任务id :{}", taskDetailDO.getRobotNo(), taskDetailDO.getId());
|
||||
continue;
|
||||
} else if (!RobotStatusCodeConstant.CARGO_DETECTED.equals(Boolean.parseBoolean(String.valueOf(cargoDetected)))
|
||||
} else if (ObjectUtil.isNotEmpty(cargoDetected) && !RobotStatusCodeConstant.CARGO_DETECTED.equals(Boolean.parseBoolean(String.valueOf(cargoDetected)))
|
||||
&& RobotTaskTypeEnum.RELEASE.getType().equals(taskDetailDO.getTaskType())) {
|
||||
log.info("仅放货任务,传感器未被按下,所以不执行任务 :{}, 任务id :{}", taskDetailDO.getRobotNo(), taskDetailDO.getId());
|
||||
continue;
|
||||
}
|
||||
}*/
|
||||
|
||||
List<TaskRobotNoLimittationAreaDTO> robotNoLimitions = null;
|
||||
if (ObjectUtil.isEmpty(taskDetailDO.getRobotNo())) {
|
||||
@ -550,7 +550,7 @@ public class RobotPathPlanningServiceImpl implements RobotPathPlanningService {
|
||||
}
|
||||
|
||||
if (ObjectUtil.isNotEmpty(pathPlanningList)) {
|
||||
log.info("作业任务下发给PP :{}", JSON.toJSONString(pathPlanningList));
|
||||
log.info("111111作业任务下发给PP :{}", JSON.toJSONString(pathPlanningList));
|
||||
commonApi.commonMethod(pathPlanningList, PathPlanningTopicConstant.TASK_ASSIGNMENT_REQUEST);
|
||||
}
|
||||
}
|
||||
@ -578,7 +578,7 @@ public class RobotPathPlanningServiceImpl implements RobotPathPlanningService {
|
||||
|
||||
Integer locationStorey = toLocation.getLocationStorey() - 1;
|
||||
double height = locationStorey * defaultTrayHeight;
|
||||
log.info("放货设置默认高度 :{}", pathPlanning.getReleaseHeight());
|
||||
log.info("放货设置默认高度 :{}", height);
|
||||
pathPlanning.setReleaseHeight(height);
|
||||
}
|
||||
|
||||
|
@ -12,4 +12,12 @@
|
||||
<delete id="deletByRobotTaskId">
|
||||
delete from robot_task_cycle where robot_task_id = #{robotTaskId}
|
||||
</delete>
|
||||
<delete id="deletByRobotTaskIds">
|
||||
delete from robot_task_cycle
|
||||
where robot_task_id in
|
||||
<foreach collection="taskIds" item="robotTaskId" index="index" open="(" close=")"
|
||||
separator=",">
|
||||
#{robotTaskId}
|
||||
</foreach>
|
||||
</delete>
|
||||
</mapper>
|
Loading…
Reference in New Issue
Block a user