|
@@ -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) {
|
|
|
|