Commit 1dfc8641 authored by duanruiming's avatar duanruiming

[udpate] 辖区分组优化代码结构,信号机添加经纬度

parent 2561c1b5
...@@ -168,7 +168,7 @@ public class SituationDetectionController extends BaseController { ...@@ -168,7 +168,7 @@ public class SituationDetectionController extends BaseController {
@ApiOperation(value = "辖区分组", notes = "辖区分组") @ApiOperation(value = "辖区分组", notes = "辖区分组")
@GetMapping("/jurisdictionTree") @GetMapping("/jurisdictionTree")
public JsonViewObject jurisdictionTree(Integer areaId) { public JsonViewObject jurisdictionTree(Integer areaId) throws Exception {
List<JurisdictionAreaTreeVO> result = situationDetectionService.jurisdictionTree(areaId); List<JurisdictionAreaTreeVO> result = situationDetectionService.jurisdictionTree(areaId);
JsonViewObject jsonViewObject = JsonViewObject.newInstance(); JsonViewObject jsonViewObject = JsonViewObject.newInstance();
return jsonViewObject.success(result); return jsonViewObject.success(result);
......
...@@ -35,7 +35,7 @@ public interface SituationDetectionService { ...@@ -35,7 +35,7 @@ public interface SituationDetectionService {
TBaseCrossInfo selectCrossInfoById(String signalId); TBaseCrossInfo selectCrossInfoById(String signalId);
List<JurisdictionAreaTreeVO> jurisdictionTree(Integer areaId); List<JurisdictionAreaTreeVO> jurisdictionTree(Integer areaId) throws Exception;
List<AreaListVO> selectAreaList(Integer areaId); List<AreaListVO> selectAreaList(Integer areaId);
......
...@@ -404,7 +404,7 @@ public class SituationDetectionServiceImpl implements SituationDetectionService ...@@ -404,7 +404,7 @@ public class SituationDetectionServiceImpl implements SituationDetectionService
} }
@Override @Override
public List<JurisdictionAreaTreeVO> jurisdictionTree(Integer areaId) { public List<JurisdictionAreaTreeVO> jurisdictionTree(Integer areaId) throws Exception {
List<JurisdictionAreaTreeVO> resultList = new ArrayList<>(); List<JurisdictionAreaTreeVO> resultList = new ArrayList<>();
// 辖区构建 // 辖区构建
LambdaQueryWrapper<TBaseAreaInfo> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<TBaseAreaInfo> queryWrapper = new LambdaQueryWrapper<>();
...@@ -420,6 +420,38 @@ public class SituationDetectionServiceImpl implements SituationDetectionService ...@@ -420,6 +420,38 @@ public class SituationDetectionServiceImpl implements SituationDetectionService
LambdaQueryWrapper<TBaseCrossInfo> crossInfoQuery = new LambdaQueryWrapper<>(); LambdaQueryWrapper<TBaseCrossInfo> crossInfoQuery = new LambdaQueryWrapper<>();
List<TBaseCrossInfo> tBaseCrossInfos = tBaseCrossInfoMapper.selectList(crossInfoQuery); List<TBaseCrossInfo> tBaseCrossInfos = tBaseCrossInfoMapper.selectList(crossInfoQuery);
List<CrossInfoOutVo> crossInfoOutVoList = getCrossInfoOutVoList(new CrossInfoVO());
getJurisdictionAreaTreeVO(resultList, tBaseAreaInfos, tBaseAreaCrosses, tBaseCrossInfos, crossInfoOutVoList);
// 构建树结构
Map<String, List<JurisdictionAreaTreeVO>> map = resultList.stream().collect(Collectors.groupingBy(JurisdictionAreaTreeVO::getParentCode));
for (JurisdictionAreaTreeVO jurisdictionAreaTreeVO : resultList) {
for (Map.Entry<String, List<JurisdictionAreaTreeVO>> entry : map.entrySet()) {
if (Objects.equals(jurisdictionAreaTreeVO.getId(), entry.getKey())) {
jurisdictionAreaTreeVO.setChlidren(entry.getValue());
break;
}
}
}
List<JurisdictionAreaTreeVO> collect = resultList.stream().filter(vo -> StringUtils.equals("0", vo.getParentCode())).collect(Collectors.toList());
return collect;
}
/**
* 构建返回所有辖区集合
*
* @param resultList
* @param tBaseAreaInfos
* @param tBaseAreaCrosses
* @param tBaseCrossInfos
*/
private static void getJurisdictionAreaTreeVO(List<JurisdictionAreaTreeVO> resultList, List<TBaseAreaInfo> tBaseAreaInfos,
List<TBaseAreaCross> tBaseAreaCrosses, List<TBaseCrossInfo> tBaseCrossInfos,
List<CrossInfoOutVo> crossInfoOutVoList) {
// 构建辖区实体
for (TBaseAreaInfo parent : tBaseAreaInfos) { for (TBaseAreaInfo parent : tBaseAreaInfos) {
JurisdictionAreaTreeVO jurisdictionAreaVO = new JurisdictionAreaTreeVO(); JurisdictionAreaTreeVO jurisdictionAreaVO = new JurisdictionAreaTreeVO();
jurisdictionAreaVO.setId(String.valueOf(parent.getCode())); jurisdictionAreaVO.setId(String.valueOf(parent.getCode()));
...@@ -431,6 +463,7 @@ public class SituationDetectionServiceImpl implements SituationDetectionService ...@@ -431,6 +463,7 @@ public class SituationDetectionServiceImpl implements SituationDetectionService
jurisdictionAreaVO.setChlidren(null); jurisdictionAreaVO.setChlidren(null);
resultList.add(jurisdictionAreaVO); resultList.add(jurisdictionAreaVO);
} }
// 将路口转化为辖区实体
for (TBaseAreaInfo parent : tBaseAreaInfos) { for (TBaseAreaInfo parent : tBaseAreaInfos) {
Integer parentCode = parent.getCode(); Integer parentCode = parent.getCode();
for (TBaseAreaCross tBaseAreaCross : tBaseAreaCrosses) { for (TBaseAreaCross tBaseAreaCross : tBaseAreaCrosses) {
...@@ -438,35 +471,28 @@ public class SituationDetectionServiceImpl implements SituationDetectionService ...@@ -438,35 +471,28 @@ public class SituationDetectionServiceImpl implements SituationDetectionService
JurisdictionAreaTreeVO signalAreaVO = new JurisdictionAreaTreeVO(); JurisdictionAreaTreeVO signalAreaVO = new JurisdictionAreaTreeVO();
signalAreaVO.setId(tBaseAreaCross.getCrossId()); signalAreaVO.setId(tBaseAreaCross.getCrossId());
String name = null; String name = null;
String location = null;
for (TBaseCrossInfo tBaseCrossInfo : tBaseCrossInfos) { for (TBaseCrossInfo tBaseCrossInfo : tBaseCrossInfos) {
if (StringUtils.equals(tBaseCrossInfo.getId(), tBaseAreaCross.getCrossId())) { if (StringUtils.equals(tBaseCrossInfo.getId(), tBaseAreaCross.getCrossId())) {
name = tBaseCrossInfo.getName(); name = tBaseCrossInfo.getName();
break; break;
} }
} }
for (CrossInfoOutVo crossInfoOutVo : crossInfoOutVoList) {
if (StringUtils.equals(crossInfoOutVo.getId(), tBaseAreaCross.getCrossId())) {
location = crossInfoOutVo.getLocation();
break;
}
}
signalAreaVO.setName(name); signalAreaVO.setName(name);
signalAreaVO.setType("2"); signalAreaVO.setType("2");
signalAreaVO.setPolylines(""); signalAreaVO.setPolylines(location);
signalAreaVO.setParentCode(String.valueOf(parentCode)); signalAreaVO.setParentCode(String.valueOf(parentCode));
signalAreaVO.setChlidren(null); signalAreaVO.setChlidren(null);
resultList.add(signalAreaVO); resultList.add(signalAreaVO);
} }
} }
} }
Map<String, List<JurisdictionAreaTreeVO>> map = resultList.stream().collect(Collectors.groupingBy(JurisdictionAreaTreeVO::getParentCode));
for (JurisdictionAreaTreeVO jurisdictionAreaTreeVO : resultList) {
for (Map.Entry<String, List<JurisdictionAreaTreeVO>> entry : map.entrySet()) {
if (Objects.equals(jurisdictionAreaTreeVO.getId(), entry.getKey())) {
jurisdictionAreaTreeVO.setChlidren(entry.getValue());
break;
}
}
}
List<JurisdictionAreaTreeVO> collect = resultList.stream().filter(vo -> StringUtils.equals("0", vo.getParentCode())).collect(Collectors.toList());
return collect;
} }
@Override @Override
......
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