Explorar el Código

档案优化需求

chenr hace 1 mes
padre
commit
39a2c3b9d9

+ 31 - 0
blade-service-api/blade-archive-api/src/main/java/org/springblade/archive/dto/FindAndReplaceDto.java

@@ -0,0 +1,31 @@
+package org.springblade.archive.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@EqualsAndHashCode
+public class FindAndReplaceDto {
+    private String ids;
+    /**
+     * 1新增 2替换 3删除
+     */
+    private Integer type;
+    /**
+     * 查找内容
+     */
+    private String query;
+    /**
+     * 新增内容
+     */
+    private String replace;
+
+    /**
+     * 1 前   2 后
+     */
+    private Integer position;
+}

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

@@ -34,6 +34,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.http.message.BasicNameValuePair;
 import org.apache.http.message.BasicNameValuePair;
 import org.springblade.archive.dto.ArchiveWarningDTO;
 import org.springblade.archive.dto.ArchiveWarningDTO;
+import org.springblade.archive.dto.FindAndReplaceDto;
 import org.springblade.archive.dto.SaveApplyDTO;
 import org.springblade.archive.dto.SaveApplyDTO;
 import org.springblade.archive.entity.ArchiveConclusion;
 import org.springblade.archive.entity.ArchiveConclusion;
 import org.springblade.archive.entity.ExpertInspection;
 import org.springblade.archive.entity.ExpertInspection;
@@ -431,9 +432,18 @@ public class ArchivesAutoController extends BladeController {
 		List<ArchivesAuto> archivesAutos = archivesAutoService.listByIds(Func.toLongList(ids));
 		List<ArchivesAuto> archivesAutos = archivesAutoService.listByIds(Func.toLongList(ids));
 		for (ArchivesAuto ar  :archivesAutos) {
 		for (ArchivesAuto ar  :archivesAutos) {
 			ar.setIsLock(0);
 			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));
 		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")
 	@PostMapping("/archiveAutoPercentComplete")

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

@@ -18,6 +18,7 @@ package org.springblade.archive.service;
 
 
 
 
 import org.springblade.archive.dto.ArchiveWarningDTO;
 import org.springblade.archive.dto.ArchiveWarningDTO;
+import org.springblade.archive.dto.FindAndReplaceDto;
 import org.springblade.archive.dto.JiLinQueryDto;
 import org.springblade.archive.dto.JiLinQueryDto;
 import org.springblade.archive.dto.SaveApplyDTO;
 import org.springblade.archive.dto.SaveApplyDTO;
 import org.springblade.archive.entity.ArchiveConclusion;
 import org.springblade.archive.entity.ArchiveConclusion;
@@ -160,4 +161,6 @@ public interface IArchivesAutoService extends BaseService<ArchivesAuto> {
     void fileNumberFlush(Long projectId, Long contractId, List<String> nodeIds,Integer isArchive);
     void fileNumberFlush(Long projectId, Long contractId, List<String> nodeIds,Integer isArchive);
 
 
     boolean reBuildArchiveFrontPdfs(String archiveIds, Long projectId);
     boolean reBuildArchiveFrontPdfs(String archiveIds, Long projectId);
+
+    boolean findAndReplace(List<ArchivesAuto> archivesAutos, FindAndReplaceDto dto);
 }
 }

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

@@ -36,6 +36,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.StringUtils;
 
 
 import org.springblade.archive.dto.ArchiveWarningDTO;
 import org.springblade.archive.dto.ArchiveWarningDTO;
+import org.springblade.archive.dto.FindAndReplaceDto;
 import org.springblade.archive.dto.JiLinQueryDto;
 import org.springblade.archive.dto.JiLinQueryDto;
 import org.springblade.archive.dto.SaveApplyDTO;
 import org.springblade.archive.dto.SaveApplyDTO;
 import org.springblade.archive.entity.*;
 import org.springblade.archive.entity.*;
@@ -4130,6 +4131,7 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
         if(StringUtils.isEmpty(archiveIds)){
         if(StringUtils.isEmpty(archiveIds)){
             return false;
             return false;
         }
         }
+        archiveAutoPdfService.assignArchiveTableUrl();
         String[] ids = archiveIds.split(",");
         String[] ids = archiveIds.split(",");
         for (String archiveId : ids) {
         for (String archiveId : ids) {
             ArchivesAuto auto = baseMapper.selectById(archiveId);
             ArchivesAuto auto = baseMapper.selectById(archiveId);
@@ -4140,6 +4142,59 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
         return true;
         return true;
     }
     }
 
 
+    @Override
+    public boolean findAndReplace(List<ArchivesAuto> archivesAutos, FindAndReplaceDto dto) {
+        for (ArchivesAuto archivesAuto : archivesAutos) {
+            if(dto.getType()==1){
+               if(StringUtils.isNotEmpty(dto.getQuery())&&StringUtils.isNotEmpty(dto.getReplace())){
+                   String name = archivesAuto.getName();
+                   if (StringUtils.isNotEmpty(name)&&name.contains(dto.getQuery())) {
+                       int index = name.indexOf(dto.getQuery());
+                       if (index != -1) {
+                           StringBuilder sb = new StringBuilder(name);
+                           if (dto.getPosition() != null) {
+                               switch (dto.getPosition()) {
+                                   case 1: // 在查询内容前插入替换内容
+                                       sb.insert(index, dto.getReplace());
+                                       break;
+                                   case 2: // 在查询内容后插入替换内容
+                                       sb.insert(index + dto.getQuery().length(), dto.getReplace());
+                                       break;
+                                   default:
+                                       throw new ServiceException("请选择正确的定位条件");
+                               }
+                           }
+                           archivesAuto.setName(sb.toString()); // 更新名称
+                       }
+                   }else {
+                       throw new ServiceException("没有找到原内容");
+                   }
+               }
+            } else if (dto.getType()==2) {
+                if(StringUtils.isNotEmpty(dto.getQuery())&&StringUtils.isNotEmpty(dto.getReplace())){
+                    String name = archivesAuto.getName();
+                    if (StringUtils.isNotEmpty(name)&&name.contains(dto.getQuery())) {
+                        String newName = name.replaceAll(dto.getQuery(), dto.getReplace());
+                        archivesAuto.setName(newName);
+                    }else {
+                        throw new ServiceException("没有找到原内容");
+                    }
+                }
+            }else {
+                if(StringUtils.isNotEmpty(dto.getQuery())){
+                    String name = archivesAuto.getName();
+                    if (StringUtils.isNotEmpty(name)&&name.contains(dto.getQuery())) {
+                        String newName = name.replaceAll(dto.getQuery(), "");
+                        archivesAuto.setName(newName);
+                    }else {
+                        throw new ServiceException("没有找到原内容");
+                    }
+                }
+            }
+        }
+        return this.updateBatchById(archivesAutos);
+    }
+
     public List<ArchivesAuto> setFileNumberByConfig(ArchiveProjectConfig config,List<ArchivesAutoVO4> value){
     public List<ArchivesAuto> setFileNumberByConfig(ArchiveProjectConfig config,List<ArchivesAutoVO4> value){
         int i=1;
         int i=1;
         List<ArchivesAuto>list=new ArrayList<>();
         List<ArchivesAuto>list=new ArrayList<>();