抽出方法

This commit is contained in:
zhaokaiyao@91isoft.com
2021-10-18 17:13:43 +08:00
parent acbece6b2a
commit 60fd2eb999
2 changed files with 61 additions and 36 deletions
@@ -6,6 +6,7 @@ import com.adc.da.slrs.sarInstitution.entity.SyncInstitution;
import com.adc.da.slrs.sarInstitution.entity.TsInstitution;
import com.adc.da.slrs.sarInstitution.entity.TsUserVO;
import com.adc.da.slrs.sarInstitution.service.ITsInstitutionService;
import com.adc.da.slrs.sarInstitution.util.TreeUtil;
import com.adc.da.sync.service.SyncUserService;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
@@ -38,48 +39,18 @@ public class TsInstitutionServiceImpl extends ServiceImpl<TsInstitutionDao, TsIn
*/
@Override
public List<TsInstitution> getInstitution() {
List<TsInstitution> institutionList = this.list();//查询所有的的数据
//查询第一层机构
List<TsInstitution> institutionRoot=tsInstitutionDao.selectRoot();
List<TsInstitution> root=tsInstitutionDao.selectRoot();
//转换为hashSet
List<String> root = institutionRoot.stream()
.map(item -> item.getId())
.collect(Collectors.toList());
HashSet<String> rootSet = new HashSet<>(root);
TreeUtil treeUtil = new TreeUtil();
List<TsInstitution> institutionTree = treeUtil.treeAsList(institutionList, root);
List<TsInstitution> institutionList = this.list();//查询所有的的数据
//获取父节点,0表示父节点
List<TsInstitution> collect = institutionList.stream()
.filter(e -> rootSet.contains(e.getId()))
.map(e -> {
List<TsInstitution> childNode = getChildNode(e, institutionList);
e.setChildren(new ArrayList<>(childNode));
return e;
}).collect(Collectors.toList());
return collect;
return institutionTree;
}
/**
* 递归查询子节点
* @param root
* @param contentKnowledgeList
* @return
*/
private List<TsInstitution> getChildNode(TsInstitution root, List<TsInstitution> contentKnowledgeList) {
List<TsInstitution> childrenList = contentKnowledgeList.stream().filter(e -> Objects.equals(e.getParentId(), root.getId())).map(
e -> {
List<TsInstitution> childNode = getChildNode(e, contentKnowledgeList);
e.setChildren(new ArrayList<>(childNode));
return e;
}
).collect(Collectors.toList());
return childrenList;
}
@@ -0,0 +1,54 @@
package com.adc.da.slrs.sarInstitution.util;
import com.adc.da.slrs.sarInstitution.entity.TsInstitution;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@Component
public class TreeUtil {
public List<TsInstitution> treeAsList(List<TsInstitution> institutionList,List<TsInstitution> rootList){
//转换为hashSet
List<String> root = rootList.stream()
.map(item -> item.getId())
.collect(Collectors.toList());
HashSet<String> rootSet = new HashSet<>(root);
//获取父节点,0表示父节点
List<TsInstitution> tree = institutionList.stream()
.filter(e -> rootSet.contains(e.getId()))
.map(e -> {
List<TsInstitution> childNode = getChildNode(e, institutionList);
e.setChildren(new ArrayList<>(childNode));
return e;
}).collect(Collectors.toList());
return tree;
}
/**
* 递归查询子节点
* @param root
* @param contentKnowledgeList
* @return
*/
private List<TsInstitution> getChildNode(TsInstitution root, List<TsInstitution> contentKnowledgeList) {
List<TsInstitution> childrenList = contentKnowledgeList.stream().filter(e -> Objects.equals(e.getParentId(), root.getId())).map(
e -> {
List<TsInstitution> childNode = getChildNode(e, contentKnowledgeList);
e.setChildren(new ArrayList<>(childNode));
return e;
}
).collect(Collectors.toList());
return childrenList;
}
}