|
@@ -10,6 +10,7 @@ import org.springblade.core.log.exception.ServiceException;
|
|
|
import org.springblade.core.secure.utils.AuthUtil;
|
|
|
import org.springblade.core.tool.constant.BladeConstant;
|
|
|
|
|
|
+import org.springblade.core.tool.utils.BeanUtil;
|
|
|
import org.springblade.core.tool.utils.Func;
|
|
|
import org.springblade.manager.dto.ArchiveTreeContractAutoRuleMapDTO;
|
|
|
import org.springblade.manager.dto.ArchiveTreeDTO;
|
|
@@ -1021,10 +1022,8 @@ public class ArchiveTreeServiceImpl extends BaseServiceImpl<ArchiveTreeMapper, A
|
|
|
if (srcNode == null || srcNode.getProjectId() != 0) {
|
|
|
return false;
|
|
|
}
|
|
|
-
|
|
|
- List<ArchiveTreeVO2> srcTrees = this.tree2(AuthUtil.getTenantId(), 0L, null, null, null, false);
|
|
|
- List<ArchiveTreeVO2> dstTrees = this.tree2(AuthUtil.getTenantId(), dstNode.getProjectId(), null, null, null, false);
|
|
|
-
|
|
|
+ List<ArchiveTreeVO2> srcTrees = this.getAllChildren(srcNode);
|
|
|
+ List<ArchiveTreeVO2> dstTrees = this.getAllChildren(dstNode);
|
|
|
ArchiveTreeVO2 srcTree = ForestNodeMergerEx.getSubTree(srcTrees.get(0), srcNode.getId());
|
|
|
ArchiveTreeVO2 dstTree = ForestNodeMergerEx.getSubTree(dstTrees.get(0), dstNode.getId());
|
|
|
List<ArchiveTreeVO2> addDst = new ArrayList<>();
|
|
@@ -1054,6 +1053,37 @@ public class ArchiveTreeServiceImpl extends BaseServiceImpl<ArchiveTreeMapper, A
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+ public List<ArchiveTreeVO2> getAllChildren(ArchiveTree node) {
|
|
|
+ List<ArchiveTreeVO2> list = new ArrayList<>();
|
|
|
+ if (node == null || node.getId() == null) {
|
|
|
+ return list;
|
|
|
+ }
|
|
|
+ if (node.getProjectId() == null) {
|
|
|
+ node.setProjectId(0L);
|
|
|
+ }
|
|
|
+ getAllChildren(Collections.singletonList(node.getId()), node.getProjectId(), list);
|
|
|
+ ArchiveTreeVO2 archiveTreeVO2 = new ArchiveTreeVO2();
|
|
|
+ BeanUtil.copyProperties(node, archiveTreeVO2);
|
|
|
+ archiveTreeVO2.setHasChildren(!list.isEmpty());
|
|
|
+ archiveTreeVO2.setTitle(node.getNodeName());
|
|
|
+ archiveTreeVO2.setValue(node.getId());
|
|
|
+ archiveTreeVO2.setKey(node.getId());
|
|
|
+ archiveTreeVO2.setIsDisplayTree(node.getIsUploadFileDisplayConfigurationTree());
|
|
|
+ list.add(archiveTreeVO2);
|
|
|
+ return ForestNodeMergerEx.merge(list);
|
|
|
+ }
|
|
|
+ public void getAllChildren(List<Long> parentIds, Long projectId, List<ArchiveTreeVO2> list) {
|
|
|
+ List<ArchiveTreeVO2> archiveTrees = this.baseMapper.getAllChildren(parentIds, projectId);
|
|
|
+ if (archiveTrees != null && !archiveTrees.isEmpty()) {
|
|
|
+ List<Long> ids = archiveTrees.stream().filter(node -> {
|
|
|
+ list.add(node);
|
|
|
+ return node.getHasChildren();
|
|
|
+ }).map(ArchiveTreeVO2::getId).collect(Collectors.toList());
|
|
|
+ if (!ids.isEmpty()) {
|
|
|
+ getAllChildren(ids,projectId, list);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
public void InitAncestors(ArchiveTreeVO2 dstTree, List<ArchiveTree> addList, List<ArchiveTree> upList, List<ArchiveTreeVO2> sysTrees) {
|
|
|
Map<Long, ArchiveTreeVO2> vo2Map = new LinkedHashMap<>();
|