diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/robot/RobotTaskStatusApiImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/robot/RobotTaskStatusApiImpl.java index 6e4e881a9..c093e4f72 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/robot/RobotTaskStatusApiImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/robot/RobotTaskStatusApiImpl.java @@ -147,7 +147,10 @@ public class RobotTaskStatusApiImpl implements RobotTaskStatusApi { return; } - if (RobotExecutionStateConstant.UN_DO.equals(robotCompleteTaskDTO.getExecutionState()) + if (ObjectUtil.isNotEmpty(robotCompleteTaskDTO.getCommandStatus()) + && RobotExecutionStateConstant.UN_DO.equals(robotCompleteTaskDTO.getCommandStatus().getExecutionState())) { + log.info("任务未开始 :{}", robotCompleteTaskDTO.getOrderId()); + }else if (RobotExecutionStateConstant.UN_DO.equals(robotCompleteTaskDTO.getExecutionState()) || RobotExecutionStateConstant.STOP.equals(robotCompleteTaskDTO.getExecutionState()) || RobotExecutionStateConstant.CLOSE.equals(robotCompleteTaskDTO.getExecutionState())) { log.info("任务未开始/暂停/取消 :{}", robotCompleteTaskDTO.getOrderId()); @@ -571,6 +574,7 @@ public class RobotTaskStatusApiImpl implements RobotTaskStatusApi { RobotTaskDetailDO robotTaskDetailDO = robotTaskDetailMapper.selectById(robotCompleteTaskDTO.getOrderId()); Long taskStage = robotTaskDetailDO.getTaskStage(); + log.info("任务 :{} , 当前阶段 :{}",robotCompleteTaskDTO.getOrderId(),taskStage); RobotTaskDO robotTask = robotTaskMapper.selectById(robotTaskDetailDO.getRobotTaskId()); @@ -579,7 +583,9 @@ public class RobotTaskStatusApiImpl implements RobotTaskStatusApi { RobotTaskDetailActionLogSaveReqVO logOne = new RobotTaskDetailActionLogSaveReqVO(); if (PathTaskTypeEnum.TAKE_RELEASE.getType().equals(robotCompleteTaskDTO.getOrderType())) { - if (CommandTypeEnum.MOVE_POSES.getType().equals(commandType) && RobotTaskStageEnum.UN_START.getType().equals(taskStage)) { + if (CommandTypeEnum.MOVE_POSES.getType().equals(commandType) && (RobotTaskStageEnum.UN_START.getType().equals(taskStage) + || RobotTaskStageEnum.GO_TAKE.getType().equals(taskStage) + || RobotTaskStageEnum.TAKEING.getType().equals(taskStage))) { logOne.setActionMsg("车辆正在前往" + robotTaskDetailDO.getFromLocationNo() + "取货"); robotTaskDetailDO.setTaskStage(RobotTaskStageEnum.GO_TAKE.getType()); } else if (CommandTypeEnum.WORK_PICK_UP_GOODS.getType().equals(commandType)) { diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/robot/RobotWorkStatusApiImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/robot/RobotWorkStatusApiImpl.java index 3a6a07552..4229b0780 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/robot/RobotWorkStatusApiImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/robot/RobotWorkStatusApiImpl.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.system.api.robot; +import cn.hutool.core.util.ObjectUtil; import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; import cn.iocoder.yudao.module.system.api.robot.vo.RobotWorkStatusDTO; import cn.iocoder.yudao.module.system.constant.robot.RobotExecutionStateConstant; @@ -47,6 +48,10 @@ public class RobotWorkStatusApiImpl implements RobotWorkStatusApi { TenantContextHolder.setTenantId(1L); RobotWorkStatusDTO data = JSON.parseObject(message, RobotWorkStatusDTO.class); + if (ObjectUtil.isEmpty(data.getOrderId())) { + log.info("任务id为空,不进行处理"); + return; + } String robotNo = robotInformationService.getRobotNoByMac(data.getMac()); RobotOperationLogSaveReqVO createReqVO = RobotOperationLogSaveReqVO.builder() .orderId(Long.valueOf(data.getOrderId())) diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/config/mqtt/util/MqttUtils.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/config/mqtt/util/MqttUtils.java index 446ddd093..a0fff047e 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/config/mqtt/util/MqttUtils.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/config/mqtt/util/MqttUtils.java @@ -72,9 +72,9 @@ public class MqttUtils { } if (message.length() > 510) { - log.info("发送的主题 :{}, 内容 :{}",topic, message.substring(0, 500)); + log.info("111111发送的主题 :{}, 内容 :{}",topic, message.substring(0, 500)); }else { - log.info("发送的主题 :{}, 内容 :{}",topic, message); + log.info("111111发送的主题 :{}, 内容 :{}",topic, message); } } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/config/poperties/ZnConfigConstant.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/config/poperties/ZnConfigConstant.java index 2ac2c62a6..0f1185a36 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/config/poperties/ZnConfigConstant.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/config/poperties/ZnConfigConstant.java @@ -36,4 +36,5 @@ public class ZnConfigConstant { private Boolean taskNotCheck; private Double checkShortestDistance; private Double checkLongestDistance; + private String mapCheckDistance; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/PositionMapItemController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/PositionMapItemController.java index ebc6f5b4b..ca9a2d18c 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/PositionMapItemController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/PositionMapItemController.java @@ -165,4 +165,12 @@ public class PositionMapItemController { map.put("LINE",lineList); return success(map); } + + @GetMapping("/getCheckDistance") + @Operation(summary = "获取检测点距离") + @PreAuthorize("@ss.hasPermission('system:position-map-item:getCheckDistance')") + public CommonResult getCheckDistance() { + String distance = positionMapItemService.getCheckDistance(); + return success(distance); + } } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/robot/RobotInformationController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/robot/RobotInformationController.java index 98b8b29f6..7d99e6431 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/robot/RobotInformationController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/robot/RobotInformationController.java @@ -128,7 +128,6 @@ public class RobotInformationController { @Operation(summary = "获得车辆信息分页") @PreAuthorize("@ss.hasPermission('robot:information:list')") public CommonResult> getRobotList(@Valid RobotInformationPageReqVO pageReqVO) { - pageReqVO.setPageSize(300); PageResult pageResult = informationService.getInformationPage(pageReqVO); return success(BeanUtils.toBean(pageResult, RobotInformationPageRespVO.class)); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/schedul/ThreeDimensionalScheduled.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/schedul/ThreeDimensionalScheduled.java index 776ee5b82..eadef3ca1 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/schedul/ThreeDimensionalScheduled.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/schedul/ThreeDimensionalScheduled.java @@ -42,7 +42,7 @@ public class ThreeDimensionalScheduled { private static final ExecutorService FIXED_THREAD_POOL = Executors.newFixedThreadPool(3); // 这个方法将每200毫秒执行一次 -// @Scheduled(fixedDelay = 300, timeUnit = TimeUnit.MILLISECONDS) + @Scheduled(fixedDelay = 300, timeUnit = TimeUnit.MILLISECONDS) public void executeTask() { FIXED_THREAD_POOL.execute(this::sendData); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/path/PathPlanningServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/path/PathPlanningServiceImpl.java index ce2175bdf..2b08e3982 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/path/PathPlanningServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/path/PathPlanningServiceImpl.java @@ -174,6 +174,12 @@ public class PathPlanningServiceImpl implements PathPlanningService { assembleDataToPP(relatedPathNode, positionMapLineDOS); } + try { + Thread.sleep(2000); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + // commonApi.commonMethod(new PositionMapLineDTO(), PathPlanningTopicConstant.SYNCHRONOUS_ALL_MAP_LINE_END); mqttUtils.pub(PathPlanningTopicConstant.SYNCHRONOUS_ALL_MAP_LINE_END,JSON.toJSONString(new PositionMapLineDO())); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapItemService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapItemService.java index f0675a354..23af800d1 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapItemService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapItemService.java @@ -151,4 +151,6 @@ public interface PositionMapItemService extends IService { * @param mapId */ void checkHaveBindChangePoint(Long mapId); + + String getCheckDistance(); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapItemServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapItemServiceImpl.java index e279d91c1..f6074e80f 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapItemServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapItemServiceImpl.java @@ -7,6 +7,7 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; import cn.iocoder.yudao.module.mqtt.api.task.dto.Pose2ds; +import cn.iocoder.yudao.module.system.config.poperties.ZnConfigConstant; import cn.iocoder.yudao.module.system.constant.robot.RobotTaskChcheConstant; import cn.iocoder.yudao.module.system.controller.admin.log.vo.UserOperationLogSaveReqVO; import cn.iocoder.yudao.module.system.controller.admin.positionmap.dto.PositionMapConditionDTO; @@ -26,6 +27,7 @@ import cn.iocoder.yudao.module.system.service.robot.RobotWarnMsgService; import cn.iocoder.yudao.module.system.util.redis.RedisUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; @@ -66,6 +68,9 @@ public class PositionMapItemServiceImpl extends ServiceImpl cameraAddVOList = cameraService.getCameraByRobotNo(robotInformationDO.getRobotNo()); bean.setCameraAddVOList(cameraAddVOList); + + List stopRobotNoByRobotNo = mapStopService.getStopRobotNoByRobotNo(robotInformationDO.getRobotNo()); + if (ObjectUtil.isEmpty(stopRobotNoByRobotNo)) { + return bean; + } else if (RobotStatusEnum.STAND_BY.getType().equals(robotInformationDO.getRobotStatus())) { + robotInformationDO.setRobotStatus(RobotStatusEnum.STOP_FREE.getType()); + } else { + robotInformationDO.setRobotStatus(RobotStatusEnum.STOP_DOING.getType()); + } + return bean; } @@ -712,11 +722,19 @@ public class RobotInformationServiceImpl extends ServiceImpl getInformationPage(RobotInformationPageReqVO pageReqVO) { - PageResult pageResult = informationMapper.selectPage(pageReqVO); + List list = informationMapper.selectList(new LambdaQueryWrapperX() + .eqIfPresent(RobotInformationDO::getRobotModelId, pageReqVO.getRobotModelId()) + .eqIfPresent(RobotInformationDO::getRobotModelNumber, pageReqVO.getRobotModelNumber()) + .likeIfPresent(RobotInformationDO::getRobotNo, pageReqVO.getRobotNo()) + .eqIfPresent(RobotInformationDO::getRobotTaskModel, pageReqVO.getRobotTaskModel()) + .eqIfPresent(RobotInformationDO::getMacAddress, pageReqVO.getMacAddress()) + .eqIfPresent(RobotInformationDO::getRobotStatus, pageReqVO.getRobotStatus()) + .betweenIfPresent(RobotInformationDO::getCreateTime, pageReqVO.getCreateTime()) + .orderByDesc(RobotInformationDO::getId)); PageResult dataPage = new PageResult<>(); - dataPage.setTotal(pageResult.getTotal()); - List list = pageResult.getList(); + Long total = ObjectUtil.isEmpty(list) ? 0L : list.size(); + dataPage.setTotal(total); List targetList = BeanUtil.copyToList(list, RobotInformationPageRespVO.class); List allRobotMapStops = mapStopService.getAllRobotMapStops(ZeroOneEnum.ONE.getType()); @@ -1772,6 +1790,10 @@ public class RobotInformationServiceImpl extends ServiceImpl() .eq(CommonConfigDO::getConfigType, CommandConfigTypeEnum.CHARG_CONFIG.getType())); - Boolean needDoCharge = needDoCharge(commonConfigDO); + /*Boolean needDoCharge = needDoCharge(commonConfigDO); if (needDoCharge) { log.info("所有机器人都需要去执行充电任务"); return pair; - } + }*/ List remoteRobotNos = controllerInformationMapper.getRemoteControllerRobotNos(); log.info("远遥中的车辆 :{}",JSON.toJSONString(remoteRobotNos)); diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/mapstop/RobotMapStopServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/mapstop/RobotMapStopServiceImpl.java index 60bb7fb88..23a856126 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/mapstop/RobotMapStopServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/mapstop/RobotMapStopServiceImpl.java @@ -120,7 +120,7 @@ public class RobotMapStopServiceImpl extends ServiceImpl getStopRobotNoByMapIds(Long id) { List positionMapItems = mapStopMapper.selectList(new LambdaQueryWrapperX() - .eq(RobotMapStopDO::getStopType, ZeroOneEnum.ZERO.getType()) + .eq(RobotMapStopDO::getStopType, ZeroOneEnum.ONE.getType()) .eq(RobotMapStopDO::getPositionMapId, id)); if (ObjectUtil.isEmpty(positionMapItems)) { return new ArrayList<>(); diff --git a/yudao-module-system/yudao-module-system-biz/src/main/resources/application-dev.yaml b/yudao-module-system/yudao-module-system-biz/src/main/resources/application-dev.yaml index a3e289bf4..cd773d2ea 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/resources/application-dev.yaml +++ b/yudao-module-system/yudao-module-system-biz/src/main/resources/application-dev.yaml @@ -214,6 +214,7 @@ zn: task_not_check: true # 创建任务不校验 check_shortest_distance: 1.5 # 检测点最短距离 check_longest_distance: 3.0 # 检测点最长距离 + map_check_distance: 2.2 #检测点成成距离 #海康威视的相关配置 diff --git a/yudao-module-system/yudao-module-system-biz/src/main/resources/application-local.yaml b/yudao-module-system/yudao-module-system-biz/src/main/resources/application-local.yaml index 4b826f168..8344a3a54 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/resources/application-local.yaml +++ b/yudao-module-system/yudao-module-system-biz/src/main/resources/application-local.yaml @@ -249,6 +249,7 @@ zn: task_not_check: true # 创建任务不校验 check_shortest_distance: 1.5 # 检测点最短距离 check_longest_distance: 3.0 # 检测点最长距离 + map_check_distance: 2.2 #检测点成成距离 logging: file: diff --git a/yudao-module-system/yudao-module-system-biz/src/main/resources/application-test.yaml b/yudao-module-system/yudao-module-system-biz/src/main/resources/application-test.yaml index 2fc976a48..cb433fc9f 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/resources/application-test.yaml +++ b/yudao-module-system/yudao-module-system-biz/src/main/resources/application-test.yaml @@ -242,6 +242,7 @@ zn: task_not_check: true # 创建任务不校验 check_shortest_distance: 1.5 # 检测点最短距离 check_longest_distance: 3.0 # 检测点最长距离 + map_check_distance: 2.2 #检测点成成距离 #海康威视的相关配置 isc: