|
@@ -142,49 +142,6 @@ public class ArchiveTreeServiceImpl extends BaseServiceImpl<ArchiveTreeMapper, A
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
- public boolean initArchiveProjectTree1(Long projectId) {
|
|
|
- QueryWrapper<ArchiveTree> queryWrapper = new QueryWrapper<>();
|
|
|
- queryWrapper.eq("parent_id", 0);
|
|
|
- queryWrapper.eq("project_id", 0);
|
|
|
- queryWrapper.eq("status", 1);
|
|
|
- queryWrapper.eq("is_deleted", 0);
|
|
|
- ArchiveTree archiveTree1 = archiveTreeMapper.selectOne(queryWrapper);
|
|
|
- if (archiveTree1 != null) {
|
|
|
- throw new ServiceException("根节点已存在,请先删除后再进行初始化");
|
|
|
- }
|
|
|
-
|
|
|
- List<ArchiveTreeVO2> sysTrees = this.tree2(AuthUtil.getTenantId(), projectId,null, null,null,false);
|
|
|
- if (sysTrees == null || sysTrees.size() == 0) {
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- List<ArchiveTreeVO2> trees = new ArrayList<>();
|
|
|
- ForestNodeMergerEx.getTreeList(sysTrees.get(0),trees);
|
|
|
-
|
|
|
- List<ArchiveTree> archiveTrees = new ArrayList<>();
|
|
|
- Map<Long,Long> oldNewMap = new LinkedHashMap<>();
|
|
|
-
|
|
|
- Map<Long,ArchiveTreeVO2> archiveMap = new LinkedHashMap<>();
|
|
|
-
|
|
|
- for (ArchiveTreeVO2 archiveTreeVO :trees) {
|
|
|
- oldNewMap.put(archiveTreeVO.getId(), SnowFlakeUtil.getId());
|
|
|
- archiveMap.put(archiveTreeVO.getId(), archiveTreeVO);
|
|
|
- }
|
|
|
- oldNewMap.put(0L,0L);
|
|
|
-
|
|
|
- for (ArchiveTreeVO2 archiveTreeVO :trees) {
|
|
|
-
|
|
|
- ArchiveTree archiveTree = new ArchiveTree(archiveTreeVO);
|
|
|
- archiveTree.setId(oldNewMap.get(archiveTreeVO.getId()));
|
|
|
- archiveTree.setParentId(oldNewMap.get(archiveTreeVO.getParentId()));
|
|
|
- archiveTree.setCreateUser(AuthUtil.getUserId());
|
|
|
- archiveTree.setProjectId(projectId);
|
|
|
- archiveTrees.add(archiveTree);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- return true;
|
|
|
- }
|
|
|
|
|
|
|
|
|
// @Override
|
|
@@ -401,6 +358,13 @@ public class ArchiveTreeServiceImpl extends BaseServiceImpl<ArchiveTreeMapper, A
|
|
|
List<WbsTreeVO2> wbsTreeVO2List = new ArrayList<>();
|
|
|
ForestNodeMerger.getTreeList(wbsTreeVO2s.get(0),wbsTreeVO2List);
|
|
|
|
|
|
+ Map<Long,Long> idPkidMap = new LinkedHashMap<>();
|
|
|
+ if (projectId != 0) {
|
|
|
+ for (WbsTreeVO2 wbsTreeVO2:wbsTreeVO2List) {
|
|
|
+ idPkidMap.put(wbsTreeVO2.getId(),wbsTreeVO2.getPrimaryKeyId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
//遍历构建
|
|
|
for (WbsTreeVO2 wbsTreeVO2:wbsTreeVO2List) {
|
|
|
//只展示指定层级之上的
|
|
@@ -413,10 +377,22 @@ public class ArchiveTreeServiceImpl extends BaseServiceImpl<ArchiveTreeMapper, A
|
|
|
continue;
|
|
|
}
|
|
|
ArchiveTreeVO2 archiveTree = new ArchiveTreeVO2();
|
|
|
+ archiveTree.setTitle(wbsTreeVO2.getTitle());
|
|
|
+
|
|
|
archiveTree.setId(wbsTreeVO2.getId());
|
|
|
archiveTree.setParentId(wbsTreeVO2.getParentId());
|
|
|
- archiveTree.setTitle(wbsTreeVO2.getTitle());
|
|
|
archiveTree.setExtId(wbsTreeVO2.getId());
|
|
|
+ if (projectId != 0) {
|
|
|
+ archiveTree.setId(idPkidMap.get(wbsTreeVO2.getId()));
|
|
|
+ int i = 0;
|
|
|
+ Long pid = idPkidMap.get(wbsTreeVO2.getParentId());
|
|
|
+ if (pid == null) {
|
|
|
+ pid = 0L;
|
|
|
+ }
|
|
|
+ archiveTree.setParentId(pid);
|
|
|
+ archiveTree.setExtId(idPkidMap.get(wbsTreeVO2.getId()));
|
|
|
+ }
|
|
|
+
|
|
|
archiveTree.setDisplayHierarchy(level.toString());
|
|
|
archiveTreeList.add(archiveTree);
|
|
|
}
|
|
@@ -780,4 +756,42 @@ public class ArchiveTreeServiceImpl extends BaseServiceImpl<ArchiveTreeMapper, A
|
|
|
}
|
|
|
return map;
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ public boolean syncProjectTree(ArchiveTree dstNode) {
|
|
|
+ if (dstNode.getFromId() == null || dstNode.getProjectId() == 0) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ ArchiveTree srcNode = this.getById(dstNode.getFromId());
|
|
|
+ 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);
|
|
|
+
|
|
|
+ ArchiveTreeVO2 srcTree = ForestNodeMergerEx.getSubTree(srcTrees.get(0),srcNode.getId());
|
|
|
+ ArchiveTreeVO2 dstTree = ForestNodeMergerEx.getSubTree(dstTrees.get(0),dstNode.getId());
|
|
|
+ List<ArchiveTreeVO2> addDst = new ArrayList<>();
|
|
|
+
|
|
|
+ ForestNodeMergerEx.syncTreeList(srcTree ,dstTree,addDst);
|
|
|
+
|
|
|
+ List<ArchiveTree> saveList = new ArrayList<>();
|
|
|
+ for (ArchiveTreeVO2 addD : addDst) {
|
|
|
+ ArchiveTree archiveTree = new ArchiveTree(addD);
|
|
|
+ archiveTree.setCreateUser(AuthUtil.getUserId());
|
|
|
+ archiveTree.setProjectId(dstNode.getProjectId());
|
|
|
+
|
|
|
+ saveList.add(archiveTree);
|
|
|
+ }
|
|
|
+
|
|
|
+ //刷新treeCode
|
|
|
+
|
|
|
+ //相同的属性刷新?
|
|
|
+
|
|
|
+ this.saveBatch(saveList);
|
|
|
+
|
|
|
+ return true;
|
|
|
+ }
|
|
|
}
|