diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/robot/dto/RobotPoseStatusDTO.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/robot/dto/RobotPoseStatusDTO.java index b46864b87..699b5c10f 100644 --- a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/robot/dto/RobotPoseStatusDTO.java +++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/robot/dto/RobotPoseStatusDTO.java @@ -18,6 +18,7 @@ public class RobotPoseStatusDTO { * true表示可以做任务,如果是到达了充电点正在充电中应该返回true */ public Boolean taskStatus; + public String timestamp; /** * 机器人位姿 diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/robot/websocket/RobotStatusDataPoseDTO.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/robot/websocket/RobotStatusDataPoseDTO.java index 9061ecd3d..e60150a56 100644 --- a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/robot/websocket/RobotStatusDataPoseDTO.java +++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/robot/websocket/RobotStatusDataPoseDTO.java @@ -20,4 +20,6 @@ public class RobotStatusDataPoseDTO { public Double forkHeight; //电池剩余容量 废弃 从ROBOT_INFORMATION_SOC 获取电量 // public String batSoc; + + public String timestamp; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/robot/RobotStatusApiImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/robot/RobotStatusApiImpl.java index 78ab0e959..4ef34dc17 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/robot/RobotStatusApiImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/robot/RobotStatusApiImpl.java @@ -111,6 +111,7 @@ public class RobotStatusApiImpl implements RobotStatusApi { redisUtil.set(pose2dKey, JSON.toJSONString(robotStatusDataPoseDTO), znConfigConstant.getRobotPositionCacheTime()); executorService.execute(() ->{ + robotStatusDataPoseDTO.setTimestamp(robotStatusDataDTO.getTimestamp()); sendToPP(robotStatusDataPoseDTO); }); 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 32b33fafb..ffad01397 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 @@ -414,7 +414,7 @@ public class RobotTaskStatusApiImpl implements RobotTaskStatusApi { robotTaskDetailDO.setTaskStage(RobotTaskStageEnum.UN_START.getType()); if (!znConfigConstant.getIsSimulation()) { - robotTaskDetailDO.setRobotNo(""); +// robotTaskDetailDO.setRobotNo(""); } robotTaskDetailDO.setOccurError(ZeroOneEnum.ZERO.getType()); robotTaskDetailMapper.updateById(robotTaskDetailDO); 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 e837a8a27..a2ffd5f1c 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 fixedThreadPool = Executors.newFixedThreadPool(3); // 这个方法将每200毫秒执行一次 - @Scheduled(fixedDelay = 300, timeUnit = TimeUnit.MILLISECONDS) +// @Scheduled(fixedDelay = 300, timeUnit = TimeUnit.MILLISECONDS) public void executeTask() { fixedThreadPool.execute(new Runnable() { @Override diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/RobotInformationServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/RobotInformationServiceImpl.java index cf595d0b5..340fd1860 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/RobotInformationServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/RobotInformationServiceImpl.java @@ -1425,12 +1425,19 @@ public class RobotInformationServiceImpl extends ServiceImpl v.getDeviceAttribute().equals(robot.getChargeType()) - && robot.getFloorAreaJson().contains(v.getPositionMapId())) - .findFirst() - .orElse(new DeviceInformationDO()); - if (ObjectUtil.isEmpty(deviceInformationDO.getDeviceNo())) { + DeviceInformationDO deviceInformationDO = null; + for (DeviceInformationDO v : deviceInformations) { + if (ObjectUtil.isNotEmpty(v.getLastUser()) && v.getLastUser().equals(robot.getRobotNo())) { + deviceInformationDO = v; + break; + } + if (v.getDeviceAttribute().equals(robot.getChargeType()) + && robot.getFloorAreaJson().contains(v.getPositionMapId()) && DeviceUseStatusEnum.IDLE.getType().equals(v.getDeviceUseStatus())) { + deviceInformationDO = v; + } + } + + if (ObjectUtil.isEmpty(deviceInformationDO)) { log.info("当前机器人查不到对应的充电桩类型、或者机器人不能在此区域充电 :{}", robot.getRobotNo()); throw exception(ROBOT_NOT_FOUND_FREE_CHARGING_STATION); } @@ -1477,7 +1484,7 @@ public class RobotInformationServiceImpl extends ServiceImpl