diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/AreaCodeServiceImpl.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/AreaCodeServiceImpl.java index 1360f92778..5e865cfc44 100644 --- a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/AreaCodeServiceImpl.java +++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/AreaCodeServiceImpl.java @@ -386,6 +386,7 @@ public class AreaCodeServiceImpl extends BaseServiceImpl areaCodeChildDTOS = childDao.selectAllChild(); List fourResult = new ArrayList<>(); + List fiveResult = new ArrayList<>(); // 街道-社区 Map> groupByLevel = areaCodeChildDTOS.stream().collect(Collectors.groupingBy(AreaCodeChildDTO::getLevel)); //社区 @@ -393,23 +394,40 @@ public class AreaCodeServiceImpl extends BaseServiceImpl> groupByPCode = levelFive.stream().collect(Collectors.groupingBy(AreaCodeChildDTO::getPCode)); //街道 List levelFour = groupByLevel.get(NumConstant.FOUR); + // 6级 + List levelSix = groupByLevel.get(NumConstant.SIX); + Map> groupBySixPCode = levelSix.stream().collect(Collectors.groupingBy(AreaCodeChildDTO::getPCode)); + + levelFive.forEach(f -> { + AreaCodeDictResultDTO dto = new AreaCodeDictResultDTO(); + dto.setCode(f.getCode()); + dto.setName(f.getName()); + dto.setParentCode(f.getPCode()); + groupBySixPCode.forEach((k,v) -> { + if (dto.getCode().equals(k)){ + List six = new ArrayList<>(); + v.forEach(s -> { + AreaCodeDictResultDTO sixDto = new AreaCodeDictResultDTO(); + sixDto.setCode(s.getCode()); + sixDto.setName(s.getName()); + sixDto.setParentCode(k); + six.add(sixDto); + }); + List collect = six.stream().sorted(Comparator.comparing(AreaCodeDictResultDTO::getCode)).collect(Collectors.toList()); + dto.setChildren(collect); + } + }); + fiveResult.add(dto); + }); + Map> groupByFivePCode = fiveResult.stream().collect(Collectors.groupingBy(AreaCodeDictResultDTO::getParentCode)); levelFour.forEach(four -> { AreaCodeDictResultDTO dto = new AreaCodeDictResultDTO(); dto.setCode(four.getCode()); dto.setName(four.getName()); dto.setParentCode(four.getPCode()); - groupByPCode.forEach((pCode,v) -> { + groupByFivePCode.forEach((pCode,v) -> { if (dto.getCode().equals(pCode)){ - List fiveResult = new ArrayList<>(); - v.forEach(five -> { - AreaCodeDictResultDTO fiveDto = new AreaCodeDictResultDTO(); - fiveDto.setCode(five.getCode()); - fiveDto.setName(five.getName()); - fiveDto.setParentCode(pCode); - fiveResult.add(fiveDto); - }); - List fiveSort = fiveResult.stream().sorted(Comparator.comparing(AreaCodeDictResultDTO::getCode)).collect(Collectors.toList()); - dto.setChildren(fiveSort); + dto.setChildren(v); } }); fourResult.add(dto);