import com.google.common.collect.ImmutableSortedMap;
private ImmutableSortedMap<String, PersonClassifyNameVO> personTypeNameVOMap;
private void initSimpleTree(List<PersonClassifyPO> personTypeDOList) {
Map<String, PersonClassifyNameVO> map = personTypeDOList.stream()
.map(PersonClassifyBeanUtils::transferToNameVO)
.collect(Collectors.toMap(PersonClassifyNameVO::getCode, e -> e, (e1, e2) -> e1));
for (Map.Entry<String, PersonClassifyNameVO> entry : map.entrySet()) {
PersonClassifyNameVO personClassifyNameVO = entry.getValue();
String parentNum = personClassifyNameVO.getParent();
if (parentNum != null && map.containsKey(parentNum)) {
PersonClassifyNameVO parent = map.get(parentNum);
parent.getChildren().add(personClassifyNameVO);
}
}
for (Map.Entry<String, PersonClassifyNameVO> entry : map.entrySet()) {
PersonClassifyNameVO parent = entry.getValue();
List<PersonClassifyNameVO> children = parent.getChildren();
if (CollectionUtils.isNotEmpty(children)) {
children.sort((o1, o2) -> StringUtils.compare(o1.getCode(), o2.getCode()));
} else {
parent.setChildren(null);
}
}
this.personTypeNameVOMap = ImmutableSortedMap.copyOf(map);
}