Commit 37140e2e by 赵剑炜

修改子节点方法

parent 1735c5fb
......@@ -18,6 +18,7 @@ public class OrgDto {
private String dName;
private Boolean isLeaf;
private Integer statusFlag;
private Integer childCount;
private List<OrgDto> children = new ArrayList<>();
public void addChild(OrgDto child) {
......
......@@ -393,8 +393,8 @@ public class PubOrgServiceImpl extends ServiceImpl<PubOrgMapper, PubOrg> implem
// 添加 MatchQueryBuilder 作为 must 条件
MatchQueryBuilder matchQueryBuilder = QueryBuilders.matchQuery("orgName", keyword).operator(Operator.AND);
MatchQueryBuilder matchQueryBuilder2 = QueryBuilders.matchQuery("orgName.pinyin", keyword).operator(Operator.AND);
MatchQueryBuilder matchQueryBuilder = QueryBuilders.matchQuery("dName", keyword).operator(Operator.AND);
MatchQueryBuilder matchQueryBuilder2 = QueryBuilders.matchQuery("dName.pinyin", keyword).operator(Operator.AND);
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
boolQueryBuilder.should(matchQueryBuilder);
......@@ -419,22 +419,12 @@ public class PubOrgServiceImpl extends ServiceImpl<PubOrgMapper, PubOrg> implem
return pubOrgList;
}
public List<OrgDto> searchAndBuildTree(Integer pageNum, Integer pageSize, String keyword) throws IOException {
// 先进行搜索,获取前20条数据
QueryOrgReq req=new QueryOrgReq();
List<PubOrg> searchResults = searchOrg(pageNum, pageSize, keyword);
req.setDelFlag(1);
LambdaQueryWrapper<PubOrg> wp = this.createWrapper(req);
// 获取所有组织机构数据
List<PubOrg> allOrgs = this.list(wp);
List<OrgDto> treeResult= buildTree(searchResults,allOrgs);
return treeResult;
}
public List<OrgDto> buildTree(List<PubOrg> searchResults, List<PubOrg> allOrgs) {
Map<Long, OrgDto> orgDtoMap = new HashMap<>();
// 将所有组织机构转换为OrgDto并放入map中
// 将所有组织机构转换为OrgDto并放入map中,同时计算子节点数量
for (PubOrg org : allOrgs) {
OrgDto orgDto = new OrgDto();
// 这里根据你的实际字段进行映射
......@@ -448,8 +438,23 @@ public class PubOrgServiceImpl extends ServiceImpl<PubOrgMapper, PubOrg> implem
orgDto.setStatusFlag(org.getStatusFlag());
orgDto.setDName(org.getDName());
orgDto.setOrgParentIds(org.getOrgParentIds());
// 其他字段的映射...
// 计算子节点数量
int childCount = 0;
for (PubOrg childOrg : allOrgs) {
if (childOrg.getOrgParentId().equals(org.getOrgId())) {
childCount++;
}
}
orgDto.setChildCount(childCount);
if (childCount<=0)
{
orgDto.setIsLeaf(true);
}
else
{
orgDto.setIsLeaf(false);
}
// 将OrgDto放入map中,以orgId为键
orgDtoMap.put(org.getOrgId(), orgDto);
}
......@@ -510,8 +515,15 @@ public class PubOrgServiceImpl extends ServiceImpl<PubOrgMapper, PubOrg> implem
@Override
public List<OrgDto> getOrgTreeByEs(QueryOrgReq req) throws IOException {
List<OrgDto> treeDto= searchAndBuildTree(0, 10, req.getOrgName());
return treeDto;
// 先进行搜索,获取前20条数据
List<PubOrg> searchResults = searchOrg(0, 15, req.getOrgName());
req.setDelFlag(1);
LambdaQueryWrapper<PubOrg> wp = this.createWrapper(req);
// 获取所有组织机构数据
List<PubOrg> allOrgs = this.list(wp);
List<OrgDto> treeResult= buildTree(searchResults,allOrgs);
return treeResult;
}
private OrgDto convertToDto(PubOrg org, List<PubOrg> allOrgs) {
......@@ -527,6 +539,7 @@ public class PubOrgServiceImpl extends ServiceImpl<PubOrgMapper, PubOrg> implem
orgDto.setStatusFlag(org.getStatusFlag());
orgDto.setOrgParentId(org.getOrgParentId());
orgDto.setDName(org.getDName());
// 其他字段的映射...
// 查找当前节点的子节点
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论