Răsfoiți Sursa

工程划分搜索将子节点一并查出

cr 2 zile în urmă
părinte
comite
939c23a6c3

+ 12 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeServiceImpl.java

@@ -519,6 +519,7 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                     Set<WbsTreePrivate> resultNodes = new HashSet<>();
                     List<WbsTreePrivate> wbsTreePrivates = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>lambdaQuery().eq(WbsTreePrivate::getType, 1).eq(WbsTreePrivate::getWbsId, wbsId).eq(WbsTreePrivate::getProjectId, projectId).and(wrapper -> wrapper.like(WbsTreePrivate::getNodeName, queryValue).or().like(WbsTreePrivate::getImportMatchingInfo, queryValue)).and(wrapper -> wrapper.ne(WbsTreePrivate::getIsAddConceal, 1).or().isNull(WbsTreePrivate::getIsAddConceal)));
                     this.getParentNodesPrivateWbs(wbsTreePrivates, resultNodes, projectId, wbsId);
+                    this.getChildNodesPrivateWbs(wbsTreePrivates, resultNodes, projectId, wbsId);
                     resultNodes.addAll(wbsTreePrivates);
                     List<WbsTreePrivateQueryValueVO> wbsTreePrivateQueryValueVOS = BeanUtil.copyProperties(resultNodes, WbsTreePrivateQueryValueVO.class);
                     if (wbsTreePrivateQueryValueVOS.size() > 0) {
@@ -798,6 +799,17 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
         }
     }
 
+    private void getChildNodesPrivateWbs(List<WbsTreePrivate> wbsTreePrivates, Set<WbsTreePrivate> resultNodes, String projectId, String wbsId) {
+        Set<Long> Ids = wbsTreePrivates.stream().map(WbsTreePrivate::getId).collect(Collectors.toSet());
+        if (Ids.size() > 0) {
+            List<WbsTreePrivate> childNodes = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>lambdaQuery().in(WbsTreePrivate::getParentId, Ids).eq(WbsTreePrivate::getType, 1).eq(WbsTreePrivate::getWbsId, wbsId).eq(WbsTreePrivate::getProjectId, projectId));
+            if (childNodes.size() > 0) {
+                resultNodes.addAll(childNodes);
+                this.getChildNodesPrivateWbs(childNodes, resultNodes, projectId, wbsId);
+            }
+        }
+    }
+
     private void buildWbsTreePrivateByGetQueryValueByType(List<WbsTreePrivateQueryValueVO> listRoot, Map<Long, List<WbsTreePrivateQueryValueVO>> mapAll) {
         for (WbsTreePrivateQueryValueVO wbsTree : listRoot) {
             List<WbsTreePrivateQueryValueVO> childrenList = mapAll.get(wbsTree.getId());