luok 2 роки тому
батько
коміт
c2ae89ef37

+ 6 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/ArchiveTree.java

@@ -1,5 +1,7 @@
 package org.springblade.manager.entity;
 
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -144,22 +146,26 @@ public class ArchiveTree extends BaseEntity {
 	* 自动立卷类型 1最高 2分类并卷 3单独并卷
 	*/
     @ApiModelProperty(value = "自动立卷类型")
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private Integer archiveAutoType;
 	/**
 	* 自动立卷设置的节点ID
 	*/
     @ApiModelProperty(value = "自动立卷设置的节点ID")
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private Long archiveAutoNodeId;
 
     /**
      * 分类并卷的分类ID,当archiveAutoType=2时,用来确定同一类型。新增时随机生成,一同提交设置的节点都是同一类。 编辑时 采用已有的
      */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private Long archiveAutoGroupId;
 
     /**
      * 是否自动立卷规则选择设置的节点 选中的节点设为1 方便页面显示列表,方便同步判断
      */
     @ApiModelProperty(value = "是否为设置的节点")
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private Integer archiveAutoGroupSelect;
 
     private Long fromId;

+ 8 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/ArchiveTreeContract.java

@@ -16,9 +16,13 @@
  */
 package org.springblade.manager.entity;
 
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import java.io.Serializable;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang.StringUtils;
 import org.springblade.core.mp.base.BaseEntity;
@@ -142,20 +146,24 @@ public class ArchiveTreeContract extends BaseEntity {
 	/**
 	* 自动立卷类型 1最高 2分类并卷 3单独组卷   说明:1规则下可以有2或3;2和3两种规则互斥,2下不能有3,3下不能有2;
 	*/
+	@TableField(updateStrategy = FieldStrategy.IGNORED)
 	private Integer archiveAutoType;
 	/**
 	* 默认组卷设置的最高并卷节点Id  当archiveAutoType不为2,和3时用来限制范围
 	*/
+	@TableField(updateStrategy = FieldStrategy.IGNORED)
 	private Long archiveAutoNodeId;
 
 	/**
 	 * 分类并卷的分类ID,当archiveAutoType=2时,用来确定同一类型。新增时随机生成,一同提交设置的节点都是同一类。 编辑时 采用已有的
 	 */
+	@TableField(updateStrategy = FieldStrategy.IGNORED)
 	private Long archiveAutoGroupId;
 
 	/**
 	 * 设置分类并卷选择的节点设为1,其下范围内节点设为0
 	 */
+	@TableField(updateStrategy = FieldStrategy.IGNORED)
 	private Integer archiveAutoGroupSelect;
 
 

+ 0 - 6
blade-service/blade-business/src/main/java/org/springblade/business/mapper/ArchiveFileMapper.xml

@@ -77,9 +77,6 @@
         <if test="vo.projectId != null and vo.projectId != ''">
             and project_id = #{vo.projectId}
         </if>
-        <if test="vo.contractId != null and vo.contractId != ''">
-            and contract_id = #{vo.contractId}
-        </if>
         <if test="vo.archiveId != null and vo.archiveId != ''">
             and archive_id = #{vo.archiveId}
         </if>
@@ -120,9 +117,6 @@
         <if test="vo.projectId != null and vo.projectId != ''">
             and project_id = #{vo.projectId}
         </if>
-        <if test="vo.contractId != null and vo.contractId != ''">
-            and contract_id = #{vo.contractId}
-        </if>
         <if test="vo.archiveId != null and vo.archiveId != ''">
             and archive_id = #{vo.archiveId}
         </if>

+ 2 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeMapper.java

@@ -47,6 +47,8 @@ public interface ArchiveTreeMapper extends BaseMapper<ArchiveTree> {
     int removeAllSonNodeIdsForArchiveAutoRule_3(@Param("archiveAutoType") Integer archiveAutoType,
                                                 @Param("ancestors") String ancestors,
                                                 @Param("nodeId") Long nodeId);
+
+    int removeAllSonNodeforTypeIsNUll(@Param("ancestors") String ancestors,@Param("nodeId") Long nodeId);
     int removeNodeForArchiveAutoRule_Group(@Param("archiveAutoGroupId") Long archiveAutoGroupId);
     /**
      * 查看分类并卷规则-获取大类所有节点

+ 18 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeMapper.xml

@@ -310,6 +310,20 @@
         </if>
     </update>
 
+
+    <update id="removeAllSonNodeforTypeIsNUll">
+        update m_archive_tree
+        set
+            archive_auto_type = null,
+            archive_auto_group_select =NULL
+        where
+           is_deleted = 0
+           and ancestors like concat('', #{ancestors}, '%')
+           and archive_auto_type = 1
+           and archive_auto_node_id is NULL
+           or id=#{nodeId} ;
+    </update>
+
     <update id="removeAllSonNodeIdsForArchiveAutoRule_1">
         update m_archive_tree
         set
@@ -322,7 +336,8 @@
 
         update m_archive_tree
         set
-            archive_auto_type = NULL
+            archive_auto_type = NULL,
+            archive_auto_group_select =NULL
         where
             is_deleted = 0
           and ancestors like concat('', #{ancestors}, '%')
@@ -335,7 +350,8 @@
         update m_archive_tree
         set
             /*取消规则 恢复默认规则 不需要设置为null,如果最高并卷节点取消规则,archive_auto_node_id会为空,相当于无规则不会进到自动组卷流程*/
-            archive_auto_type = 1
+            archive_auto_type = 1,
+            archive_auto_group_select =NULL
         where
             is_deleted = 0
           and ancestors like concat('', #{ancestors}, '%')

+ 3 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveAutoRuleSyncImpl.java

@@ -353,6 +353,9 @@ public class ArchiveAutoRuleSyncImpl {
                             //已经是客户级了不用理
                         }
                     }
+                }else{
+                    //type为null的,也要更新 防止在项目级取消规则了
+                    contractVO2.setFlag(1);
                 }
             }
             //archiveAutoType  与项目级一致  不用处理

+ 6 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveTreeContractServiceImpl.java

@@ -214,6 +214,11 @@ public class ArchiveTreeContractServiceImpl extends BaseServiceImpl<ArchiveTreeC
 			archiveTreeContractDTO.setTreeSort(parent.getTreeSort());
 			archiveTreeContractDTO.setContractId(parent.getContractId());
 			archiveTreeContractDTO.setTreeCode(parent.getTreeCode());
+
+			archiveTreeContractDTO.setArchiveAutoNodeId(parent.getArchiveAutoNodeId());
+			archiveTreeContractDTO.setArchiveAutoType(parent.getArchiveAutoType());
+			archiveTreeContractDTO.setArchiveAutoGroupId(parent.getArchiveAutoGroupId());
+			archiveTreeContractDTO.setArchiveAutoGroupSelect(0);
 		}
 
 		archiveTreeContractDTO.setIsDeleted(BladeConstant.DB_NOT_DELETED);
@@ -456,6 +461,7 @@ public class ArchiveTreeContractServiceImpl extends BaseServiceImpl<ArchiveTreeC
 
 		this.saveBatch(saveList);
 		this.updateBatchById(upList);
+
 		return true;
 	}
 

+ 10 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveTreeServiceImpl.java

@@ -317,6 +317,11 @@ public class ArchiveTreeServiceImpl extends BaseServiceImpl<ArchiveTreeMapper, A
             archiveTreeDTO.setTenantId(parent.getTenantId());
             String ancestors = parent.getAncestors() + StringPool.COMMA + archiveTreeDTO.getParentId();
             archiveTreeDTO.setAncestors(ancestors);
+
+            archiveTreeDTO.setArchiveAutoType(parent.getArchiveAutoType());
+            archiveTreeDTO.setArchiveAutoNodeId(parent.getArchiveAutoNodeId());
+            archiveTreeDTO.setArchiveAutoGroupId(parent.getArchiveAutoGroupId());
+            archiveTreeDTO.setArchiveAutoGroupSelect(0);
         }
 
         archiveTreeDTO.setIsDeleted(BladeConstant.DB_NOT_DELETED);
@@ -670,6 +675,11 @@ public class ArchiveTreeServiceImpl extends BaseServiceImpl<ArchiveTreeMapper, A
                         String ancestors = node.getAncestors()+","+nodeId;
                         baseMapper.removeAllSonNodeIdsForArchiveAutoRule_3(node.getArchiveAutoType(),ancestors,nodeId);
                     }
+                }else{
+                    //为null的话 主要是出现脏数据。当做维护处理
+                    //可以把当前节点下的archive_auto_type=1,archive_auto_node_id为null的 数据archive_auto_type改为null
+                    String ancestors = node.getAncestors()+","+nodeId;
+                    baseMapper.removeAllSonNodeforTypeIsNUll(ancestors,nodeId);
                 }
             }
         }catch (Exception e){