cr 1 päivä sitten
vanhempi
commit
87f41de0f7
16 muutettua tiedostoa jossa 244 lisäystä ja 8 poistoa
  1. 13 0
      blade-service-api/blade-archive-api/src/main/java/org/springblade/archive/dto/SaveVolumeDto.java
  2. 10 0
      blade-service-api/blade-archive-api/src/main/java/org/springblade/archive/dto/SaveVolumeDto1.java
  3. 6 0
      blade-service-api/blade-archive-api/src/main/java/org/springblade/archive/entity/ArchivesAuto.java
  4. 8 0
      blade-service-api/blade-archive-api/src/main/java/org/springblade/archive/feign/ArchiveAutoClient.java
  5. 14 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/dto/VolumeDto1.java
  6. 13 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/dto/VolumeDto2.java
  7. 13 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/dto/VolumeDto3.java
  8. 16 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/dto/VolumeDto4.java
  9. 6 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/entity/ArchiveFile.java
  10. 6 4
      blade-service/blade-archive/src/main/java/org/springblade/archive/controller/ArchivesAutoController.java
  11. 5 0
      blade-service/blade-archive/src/main/java/org/springblade/archive/feign/ArchiveAutoClientImpl.java
  12. 5 4
      blade-service/blade-archive/src/main/java/org/springblade/archive/service/IArchivesAutoService.java
  13. 39 0
      blade-service/blade-archive/src/main/java/org/springblade/archive/service/impl/ArchivesAutoServiceImpl.java
  14. 16 0
      blade-service/blade-business/src/main/java/org/springblade/business/controller/ArchiveFileController.java
  15. 6 0
      blade-service/blade-business/src/main/java/org/springblade/business/service/IArchiveFileService.java
  16. 68 0
      blade-service/blade-business/src/main/java/org/springblade/business/service/impl/ArchiveFileServiceImpl.java

+ 13 - 0
blade-service-api/blade-archive-api/src/main/java/org/springblade/archive/dto/SaveVolumeDto.java

@@ -0,0 +1,13 @@
+package org.springblade.archive.dto;
+
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Data
+public class SaveVolumeDto {
+    private String archiveId;
+    private String archiveName;
+    private List<SaveVolumeDto1> list=new ArrayList<>();
+}

+ 10 - 0
blade-service-api/blade-archive-api/src/main/java/org/springblade/archive/dto/SaveVolumeDto1.java

@@ -0,0 +1,10 @@
+package org.springblade.archive.dto;
+
+import lombok.Data;
+
+@Data
+public class SaveVolumeDto1 {
+    private Long id;
+    private String archiveName;
+    private String fileIds;
+}

+ 6 - 0
blade-service-api/blade-archive-api/src/main/java/org/springblade/archive/entity/ArchivesAuto.java

@@ -192,6 +192,12 @@ public class ArchivesAuto extends BaseEntity {
 
     @ApiModelProperty("案卷操作(0:无,1:正在并卷,2:正在重组,3:等待重组(拆卷完成后),-1:并卷失败,-2:重组失败)")
     private Integer actionType;
+
+    @ApiModelProperty("分卷ID,逗号分隔")
+    private String volumeIds;
+    @ApiModelProperty("是否是分卷0否 1是 2是子分卷")
+    private Integer isVolume;
+
     //是否是影音
     public boolean isMedia() {
         return (this.getCarrierType() != null &&

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

@@ -49,5 +49,13 @@ public interface ArchiveAutoClient {
     @PostMapping(API_PREFIX + "/removeArchivesByNodeIds")
     void removeArchivesByNodeIds(@RequestBody List<Long> ids);
 
+    /**
+     * 根据ID获取档案案卷
+     * @param id
+     * @return
+     */
+    @PostMapping(API_PREFIX + "/getArchiveById")
+    ArchivesAuto getArchiveById(@RequestParam Long id);
+
 
 }

+ 14 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/dto/VolumeDto1.java

@@ -0,0 +1,14 @@
+package org.springblade.business.dto;
+
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Data
+public class VolumeDto1 {
+    private Long id;
+    private String name;
+    private Integer total;
+    private List<VolumeDto2> list;
+}

+ 13 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/dto/VolumeDto2.java

@@ -0,0 +1,13 @@
+package org.springblade.business.dto;
+
+import lombok.Data;
+
+@Data
+public class VolumeDto2 {
+    private Long id;
+    private String fileNumber;
+    private String fileName;
+    private String fileTime;
+    private String dutyUser;
+    private Integer filePage;
+}

+ 13 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/dto/VolumeDto3.java

@@ -0,0 +1,13 @@
+package org.springblade.business.dto;
+
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+@Data
+public class VolumeDto3 {
+    private Long id;
+    private String name;
+    private Integer total;
+    private List<VolumeDto4> list=new ArrayList<>();
+}

+ 16 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/dto/VolumeDto4.java

@@ -0,0 +1,16 @@
+package org.springblade.business.dto;
+
+import io.swagger.models.auth.In;
+import lombok.Data;
+
+@Data
+public class VolumeDto4 {
+    private Long id;
+    private String fileNumber;
+    private String fileName;
+    private String fileTime;
+    private String dutyUser;
+    private Integer filePage;
+    //是否已被分卷 0否 1是
+    private Integer isCheck=0;
+}

+ 6 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/entity/ArchiveFile.java

@@ -359,6 +359,12 @@ public class ArchiveFile extends BaseEntity {
     @ApiModelProperty("pdfFileUrl md5值")
     private String pdfMd5;
 
+    @ApiModelProperty("旧案卷ID")
+    private Long oldArchiveId;
+
+    @ApiModelProperty("是否分卷0否1是")
+    private Integer isVolume;
+
     public void fromExternal(ArchiveFileVo vo) {
         if (vo == null) {
             return;

+ 6 - 4
blade-service/blade-archive/src/main/java/org/springblade/archive/controller/ArchivesAutoController.java

@@ -33,10 +33,7 @@ import org.apache.commons.lang.StringUtils;
 import org.apache.http.message.BasicNameValuePair;
 import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
 import org.apache.poi.ss.usermodel.*;
-import org.springblade.archive.dto.ArchiveWarningDTO;
-import org.springblade.archive.dto.AutoOCRDTO;
-import org.springblade.archive.dto.FindAndReplaceDto;
-import org.springblade.archive.dto.SaveApplyDTO;
+import org.springblade.archive.dto.*;
 import org.springblade.archive.entity.ArchiveConclusion;
 import org.springblade.archive.entity.ExpertInspection;
 import org.springblade.archive.service.IArchiveAutoPdfService;
@@ -1332,4 +1329,9 @@ public class ArchivesAutoController extends BladeController {
 		return R.data(archivesAutoService.jointNomination(Arrays.asList(authId.split(","))));
 	}
 
+	@PostMapping("/saveVolume")
+	public R saveVolume(@RequestBody SaveVolumeDto dto){
+		return R.success(archivesAutoService.saveVolume(dto));
+	}
+
 }

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

@@ -74,4 +74,9 @@ public class ArchiveAutoClientImpl implements ArchiveAutoClient {
 
         archivesAutoService.reomoveArchiveAndFile(archiveIds);
     }
+
+    @Override
+    public ArchivesAuto getArchiveById(Long id) {
+        return archivesAutoService.getById(id);
+    }
 }

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

@@ -17,10 +17,7 @@
 package org.springblade.archive.service;
 
 
-import org.springblade.archive.dto.ArchiveWarningDTO;
-import org.springblade.archive.dto.FindAndReplaceDto;
-import org.springblade.archive.dto.JiLinQueryDto;
-import org.springblade.archive.dto.SaveApplyDTO;
+import org.springblade.archive.dto.*;
 import org.springblade.archive.entity.ArchiveConclusion;
 import org.springblade.archive.entity.ArchivesAuto;
 import org.springblade.archive.entity.ExpertInspection;
@@ -195,4 +192,8 @@ public interface IArchivesAutoService extends BaseService<ArchivesAuto> {
 
 
     String jointNomination(List<String> authId);
+
+	Boolean updateArchivePage(List<Long>archiveIds);
+
+	String saveVolume(SaveVolumeDto dto);
 }

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

@@ -73,6 +73,7 @@ import org.springblade.core.secure.BladeUser;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.core.tool.utils.FileUtil;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.manager.entity.*;
@@ -5666,6 +5667,44 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 		}
 		return sb.toString();
 	}
+
+	@Override
+	public Boolean updateArchivePage(List<Long> archiveIds) {
+		for (Long archiveId : archiveIds) {
+			ArchivesAuto archivesAuto = this.getById(archiveId);
+			List<ArchiveFile> files = archiveFileClient.getArchiveFileByArchivesId(archiveId+"", null);
+			archivesAuto.setFileN(files.size());
+			archivesAuto.setPageN(files.stream().mapToInt(ArchiveFile::getFilePage).sum());
+			baseMapper.updateById(archivesAuto);
+		}
+		return true;
+	}
+
+	@Override
+	public String saveVolume(SaveVolumeDto dto) {
+		ArchivesAuto archivesAuto = this.getById(dto.getArchiveId());
+		archivesAuto.setName(dto.getArchiveName());
+		if(!dto.getList().isEmpty()){
+			archivesAuto.setIsVolume(1);
+			for (SaveVolumeDto1 saveVolumeDto1 : dto.getList()) {
+				Long archiveId = null;
+				if(saveVolumeDto1.getId()==null){
+					ArchivesAuto auto = new ArchivesAuto();
+					BeanUtil.copy(archivesAuto,auto);
+					auto.setId(SnowFlakeUtil.getId());
+					auto.setName(saveVolumeDto1.getArchiveName());
+					auto.setIsVolume(2);
+					archiveId= auto.getId();
+					baseMapper.insert(auto);
+				}else {
+					archiveId=saveVolumeDto1.getId();
+				}
+				String update = "UPDATE u_archive_file SET archive_id = ?, volume_id = ?, is_volume = 1 WHERE id IN (?)";
+				jdbcTemplate.update(update, archiveId, dto.getArchiveId(), saveVolumeDto1.getFileIds());
+			}
+		}
+		return "";
+	}
 }
 
 

+ 16 - 0
blade-service/blade-business/src/main/java/org/springblade/business/controller/ArchiveFileController.java

@@ -12,6 +12,8 @@ import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import lombok.AllArgsConstructor;
 
 import org.apache.commons.lang.StringUtils;
+import org.springblade.business.dto.VolumeDto1;
+import org.springblade.business.dto.VolumeDto3;
 import org.springblade.business.entity.MessageWarning;
 import org.springblade.business.entity.Task;
 import org.springblade.business.entity.TaskParallel;
@@ -540,5 +542,19 @@ public class ArchiveFileController extends BladeController {
         archiveFileService.flushArchiveFileSort(projectId);
     }
 
+    @GetMapping("/selectVolumeAfter")
+    @ApiOperationSupport(order = 3)
+    @ApiOperation(value = "查询分卷之后的文件")
+    public R<List<VolumeDto1>> selectVolumeAfter(@RequestParam Long archiveId){
+        List<VolumeDto1> list = archiveFileService.selectVolumeAfter(archiveId);
+        return R.data(list);
+    }
 
+    @GetMapping("/selectVolumeBefore")
+    @ApiOperationSupport(order = 3)
+    @ApiOperation(value = "查询分卷之前的文件")
+    public R<VolumeDto3> selectVolumeBefore(@RequestParam Long archiveId){
+        VolumeDto3 dto = archiveFileService.selectVolumeBefore(archiveId);
+        return R.data(dto);
+    }
 }

+ 6 - 0
blade-service/blade-business/src/main/java/org/springblade/business/service/IArchiveFileService.java

@@ -18,6 +18,8 @@ package org.springblade.business.service;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import org.springblade.business.dto.VolumeDto1;
+import org.springblade.business.dto.VolumeDto3;
 import org.springblade.business.entity.ArchiveFile;
 import org.springblade.business.vo.ArchiveFileVO;
 import org.springblade.core.mp.base.BaseService;
@@ -81,4 +83,8 @@ public interface IArchiveFileService extends BaseService<ArchiveFile> {
     Integer selectMaxSortByContractId(Long contractId);
 
     void flushArchiveFileSort(Long projectId);
+
+    List<VolumeDto1> selectVolumeAfter(Long archiveId);
+
+    VolumeDto3 selectVolumeBefore(Long archiveId);
 }

+ 68 - 0
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/ArchiveFileServiceImpl.java

@@ -7,7 +7,13 @@ import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import org.apache.commons.lang.StringUtils;
+import org.springblade.archive.entity.ArchivesAuto;
+import org.springblade.archive.feign.ArchiveAutoClient;
 import org.springblade.archive.feign.ArchiveInspectionInfoClient;
+import org.springblade.business.dto.VolumeDto1;
+import org.springblade.business.dto.VolumeDto2;
+import org.springblade.business.dto.VolumeDto3;
+import org.springblade.business.dto.VolumeDto4;
 import org.springblade.business.entity.ArchiveFile;
 import org.springblade.business.entity.Task;
 import org.springblade.business.entity.TaskParallel;
@@ -24,6 +30,7 @@ import org.springblade.manager.feign.ArchiveTreeContractClient;
 import org.springblade.resource.feign.NewIOSSClient;
 import org.springblade.system.entity.DictBiz;
 import org.springblade.system.feign.IDictBizClient;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jdbc.core.BeanPropertyRowMapper;
 import org.springframework.jdbc.core.JdbcTemplate;
@@ -53,6 +60,7 @@ public class ArchiveFileServiceImpl extends BaseServiceImpl<ArchiveFileMapper, A
     private final ArchiveInspectionInfoClient archiveInspectionInfoClient;
     private final JdbcTemplate jdbcTemplate;
     private final ArchiveTreeContractClient archiveTreeContractClient;
+    private final ArchiveAutoClient archiveAutoClient;
 
 
     @Override
@@ -425,4 +433,64 @@ public class ArchiveFileServiceImpl extends BaseServiceImpl<ArchiveFileMapper, A
         }
         System.out.println("归档文件排序成功");
     }
+
+    @Override
+    public List<VolumeDto1> selectVolumeAfter(Long archiveId) {
+        List<VolumeDto1> list = new ArrayList<>();
+        ArchivesAuto archivesAuto = archiveAutoClient.getArchiveById(archiveId);
+        if(archivesAuto.getIsVolume()==1&&StringUtils.isEmpty(archivesAuto.getVolumeIds())){
+            String volumeIds = archivesAuto.getVolumeIds();
+            String[] archivesAutoIds = volumeIds.split(",");
+            for (String autoId : archivesAutoIds) {
+                VolumeDto1 dto = new VolumeDto1();
+                ArchivesAuto auto = archiveAutoClient.getArchiveById(Long.parseLong(autoId));
+                if (auto != null) {
+                    dto.setId(auto.getId());
+                    dto.setName(auto.getName());
+                    String sql="select id,file_number,file_name,file_time,duty_user,file_page from u_archive_file where archive_id="+auto.getId()+" and is_deleted=0 order by archive_sort,sort,sort_num,create_time";
+                    List<VolumeDto2> dto2s = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(VolumeDto2.class));
+                    dto.setList(dto2s);
+                    if(!dto2s.isEmpty()){
+                        dto.setTotal(dto2s.stream().mapToInt(dto2 -> dto2.getFilePage() != null ? dto2.getFilePage() : 0).sum());
+                    }else {
+                        dto.setTotal(0);
+                    }
+                }
+                list.add(dto);
+            }
+            return list;
+        }else {
+            return list;
+        }
+    }
+
+    @Override
+    public VolumeDto3 selectVolumeBefore(Long archiveId) {
+        ArchivesAuto auto = archiveAutoClient.getArchiveById(archiveId);
+        VolumeDto3 dto=new VolumeDto3();
+        if(auto.getIsVolume()==1&&StringUtils.isEmpty(auto.getVolumeIds())){
+            String volumeIds = auto.getVolumeIds();
+            String[] archivesAutoIds = volumeIds.split(",");
+            String sql="select id,file_number,file_name,file_time,duty_user,file_page from u_archive_file where archive_id="+auto.getId()+" and is_deleted=0 order by archive_sort,sort,sort_num,create_time";
+            List<VolumeDto4> dto2s = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(VolumeDto4.class));
+            dto.getList().addAll(dto2s);
+            for (String autoId : archivesAutoIds) {
+                String sql1="select id,file_number,file_name,file_time,duty_user,file_page from u_archive_file where archive_id="+autoId+" and is_deleted=0 order by archive_sort,sort,sort_num,create_time";
+                List<VolumeDto4> dto2s1 = jdbcTemplate.query(sql1, new BeanPropertyRowMapper<>(VolumeDto4.class));
+                dto2s1.stream().forEach(dto2 -> dto2.setIsCheck(1));
+                dto.getList().addAll(dto2s);
+            }
+            dto.setId(auto.getId());
+            dto.setName(auto.getName());
+            dto.setTotal(auto.getPageN());
+        }else {
+            dto.setId(auto.getId());
+            dto.setName(auto.getName());
+            String sql="select id,file_number,file_name,file_time,duty_user,file_page from u_archive_file where archive_id="+auto.getId()+" and is_deleted=0 order by archive_sort,sort,sort_num,create_time";
+            List<VolumeDto4> dto2s = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(VolumeDto4.class));
+            dto.setList(dto2s);
+            dto.setTotal(auto.getPageN());
+        }
+        return dto;
+    }
 }