|
@@ -16,16 +16,13 @@
|
|
|
*/
|
|
|
package org.springblade.archive.controller;
|
|
|
|
|
|
-import cn.hutool.core.text.split.SplitIter;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import io.swagger.annotations.*;
|
|
|
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
|
|
|
import javax.servlet.ServletOutputStream;
|
|
|
-import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
import javax.validation.Valid;
|
|
|
|
|
@@ -34,18 +31,17 @@ import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
import org.apache.http.message.BasicNameValuePair;
|
|
|
import org.springblade.archive.dto.ArchiveWarningDTO;
|
|
|
+import org.springblade.archive.dto.FindAndReplaceDto;
|
|
|
import org.springblade.archive.dto.SaveApplyDTO;
|
|
|
import org.springblade.archive.entity.ArchiveConclusion;
|
|
|
import org.springblade.archive.entity.ExpertInspection;
|
|
|
import org.springblade.archive.service.IArchiveAutoPdfService;
|
|
|
import org.springblade.archive.service.ITraceLogService;
|
|
|
import org.springblade.archive.utils.CallBgrsjk;
|
|
|
-import org.springblade.archive.utils.FileUtils;
|
|
|
import org.springblade.archive.vo.*;
|
|
|
import org.springblade.business.entity.ArchiveFile;
|
|
|
-import org.springblade.business.entity.InformationQuery;
|
|
|
-import org.springblade.common.constant.CommonConstant;
|
|
|
-import org.springblade.common.utils.CommonUtil;
|
|
|
+import org.springblade.business.feign.ArchiveFileClient;
|
|
|
+import org.springblade.common.utils.DeepSeekClient;
|
|
|
import org.springblade.common.utils.SnowFlakeUtil;
|
|
|
import org.springblade.core.mp.support.Condition;
|
|
|
import org.springblade.core.mp.support.Query;
|
|
@@ -54,15 +50,12 @@ import org.springblade.core.tool.api.R;
|
|
|
import org.springblade.core.tool.utils.Func;
|
|
|
import org.springblade.manager.entity.ArchiveTreeContract;
|
|
|
import org.springblade.manager.entity.ContractInfo;
|
|
|
-import org.springblade.manager.entity.ExcelEditCallback;
|
|
|
-import org.springblade.manager.entity.ProjectInfo;
|
|
|
import org.springblade.manager.feign.ArchiveTreeContractClient;
|
|
|
import org.springblade.manager.feign.ContractClient;
|
|
|
import org.springblade.manager.feign.ProjectClient;
|
|
|
-import org.springblade.manager.vo.MyInspectTreeVO;
|
|
|
-import org.springblade.system.cache.ParamCache;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.http.MediaType;
|
|
|
+import org.springframework.jdbc.core.JdbcTemplate;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
import org.springframework.web.bind.annotation.RequestParam;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
@@ -72,12 +65,8 @@ import org.springblade.archive.service.IArchivesAutoService;
|
|
|
import org.springblade.core.boot.ctrl.BladeController;
|
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
-import java.io.File;
|
|
|
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.stream.Collectors;
|
|
|
|
|
@@ -106,6 +95,11 @@ public class ArchivesAutoController extends BladeController {
|
|
|
private ExecutorService executorService;
|
|
|
@Autowired
|
|
|
private ITraceLogService iTraceLogService;
|
|
|
+ private final JdbcTemplate jdbcTemplate;
|
|
|
+ @Autowired
|
|
|
+ private ArchiveFileClient archiveFileClient;
|
|
|
+
|
|
|
+
|
|
|
/**
|
|
|
* 详情
|
|
|
*/
|
|
@@ -152,6 +146,22 @@ public class ArchivesAutoController extends BladeController {
|
|
|
return R.data(pages);
|
|
|
}
|
|
|
|
|
|
+ @GetMapping("/fileNumberFlush")
|
|
|
+ @ApiOperationSupport(order = 4)
|
|
|
+ @ApiOperation(value = "档号整理——按档号排序")
|
|
|
+ public R fileNumberFlush(Long projectId,Long contractId,String nodeId,Integer isArchive,Integer startNumber){
|
|
|
+ List<ArchiveTreeContract> archiveTreeContracts = this.archiveTreeContractClient.queryAllChildByAncestors(nodeId,contractId);
|
|
|
+ List<String> ids = new ArrayList<>();
|
|
|
+ if(archiveTreeContracts != null && archiveTreeContracts.size() > 0){
|
|
|
+ ids=JSONArray.parseArray(JSONObject.toJSONString(archiveTreeContracts.stream().map(ArchiveTreeContract::getId).distinct().collect(Collectors.toList())), String.class);
|
|
|
+ }
|
|
|
+ ids.add(nodeId);
|
|
|
+ archivesAutoService.fileNumberFlush(projectId,contractId,ids,isArchive,startNumber);
|
|
|
+ return R.success("正在刷新档号中,请稍后刷新");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
|
|
|
/**
|
|
@@ -391,13 +401,15 @@ public class ArchivesAutoController extends BladeController {
|
|
|
@ApiOperationSupport(order = 10)
|
|
|
@ApiOperation(value = "锁定", notes = "传入ids")
|
|
|
public R lock(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
|
|
|
-
|
|
|
List<ArchivesAuto> archivesAutos = archivesAutoService.listByIds(Func.toLongList(ids));
|
|
|
for (ArchivesAuto ar :archivesAutos) {
|
|
|
ar.setIsLock(1);
|
|
|
+ String sql="update u_archive_file set is_lock=1 where archive_id="+ar.getId()+" and is_deleted=0";
|
|
|
+ jdbcTemplate.update(sql);
|
|
|
}
|
|
|
+ archivesAutoService.updateBatchById(archivesAutos);
|
|
|
|
|
|
- return R.status(archivesAutoService.updateBatchById(archivesAutos));
|
|
|
+ return R.status(true);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -410,9 +422,18 @@ public class ArchivesAutoController extends BladeController {
|
|
|
List<ArchivesAuto> archivesAutos = archivesAutoService.listByIds(Func.toLongList(ids));
|
|
|
for (ArchivesAuto ar :archivesAutos) {
|
|
|
ar.setIsLock(0);
|
|
|
+ String sql="update u_archive_file set is_lock=0 where archive_id="+ar.getId()+" and is_deleted=0";
|
|
|
+ jdbcTemplate.update(sql);
|
|
|
}
|
|
|
return R.status(archivesAutoService.updateBatchById(archivesAutos));
|
|
|
}
|
|
|
+ @PostMapping("/findAndReplace")
|
|
|
+ @ApiOperationSupport(order = 12)
|
|
|
+ @ApiOperation(value = "查找并替换", notes = "传入ids")
|
|
|
+ public R findAndReplace(@RequestBody FindAndReplaceDto dto){
|
|
|
+ List<ArchivesAuto> archivesAutos = archivesAutoService.listByIds(Func.toLongList(dto.getIds()));
|
|
|
+ return R.status(archivesAutoService.findAndReplace(archivesAutos,dto));
|
|
|
+ }
|
|
|
|
|
|
|
|
|
@PostMapping("/archiveAutoPercentComplete")
|
|
@@ -482,6 +503,48 @@ public class ArchivesAutoController extends BladeController {
|
|
|
}
|
|
|
|
|
|
}
|
|
|
+ @PostMapping("/reCreateArchiveAuto")
|
|
|
+ @ApiOperationSupport(order = 13)
|
|
|
+ @ApiOperation(value = "重新生成案卷", notes = "传入ids")
|
|
|
+ @Transactional
|
|
|
+ public R reCreateArchiveAuto(@ApiParam(value = "主键集合", required = true) @RequestParam String ids,@ApiParam(value = "合并后的文件题目", required = true)String name){
|
|
|
+ //先查出勾选的案卷
|
|
|
+ List<ArchivesAuto> archivesAutoList=archivesAutoService.listByIds(Func.toLongList(ids));
|
|
|
+ if(archivesAutoList.size()<=1){
|
|
|
+ return R.fail("请选择多个案卷进行合并");
|
|
|
+ }
|
|
|
+ archivesAutoList.sort(Comparator.comparingInt(a -> {
|
|
|
+ String[] parts = a.getFileNumber().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);
|
|
|
+ auto.setName(name);
|
|
|
+ //删除其他案卷
|
|
|
+ archivesAutoList.remove(auto);
|
|
|
+ archivesAutoService.deleteLogic(archivesAutoList.stream().map(o->o.getId()).collect(Collectors.toList()));
|
|
|
+ //设置案卷页码和四要素
|
|
|
+ archivesAutoService.reCreateArchiveAuto(auto, archiveFileList);
|
|
|
+ return R.status(true);
|
|
|
+ }
|
|
|
+
|
|
|
+ @PostMapping("/creatFileNameFormAI")
|
|
|
+ @ApiOperationSupport(order = 10)
|
|
|
+ @ApiOperation(value = "案卷ai题名", notes = "传入ids")
|
|
|
+ public R creatFileNameFormAI(String ids,Long projectId,Long contractId) throws IOException {
|
|
|
+ return R.status(archivesAutoService.creatFileNameFormAI(ids,projectId,contractId));
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 预览案卷文件
|
|
@@ -961,5 +1024,12 @@ public class ArchivesAutoController extends BladeController {
|
|
|
return R.data(iPage);
|
|
|
}
|
|
|
|
|
|
+ @GetMapping("/reBuildArchiveFrontPdfs")
|
|
|
+ @ApiOperationSupport(order = 41)
|
|
|
+ @ApiModelProperty(value = "重新生成档案四要素")
|
|
|
+ public R reBuildArchiveFrontPdfs(String archiveIds,Long projectId){
|
|
|
+ return R.status(archivesAutoService.reBuildArchiveFrontPdfs(archiveIds,projectId));
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
}
|