|
@@ -45,6 +45,7 @@ import org.springblade.archive.utils.FileUtils;
|
|
import org.springblade.archive.vo.*;
|
|
import org.springblade.archive.vo.*;
|
|
import org.springblade.business.entity.ArchiveFile;
|
|
import org.springblade.business.entity.ArchiveFile;
|
|
import org.springblade.business.entity.InformationQuery;
|
|
import org.springblade.business.entity.InformationQuery;
|
|
|
|
+import org.springblade.business.feign.ArchiveFileClient;
|
|
import org.springblade.common.constant.CommonConstant;
|
|
import org.springblade.common.constant.CommonConstant;
|
|
import org.springblade.common.utils.CommonUtil;
|
|
import org.springblade.common.utils.CommonUtil;
|
|
import org.springblade.common.utils.SnowFlakeUtil;
|
|
import org.springblade.common.utils.SnowFlakeUtil;
|
|
@@ -65,6 +66,7 @@ import org.springblade.system.cache.ParamCache;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.http.MediaType;
|
|
import org.springframework.http.MediaType;
|
|
import org.springframework.jdbc.core.JdbcTemplate;
|
|
import org.springframework.jdbc.core.JdbcTemplate;
|
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.bind.annotation.RequestParam;
|
|
import org.springframework.web.bind.annotation.RequestParam;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
@@ -76,10 +78,7 @@ import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
import java.io.File;
|
|
import java.io.File;
|
|
import java.io.IOException;
|
|
import java.io.IOException;
|
|
-import java.util.ArrayList;
|
|
|
|
-import java.util.Arrays;
|
|
|
|
-import java.util.List;
|
|
|
|
-import java.util.Map;
|
|
|
|
|
|
+import java.util.*;
|
|
import java.util.concurrent.ExecutorService;
|
|
import java.util.concurrent.ExecutorService;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@@ -110,6 +109,9 @@ public class ArchivesAutoController extends BladeController {
|
|
private ITraceLogService iTraceLogService;
|
|
private ITraceLogService iTraceLogService;
|
|
|
|
|
|
private final JdbcTemplate jdbcTemplate;
|
|
private final JdbcTemplate jdbcTemplate;
|
|
|
|
+ @Autowired
|
|
|
|
+ private ArchiveFileClient archiveFileClient;
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 详情
|
|
* 详情
|
|
*/
|
|
*/
|
|
@@ -513,6 +515,42 @@ public class ArchivesAutoController extends BladeController {
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
|
|
+ @PostMapping("/reCreateArchiveAuto")
|
|
|
|
+ @ApiOperationSupport(order = 13)
|
|
|
|
+ @ApiOperation(value = "重新生成案卷", notes = "传入ids")
|
|
|
|
+ @Transactional
|
|
|
|
+ public R reCreateArchiveAuto(String ids){
|
|
|
|
+ //先查出勾选的案卷
|
|
|
|
+ List<ArchivesAuto> archivesAutoList=archivesAutoService.selectArchiveAutosByIds(ids);
|
|
|
|
+ if(archivesAutoList.size()<=1){
|
|
|
|
+ return R.fail("请选择多个案卷进行合并");
|
|
|
|
+ }
|
|
|
|
+ archivesAutoList.sort(Comparator.comparingInt(a -> {
|
|
|
|
+ String[] parts = a.getName().split("_");
|
|
|
|
+ return Integer.parseInt(parts[parts.length - 1]); // 取最后一个部分作为数字
|
|
|
|
+ }));
|
|
|
|
+ //根据档号后缀排序 拿到第一个
|
|
|
|
+ ArchivesAuto auto = archivesAutoList.get(0);
|
|
|
|
+ //查出所有案卷文件
|
|
|
|
+ List<ArchiveFile>archiveFileList=archiveFileClient.getArchiveFileByArchiveIds(ids);
|
|
|
|
+ //将除第一个以外的案卷文件archiveId 设置成第一个的id
|
|
|
|
+ List<ArchiveFile>updateArchiveFileList=new ArrayList<>();
|
|
|
|
+ for (ArchiveFile file : archiveFileList) {
|
|
|
|
+ if (!file.getArchiveId().equals(auto.getId())) {
|
|
|
|
+ file.setArchiveId(auto.getId());
|
|
|
|
+ updateArchiveFileList.add(file);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ archiveFileClient.updateArchiveFile(updateArchiveFileList);
|
|
|
|
+ //合并文件题名 暂时用第一个案卷的题目 以后用deepseek完成合并
|
|
|
|
+
|
|
|
|
+ //删除其他案卷
|
|
|
|
+ archivesAutoList.remove(auto);
|
|
|
|
+ archivesAutoService.deleteLogic(archivesAutoList.stream().map(o->o.getId()).collect(Collectors.toList()));
|
|
|
|
+ //设置案卷页码和四要素
|
|
|
|
+ archivesAutoService.reCreateArchiveAuto(auto, archiveFileList);
|
|
|
|
+ return R.status(true);
|
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
/**
|
|
* 预览案卷文件
|
|
* 预览案卷文件
|