Bladeren bron

平天路案卷相关

laibulaizheli 2 weken geleden
bovenliggende
commit
178c45bfc5

+ 6 - 0
blade-service-api/blade-archive-api/src/main/java/org/springblade/archive/feign/ArchiveAutoClient.java

@@ -43,5 +43,11 @@ public interface ArchiveAutoClient {
     @PostMapping(API_PREFIX + "/batchUpdateExpertId")
     R<Boolean> batchUpdateExpertId(@RequestBody UpdateExpertVO vo);
 
+    /**
+     * 批量修改档案申请验收状态
+     */
+    @PostMapping(API_PREFIX + "/removeArchivesByNodeIds")
+    void removeArchivesByNodeIds(@RequestBody List<Long> ids);
+
 
 }

+ 21 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/controller/ArchivesAutoController.java

@@ -151,6 +151,27 @@ public class ArchivesAutoController extends BladeController {
 			queryVo.setNodeIdArray(ids);
 		}
 		IPage<ArchivesAutoVO> pages = archivesAutoService.selectArchivesAutoFilePage(queryVo);
+		int test = 0;
+		//todo 后续去掉
+		if (test > 1) {
+			List<String> nodeIdArray = queryVo.getNodeIdArray();
+			// 注意:在设置nodeIdArray的条件分支外,nodeIdArray可能为null
+			if (nodeIdArray != null) {
+				// 转换为List<Long>
+				List<Long> nodeIds = nodeIdArray.stream()
+						.map(Long::valueOf)
+						.collect(Collectors.toList());
+				// 调用方法
+				List<Long> archiveIds = archivesAutoService.getArchiveIdsByNodes(nodeIds);
+
+				// 新增代码:打印结果(保持一行输出)
+				String idsStr = archiveIds.stream()
+						.map(Object::toString)
+						.collect(Collectors.joining(", "));
+				System.out.println("Archive IDs: (" + idsStr + ")");
+
+			}
+		}
 		return R.data(pages);
 	}
 

+ 5 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/external/impl/ExternalDataArchiveAutoService.java

@@ -196,6 +196,11 @@ public class ExternalDataArchiveAutoService {
                     localArchive.setName(externalArchive.getName());
                     localArchive.setFileNumber(externalArchive.getFileNumber());
                     localArchive.setNodeId(externalArchive.getNodeId());
+                    if (externalArchive.getAutoFileSort()!= null) {
+                        localArchive.setAutoFileSort(externalArchive.getAutoFileSort());
+                    }
+
+
                     upArchives.add(localArchive);
                 }
             }

+ 5 - 1
blade-service/blade-archive/src/main/java/org/springblade/archive/feign/ArchiveAutoClientImpl.java

@@ -68,6 +68,10 @@ public class ArchiveAutoClientImpl implements ArchiveAutoClient {
         return R.data(true);
     }
 
+    @Override
+    public void removeArchivesByNodeIds(List<Long> ids) {
+        List<Long> archiveIds = archivesAutoService.getArchiveIdsByNodes(ids);
 
-
+        archivesAutoService.reomoveArchiveAndFile(archiveIds);
+    }
 }

+ 4 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/mapper/ArchivesAutoMapper.java

@@ -138,6 +138,8 @@ public interface ArchivesAutoMapper extends BaseMapper<ArchivesAuto> {
 
 	Integer splitFiles(@Param("ids") List<Long> ids);
 
+	Integer removeFilesByArchiveIds(@Param("ids") List<Long> ids);
+
 	List<DictBiz> getCarrierTypeByDict();
 
 	void batchDestroyByIds(@Param("ids")List<String> ids,@Param("userId") Long userId);
@@ -186,6 +188,8 @@ public interface ArchivesAutoMapper extends BaseMapper<ArchivesAuto> {
 	IPage<ArchiveInspectVO> getNodeArchives2(IPage<ArchiveInspectVO> page,@Param("id") Long nodeId,@Param("projectId") Long projectId,@Param("searchType") Integer searchType,@Param("searchValue") String searchValue,@Param("userId") Long userId,@Param("conclusionId") Long conclusionId);
 
     List<ArchivesAuto> getNodeAllArchive(@Param("ids") List<Long> ids);
+	List<ArchivesAuto> getArchiveIdsByNodes(@Param("ids") List<Long> ids);
+
 
     Integer getUserArchiveTotal(@Param("projectId") Long projectId,@Param("userId") Long userId);
 

+ 18 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/mapper/ArchivesAutoMapper.xml

@@ -1399,6 +1399,15 @@
             #{id}
         </foreach>
     </select>
+
+    <select id="getArchiveIdsByNodes" resultType="org.springblade.archive.entity.ArchivesAuto">
+        select id
+        from u_archives_auto where is_deleted = 0  and node_id in
+        <foreach collection="ids" item="id" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </select>
+
     <select id="getUserArchiveTotal" resultType="java.lang.Integer">
         SELECT COUNT(1) from u_archives_auto
         WHERE project_id = #{projectId} and is_deleted = 0 and FIND_IN_SET(#{userId},expert_id)
@@ -1484,6 +1493,15 @@
             #{id}
         </foreach>
     </update>
+
+    <update id="removeFilesByArchiveIds">
+        update u_archive_file set is_deleted = 1 where
+        archive_id in
+        <foreach collection="ids" item="id" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </update>
+
     <update id="batchDestroyByIds">
         update u_archives_auto set is_deleted = 1 ,is_destroy = 1 ,update_user = #{userId} where
         id in

+ 4 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/service/IArchivesAutoService.java

@@ -173,4 +173,8 @@ public interface IArchivesAutoService extends BaseService<ArchivesAuto> {
 	List<ArchivesAutoVO5> selectArchivesAutoFileFormDownload(Long projectId, Long contractId, List<String> ids);
 
 	boolean sortRule(Long projectId, Integer type);
+
+	List<Long> getArchiveIdsByNodes(List<Long> ids);
+
+	void reomoveArchiveAndFile(List<Long> archiveIds);
 }

+ 35 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/service/impl/ArchivesAutoServiceImpl.java

@@ -5005,4 +5005,39 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 		archivesSortRuleService.saveOrUpdate(one);
 		return true;
 	}
+
+	@Override
+	public List<Long> getArchiveIdsByNodes(List<Long> nodeIds) {
+		// 处理空输入
+		if (nodeIds == null || nodeIds.isEmpty()) {
+			return Collections.emptyList();
+		}
+
+		// 获取ArchivesAuto对象列表
+		List<ArchivesAuto> list = autoMapper.getArchiveIdsByNodes(nodeIds);
+
+		// 处理空结果
+		if (list == null || list.isEmpty()) {
+			return Collections.emptyList();
+		}
+
+		// 提取ID并返回
+		return list.stream()
+				.map(ArchivesAuto::getId)
+				.collect(Collectors.toList());
+	}
+
+	@Override
+	public void reomoveArchiveAndFile(List<Long> archiveIds) {
+		// 处理空输入
+		if (archiveIds == null || archiveIds.isEmpty()) {
+			return ;
+		}
+
+		// 获取ArchivesAuto对象列表
+		this.deleteLogic(archiveIds);
+
+		// 处理空结果
+		autoMapper.removeFilesByArchiveIds(archiveIds);
+	}
 }

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

@@ -145,4 +145,6 @@ public interface IArchiveTreeContractService extends BaseService<ArchiveTreeCont
     void addArchiveTreeContract(List<ArchiveTreeContract> archiveTreeContracts, Long rootId);
 
     Long getNodeIdByName(String projectName, String contractName, String nodeName);
+
+    boolean deleteTreeEx(Long id);
 }

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

@@ -740,6 +740,34 @@ public class ArchiveTreeContractServiceImpl extends BaseServiceImpl<ArchiveTreeC
 		return true;
 	}
 
+	/**
+	 * 更轻量的删除节点树,同时删除节点下的案卷和文件
+	 * @param id
+	 * @return
+	 */
+	public boolean deleteTreeEx(Long id){
+
+		ArchiveTreeContract dstNode = this.getById(id);
+		if (dstNode == null ) {
+			return false;
+		}
+
+		List<Long> ids = new ArrayList<>();
+		List<ArchiveTreeContract> archiveTreeContracts = this.queryAllChildByAncestors(id.toString(),dstNode.getContractId());
+		//遍历archiveTreeContracts 取id,放到ids
+		for (ArchiveTreeContract archiveTreeContract : archiveTreeContracts) {
+			ids.add(archiveTreeContract.getId());
+		}
+
+		ids.add(id);
+		this.deleteLogic(ids);
+
+		//删除案卷
+		archiveAutoClient.removeArchivesByNodeIds(ids);
+
+		return true;
+	}
+
 
 	/**
 	 * 批量更新