|
@@ -264,29 +264,117 @@ public class ArTreeContractInitServiceImpl {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ * @param tenantId
|
|
|
+ * @param projectId
|
|
|
+ * @param wbsId
|
|
|
+ * @param tree
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public List<ArchiveTreeContract> getContractProcExtNodes(String tenantId, Long projectId,Long wbsId, ArchiveTreeContractVO2 tree) {
|
|
|
+
|
|
|
+ List<ArchiveTreeContract> addNodes = new ArrayList<>();
|
|
|
+ List<ArchiveTreeContractVO2> archiveTreeContractVO2s = new ArrayList<>();
|
|
|
+ ForestNodeMerger.getTreeList(tree,archiveTreeContractVO2s);
|
|
|
+
|
|
|
+ for (ArchiveTreeContractVO2 ar : archiveTreeContractVO2s) {
|
|
|
+ //关联质检资料
|
|
|
+ if (ar.getAssociationType()!= null
|
|
|
+ && ar.getAssociationType() == 1
|
|
|
+ && ar.getDisplayHierarchy() != null ) {
|
|
|
+ List<ArchiveTreeContract> tmpList = getTreeContractFromWbs(tenantId,projectId,wbsId,ar);
|
|
|
+ addNodes.addAll(tmpList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return addNodes;
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
- public List<ArchiveTreeContract> getTreeContractFromWbs(String tenantId, Long projectId, Long wbsId, Long contractId,Long level,ArchiveTreeContractVO2 subTree){
|
|
|
+ public List<ArchiveTreeContract> getTreeContractFromWbs(String tenantId, Long projectId, Long wbsId, ArchiveTreeContractVO2 subTree){
|
|
|
List<ArchiveTreeContract> archiveTreeContracts = new ArrayList<>();
|
|
|
|
|
|
+ Long contractId = subTree.getContractId();
|
|
|
+ Long level = Long.parseLong(subTree.getDisplayHierarchy());
|
|
|
+
|
|
|
//1. 获取子树链表
|
|
|
List<ArchiveTreeContractVO2> treeContractVO2s = new ArrayList<>();
|
|
|
ForestNodeMerger.getTreeList(subTree,treeContractVO2s);
|
|
|
|
|
|
//2. 获取对应合同的树
|
|
|
- List<WbsTreeContractVO6> wbsTreeContractVO6s = contractInfoService.tree6List(wbsId.toString(),projectId.toString(),contractId.toString());
|
|
|
- Iterator<WbsTreeContractVO6> iterator = wbsTreeContractVO6s.iterator();
|
|
|
- while (iterator.hasNext()) {
|
|
|
- WbsTreeContractVO6 treeContractVO6 = iterator.next();
|
|
|
- if (treeContractVO6.getNodeType() > level) {
|
|
|
- iterator.remove();
|
|
|
+ List<WbsTreeContractVO6> wbsTreeContractVO6s = contractInfoService.tree6List(wbsId.toString(),subTree.toString(),contractId.toString());
|
|
|
+
|
|
|
+ List<WbsTreeContractVO6> addWbsNodes = new ArrayList<>();
|
|
|
+
|
|
|
+ //获取已经存在的
|
|
|
+ Map<Long,ArchiveTreeContractVO2> extMap = new LinkedHashMap<>();
|
|
|
+ Map<Long,Long> oldNewMap = new LinkedHashMap<>();
|
|
|
+ for (ArchiveTreeContractVO2 ar :treeContractVO2s) {
|
|
|
+ if (ar.getExtId() !=null ) {
|
|
|
+ extMap.put(ar.getExtId(),ar);
|
|
|
+ oldNewMap.put(ar.getExtId(),ar.getId());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- return archiveTreeContracts;
|
|
|
+ for (WbsTreeContractVO6 wbsTreeVO2:wbsTreeContractVO6s) {
|
|
|
+ //不要中间交工,质量评定和开工报告作为目录节点
|
|
|
+ if (wbsTreeVO2.getMajorDataType() != null ) {
|
|
|
+ if (wbsTreeVO2.getMajorDataType() == 1
|
|
|
+ || wbsTreeVO2.getMajorDataType() == 2
|
|
|
+ || wbsTreeVO2.getMajorDataType() == 3){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //只展示指定层级之上的
|
|
|
+ if (wbsTreeVO2.getNodeType() > level){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ //排除已经有的
|
|
|
+ if (extMap.get(wbsTreeVO2.getId())!= null) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ addWbsNodes.add(wbsTreeVO2);
|
|
|
+ }
|
|
|
+
|
|
|
+ for (WbsTreeContractVO6 wbsTreeVO2:addWbsNodes) {
|
|
|
+ oldNewMap.put(wbsTreeVO2.getId(),SnowFlakeUtil.getId());
|
|
|
+ }
|
|
|
+
|
|
|
+ //遍历构建
|
|
|
+ for (WbsTreeContractVO6 wbsTreeVO2:addWbsNodes) {
|
|
|
+ //只展示指定层级之上的
|
|
|
+ ArchiveTreeContract archiveTree = new ArchiveTreeContract();
|
|
|
+ archiveTree.setTenantId(tenantId);
|
|
|
+ archiveTree.setProjectId(projectId);
|
|
|
+ archiveTree.setContractId(contractId);
|
|
|
+ archiveTree.setId(oldNewMap.get(wbsTreeVO2.getId()));
|
|
|
+ if (wbsTreeVO2.getParentId() == 0) {
|
|
|
+ wbsTreeVO2.setParentId(subTree.getId());
|
|
|
+ }else {
|
|
|
+ archiveTree.setParentId(oldNewMap.get(wbsTreeVO2.getParentId()));
|
|
|
+ }
|
|
|
+
|
|
|
+ archiveTree.setNodeName(wbsTreeVO2.getTitle());
|
|
|
+
|
|
|
+ //设置关联
|
|
|
+ archiveTree.setExtType(1);
|
|
|
+ archiveTree.setExtId(wbsTreeVO2.getId());
|
|
|
+ archiveTree.setExtAttachId(subTree.getId());
|
|
|
+ archiveTree.setDisplayHierarchy(level.toString());
|
|
|
+ archiveTree.setIsDeleted(0);
|
|
|
+ //上传节点
|
|
|
+ if (wbsTreeVO2.getNodeType().longValue() == level) {
|
|
|
+ archiveTree.setIsStorageNode(1);
|
|
|
+ }
|
|
|
+ archiveTreeContracts.add(archiveTree);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ return archiveTreeContracts;
|
|
|
}
|
|
|
|
|
|
}
|