huangtf 2 éve
szülő
commit
1aeb7ca1c1

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

@@ -162,16 +162,16 @@ public class ArchiveTreeContractController extends BladeController {
 	@ApiOperation(value = "逻辑删除", notes = "传入id")
 	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String id) {
 		List<ArchiveTreeContract> archiveTrees = archiveTreeContractService.selectByParentIdOrId(id);
-		archiveTrees.forEach(archiveTree -> {
-			if (archiveTree.getParentId() == Long.parseLong(id)) {
-				throw new ServiceException("当前节点下存在子节点,删除失败");
-			}
-//			if (archiveTree.getIsUploadFileDisplayConfigurationTree() == 1) {
-//				throw new ServiceException("当前节点被引用中,删除失败");
+//		archiveTrees.forEach(archiveTree -> {
+//			if (archiveTree.getParentId() == Long.parseLong(id)) {
+//				throw new ServiceException("当前节点下存在子节点,删除失败");
 //			}
-		});
+//
+//		});
+//
+//		return R.status(archiveTreeContractService.deleteLogic(Func.toLongList(id)));
 
-		return R.status(archiveTreeContractService.deleteLogic(Func.toLongList(id)));
+		return R.status(archiveTreeContractService.deleteTree(Long.parseLong(id)));
 	}
 
 

+ 3 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeContractMapper.xml

@@ -87,6 +87,7 @@
         <result column="isDisplayTree" property="isDisplayTree"/>
         <result column="isStorageNode" property="isStorageNode"/>
         <result column="isBuiltDrawing" property="isBuiltDrawing"/>
+        <result column="association_type" property="associationType"/>
         <result column="postType" property="postType"/>
         <result column="project_type" property="projectType"/>
         <result column="storage_type" property="storageType"/>
@@ -180,6 +181,7 @@
         d.is_storage_node AS "isStorageNode",
         d.post_type AS postType,
         d.node_type AS nodeType,
+        d.association_type,
         d.project_type,
         d.storage_type,
         d.ext_type,
@@ -220,6 +222,7 @@
         is_built_drawing AS "isBuiltDrawing",
         post_type AS postType,
         node_type AS nodeType,
+        association_type,
         project_type,
         storage_type,
         ext_type,

+ 42 - 8
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArTreeContractInitServiceImpl.java

@@ -9,12 +9,10 @@ import org.springblade.archive.feign.ArchiveAutoClient;
 import org.springblade.common.utils.SnowFlakeUtil;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.utils.Func;
-import org.springblade.manager.entity.ArchiveTree;
-import org.springblade.manager.entity.ArchiveTreeContract;
-import org.springblade.manager.entity.ContractInfo;
-import org.springblade.manager.entity.WbsTree;
+import org.springblade.manager.entity.*;
 import org.springblade.manager.feign.ProjectClient;
 import org.springblade.manager.service.IContractInfoService;
+import org.springblade.manager.service.IProjectInfoService;
 import org.springblade.manager.service.IWbsTreeService;
 import org.springblade.manager.utils.ForestNodeMerger;
 import org.springblade.manager.utils.ForestNodeMergerEx;
@@ -35,6 +33,8 @@ public class ArTreeContractInitServiceImpl {
 
     private final ArchiveAutoClient archiveAutoClient;
 
+    private final IProjectInfoService projectInfoService;
+
     /**
      *
      * @param tenantId
@@ -320,10 +320,40 @@ public class ArTreeContractInitServiceImpl {
         List<ArchiveTreeContract> addNodes = new ArrayList<>();
         List<ArchiveTreeContractVO2> archiveTreeContractVO2s = new ArrayList<>();
         ForestNodeMergerEx.getTreeList(tree,archiveTreeContractVO2s);
-        Map<Long,ArchiveTreeContractVO2> map = new LinkedHashMap<>();
+//        Map<Long,ArchiveTreeContractVO2> map = new LinkedHashMap<>();
+//        for (ArchiveTreeContractVO2 ar : archiveTreeContractVO2s) {
+//            map.put(ar.getId(),ar);
+//        }
+
         for (ArchiveTreeContractVO2 ar : archiveTreeContractVO2s) {
-            map.put(ar.getId(),ar);
+            //关联质检资料
+            if (ar.getAssociationType()!= null
+                    &&  ar.getAssociationType() == 1
+                    && ar.getDisplayHierarchy() != null ) {
+                List<ArchiveTreeContract> tmpList  = getTreeContractFromWbs(tenantId,projectId,wbsId,ar);
+                addNodes.addAll(tmpList);
+            }
         }
+        return addNodes;
+    }
+
+
+    /**
+     * 获取节点
+     * @param tenantId
+     * @param projectId
+     * @param tree
+     * @return
+     */
+    public List<ArchiveTreeContract> getContractExtNodes(String tenantId, Long projectId,ArchiveTreeContractVO2 tree) {
+
+        List<ArchiveTreeContract> addNodes = new ArrayList<>();
+        List<ArchiveTreeContractVO2> archiveTreeContractVO2s = new ArrayList<>();
+        ForestNodeMergerEx.getTreeList(tree,archiveTreeContractVO2s);
+
+        ProjectInfo projectInfo = projectInfoService.getOne(projectId);
+        Long wbsId = projectInfo.getReferenceWbsTemplateId();
+
 
         for (ArchiveTreeContractVO2 ar : archiveTreeContractVO2s) {
             //关联质检资料
@@ -340,6 +370,7 @@ public class ArTreeContractInitServiceImpl {
 
 
 
+
     public List<ArchiveTreeContract> getTreeContractFromWbs(String tenantId, Long projectId, Long wbsId, ArchiveTreeContractVO2 subTree){
         List<ArchiveTreeContract> archiveTreeContracts = new ArrayList<>();
 
@@ -370,6 +401,7 @@ public class ArTreeContractInitServiceImpl {
         Map<Long,ArchiveTreeContractVO2> extMap = new LinkedHashMap<>();
         Map<Long,Long> oldNewMap = new LinkedHashMap<>();
         //Map<Long,WbsTreeContractVO6> wbsMap = new LinkedHashMap<>();
+        //以前增加的wbs节点映射 放在oldNewMap
         for (ArchiveTreeContractVO2 ar :treeContractVO2s) {
             if (ar.getExtId() !=null ) {
                 extMap.put(ar.getExtId(),ar);
@@ -397,6 +429,7 @@ public class ArTreeContractInitServiceImpl {
             addWbsNodes.add(wbsTreeVO2);
         }
 
+        //本次要增加的 wbs节点映射 放在oldNewMap
         for (WbsTreeContractVO6 wbsTreeVO2:addWbsNodes) {
             oldNewMap.put(wbsTreeVO2.getId(),SnowFlakeUtil.getId());
         }
@@ -454,9 +487,10 @@ public class ArTreeContractInitServiceImpl {
             contractMap.put(contractInfo.getId(),contractInfo);
         }
 
-
+        //只有存储节点并且是工序类,要生成一个默认案卷
         List<ArchiveTreeContract> storageList = archiveTreeContracts.stream()
-                .filter(e->e.getIsStorageNode()!= null && e.getIsStorageNode() == 1).collect(Collectors.toList());
+                .filter(e->e.getIsStorageNode()!= null && e.getIsStorageNode() == 1
+                && e.getExtType()!= null && e.getExtType() == 1).collect(Collectors.toList());
 
         for (ArchiveTreeContract storage: storageList) {
 

+ 16 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveTreeContractServiceImpl.java

@@ -411,6 +411,10 @@ public class ArchiveTreeContractServiceImpl extends BaseServiceImpl<ArchiveTreeC
 		List<ContractInfo> contractInfos = contractInfoService.selectContractInfoPageByPid(dstNode.getProjectId().toString());
 		Map<Long,ContractInfo> contractMap = new LinkedHashMap<>();
 
+		ProjectInfo projectInfo = projectInfoService.getOne(dstNode.getProjectId());
+		Long wbsId = projectInfo.getReferenceWbsTemplateId();
+
+
 		boolean bHasContract = true;
 		if (contractInfos == null || contractInfos.size() == 0) {
 			bHasContract = false;
@@ -523,22 +527,32 @@ public class ArchiveTreeContractServiceImpl extends BaseServiceImpl<ArchiveTreeC
 							if (tmpSubTree == null) {
 								continue;
 							}
-							tmpSaveList = archiveTreeContractSync.getNormalSaveList(tmpSubTree.getId(),
+							tmpSaveList = archiveTreeContractSync.getNormalSaveList(srcNode.getId(),
 									tmpSubTree,dstNodeId,contractNode);
 							saveList.addAll(tmpSaveList);
+
+							//todo 同步wbs等扩展节点
+
+							List<ArchiveTreeContract> extSaveList = archiveTreeContractSync.getExtSaveList(dstNodeId,
+									contractNode,dstNode.getProjectId());
+							saveList.addAll(extSaveList);
+
+
 						}
 					}
 				}
 			}
 		}
 
+		//不是新增的,更新属性
 		ArchiveTreeVO2 subTree = ForestNodeMergerEx.getSubTree(srcTree,srcNode.getId());
 		UpdateByArchiveTree(dstNode.getProjectId(),subTree);
 
 		//更新排序
 		archiveTreeContractSync.InitTreeSort(dstTree,saveList);
 
-		//todo 同步wbs等扩展节点
+		//同步生成案卷
+		arTreeContractInitService.syncArchiveAutoList(saveList,contractInfos);
 
 		this.saveBatch(saveList);
 		return true;

+ 20 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveTreeContractSyncImpl.java

@@ -5,6 +5,7 @@ import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.manager.entity.ArchiveTree;
 import org.springblade.manager.entity.ArchiveTreeContract;
 import org.springblade.manager.entity.ContractInfo;
+import org.springblade.manager.service.IProjectInfoService;
 import org.springblade.manager.utils.ForestNodeMergerEx;
 import org.springblade.manager.vo.ArchiveTreeContractVO2;
 import org.springblade.manager.vo.ArchiveTreeVO2;
@@ -21,6 +22,8 @@ public class ArchiveTreeContractSyncImpl {
 
     private final ArTreeContractInitServiceImpl arTreeContractInitService;
 
+    private final IProjectInfoService projectInfoService;
+
     /**
      * 普通同步
      * @param srcNodeId
@@ -105,4 +108,21 @@ public class ArchiveTreeContractSyncImpl {
             }
         }
     }
+
+    /**
+     * 普通同步
+     * @param dstNodeId
+     * @param dstTrees
+     * @return
+     */
+    public List<ArchiveTreeContract> getExtSaveList(Long dstNodeId,ArchiveTreeContractVO2 dstTrees,Long projectId){
+
+        ArchiveTreeContractVO2 dstTree = ForestNodeMergerEx.getSubTree(dstTrees,dstNodeId);
+
+        List<ArchiveTreeContract> saveList = new ArrayList<>();
+        //todo 等测试OK再打开
+        //saveList =arTreeContractInitService.getContractExtNodes(AuthUtil.getTenantId(),projectId,dstTree);
+
+        return saveList;
+    }
 }