فهرست منبع

Merge branch 'lk20230620'

luok 2 سال پیش
والد
کامیت
f4faadd204

+ 12 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ArchiveTreeContractController.java

@@ -166,7 +166,18 @@ public class ArchiveTreeContractController extends BladeController {
             ar.setArchiveNameSuffix(archiveTreeContract.getArchiveNameSuffix());
         }
 
-        return R.status(archiveTreeContractService.updateById(ar));
+        if(ar.getArchiveAutoType()!=null && ar.getArchiveAutoType()!=2){
+            ar.setArchiveAutoType(archiveTreeContract.getArchiveAutoType());
+        }
+
+        boolean b = archiveTreeContractService.updateById(ar);
+        //更新下级节点为同一规则
+        if(ar.getArchiveAutoType()!=null && ar.getArchiveAutoType()!=2){
+            archiveTreeContractService.updateAllSonNodeIdsForArchiveAutoRule(ar);
+        }
+
+
+        return R.status(b);
     }
 
     /**

+ 5 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeContractMapper.java

@@ -101,4 +101,9 @@ public interface ArchiveTreeContractMapper extends BaseMapper<ArchiveTreeContrac
 
     Integer getCountfromIdIsNull(@Param("id") Long id);
 
+    int updateAllSonNodeIdsForArchiveAutoRule(@feign.Param("archiveAutoType") Integer archiveAutoType,
+                                              @feign.Param("archiveAutoNodeId") Long archiveAutoNodeId,
+                                              @feign.Param("archiveAutoGroupId") Long archiveAutoGroupId,
+                                              @feign.Param("ancestors") String ancestors);
+
 }

+ 29 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeContractMapper.xml

@@ -461,4 +461,33 @@
         WHERE project_id = #{projectId}) and is_deleted = 0 and from_id is null and like concat('%',#{id},'%')
     </select>
 
+    <update id="updateAllSonNodeIdsForArchiveAutoRule">
+
+        <if test="archiveAutoType ==1 ">
+            update m_archive_tree_contract
+            set
+            archive_auto_node_id = #{archiveAutoNodeId}
+            where
+            is_deleted = 0 and ancestors like concat('', #{ancestors}, '%');
+        </if>
+
+        update m_archive_tree_contract
+        set
+        archive_auto_type= #{archiveAutoType}
+        <if test="archiveAutoType ==2 ">
+            ,archive_auto_group_id=#{archiveAutoGroupId},
+            archive_auto_group_select=0
+        </if>
+        where
+        is_deleted = 0 and ancestors like concat('', #{ancestors}, '%')
+        /*最高并卷规则不能覆盖 分类并卷规则,单独组卷规则*/
+        <if test="archiveAutoType ==1 ">
+            and (archive_auto_type != 2 and archive_auto_type != 3 or archive_auto_type is null)
+        </if>
+        /*分类并卷规则不能覆盖单独组卷规则*/
+        <if test="archiveAutoType ==2 ">
+            and (archive_auto_type != 3 or archive_auto_type is null)
+        </if>
+    </update>
+
 </mapper>

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

@@ -114,4 +114,6 @@ public interface IArchiveTreeContractService extends BaseService<ArchiveTreeCont
     List<ArchiveTreeContract> getArchiveTreeContractListByIds(String ids);
 
     List<ArchiveTreeContract> getWbsAssociatedNodes(String contractId);
+
+    void updateAllSonNodeIdsForArchiveAutoRule(ArchiveTreeContract archiveTreeContract);
 }

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

@@ -981,6 +981,16 @@ public class ArchiveTreeContractServiceImpl extends BaseServiceImpl<ArchiveTreeC
 				.eq(ArchiveTreeContract::getStorageType, 4));
 	}
 
+	@Override
+	public void updateAllSonNodeIdsForArchiveAutoRule(ArchiveTreeContract archiveTreeContract) {
+		archiveTreeContractMapper.updateAllSonNodeIdsForArchiveAutoRule(
+				archiveTreeContract.getArchiveAutoType(),
+				archiveTreeContract.getArchiveAutoNodeId(),
+				archiveTreeContract.getArchiveAutoGroupId(),
+				archiveTreeContract.getAncestors() + "," + archiveTreeContract.getId()
+		);
+	}
+
 	/**
 	 * 返回关联质检资料的节点
 	 * @param contractId