|
@@ -574,8 +574,11 @@ public class ArchiveTreeContractSyncImpl {
|
|
|
continue;
|
|
|
}
|
|
|
if (treeContractVO6.getMajorDataType()!= null) {
|
|
|
- if (!majarDataType.contains(treeContractVO6.getMajorDataType().toString())) {
|
|
|
- continue;
|
|
|
+// if (!majarDataType.contains(treeContractVO6.getMajorDataType().toString())) {
|
|
|
+// continue;
|
|
|
+// }
|
|
|
+ if (!shouldIncludeTreeContract(treeContractVO6, majarDataType)) {
|
|
|
+ continue; // 跳过不符合条件的项
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -644,13 +647,19 @@ public class ArchiveTreeContractSyncImpl {
|
|
|
//向上找到符合条件的level
|
|
|
Long levelKeyId = findPKeyIdByNodeType(wbsTreeContractVO6Map,id,level);
|
|
|
|
|
|
+ Integer nodeClass = 1;
|
|
|
+ WbsTreeContractVO6 treeContractVO6 = wbsTreeContractVO6Map.get(id);
|
|
|
+ if (treeContractVO6!= null && treeContractVO6.getNodeClass()!= null ) {
|
|
|
+ nodeClass = treeContractVO6.getNodeClass();
|
|
|
+ }
|
|
|
+
|
|
|
//根据map获取到对应的归档树节点nodeid
|
|
|
Long nodeId = archiveTreeContractIdMap.get(levelKeyId);
|
|
|
if (nodeId == null) {
|
|
|
continue;
|
|
|
}
|
|
|
//生成新增的归档文件
|
|
|
- ArchiveFile archiveFile = getArchiveFile(info,nodeId,info.getWbsId(),contractIndfo,classify);
|
|
|
+ ArchiveFile archiveFile = getArchiveFile(info,nodeId,info.getWbsId(),contractIndfo,classify,nodeClass);
|
|
|
if (archiveFile != null) {
|
|
|
newArchiveFiles.add(archiveFile);
|
|
|
}
|
|
@@ -660,6 +669,46 @@ public class ArchiveTreeContractSyncImpl {
|
|
|
handleAddandUpdateFiles(newArchiveFiles,updateArchiveFiles);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 针对质量评定的处理
|
|
|
+ * @param treeContractVO6
|
|
|
+ * @param majarDataType
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public boolean shouldIncludeTreeContract(WbsTreeContractVO6 treeContractVO6, String majarDataType) {
|
|
|
+ if (treeContractVO6.getMajorDataType() == null) {
|
|
|
+ return false; // 如果 majorDataType 为空,过滤
|
|
|
+ }
|
|
|
+
|
|
|
+ String currentMajor = treeContractVO6.getMajorDataType().toString();
|
|
|
+
|
|
|
+ // 检查是否是特殊类型 (2,8,9)
|
|
|
+ if (currentMajor.equals("2") || currentMajor.equals("8") || currentMajor.equals("9")) {
|
|
|
+ // 特殊类型处理:根据 nodeType 匹配对应的数字
|
|
|
+ if (treeContractVO6.getNodeType() != null) {
|
|
|
+ switch (treeContractVO6.getNodeType()) {
|
|
|
+ case 1: // 单位工程 → 匹配 2
|
|
|
+ return majarDataType.contains("2");
|
|
|
+ case 2: // 分部工程 → 匹配 8
|
|
|
+ case 3: // 子分部工程 → 匹配 8
|
|
|
+ return majarDataType.contains("8");
|
|
|
+ case 4: // 分项工程 → 匹配 9
|
|
|
+ case 5: // 子分项工程 → 匹配 9
|
|
|
+ return majarDataType.contains("9");
|
|
|
+ default:
|
|
|
+ return majarDataType.contains(currentMajor);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // nodeType 为空时,按原逻辑处理
|
|
|
+ return majarDataType.contains(currentMajor);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // 非特殊类型 (1,4 等):直接匹配
|
|
|
+ return majarDataType.contains(currentMajor);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 刷新文件
|
|
|
* @param newArchiveFiles
|
|
@@ -732,7 +781,7 @@ public class ArchiveTreeContractSyncImpl {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public ArchiveFile getArchiveFile(InformationQuery query,Long nodeId,Long keyId,ContractInfo contractIndfo,Integer classify) {
|
|
|
+ public ArchiveFile getArchiveFile(InformationQuery query,Long nodeId,Long keyId,ContractInfo contractIndfo,Integer classify,Integer nodeClass) {
|
|
|
ArchiveFile archiveFile = new ArchiveFile();
|
|
|
archiveFile.setNodeId(nodeId.toString());
|
|
|
archiveFile.setNodeExtId(keyId);
|
|
@@ -759,7 +808,7 @@ public class ArchiveTreeContractSyncImpl {
|
|
|
archiveFile.setFileTime(businessTime);
|
|
|
}
|
|
|
|
|
|
- archiveFile.setSourceType(1);
|
|
|
+ archiveFile.setSourceType(nodeClass);
|
|
|
archiveFile.setIsArchive(0);
|
|
|
|
|
|
//设置认证
|