浏览代码

修正归档树错误

huangtf 2 年之前
父节点
当前提交
6253d58cd0

+ 3 - 3
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ArchiveTreeContractController.java

@@ -158,9 +158,9 @@ public class ArchiveTreeContractController extends BladeController {
 			if (archiveTree.getParentId() == Long.parseLong(id)) {
 				throw new ServiceException("当前节点下存在子节点,删除失败");
 			}
-			if (archiveTree.getIsUploadFileDisplayConfigurationTree() == 1) {
-				throw new ServiceException("当前节点被引用中,删除失败");
-			}
+//			if (archiveTree.getIsUploadFileDisplayConfigurationTree() == 1) {
+//				throw new ServiceException("当前节点被引用中,删除失败");
+//			}
 		});
 
 		return R.status(archiveTreeContractService.deleteLogic(Func.toLongList(id)));

+ 3 - 3
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ArchiveTreeController.java

@@ -111,9 +111,9 @@ public class ArchiveTreeController extends BladeController {
             if (archiveTree.getParentId() == Long.parseLong(id)) {
                 throw new ServiceException("当前节点下存在子节点,删除失败");
             }
-            if (archiveTree.getIsUploadFileDisplayConfigurationTree() == 1) {
-                throw new ServiceException("当前节点被引用中,删除失败");
-            }
+//            if (archiveTree.getIsUploadFileDisplayConfigurationTree() == 1) {
+//                throw new ServiceException("当前节点被引用中,删除失败");
+//            }
         });
         return R.status(archiveTreeService.deleteLogic(Func.toLongList(id)));
     }

+ 7 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/service/IArchiveTreeContractService.java

@@ -17,17 +17,20 @@
 package org.springblade.manager.service;
 
 import feign.Param;
+
 import org.springblade.manager.dto.ArchiveTreeContractAutoRuleMapDTO;
 import org.springblade.manager.dto.ArchiveTreeContractDTO;
 import org.springblade.manager.dto.ArchiveTreeDTO;
 import org.springblade.manager.entity.ArchiveTree;
 import org.springblade.manager.entity.ArchiveTreeContract;
+
 import org.springblade.manager.vo.ArchiveTreeContractVO;
 import org.springblade.core.mp.base.BaseService;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.manager.vo.ArchiveTreeContractVO2;
-import org.springblade.manager.vo.ArchiveTreeVO;
 
+
+import java.util.ArrayList;
 import java.util.List;
 
 import java.util.List;
@@ -82,4 +85,7 @@ public interface IArchiveTreeContractService extends BaseService<ArchiveTreeCont
 	boolean syncProjectTree(ArchiveTreeContract dstNode);
 
 	boolean UpdateByArchiveTree(ArchiveTree archiveTree);
+
+	boolean deleteTree(Long id);
+
 }

+ 29 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveTreeContractServiceImpl.java

@@ -25,6 +25,7 @@ import org.springblade.common.utils.SnowFlakeUtil;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.secure.BladeUser;
 import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.constant.BladeConstant;
 import org.springblade.core.tool.node.ForestNodeMerger;
 import org.springblade.core.tool.utils.Func;
@@ -535,6 +536,34 @@ public class ArchiveTreeContractServiceImpl extends BaseServiceImpl<ArchiveTreeC
 	}
 
 
+	/**
+	 * 删除子树
+	 * @param id
+	 * @return
+	 */
+	public  boolean deleteTree(Long id) {
+		List<Long> ids = new ArrayList<>();
+
+		ArchiveTreeContract dstNode = this.getById(id);
+		if (dstNode == null ) {
+			return false;
+		}
+
+		List<ArchiveTreeContractVO2> dstTrees = this.tree2Root(AuthUtil.getTenantId(),null,null,dstNode.getProjectId(),null);
+		if (dstTrees == null || dstTrees.size() == 0) {
+			return false;
+		}
+
+		ArchiveTreeContractVO2 subTree = ForestNodeMergerEx.getSubTree(dstTrees.get(0),id);
+
+		ForestNodeMergerEx.getChildrenIds(subTree,ids);
+
+		ids.add(id);
+
+		return this.deleteLogic(ids);
+	}
+
+
 
 
 

+ 6 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveTreeServiceImpl.java

@@ -194,11 +194,16 @@ public class ArchiveTreeServiceImpl extends BaseServiceImpl<ArchiveTreeMapper, A
 
     @Override
     public List<ArchiveTreeVO2> tree2(String tenantId,Long projectId, Integer disPlayTree, Integer nodeType,String wbsId,boolean bgetExtNodes) {
+        if (projectId == null) {
+            projectId = 0L;
+        }
+
         List<ArchiveTreeVO2> archiveTreeVOList = baseMapper.tree2(tenantId, projectId,disPlayTree, nodeType);
         List<ArchiveTreeVO2> treeVO2s = ForestNodeMergerEx.merge(archiveTreeVOList);
         //todo 遍历树,找到质检节点,调用getWbsArchiveTree,根据关联层级,拼接上去
+
         //是否获取扩展的wbs节点
-        if (StringUtils.isEmpty(wbsId) && projectId != 0 && bgetExtNodes) {
+        if (StringUtils.isEmpty(wbsId) && projectId!= null && projectId != 0 && bgetExtNodes) {
             ProjectInfo projectInfo = projectInfoService.getOne(projectId);
             if (projectInfo!= null) {
                 Long lWbsId = projectInfo.getReferenceWbsTemplateId();