Răsfoiți Sursa

同步电子文件

laibulaizheli 2 luni în urmă
părinte
comite
b320b05ff8

+ 14 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/WbsTreeContractVO6.java

@@ -3,6 +3,7 @@ package org.springblade.manager.vo;
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import org.springblade.core.tool.node.INode;
 import org.springblade.core.tool.node.TreeNode;
@@ -40,6 +41,10 @@ public class WbsTreeContractVO6 extends WbsTreeContract implements INode<WbsTree
 
     private Integer sort;
 
+    @ApiModelProperty(value = "1 水利工程 2是数字化")
+    private Integer nodeClass;
+
+
     @JsonInclude(JsonInclude.Include.NON_EMPTY)
     private Boolean hasChildren;
 
@@ -131,6 +136,15 @@ public class WbsTreeContractVO6 extends WbsTreeContract implements INode<WbsTree
         this.sort = sort;
     }
 
+    public Integer getNodeClass() {
+        return nodeClass;
+    }
+
+    public void setNodeClass(Integer nodeClass) {
+        this.nodeClass = nodeClass;
+    }
+
+
     @Override
     public String toString() {
         return "WbsTreeContractVO{" +

+ 3 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ContractInfoMapper.xml

@@ -77,6 +77,7 @@
         <result column="major_data_type" property="majorDataType"/>
         <result column="old_id" property="oldId"/>
         <result column="sort" property="sort"/>
+        <result column="node_class" property="nodeClass"/>
     </resultMap>
 
 
@@ -472,7 +473,8 @@
         d.id AS "key",
         old_id,
         major_data_type,
-        sort
+        sort,
+        node_class
         FROM m_wbs_tree_contract d
         WHERE
         d.is_deleted = 0

+ 54 - 5
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveTreeContractSyncImpl.java

@@ -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);
 
         //设置认证