瀏覽代碼

修复归档数据的代码

huangtf 1 年之前
父節點
當前提交
a319ea6dd3

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

@@ -54,6 +54,8 @@ public interface ArchivesAutoMapper extends BaseMapper<ArchivesAuto> {
 
 	List<ArchivesAuto> selectArchivesAutoFilePage(@Param("current") Integer current, @Param("size") Integer size, @Param("vo")  ArchivesAutoVO vo);
 
+	List<ArchivesAuto> selectArchivesAutoFilePageZero(@Param("current") Integer current, @Param("size") Integer size, @Param("vo")  ArchivesAutoVO vo);
+
 	Integer updateArchivesAutoFileByNodeId(@Param("ids") List<Long> ids,@Param("nodeId") String nodeId,@Param("nodeSort") String nodeSort);
 
 	/**
@@ -192,4 +194,6 @@ public interface ArchivesAutoMapper extends BaseMapper<ArchivesAuto> {
     ArchiveConclusion getArchiveConclusion(@Param("projectId") Long projectId,@Param("userId") Long userId);
 
     List<ArchivesAutoVO2> getAllArchive(@Param("ids") List<Long> longs);
+
+	List<ArchiveFile> searchArchiveFileByArchivesId(@Param("ids") List<Long> ids);
 }

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

@@ -177,6 +177,38 @@
         limit #{current}, #{size}
     </select>
 
+
+    <select id="selectArchivesAutoFilePageZero" resultMap="archivesAutoResultMap">
+        select * from u_archives_auto u LEFT JOIN m_archive_tree_contract m ON u.node_id = m.id
+        where u.is_deleted = 0 and u.page_n = 0
+        <if test="vo.projectId != null and vo.projectId != ''">
+            and u.project_id = #{vo.projectId}
+        </if>
+        <if test="vo.queryValue != null and vo.queryValue != ''">
+            and (u.name like concat('%',#{vo.queryValue},'%') or u.file_number like concat('%',#{vo.queryValue},'%'))
+        </if>
+        <choose>
+            <when test="vo.isArchive != null and vo.isArchive != ''">
+                and u.is_archive = #{vo.isArchive}
+            </when>
+            <otherwise>
+                and (u.is_archive is null or u.is_archive != 1)
+            </otherwise>
+        </choose>
+        <if test="vo.isAutoFile != null and vo.isAutoFile != ''">
+            and u.is_auto_file = #{vo.isAutoFile}
+        </if>
+        <if test="vo.nodeIds != null and vo.nodeIds != ''">
+            and u.node_id in
+            <foreach collection="vo.nodeIdArray" item="nodeId" open="(" separator="," close=")">
+                #{nodeId}
+            </foreach>
+        </if>
+        order by m.tree_sort,u.auto_file_sort is null ,u.auto_file_sort,u.file_number is null,
+        SUBSTRING_INDEX(u.file_number, '_', 1), SUBSTRING_INDEX(u.file_number, '_', -1) + 0 ,u.create_time asc
+        limit #{current}, #{size}
+    </select>
+
     <update id="updateArchivesAutoFileByNodeId">
         update u_archives_auto set node_id = #{nodeId},tree_sort = #{nodeSort} where
         id in
@@ -964,6 +996,16 @@
             #{id}
         </foreach>
     </select>
+    <select id="searchArchiveFileByArchivesId" resultType="org.springblade.business.entity.ArchiveFile">
+        select * from u_archive_file where is_deleted = 0
+        <if test="ids != null and ids != ''">
+            and archive_id in
+            <foreach collection="ids" item="id" open="(" separator="," close=")">
+                #{id}
+            </foreach>
+        </if>
+        order by sort,create_time
+    </select>
     <select id="getArchives" resultType="org.springblade.archive.entity.ArchivesAuto">
         select id,name
         from u_archives_auto
@@ -1110,4 +1152,6 @@
     </update>
 
 
+
+
 </mapper>

+ 43 - 1
blade-service/blade-archive/src/main/java/org/springblade/archive/service/impl/ArchivesAutoServiceImpl.java

@@ -75,6 +75,7 @@ import org.springblade.manager.feign.WbsInfoClient;
 import org.springblade.manager.vo.ArchiveTreeContractVO2;
 import org.springblade.manager.feign.ContractClient;
 import org.springblade.manager.feign.ProjectClient;
+import org.springblade.resource.feign.CommonFileClient;
 import org.springblade.resource.feign.NewIOSSClient;
 import org.springblade.system.entity.DictBiz;
 import org.springblade.system.feign.IDictBizClient;
@@ -150,7 +151,7 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 	//表格宽度
 	private static int widthPercentage = 100;
 
-
+	private final CommonFileClient commonFileClient;
 
 
 
@@ -479,6 +480,12 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 		//分页
 		int current = (vo.getCurrent() - 1) * vo.getSize();
 
+		//修复代码后续删除
+		int test = 0 ;
+		if (test == 1) {
+			fixArchivesAutoFile(vo);
+		}
+
 		List<ArchivesAuto> pageList = this.baseMapper.selectArchivesAutoFilePage(current, vo.getSize(), vo);
 		//设置分页信息
 		iPage.setTotal(total);
@@ -515,6 +522,41 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 		return iPage.setRecords(pageVoList);
 	}
 
+	void fixArchivesAutoFile(ArchivesAutoVO vo) {
+		int current = 0;
+		vo.setSize(1000);
+		List<ArchivesAuto> pageList = this.baseMapper.selectArchivesAutoFilePageZero(current, vo.getSize(), vo);
+
+		if (pageList.size() > 0) {
+//			String ids = pageList.stream()
+//					.map(archivesAuto -> String.valueOf(archivesAuto.getId()))
+//					.collect(Collectors.joining(","));
+			List<Long> idList = new ArrayList<>();
+			Map<Long, ArchivesAuto> map = new HashMap<>();
+			for (ArchivesAuto archivesAuto : pageList){
+				map.put(archivesAuto.getId(), archivesAuto);
+				idList.add(archivesAuto.getId());
+			}
+
+			List<ArchiveFile> result = baseMapper.searchArchiveFileByArchivesId(idList);
+			for (ArchiveFile archiveFile : result){
+
+				String url = archiveFile.getFileUrl();
+				if (StringUtils.isNotEmpty(url)) {
+					String pdfPage  = commonFileClient.getPdfNum(url);
+					archiveFile.setFilePage(Integer.valueOf(pdfPage));
+				}
+				archiveFileClient.updateById2(archiveFile);
+				ArchivesAuto archivesAuto =  map.get(archiveFile.getArchiveId());
+				if (archivesAuto!= null) {
+					archivesAuto.setFileN(archiveFile.getFilePage());
+					save(archivesAuto);
+				}
+			}
+
+		}
+	}
+
 	@Override
 	public boolean updateArchivesAutoFileByNodeId(String ids, String nodeId,String nodeSort) {
 		try {