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.task.dto.Pose2ds;
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.dal.dataobject.positionmap.PositionMapItemDO;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* 仓库点位地图子表 Mapper
@ -59,13 +58,13 @@ public interface PositionMapItemMapper extends BaseMapperX<PositionMapItemDO> {
/**
* 将laneId设为空
*
* @param mapId
* @param laneId
*/
void emptyLaneId(@Param("mapId") Long mapId, @Param("laneId") Long laneId);
/**
*
* @param list
* @return
*/
@ -73,12 +72,14 @@ public interface PositionMapItemMapper extends BaseMapperX<PositionMapItemDO> {
/**
* 删除这个地图的点
*
* @param mapId
*/
void deleteByMapId(@Param("mapId") Long mapId);
/**
* 更新车辆编号
*
* @param oldRobotNo
* @param newRobotNo
*/
@ -86,15 +87,14 @@ public interface PositionMapItemMapper extends BaseMapperX<PositionMapItemDO> {
/**
* 释放车辆
*
* @param robotNo
*/
void clearRobotNo(@Param("robotNo") String robotNo);
/**
*
* @param ids
* @return
*/
@MapKey("id")
Map<Long, Long> selectSortNumByIds(@Param("ids") List<Long> ids);
List<PositionMapIdNumMapVO> 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.util.ObjectUtil;
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.dal.dataobject.positionmap.PositionMapItemDO;
import cn.iocoder.yudao.module.system.handler.mapnode.strategy.*;
import cn.iocoder.yudao.module.system.service.positionmap.PositionMapItemService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.PostConstruct;
import java.util.*;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Slf4j
@Component
@ -23,8 +24,6 @@ public class NodeProcessingContext {
private final Map<Integer, NodeProcessingStrategy> strategyMap = new HashMap<>();
@Autowired
private PositionMapItemService positionMapItemService;
@Autowired
private MapNodeStrategyImpl mapNodeStrategyImpl;
@Autowired
private ChangeNodeStrategyImpl changeNodeStrategyImpl;
@ -33,6 +32,7 @@ public class NodeProcessingContext {
@Autowired
private ParkingSpotStrategyImpl parkingSpotStrategyImpl;
@Autowired
@Lazy
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 lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
@ -34,6 +35,7 @@ public class HouseLocationStrategyImpl implements NodeProcessingStrategy {
private HouseLocationService houseLocationService;
@Resource
@Lazy
private RobotTaskDetailService taskDetailService;
//库位编号格式 - 第一个通配符为地图id 第二个通配符为随机数四位最后一个通配符为库位点层数

View File

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

View File

@ -56,6 +56,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@ -113,6 +114,7 @@ public class PathPlanningServiceImpl implements PathPlanningService {
private CommonConfigService configService;
@Resource
@Lazy
private PositionMapService positionMapService;
@Resource
@ -128,6 +130,7 @@ public class PathPlanningServiceImpl implements PathPlanningService {
private PositionChangePointBindingService positionChangePointBindingService;
@Resource
@Lazy
private RemoteControllerInformationService controllerInformationService;
@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.util.collection.CollectionUtils;
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.PositionMapLineSaveReqVO;
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());
//合并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) {
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.mybatis.core.query.LambdaQueryWrapperX;
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.system.api.remote.dto.RemoteRobotDTO;
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.springframework.beans.factory.annotation.Value;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.context.annotation.Lazy;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
@ -94,16 +94,11 @@ public class PositionMapServiceImpl extends ServiceImpl<PositionMapMapper, Posit
@Resource
private UserOperationLogService userOperationLogService;
@Resource
private CommonApi commonApi;
@Resource
private RobotMapStopService robotMapStopService;
@Resource
private RobotMapStopService mapStopService;
@Resource
@Lazy
private RobotTaskDetailService taskDetailService;
@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.robot.RobotWarnType;
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.PositionMapService;
import cn.iocoder.yudao.module.system.service.robot.RobotInformationService;

View File

@ -81,7 +81,7 @@ spring:
host: 127.0.0.1 # 地址
port: 6379 # 端口
database: 0 # 数据库索引
password: yhtkj@2024! # 密码,建议生产环境开启
# password: yhtkj@2024! # 密码,建议生产环境开启
--- #################### MQ 消息队列相关配置 ####################
@ -265,4 +265,4 @@ resource:
#视频能力
video:
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})
</foreach>
</select>
<select id="selectSortNumByIds" resultType="map">
<select id="selectSortNumByIds" resultType="cn.iocoder.yudao.module.system.controller.admin.positionmap.vo.PositionMapIdNumMapVO">
select
id,
sort_num as sortNum