fix
This commit is contained in:
@@ -54,7 +54,7 @@ public class OpenAreaTreeVO {
|
||||
public static List<OpenAreaTreeVO> convertTree(List<HyOpenAreaInfoDO> allOpenArea, String keyword, Boolean applyFlag){
|
||||
long startTime = System.currentTimeMillis();
|
||||
List<HyOpenAreaInfoDO> firstArea = allOpenArea.stream().filter(o -> Objects.isNull(o.getParentId())).collect(Collectors.toList());
|
||||
Map<Long, List<HyOpenAreaInfoDO>> openAreaParentMap = allOpenArea.stream().filter(o->Objects.nonNull(o.getParentId())).collect(Collectors.groupingBy(k -> k.getParentId()));
|
||||
Map<Long, List<HyOpenAreaInfoDO>> openAreaParentMap = allOpenArea.stream().distinct().filter(o->Objects.nonNull(o.getParentId())).collect(Collectors.groupingBy(k -> k.getParentId()));
|
||||
List<OpenAreaTreeVO> allTree = new ArrayList<>();
|
||||
for (HyOpenAreaInfoDO openAreaInfo : firstArea) {
|
||||
OpenAreaTreeVO node = copyProperties(openAreaInfo);
|
||||
@@ -68,23 +68,23 @@ public class OpenAreaTreeVO {
|
||||
&& (Objects.isNull(applyFlag) || AreaStatusEnum.OPEN.getCode().equals(o.getAreaStatus()) || AreaStatusEnum.OPEN.getCode().equals(o.getAreaStatus())))
|
||||
.collect(Collectors.toList());
|
||||
Map<Long, HyOpenAreaInfoDO> openAreaMap = allOpenArea.stream().collect(Collectors.toMap(k -> k.getId(), Function.identity()));
|
||||
List<HyOpenAreaInfoDO> list = new ArrayList<>();
|
||||
List<HyOpenAreaInfoDO> filterAndParentList = new ArrayList<>();
|
||||
//向上处理节点
|
||||
for (HyOpenAreaInfoDO openAreaInfo : filterList) {
|
||||
list.add(openAreaInfo);
|
||||
filterAndParentList.add(openAreaInfo);
|
||||
while (Objects.nonNull(openAreaInfo) && Objects.nonNull(openAreaInfo.getParentId())){
|
||||
openAreaInfo = openAreaMap.get(openAreaInfo.getParentId());
|
||||
if(Objects.isNull(openAreaInfo)){
|
||||
continue;
|
||||
if(Objects.nonNull(openAreaInfo) && !filterAndParentList.contains(openAreaInfo)){
|
||||
filterAndParentList.add(openAreaInfo);
|
||||
}
|
||||
list.add(openAreaInfo);
|
||||
}
|
||||
}
|
||||
log.info("2#耗时:{}", System.currentTimeMillis() - startTime);
|
||||
List<OpenAreaTreeVO> resultList = new ArrayList<>();
|
||||
List<HyOpenAreaInfoDO> filterFirstArea = list.stream().filter(o -> Objects.isNull(o.getParentId())).distinct().collect(Collectors.toList());
|
||||
Map<Long, List<HyOpenAreaInfoDO>> filterOpenAreaParentMap = list.stream().filter(Objects::nonNull).filter(o->Objects.nonNull(o.getParentId())).collect(Collectors.groupingBy(k -> k.getParentId()));
|
||||
List<HyOpenAreaInfoDO> filterFirstArea = filterAndParentList.stream().filter(o -> Objects.isNull(o.getParentId())).collect(Collectors.toList());
|
||||
Map<Long, List<HyOpenAreaInfoDO>> filterOpenAreaParentMap = filterAndParentList.stream().filter(Objects::nonNull).filter(o->Objects.nonNull(o.getParentId())).collect(Collectors.groupingBy(k -> k.getParentId()));
|
||||
for (HyOpenAreaInfoDO openAreaInfo : filterFirstArea) {
|
||||
Long id = openAreaInfo.getId();
|
||||
OpenAreaTreeVO node = copyProperties(openAreaInfo);
|
||||
List<OpenAreaTreeVO> childList = dealChild(openAreaInfo, filterOpenAreaParentMap);
|
||||
if(CollectionUtils.isEmpty(childList)){
|
||||
|
||||
Reference in New Issue
Block a user