Commit 37140e2e by 赵剑炜

修改子节点方法

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