|
@@ -822,14 +822,35 @@ public class ArchiveTreeServiceImpl extends BaseServiceImpl<ArchiveTreeMapper, A
|
|
*/
|
|
*/
|
|
private Map<String, Object> getArchiveAutoRule_WbsTreeNode(Long id, Long projectId, Long wbsNode2ArchiveTreeNodeId, String wbsId) {
|
|
private Map<String, Object> getArchiveAutoRule_WbsTreeNode(Long id, Long projectId, Long wbsNode2ArchiveTreeNodeId, String wbsId) {
|
|
Map<String, Object> map = new HashMap<>();
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
|
+ Map<Long, ArchiveTreeVO2> ArchiveTreeVO2Map = null;
|
|
try {
|
|
try {
|
|
ArchiveTree archiveTree = baseMapper.selectById(wbsNode2ArchiveTreeNodeId);
|
|
ArchiveTree archiveTree = baseMapper.selectById(wbsNode2ArchiveTreeNodeId);
|
|
|
|
|
|
//步骤1:找出wbs的规则设置
|
|
//步骤1:找出wbs的规则设置
|
|
ArchiveAutoRuleWbs autoRuleWbs=null;
|
|
ArchiveAutoRuleWbs autoRuleWbs=null;
|
|
|
|
+ List<ArchiveTreeVO2> archiveTreeVO2List = new ArrayList<>();
|
|
List<ArchiveAutoRuleWbs> autoRuleWbsList = archiveAutoRuleWbsMapper.getArchiveAutoRuleWbs(id, projectId);
|
|
List<ArchiveAutoRuleWbs> autoRuleWbsList = archiveAutoRuleWbsMapper.getArchiveAutoRuleWbs(id, projectId);
|
|
if(autoRuleWbsList.size()==0){
|
|
if(autoRuleWbsList.size()==0){
|
|
- //TODO 像上级找
|
|
|
|
|
|
+ //像上级找
|
|
|
|
+ //获取wbs关联树
|
|
|
|
+ ArchiveTreeVO2 archiveTreeVO2 = getWbsArchiveTree(AuthUtil.getTenantId(), projectId, wbsNode2ArchiveTreeNodeId, wbsId, "1", Long.parseLong(archiveTree.getDisplayHierarchy()));
|
|
|
|
+ ForestNodeMerger.getTreeListEx(archiveTreeVO2, archiveTreeVO2List);
|
|
|
|
+ ArchiveTreeVO2Map = new HashMap<>();
|
|
|
|
+ for (ArchiveTreeVO2 vo2 : archiveTreeVO2List) {
|
|
|
|
+ ArchiveTreeVO2Map.put(vo2.getId(), vo2);
|
|
|
|
+ }
|
|
|
|
+ ArchiveTreeVO2 nameVo2 = ArchiveTreeVO2Map.get(id);
|
|
|
|
+ while (nameVo2.getParentId() != 0L) {
|
|
|
|
+ Long parentId = nameVo2.getParentId();
|
|
|
|
+ nameVo2 = ArchiveTreeVO2Map.get(parentId);
|
|
|
|
+ List<ArchiveAutoRuleWbs> ruleList = archiveAutoRuleWbsMapper.getArchiveAutoRuleWbs(nameVo2.getId(), projectId);
|
|
|
|
+ if(ruleList.size()>0){
|
|
|
|
+ autoRuleWbs=ruleList.get(0);
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
}else{
|
|
}else{
|
|
autoRuleWbs=autoRuleWbsList.get(0);
|
|
autoRuleWbs=autoRuleWbsList.get(0);
|
|
}
|
|
}
|
|
@@ -851,12 +872,13 @@ public class ArchiveTreeServiceImpl extends BaseServiceImpl<ArchiveTreeMapper, A
|
|
}
|
|
}
|
|
|
|
|
|
//获取wbs关联树
|
|
//获取wbs关联树
|
|
- ArchiveTreeVO2 archiveTreeVO2 = getWbsArchiveTree(AuthUtil.getTenantId(), projectId, wbsNode2ArchiveTreeNodeId, wbsId, "1", Long.parseLong(archiveTree.getDisplayHierarchy()));
|
|
|
|
- List<ArchiveTreeVO2> archiveTreeVO2List = new ArrayList<>();
|
|
|
|
- ForestNodeMerger.getTreeListEx(archiveTreeVO2, archiveTreeVO2List);
|
|
|
|
- Map<Long, ArchiveTreeVO2> ArchiveTreeVO2Map = new HashMap<>();
|
|
|
|
- for (ArchiveTreeVO2 vo2 : archiveTreeVO2List) {
|
|
|
|
- ArchiveTreeVO2Map.put(vo2.getId(), vo2);
|
|
|
|
|
|
+ if(ArchiveTreeVO2Map == null){
|
|
|
|
+ ArchiveTreeVO2 archiveTreeVO2 = getWbsArchiveTree(AuthUtil.getTenantId(), projectId, wbsNode2ArchiveTreeNodeId, wbsId, "1", Long.parseLong(archiveTree.getDisplayHierarchy()));
|
|
|
|
+ ForestNodeMerger.getTreeListEx(archiveTreeVO2, archiveTreeVO2List);
|
|
|
|
+ ArchiveTreeVO2Map = new HashMap<>();
|
|
|
|
+ for (ArchiveTreeVO2 vo2 : archiveTreeVO2List) {
|
|
|
|
+ ArchiveTreeVO2Map.put(vo2.getId(), vo2);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
if (archiveAutoType == 1) {
|
|
if (archiveAutoType == 1) {
|
|
@@ -888,10 +910,11 @@ public class ArchiveTreeServiceImpl extends BaseServiceImpl<ArchiveTreeMapper, A
|
|
//遍历wbs关联树 生成分类并将编辑树
|
|
//遍历wbs关联树 生成分类并将编辑树
|
|
for (ArchiveTreeVO2 vo2 : archiveTreeVO2List) {
|
|
for (ArchiveTreeVO2 vo2 : archiveTreeVO2List) {
|
|
//查询wbs节点是否有规则设置
|
|
//查询wbs节点是否有规则设置
|
|
- ArchiveAutoRuleWbs autoRuleWbs2 = archiveAutoRuleWbsMapper.selectOne(Wrappers.<ArchiveAutoRuleWbs>lambdaQuery()
|
|
|
|
- .eq(ArchiveAutoRuleWbs::getWbsId, vo2.getId())
|
|
|
|
- .eq(ArchiveAutoRuleWbs::getIsDeleted, 0)
|
|
|
|
- .eq(ArchiveAutoRuleWbs::getProjectId, projectId));
|
|
|
|
|
|
+ List<ArchiveAutoRuleWbs> ruleList = archiveAutoRuleWbsMapper.getArchiveAutoRuleWbs(vo2.getId(), projectId);
|
|
|
|
+ ArchiveAutoRuleWbs autoRuleWbs2 =null;
|
|
|
|
+ if(ruleList!=null && ruleList.size()>0){
|
|
|
|
+ autoRuleWbs2=ruleList.get(0);
|
|
|
|
+ }
|
|
if (autoRuleWbs2 != null) {
|
|
if (autoRuleWbs2 != null) {
|
|
//如有规则,需过滤单独规则节点,和不同组的分类规则节点
|
|
//如有规则,需过滤单独规则节点,和不同组的分类规则节点
|
|
if (autoRuleWbs2.getArchiveAutoType() != 3) {
|
|
if (autoRuleWbs2.getArchiveAutoType() != 3) {
|
|
@@ -930,10 +953,7 @@ public class ArchiveTreeServiceImpl extends BaseServiceImpl<ArchiveTreeMapper, A
|
|
|
|
|
|
List<ArchiveTreeAutoRuleVO> merge = ForestNodeMerger.merge(nodetree);
|
|
List<ArchiveTreeAutoRuleVO> merge = ForestNodeMerger.merge(nodetree);
|
|
//获取与当前节点设置同一分类分组的节点
|
|
//获取与当前节点设置同一分类分组的节点
|
|
- List<ArchiveAutoRuleWbs> archiveAutoRuleWbs = archiveAutoRuleWbsMapper.selectList(Wrappers.<ArchiveAutoRuleWbs>lambdaQuery()
|
|
|
|
- .eq(ArchiveAutoRuleWbs::getArchiveAutoGroupId, archiveAutoGroupId)
|
|
|
|
- .eq(ArchiveAutoRuleWbs::getIsDeleted, 0)
|
|
|
|
- .eq(ArchiveAutoRuleWbs::getProjectId, projectId));
|
|
|
|
|
|
+ List<ArchiveAutoRuleWbs> archiveAutoRuleWbs = archiveAutoRuleWbsMapper.getGroupList(archiveAutoGroupId, projectId);
|
|
StringBuffer nodeSelect = new StringBuffer();
|
|
StringBuffer nodeSelect = new StringBuffer();
|
|
|
|
|
|
for (ArchiveAutoRuleWbs node : archiveAutoRuleWbs) {
|
|
for (ArchiveAutoRuleWbs node : archiveAutoRuleWbs) {
|