|
@@ -239,12 +239,7 @@ public class ArchiveTreeContractSyncImpl {
|
|
|
public void syncBusinessData(Long projectId,Long contractId) {
|
|
|
|
|
|
//检查是否有配置关联质检的节点
|
|
|
- Integer level = 5;
|
|
|
- List<ArchiveTreeContract> associatedNodes = getWbsAssociatedNodes(contractId.toString());
|
|
|
- if (associatedNodes == null || associatedNodes.size() == 0) {
|
|
|
- return;
|
|
|
- }
|
|
|
- level = Integer.valueOf(associatedNodes.get(0).getDisplayHierarchy());
|
|
|
+
|
|
|
|
|
|
|
|
|
//新增的文件题名
|
|
@@ -270,7 +265,7 @@ public class ArchiveTreeContractSyncImpl {
|
|
|
List<ArchiveFile> archiveFiles = getArchiveFiles(contractId);
|
|
|
|
|
|
//获取该合同段下的wbs节点
|
|
|
- List<ArchiveTreeContract> archiveTreeContracts = getArchiveTreeContractsWbs(contractId);
|
|
|
+// List<ArchiveTreeContract> archiveTreeContracts = getArchiveTreeContractsWbs(contractId);
|
|
|
|
|
|
//wbs的keyId到 归档文件的映射
|
|
|
Map<Long,ArchiveFile> archiveKeyIdMap = new LinkedHashMap<>();
|
|
@@ -281,10 +276,10 @@ public class ArchiveTreeContractSyncImpl {
|
|
|
}
|
|
|
|
|
|
//wbs的keyId到 归档树的映射
|
|
|
- Map<Long,Long> archiveTreeContractIdMap = new LinkedHashMap<>();
|
|
|
- for (ArchiveTreeContract ar :archiveTreeContracts) {
|
|
|
- archiveTreeContractIdMap.put(ar.getExtKeyId(),ar.getId());
|
|
|
- }
|
|
|
+// Map<Long,Long> archiveTreeContractIdMap = new LinkedHashMap<>();
|
|
|
+// for (ArchiveTreeContract ar :archiveTreeContracts) {
|
|
|
+// archiveTreeContractIdMap.put(ar.getExtKeyId(),ar.getId());
|
|
|
+// }
|
|
|
|
|
|
//获取合同段wbs划分树,用来组织树
|
|
|
List<WbsTreeContractVO6> wbsTrees = contractInfoService.tree8(lWbsId.toString(), projectId.toString(), contractId.toString());
|
|
@@ -309,12 +304,120 @@ public class ArchiveTreeContractSyncImpl {
|
|
|
wbsTreeKeyToIdMap.put(wbsTreeContractVO6.getPKeyId(),wbsTreeContractVO6.getId());
|
|
|
}
|
|
|
|
|
|
+ Integer level = 5;
|
|
|
+ List<ArchiveTreeContract> associatedNodes = getWbsAssociatedNodes(contractId.toString());
|
|
|
+ if (associatedNodes == null || associatedNodes.size() == 0) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ //遍历所有的关联节点
|
|
|
+ for (ArchiveTreeContract node :associatedNodes) {
|
|
|
+ Integer nodeLevel = Integer.valueOf(associatedNodes.get(0).getDisplayHierarchy());
|
|
|
+
|
|
|
+ //获取该合同段下的wbs节点
|
|
|
+ List<ArchiveTreeContract> archiveTreeContracts = getArchiveTreeContractsWbs(contractId,node.getId());
|
|
|
+
|
|
|
+ //wbs的keyId到 归档树的映射
|
|
|
+ Map<Long,Long> archiveTreeContractIdMap = new LinkedHashMap<>();
|
|
|
+ for (ArchiveTreeContract ar :archiveTreeContracts) {
|
|
|
+ archiveTreeContractIdMap.put(ar.getExtKeyId(),ar.getId());
|
|
|
+ }
|
|
|
+
|
|
|
+ syncNode(informationQueryList,wbsTreeContractVO6Map,wbsTreeKeyToSortMap,wbsTreeKeyToIdMap,
|
|
|
+ archiveKeyIdMap,archiveTreeContractIdMap,
|
|
|
+ nodeLevel,node.getMajorDataType(),contractIndfo);
|
|
|
+ }
|
|
|
+// level = Integer.valueOf(associatedNodes.get(0).getDisplayHierarchy());
|
|
|
+//
|
|
|
+//
|
|
|
+// //遍历,所有已归档文件
|
|
|
+// for (InformationQuery info: informationQueryList) {
|
|
|
+//
|
|
|
+// if (info.getWbsId() != null) {
|
|
|
+// ArchiveFile archiveFile = archiveKeyIdMap.get(info.getWbsId());
|
|
|
+// Integer sort = wbsTreeKeyToSortMap.get(info.getWbsId());
|
|
|
+//
|
|
|
+// //归档文件里没有则新增
|
|
|
+// if ( archiveFile == null) {
|
|
|
+// if (sort!= null) {
|
|
|
+// info.setSort(sort);
|
|
|
+// }
|
|
|
+// newInformationQueryList.add(info);
|
|
|
+// }//文件不同,则说明重签过,需要更新,顺序不同也更新
|
|
|
+// else if (!archiveFile.getPdfFileUrl().equals(info.getEVisaPdfUrl())
|
|
|
+// || (sort!= null && sort != archiveFile.getSort()) ) {
|
|
|
+//
|
|
|
+// //需要更新的
|
|
|
+// //todo 后续需增加判断已组件或者锁定的不要更新?
|
|
|
+// archiveFile.setPdfFileUrl(info.getEVisaPdfUrl());
|
|
|
+// archiveFile.setEVisaFile(info.getEVisaPdfUrl());
|
|
|
+// archiveFile.setFilePage(info.getEVisaPdfPage());
|
|
|
+// archiveFile.setFileSize(info.getEVisaPdfSize());
|
|
|
+// archiveFile.setSort(sort);
|
|
|
+// updateArchiveFiles.add(archiveFile);
|
|
|
+// }
|
|
|
+// }
|
|
|
+// }
|
|
|
+//
|
|
|
+// for (InformationQuery info: newInformationQueryList) {
|
|
|
+//
|
|
|
+// Long keyId = info.getWbsId();
|
|
|
+// //通过keyid 获取id
|
|
|
+// Long id = wbsTreeKeyToIdMap.get(keyId);
|
|
|
+// if (id == null) {
|
|
|
+// continue;
|
|
|
+// }
|
|
|
+// //向上找到符合条件的level
|
|
|
+// Long levelKeyId = findPKeyIdByNodeType(wbsTreeContractVO6Map,id,level);
|
|
|
+//
|
|
|
+// //根据map获取到对应的归档树节点nodeid
|
|
|
+// Long nodeId = archiveTreeContractIdMap.get(levelKeyId);
|
|
|
+// //生成新增的归档文件
|
|
|
+// ArchiveFile archiveFile = getArchiveFile(info,nodeId,info.getWbsId(),contractIndfo.archivesUnit());
|
|
|
+// newArchiveFiles.add(archiveFile);
|
|
|
+// }
|
|
|
+//
|
|
|
+// //刷新文件
|
|
|
+// handleAddandUpdateFiles(newArchiveFiles,updateArchiveFiles);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ void syncNode(List<InformationQuery> informationQueryList,
|
|
|
+ Map<Long,WbsTreeContractVO6> wbsTreeContractVO6Map,
|
|
|
+ Map<Long,Integer> wbsTreeKeyToSortMap,
|
|
|
+ Map<Long,Long> wbsTreeKeyToIdMap,
|
|
|
+ Map<Long,ArchiveFile> archiveKeyIdMap,
|
|
|
+ Map<Long,Long> archiveTreeContractIdMap,
|
|
|
+ Integer level,
|
|
|
+ String majarDataType,
|
|
|
+ ContractInfo contractIndfo) {
|
|
|
+
|
|
|
+ //新增的文件题名
|
|
|
+ List<InformationQuery> newInformationQueryList = new ArrayList<>();
|
|
|
+
|
|
|
+ //新增的文件
|
|
|
+ List<ArchiveFile> newArchiveFiles = new ArrayList<>();
|
|
|
+ //更新的文件
|
|
|
+ List<ArchiveFile> updateArchiveFiles = new ArrayList<>();
|
|
|
+
|
|
|
//遍历,所有已归档文件
|
|
|
for (InformationQuery info: informationQueryList) {
|
|
|
+ Long keyId = info.getWbsId();
|
|
|
+ if (keyId != null) {
|
|
|
+ Long id = wbsTreeKeyToIdMap.get(keyId);
|
|
|
+
|
|
|
+
|
|
|
+ ArchiveFile archiveFile = archiveKeyIdMap.get(keyId);
|
|
|
+ Integer sort = wbsTreeKeyToSortMap.get(keyId);
|
|
|
+
|
|
|
+ //业内类型不匹配则不处理
|
|
|
+ WbsTreeContractVO6 treeContractVO6 = wbsTreeContractVO6Map.get(id);
|
|
|
+ if (treeContractVO6.getMajorDataType()!= null) {
|
|
|
+ if (!majarDataType.contains(treeContractVO6.getMajorDataType().toString())) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- if (info.getWbsId() != null) {
|
|
|
- ArchiveFile archiveFile = archiveKeyIdMap.get(info.getWbsId());
|
|
|
- Integer sort = wbsTreeKeyToSortMap.get(info.getWbsId());
|
|
|
|
|
|
//归档文件里没有则新增
|
|
|
if ( archiveFile == null) {
|
|
@@ -324,7 +427,7 @@ public class ArchiveTreeContractSyncImpl {
|
|
|
newInformationQueryList.add(info);
|
|
|
}//文件不同,则说明重签过,需要更新,顺序不同也更新
|
|
|
else if (!archiveFile.getPdfFileUrl().equals(info.getEVisaPdfUrl())
|
|
|
- || (sort!= null && sort != archiveFile.getSort()) ) {
|
|
|
+ || (sort!= null && sort != archiveFile.getSort()) ) {
|
|
|
|
|
|
//需要更新的
|
|
|
//todo 后续需增加判断已组件或者锁定的不要更新?
|
|
@@ -399,10 +502,11 @@ public class ArchiveTreeContractSyncImpl {
|
|
|
return archiveFiles;
|
|
|
}
|
|
|
|
|
|
- public List<ArchiveTreeContract> getArchiveTreeContractsWbs(Long contractId) {
|
|
|
+ public List<ArchiveTreeContract> getArchiveTreeContractsWbs(Long contractId,Long attachId) {
|
|
|
|
|
|
List<ArchiveTreeContract> archiveTreeContracts = archiveTreeContractMapper.selectList(Wrappers.<ArchiveTreeContract>query().lambda()
|
|
|
.eq(ArchiveTreeContract::getContractId, contractId)
|
|
|
+ .eq(ArchiveTreeContract::getExtAttachId, attachId)
|
|
|
.eq(ArchiveTreeContract::getExtType, 2));
|
|
|
return archiveTreeContracts;
|
|
|
|