refactor(system): 优化位置地图功能和路径规划相关代码

- 移除 Redis 密码配置
- 优化 CommonConfigService、RobotTaskDetailService 等服务的注入方式
- 改进 PositionMapItemMapper 接口和 XML 文件
- 优化 PathPlanningServiceImpl 和 PositionMapLineServiceImpl 中的代码
- 删除未使用的 CommonApi 和 mapStopService 引用
This commit is contained in:
aikai 2025-06-21 11:40:58 +08:00
parent a59d1ec224
commit 390576cb2f
11 changed files with 41 additions and 24 deletions

View File

@ -0,0 +1,14 @@
package cn.iocoder.yudao.module.system.controller.admin.positionmap.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class PositionMapIdNumMapVO {
@Schema(description = "主键ID")
private Long id;
@Schema(description = "序号")
private Long sortNum;
}

View File

@ -6,14 +6,13 @@ import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.mqtt.api.path.dto.PositionMapItemSynDTO; import cn.iocoder.yudao.module.mqtt.api.path.dto.PositionMapItemSynDTO;
import cn.iocoder.yudao.module.mqtt.api.task.dto.Pose2ds; import cn.iocoder.yudao.module.mqtt.api.task.dto.Pose2ds;
import cn.iocoder.yudao.module.system.controller.admin.positionmap.dto.RobotPositionMapDTO; import cn.iocoder.yudao.module.system.controller.admin.positionmap.dto.RobotPositionMapDTO;
import cn.iocoder.yudao.module.system.controller.admin.positionmap.vo.PositionMapIdNumMapVO;
import cn.iocoder.yudao.module.system.controller.admin.positionmap.vo.PositionMapItemPageReqVO; import cn.iocoder.yudao.module.system.controller.admin.positionmap.vo.PositionMapItemPageReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.positionmap.PositionMapItemDO; import cn.iocoder.yudao.module.system.dal.dataobject.positionmap.PositionMapItemDO;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 仓库点位地图子表 Mapper * 仓库点位地图子表 Mapper
@ -59,13 +58,13 @@ public interface PositionMapItemMapper extends BaseMapperX<PositionMapItemDO> {
/** /**
* 将laneId设为空 * 将laneId设为空
*
* @param mapId * @param mapId
* @param laneId * @param laneId
*/ */
void emptyLaneId(@Param("mapId") Long mapId, @Param("laneId") Long laneId); void emptyLaneId(@Param("mapId") Long mapId, @Param("laneId") Long laneId);
/** /**
*
* @param list * @param list
* @return * @return
*/ */
@ -73,12 +72,14 @@ public interface PositionMapItemMapper extends BaseMapperX<PositionMapItemDO> {
/** /**
* 删除这个地图的点 * 删除这个地图的点
*
* @param mapId * @param mapId
*/ */
void deleteByMapId(@Param("mapId") Long mapId); void deleteByMapId(@Param("mapId") Long mapId);
/** /**
* 更新车辆编号 * 更新车辆编号
*
* @param oldRobotNo * @param oldRobotNo
* @param newRobotNo * @param newRobotNo
*/ */
@ -86,15 +87,14 @@ public interface PositionMapItemMapper extends BaseMapperX<PositionMapItemDO> {
/** /**
* 释放车辆 * 释放车辆
*
* @param robotNo * @param robotNo
*/ */
void clearRobotNo(@Param("robotNo") String robotNo); void clearRobotNo(@Param("robotNo") String robotNo);
/** /**
*
* @param ids * @param ids
* @return * @return
*/ */
@MapKey("id") List<PositionMapIdNumMapVO> selectSortNumByIds(@Param("ids") List<Long> ids);
Map<Long, Long> selectSortNumByIds(@Param("ids") List<Long> ids);
} }

View File

@ -2,20 +2,21 @@ package cn.iocoder.yudao.module.system.handler.mapnode;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.iocoder.yudao.framework.common.enums.NodeTypeEnum; import cn.iocoder.yudao.framework.common.enums.NodeTypeEnum;
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
import cn.iocoder.yudao.module.system.controller.admin.positionmap.dto.NodeBaseDTO; import cn.iocoder.yudao.module.system.controller.admin.positionmap.dto.NodeBaseDTO;
import cn.iocoder.yudao.module.system.dal.dataobject.positionmap.PositionMapItemDO; import cn.iocoder.yudao.module.system.dal.dataobject.positionmap.PositionMapItemDO;
import cn.iocoder.yudao.module.system.handler.mapnode.strategy.*; import cn.iocoder.yudao.module.system.handler.mapnode.strategy.*;
import cn.iocoder.yudao.module.system.service.positionmap.PositionMapItemService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
import java.util.*; import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Slf4j @Slf4j
@Component @Component
@ -23,8 +24,6 @@ public class NodeProcessingContext {
private final Map<Integer, NodeProcessingStrategy> strategyMap = new HashMap<>(); private final Map<Integer, NodeProcessingStrategy> strategyMap = new HashMap<>();
@Autowired @Autowired
private PositionMapItemService positionMapItemService;
@Autowired
private MapNodeStrategyImpl mapNodeStrategyImpl; private MapNodeStrategyImpl mapNodeStrategyImpl;
@Autowired @Autowired
private ChangeNodeStrategyImpl changeNodeStrategyImpl; private ChangeNodeStrategyImpl changeNodeStrategyImpl;
@ -33,6 +32,7 @@ public class NodeProcessingContext {
@Autowired @Autowired
private ParkingSpotStrategyImpl parkingSpotStrategyImpl; private ParkingSpotStrategyImpl parkingSpotStrategyImpl;
@Autowired @Autowired
@Lazy
private DeviceStrategyImpl deviceStrategyImpl; private DeviceStrategyImpl deviceStrategyImpl;
/** /**

View File

@ -13,6 +13,7 @@ import cn.iocoder.yudao.module.system.service.houselocation.HouseLocationService
import cn.iocoder.yudao.module.system.service.robot.RobotTaskDetailService; import cn.iocoder.yudao.module.system.service.robot.RobotTaskDetailService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -34,6 +35,7 @@ public class HouseLocationStrategyImpl implements NodeProcessingStrategy {
private HouseLocationService houseLocationService; private HouseLocationService houseLocationService;
@Resource @Resource
@Lazy
private RobotTaskDetailService taskDetailService; private RobotTaskDetailService taskDetailService;
//库位编号格式 - 第一个通配符为地图id 第二个通配符为随机数四位最后一个通配符为库位点层数 //库位编号格式 - 第一个通配符为地图id 第二个通配符为随机数四位最后一个通配符为库位点层数

View File

@ -21,6 +21,7 @@ import com.alibaba.fastjson.TypeReference;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken; import com.google.gson.reflect.TypeToken;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -47,6 +48,7 @@ public class CommonConfigServiceImpl implements CommonConfigService {
private CommonConfigMapper configMapper; private CommonConfigMapper configMapper;
@Resource @Resource
@Lazy
private ToolsService toolsService; private ToolsService toolsService;
@Resource @Resource

View File

@ -56,6 +56,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -113,6 +114,7 @@ public class PathPlanningServiceImpl implements PathPlanningService {
private CommonConfigService configService; private CommonConfigService configService;
@Resource @Resource
@Lazy
private PositionMapService positionMapService; private PositionMapService positionMapService;
@Resource @Resource
@ -128,6 +130,7 @@ public class PathPlanningServiceImpl implements PathPlanningService {
private PositionChangePointBindingService positionChangePointBindingService; private PositionChangePointBindingService positionChangePointBindingService;
@Resource @Resource
@Lazy
private RemoteControllerInformationService controllerInformationService; private RemoteControllerInformationService controllerInformationService;
@Resource @Resource

View File

@ -6,6 +6,7 @@ import cn.hutool.core.util.ObjectUtil;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.system.controller.admin.positionmap.vo.PositionMapIdNumMapVO;
import cn.iocoder.yudao.module.system.controller.admin.positionmap.vo.PositionMapLinePageReqVO; import cn.iocoder.yudao.module.system.controller.admin.positionmap.vo.PositionMapLinePageReqVO;
import cn.iocoder.yudao.module.system.controller.admin.positionmap.vo.PositionMapLineSaveReqVO; import cn.iocoder.yudao.module.system.controller.admin.positionmap.vo.PositionMapLineSaveReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.positionmap.PositionMapLineDO; import cn.iocoder.yudao.module.system.dal.dataobject.positionmap.PositionMapLineDO;
@ -65,7 +66,8 @@ public class PositionMapLineServiceImpl extends ServiceImpl<PositionMapLineMappe
List<Long> endPointIds = addList.stream().map(PositionMapLineDO::getEndPointId).collect(Collectors.toList()); List<Long> endPointIds = addList.stream().map(PositionMapLineDO::getEndPointId).collect(Collectors.toList());
//合并startPointIds endPointIds 并且去重 //合并startPointIds endPointIds 并且去重
Set<Long> pointIds = CollUtil.unionDistinct(startPointIds, endPointIds); Set<Long> pointIds = CollUtil.unionDistinct(startPointIds, endPointIds);
map = positionMapItemMapper.selectSortNumByIds(new ArrayList<>(pointIds)); List<PositionMapIdNumMapVO> positionMapIdNumMapVOS = positionMapItemMapper.selectSortNumByIds(new ArrayList<>(pointIds));
map = positionMapIdNumMapVOS.stream().collect(Collectors.toMap(PositionMapIdNumMapVO::getId, PositionMapIdNumMapVO::getSortNum));
} }
for (PositionMapLineDO positionMapLineDO : newList) { for (PositionMapLineDO positionMapLineDO : newList) {
positionMapLineDO.setPositionMapId(positionMapId); positionMapLineDO.setPositionMapId(positionMapId);

View File

@ -6,7 +6,6 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
import cn.iocoder.yudao.module.mqtt.api.common.CommonApi;
import cn.iocoder.yudao.module.mqtt.api.task.dto.RobotSimulationPoseDTO; import cn.iocoder.yudao.module.mqtt.api.task.dto.RobotSimulationPoseDTO;
import cn.iocoder.yudao.module.system.api.remote.dto.RemoteRobotDTO; import cn.iocoder.yudao.module.system.api.remote.dto.RemoteRobotDTO;
import cn.iocoder.yudao.module.system.api.remote.dto.RemoteRobotDetailDTO; import cn.iocoder.yudao.module.system.api.remote.dto.RemoteRobotDetailDTO;
@ -46,6 +45,7 @@ import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.cache.annotation.Cacheable; import org.springframework.cache.annotation.Cacheable;
import org.springframework.context.annotation.Lazy;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -94,16 +94,11 @@ public class PositionMapServiceImpl extends ServiceImpl<PositionMapMapper, Posit
@Resource @Resource
private UserOperationLogService userOperationLogService; private UserOperationLogService userOperationLogService;
@Resource
private CommonApi commonApi;
@Resource @Resource
private RobotMapStopService robotMapStopService; private RobotMapStopService robotMapStopService;
@Resource @Resource
private RobotMapStopService mapStopService; @Lazy
@Resource
private RobotTaskDetailService taskDetailService; private RobotTaskDetailService taskDetailService;
@Resource @Resource

View File

@ -26,7 +26,6 @@ import cn.iocoder.yudao.module.system.enums.config.CommandConfigTypeEnum;
import cn.iocoder.yudao.module.system.enums.item.PositionMapItemEnum; import cn.iocoder.yudao.module.system.enums.item.PositionMapItemEnum;
import cn.iocoder.yudao.module.system.enums.robot.RobotWarnType; import cn.iocoder.yudao.module.system.enums.robot.RobotWarnType;
import cn.iocoder.yudao.module.system.enums.robot.task.RobotCommandTypeEnum; import cn.iocoder.yudao.module.system.enums.robot.task.RobotCommandTypeEnum;
import cn.iocoder.yudao.module.system.service.config.CommonConfigService;
import cn.iocoder.yudao.module.system.service.positionmap.PositionMapItemService; import cn.iocoder.yudao.module.system.service.positionmap.PositionMapItemService;
import cn.iocoder.yudao.module.system.service.positionmap.PositionMapService; import cn.iocoder.yudao.module.system.service.positionmap.PositionMapService;
import cn.iocoder.yudao.module.system.service.robot.RobotInformationService; import cn.iocoder.yudao.module.system.service.robot.RobotInformationService;

View File

@ -81,7 +81,7 @@ spring:
host: 127.0.0.1 # 地址 host: 127.0.0.1 # 地址
port: 6379 # 端口 port: 6379 # 端口
database: 0 # 数据库索引 database: 0 # 数据库索引
password: yhtkj@2024! # 密码,建议生产环境开启 # password: yhtkj@2024! # 密码,建议生产环境开启
--- #################### MQ 消息队列相关配置 #################### --- #################### MQ 消息队列相关配置 ####################
@ -265,4 +265,4 @@ resource:
#视频能力 #视频能力
video: video:
previewUrls: /artemis/api/video/v2/cameras/previewURLs previewUrls: /artemis/api/video/v2/cameras/previewURLs
replayUrlApi: /artemis/api/video/v2/cameras/playbackURLs replayUrlApi: /artemis/api/video/v2/cameras/playbackURLs

View File

@ -86,7 +86,7 @@
(#{item.positionMapId}, #{item.actualLocationX}, #{item.actualLocationY}, #{item.type}) (#{item.positionMapId}, #{item.actualLocationX}, #{item.actualLocationY}, #{item.type})
</foreach> </foreach>
</select> </select>
<select id="selectSortNumByIds" resultType="map"> <select id="selectSortNumByIds" resultType="cn.iocoder.yudao.module.system.controller.admin.positionmap.vo.PositionMapIdNumMapVO">
select select
id, id,
sort_num as sortNum sort_num as sortNum