From 4beceefef74817fa5a35ace325f8c325cfcd809d Mon Sep 17 00:00:00 2001 From: cbs <18617195505@163.com> Date: Tue, 3 Jun 2025 15:42:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=85=E7=94=B5=E8=87=AA=E5=8A=A8=E7=A7=BB?= =?UTF-8?q?=E5=8A=A8=E5=88=B0=E7=AD=89=E5=BE=85=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../robot/job/AutoChargeServiceImpl.java | 18 +++++++++++++----- .../pathplanning/RobotPathPlanningService.java | 2 ++ .../RobotPathPlanningServiceImpl.java | 3 ++- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/job/AutoChargeServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/job/AutoChargeServiceImpl.java index 5a77f2e38..4b006edd3 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/job/AutoChargeServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/job/AutoChargeServiceImpl.java @@ -129,11 +129,12 @@ public class AutoChargeServiceImpl implements AutoChargeService { log.info("没有充电中的车辆"); return; } - chargeIngRobots = getCanLeaveChargingRobots(chargeIngRobots, chargeConfig, robots.size()); - if (ObjectUtil.isEmpty(chargeIngRobots)) { + List moveToWaitRobots = getCanLeaveChargingRobots(chargeIngRobots, chargeConfig, robots.size()); + if (ObjectUtil.isEmpty(moveToWaitRobots)) { log.info("充电中的车辆未充满电"); return; } + robotPathPlanningService.moveRobotToWait(moveToWaitRobots); return; } @@ -192,6 +193,7 @@ public class AutoChargeServiceImpl implements AutoChargeService { private List getCanLeaveChargingRobots(List robots, CommonConfigVO chargeConfig, int sum) { List needChargeRobots = new ArrayList<>(); Map map = new HashMap<>(); + Map robotMap = new HashMap<>(); for (RobotInformationDO robot : robots) { String taskStatusKey = RobotTaskChcheConstant.ROBOT_TASK_STATUS + robot.getMacAddress(); String cargoDetectedKey = RobotTaskChcheConstant.ROBOT_CARGO_DETECTED + robot.getMacAddress(); @@ -215,6 +217,7 @@ public class AutoChargeServiceImpl implements AutoChargeService { Object o = redisUtil.get(socKey); Integer soc = ObjectUtil.isEmpty(o) ? 0 : Integer.parseInt(o.toString()); map.put(robot.getRobotNo(), soc); + robotMap.put(robot.getRobotNo(),robot); } } @@ -226,9 +229,14 @@ public class AutoChargeServiceImpl implements AutoChargeService { .sorted(Collections.reverseOrder(Map.Entry.comparingByValue())) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (x1, x2) -> x2, LinkedHashMap::new)); - - - + log.info("排序后的集合 :{}",JSON.toJSONString(map)); + for (Map.Entry item : map.entrySet()) { + if (needChargeRobots.size() > sum) { + break; + } + needChargeRobots.add(robotMap.get(item.getKey())); + } + log.info("充电达到阀值,可以移动到等待点的车辆 :{}",JSON.toJSONString(needChargeRobots)); return needChargeRobots; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/pathplanning/RobotPathPlanningService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/pathplanning/RobotPathPlanningService.java index abad18799..937890492 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/pathplanning/RobotPathPlanningService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/pathplanning/RobotPathPlanningService.java @@ -17,4 +17,6 @@ public interface RobotPathPlanningService { List robots); List getRobotNoLimitationArea(List robots); + + void moveRobotToWait(List robots); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/pathplanning/RobotPathPlanningServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/pathplanning/RobotPathPlanningServiceImpl.java index 37f835f7d..1ea7aaee7 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/pathplanning/RobotPathPlanningServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/pathplanning/RobotPathPlanningServiceImpl.java @@ -181,7 +181,8 @@ public class RobotPathPlanningServiceImpl implements RobotPathPlanningService { * * @param robots */ - private void moveRobotToWait(List robots) { + @Override + public void moveRobotToWait(List robots) { List detailDOS = robotTaskDetailMapper.selectAutoCreateCycleTask();