Browse Source

commonservice/areacode/areacodedicttree

master
yinzuomei 3 years ago
parent
commit
a270c45bff
  1. 1
      epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/form/AreaCodeDictFormDTO.java
  2. 2
      epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/dao/AreaCodeChildDao.java
  3. 22
      epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/AreaCodeServiceImpl.java
  4. 4
      epmet-module/epmet-common-service/common-service-server/src/main/resources/mapper/AreaCodeChildDao.xml

1
epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/form/AreaCodeDictFormDTO.java

@ -13,6 +13,7 @@ public class AreaCodeDictFormDTO implements Serializable {
private static final long serialVersionUID = 5780301376757138238L; private static final long serialVersionUID = 5780301376757138238L;
//平阴传参:rootAreaCode=370124, rootAreaLevel=district
/** /**
* 根结点code 不传则返回全部 * 根结点code 不传则返回全部
*/ */

2
epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/dao/AreaCodeChildDao.java

@ -34,7 +34,7 @@ import java.util.List;
@Mapper @Mapper
public interface AreaCodeChildDao extends BaseDao<AreaCodeChildEntity> { public interface AreaCodeChildDao extends BaseDao<AreaCodeChildEntity> {
List<AreaCodeChildDTO> selectAllChild(); List<AreaCodeChildDTO> selectAllChild(String areaCode);
AreaCodeChildDTO selectByCode(@Param("code") String code); AreaCodeChildDTO selectByCode(@Param("code") String code);

22
epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/AreaCodeServiceImpl.java

@ -137,7 +137,7 @@ public class AreaCodeServiceImpl extends BaseServiceImpl<AreaCodeDao, AreaCodeEn
if (StringUtils.isNotBlank(s)){ if (StringUtils.isNotBlank(s)){
tree = JSON.parseArray(s,AreaCodeDictResultDTO.class); tree = JSON.parseArray(s,AreaCodeDictResultDTO.class);
}else { }else {
List<AreaCodeDictResultDTO> areaCodeDictResultDTOS = disposeTree(); List<AreaCodeDictResultDTO> areaCodeDictResultDTOS = disposeTree(formDTO);
areaCodeRedis.set(AreaCodeConstant.SCREEN_TREE,areaCodeDictResultDTOS); areaCodeRedis.set(AreaCodeConstant.SCREEN_TREE,areaCodeDictResultDTOS);
tree = areaCodeDictResultDTOS; tree = areaCodeDictResultDTOS;
} }
@ -154,11 +154,11 @@ public class AreaCodeServiceImpl extends BaseServiceImpl<AreaCodeDao, AreaCodeEn
* @author zxc * @author zxc
* @date 2021/1/8 上午8:57 * @date 2021/1/8 上午8:57
*/ */
public List<AreaCodeDictResultDTO> disposeTree(){ public List<AreaCodeDictResultDTO> disposeTree(AreaCodeDictFormDTO formDTO){
// 查询所有省市区 // 查询所有省市区
List<AreaCodeDTO> areaCodeDTOS = baseDao.selectAllArea(); List<AreaCodeDTO> areaCodeDTOS = baseDao.selectAllArea();
// 查询所有街道、社区 // 查询所有街道、社区
List<AreaCodeChildDTO> areaCodeChildDTOS = childDao.selectAllChild(); List<AreaCodeChildDTO> areaCodeChildDTOS = childDao.selectAllChild(formDTO.getRootAreaCode());
List<AreaCodeDictResultDTO> result = new ArrayList<>(); List<AreaCodeDictResultDTO> result = new ArrayList<>();
List<AreaCodeDictResultDTO> fourResult = new ArrayList<>(); List<AreaCodeDictResultDTO> fourResult = new ArrayList<>();
List<AreaCodeDictResultDTO> cityResult = new ArrayList<>(); List<AreaCodeDictResultDTO> cityResult = new ArrayList<>();
@ -388,21 +388,21 @@ public class AreaCodeServiceImpl extends BaseServiceImpl<AreaCodeDao, AreaCodeEn
* @author zxc * @author zxc
* @date 2021/1/11 上午9:48 * @date 2021/1/11 上午9:48
*/ */
public List<AreaCodeDictResultDTO> afterTwoTree(){ public List<AreaCodeDictResultDTO> afterTwoTree(AreaCodeDictFormDTO form){
// 查询所有街道、社区 // 查询所有街道、社区
List<AreaCodeChildDTO> areaCodeChildDTOS = childDao.selectAllChild(); List<AreaCodeChildDTO> areaCodeChildDTOS = childDao.selectAllChild(form.getRootAreaCode());
List<AreaCodeDictResultDTO> fourResult = new ArrayList<>(); List<AreaCodeDictResultDTO> fourResult = new ArrayList<>();
List<AreaCodeDictResultDTO> fiveResult = new ArrayList<>(); List<AreaCodeDictResultDTO> fiveResult = new ArrayList<>();
// 街道-社区 // 街道-社区
Map<Integer, List<AreaCodeChildDTO>> groupByLevel = areaCodeChildDTOS.stream().collect(Collectors.groupingBy(AreaCodeChildDTO::getLevel)); Map<Integer, List<AreaCodeChildDTO>> groupByLevel = areaCodeChildDTOS.stream().collect(Collectors.groupingBy(AreaCodeChildDTO::getLevel));
//社区 //社区
List<AreaCodeChildDTO> levelFive = groupByLevel.get(NumConstant.FIVE); List<AreaCodeChildDTO> levelFive = org.apache.commons.collections4.CollectionUtils.isNotEmpty(groupByLevel.get(NumConstant.FIVE)) ? groupByLevel.get(NumConstant.FIVE) : new ArrayList<>();
Map<String, List<AreaCodeChildDTO>> groupByPCode = levelFive.stream().collect(Collectors.groupingBy(AreaCodeChildDTO::getPCode)); Map<String, List<AreaCodeChildDTO>> groupByPCode = CollectionUtils.isEmpty(levelFive) ? new HashMap<>() : levelFive.stream().collect(Collectors.groupingBy(AreaCodeChildDTO::getPCode));
//街道 //街道
List<AreaCodeChildDTO> levelFour = groupByLevel.get(NumConstant.FOUR); List<AreaCodeChildDTO> levelFour = org.apache.commons.collections4.CollectionUtils.isNotEmpty(groupByLevel.get(NumConstant.FOUR)) ?groupByLevel.get(NumConstant.FOUR):new ArrayList<>();
// 6级 // 6级
List<AreaCodeChildDTO> levelSix = groupByLevel.get(NumConstant.SIX); List<AreaCodeChildDTO> levelSix = groupByLevel.get(NumConstant.SIX);
Map<String, List<AreaCodeChildDTO>> groupBySixPCode = levelSix.stream().collect(Collectors.groupingBy(AreaCodeChildDTO::getPCode)); Map<String, List<AreaCodeChildDTO>> groupBySixPCode = CollectionUtils.isEmpty(levelSix) ? new HashMap<>() : levelSix.stream().collect(Collectors.groupingBy(AreaCodeChildDTO::getPCode));
levelFive.forEach(f -> { levelFive.forEach(f -> {
AreaCodeDictResultDTO dto = new AreaCodeDictResultDTO(); AreaCodeDictResultDTO dto = new AreaCodeDictResultDTO();
@ -450,7 +450,7 @@ public class AreaCodeServiceImpl extends BaseServiceImpl<AreaCodeDao, AreaCodeEn
*/ */
public List<AreaCodeDictResultDTO> disposeAfterTwoLevel(AreaCodeDictFormDTO form){ public List<AreaCodeDictResultDTO> disposeAfterTwoLevel(AreaCodeDictFormDTO form){
List<AreaCodeDictResultDTO> result = new ArrayList<>(); List<AreaCodeDictResultDTO> result = new ArrayList<>();
List<AreaCodeDictResultDTO> areaCodeDictResultDTOS = afterTwoTree(); List<AreaCodeDictResultDTO> areaCodeDictResultDTOS = afterTwoTree(form);
if (CollectionUtils.isEmpty(areaCodeDictResultDTOS)){ if (CollectionUtils.isEmpty(areaCodeDictResultDTOS)){
return new ArrayList<>(); return new ArrayList<>();
} }
@ -532,7 +532,7 @@ public class AreaCodeServiceImpl extends BaseServiceImpl<AreaCodeDao, AreaCodeEn
*/ */
public List<AreaCodeDictResultDTO> disposeBeforeThreeLevelFinal(AreaCodeDictFormDTO form,List<AreaCodeDictResultDTO> tree){ public List<AreaCodeDictResultDTO> disposeBeforeThreeLevelFinal(AreaCodeDictFormDTO form,List<AreaCodeDictResultDTO> tree){
List<AreaCodeDictResultDTO> threeDto = disposeBeforeThreeLevel(form, tree); List<AreaCodeDictResultDTO> threeDto = disposeBeforeThreeLevel(form, tree);
List<AreaCodeDictResultDTO> twoDto = afterTwoTree(); List<AreaCodeDictResultDTO> twoDto = afterTwoTree(form);
if (CollectionUtils.isEmpty(threeDto)){ if (CollectionUtils.isEmpty(threeDto)){
return new ArrayList<>(); return new ArrayList<>();
} }

4
epmet-module/epmet-common-service/common-service-server/src/main/resources/mapper/AreaCodeChildDao.xml

@ -5,7 +5,9 @@
<select id="selectAllChild" resultType="com.epmet.dto.AreaCodeChildDTO"> <select id="selectAllChild" resultType="com.epmet.dto.AreaCodeChildDTO">
select * from area_code_child m where m.DEL_FLAG = '0' select * from area_code_child m
where m.DEL_FLAG = '0'
and m.code like concat(#{areaCode},'%')
</select> </select>
<select id="selectByCode" resultType="com.epmet.dto.AreaCodeChildDTO"> <select id="selectByCode" resultType="com.epmet.dto.AreaCodeChildDTO">

Loading…
Cancel
Save