Commit 1dfc8641 authored by duanruiming's avatar duanruiming

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

parent 2561c1b5
......@@ -168,7 +168,7 @@ public class SituationDetectionController extends BaseController {
@ApiOperation(value = "辖区分组", notes = "辖区分组")
@GetMapping("/jurisdictionTree")
public JsonViewObject jurisdictionTree(Integer areaId) {
public JsonViewObject jurisdictionTree(Integer areaId) throws Exception {
List<JurisdictionAreaTreeVO> result = situationDetectionService.jurisdictionTree(areaId);
JsonViewObject jsonViewObject = JsonViewObject.newInstance();
return jsonViewObject.success(result);
......
......@@ -35,7 +35,7 @@ public interface SituationDetectionService {
TBaseCrossInfo selectCrossInfoById(String signalId);
List<JurisdictionAreaTreeVO> jurisdictionTree(Integer areaId);
List<JurisdictionAreaTreeVO> jurisdictionTree(Integer areaId) throws Exception;
List<AreaListVO> selectAreaList(Integer areaId);
......
......@@ -404,7 +404,7 @@ public class SituationDetectionServiceImpl implements SituationDetectionService
}
@Override
public List<JurisdictionAreaTreeVO> jurisdictionTree(Integer areaId) {
public List<JurisdictionAreaTreeVO> jurisdictionTree(Integer areaId) throws Exception {
List<JurisdictionAreaTreeVO> resultList = new ArrayList<>();
// 辖区构建
LambdaQueryWrapper<TBaseAreaInfo> queryWrapper = new LambdaQueryWrapper<>();
......@@ -420,6 +420,38 @@ public class SituationDetectionServiceImpl implements SituationDetectionService
LambdaQueryWrapper<TBaseCrossInfo> crossInfoQuery = new LambdaQueryWrapper<>();
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) {
JurisdictionAreaTreeVO jurisdictionAreaVO = new JurisdictionAreaTreeVO();
jurisdictionAreaVO.setId(String.valueOf(parent.getCode()));
......@@ -431,6 +463,7 @@ public class SituationDetectionServiceImpl implements SituationDetectionService
jurisdictionAreaVO.setChlidren(null);
resultList.add(jurisdictionAreaVO);
}
// 将路口转化为辖区实体
for (TBaseAreaInfo parent : tBaseAreaInfos) {
Integer parentCode = parent.getCode();
for (TBaseAreaCross tBaseAreaCross : tBaseAreaCrosses) {
......@@ -438,35 +471,28 @@ public class SituationDetectionServiceImpl implements SituationDetectionService
JurisdictionAreaTreeVO signalAreaVO = new JurisdictionAreaTreeVO();
signalAreaVO.setId(tBaseAreaCross.getCrossId());
String name = null;
String location = null;
for (TBaseCrossInfo tBaseCrossInfo : tBaseCrossInfos) {
if (StringUtils.equals(tBaseCrossInfo.getId(), tBaseAreaCross.getCrossId())) {
name = tBaseCrossInfo.getName();
break;
}
}
for (CrossInfoOutVo crossInfoOutVo : crossInfoOutVoList) {
if (StringUtils.equals(crossInfoOutVo.getId(), tBaseAreaCross.getCrossId())) {
location = crossInfoOutVo.getLocation();
break;
}
}
signalAreaVO.setName(name);
signalAreaVO.setType("2");
signalAreaVO.setPolylines("");
signalAreaVO.setPolylines(location);
signalAreaVO.setParentCode(String.valueOf(parentCode));
signalAreaVO.setChlidren(null);
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
......
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