Commit cf16f7a1 authored by duanruiming's avatar duanruiming

[update] 区域查询优化

parent 25f07489
......@@ -15,4 +15,6 @@ public class CrossIdNameDTO {
private String crossId;
@ApiModelProperty(value = "路口名称")
private String crossName;
@ApiModelProperty(value = "路口经纬度")
private String location;
}
\ No newline at end of file
......@@ -518,6 +518,7 @@ public class SituationDetectionServiceImpl implements SituationDetectionService
public List<AreaListVO> selectAreaList(Integer areaId) {
List<AreaListVO> results = new ArrayList<>();
// 通过辖区将路口分组
LambdaQueryWrapper<TBaseAreaCross> queryWrapper = new LambdaQueryWrapper<>();
if (Objects.nonNull(areaId)) {
queryWrapper.eq(TBaseAreaCross::getAreaId, areaId);
......@@ -526,12 +527,13 @@ public class SituationDetectionServiceImpl implements SituationDetectionService
// key:辖区编号 value:路口列表
Map<Integer, List<TBaseAreaCross>> areaIdMap = entityList.stream().collect(Collectors.groupingBy(TBaseAreaCross::getAreaId));
// 路口编号获取路口名称和经纬度
List<TBaseCrossInfo> tBaseCrossInfos = tBaseCrossInfoMapper.selectList(new LambdaQueryWrapper<>());
Map<String, String> crossIdNameMap = tBaseCrossInfos.stream().collect(Collectors.toMap(TBaseCrossInfo::getId, TBaseCrossInfo::getName));
Map<String, String> crossIdLocationMap = tBaseCrossInfos.stream().collect(Collectors.toMap(TBaseCrossInfo::getId, TBaseCrossInfo::getLocation));
// 辖区列表
LambdaQueryWrapper<TBaseAreaInfo> tBaseAreaInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
// tBaseAreaInfoLambdaQueryWrapper.eq(TBaseAreaInfo::getType, 2);
List<TBaseAreaInfo> jurisdictionAreaList = tBaseAreaInfoMapper.selectList(tBaseAreaInfoLambdaQueryWrapper);
// 构建区域返回列表
......@@ -548,6 +550,9 @@ public class SituationDetectionServiceImpl implements SituationDetectionService
CrossIdNameDTO crossIdNameDTO = new CrossIdNameDTO();
crossIdNameDTO.setCrossId(tBaseAreaCross.getCrossId());
crossIdNameDTO.setCrossName(crossIdNameMap.get(tBaseAreaCross.getCrossId()));
String locationStr = crossIdLocationMap.get(tBaseAreaCross.getCrossId());
String location = locationStr.replace("POINT", "").replace("(", "").replace(")", "").replace(" ", ",");
crossIdNameDTO.setLocation(location);
crossSet.add(crossIdNameDTO);
ployLines.add(tBaseAreaInfo.getPolylines());
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment