소스 검색

Merge branch 'test-merge' of http://219.151.181.73:3000/zhuwei/bladex into test-merge

lvy 15 시간 전
부모
커밋
3ff6397711

+ 3 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/feign/ArchiveFileClient.java

@@ -185,4 +185,7 @@ public interface ArchiveFileClient {
 
     @PostMapping(API_PREFIX + "/saveBatchArchiveFile")
     void saveBatchArchiveFile(@RequestBody List<ArchiveFile> list);
+
+    @PostMapping(API_PREFIX + "/getArchiveFileById")
+    ArchiveFile getArchiveFileById(@RequestParam Long fileId);
 }

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

@@ -1330,8 +1330,24 @@ public class ArchivesAutoController extends BladeController {
 	}
 
 	@PostMapping("/saveVolume")
+	@ApiOperationSupport(order = 45)
+	@ApiOperation(value = "保存档案分卷文件")
 	public R saveVolume(@RequestBody SaveVolumeDto dto){
 		return R.success(archivesAutoService.saveVolume(dto));
 	}
+	@PostMapping("/removeVolume")
+	@ApiOperationSupport(order = 46)
+	@ApiOperation(value = "删除案卷分卷")
+	public R removeVolume(Long archiveId,Long volumeId){
+		return R.status(archivesAutoService.removeVolume(archiveId,volumeId));
+	}
+
+	@PostMapping("/backVolume")
+	@ApiOperationSupport(order = 47)
+	@ApiOperation(value = "案卷分卷文件回退")
+	public R backVolume(Long fileId) throws com.alibaba.nacos.shaded.com.google.protobuf.ServiceException {
+		return R.status(archivesAutoService.backVolume(fileId));
+	}
+
 
 }

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

@@ -196,4 +196,8 @@ public interface IArchivesAutoService extends BaseService<ArchivesAuto> {
 	Boolean updateArchivePage(List<Long>archiveIds);
 
 	String saveVolume(SaveVolumeDto dto);
+
+	boolean removeVolume(Long archiveId, Long volumeId);
+
+	boolean backVolume(Long fileId);
 }

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

@@ -5674,7 +5674,7 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 						return str;
 					})
 					.collect(Collectors.toList());
-			sb.append(StringUtils.join(resultList,"、")).append(suffix);
+			sb.append("${").append(StringUtils.join(resultList,"、")).append("}").append(suffix);
 		}
 		return sb.toString();
 	}
@@ -5714,7 +5714,7 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 					archiveId=saveVolumeDto1.getId();
 				}
 				updateIds.add(archiveId);
-				String update = "UPDATE u_archive_file SET archive_id = ?, volume_id = ?, is_volume = 1 WHERE id IN (?)";
+				String update = "UPDATE u_archive_file SET archive_id = ?, old_archive_id = ?, is_volume = 1 WHERE id IN (?)";
 				jdbcTemplate.update(update, archiveId, dto.getArchiveId(), saveVolumeDto1.getFileIds());
 				archivesAuto.setVolumeIds(archivesAuto.getVolumeIds()+archiveId+",");
 			}
@@ -5724,6 +5724,47 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 		this.updateArchivePage(updateIds);
 		return "操作成功";
 	}
+
+	@Override
+	public boolean removeVolume(Long archiveId, Long volumeId) {
+		ArchivesAuto auto = this.getById(archiveId);
+		if(auto.getIsVolume()==1&&StringUtils.isNotEmpty(auto.getVolumeIds())){
+			String volumeIds = auto.getVolumeIds();
+			String[] archivesAutoIds = volumeIds.split(",");
+			if(archivesAutoIds.length<=1){
+				throw new ServiceException("不能删除所有的分卷");
+			}
+			if(auto.getVolumeIds().contains(volumeId+"")){
+				if(auto.getVolumeIds().endsWith(volumeId+"")){
+					auto.setVolumeIds(auto.getVolumeIds().replace(volumeId+"",""));
+				}else {
+					auto.setVolumeIds(auto.getVolumeIds().replace(volumeId+",",""));
+				}
+				String update = "UPDATE u_archive_file SET archive_id = ?, old_archive_id = '', is_volume = 0 WHERE archive_id = ?";
+				jdbcTemplate.update(update, archiveId, volumeId);
+			}
+			baseMapper.updateById(auto);
+			this.deleteLogic(Arrays.asList(volumeId));
+			this.updateArchivePage(Arrays.asList(archiveId));
+		}
+		return true;
+	}
+
+	@Override
+	public boolean backVolume(Long fileId){
+		ArchiveFile archiveFile = archiveFileClient.getArchiveFileById(fileId);
+		List<ArchiveFile> files = archiveFileClient.getArchiveFileByArchivesId(archiveFile.getArchiveId()+"",null);
+		if(files.size()<=1){
+			throw new ServiceException("回退失败");
+		}
+		if(archiveFile.getOldArchiveId()!=null){
+			archiveFile.setArchiveId(archiveFile.getOldArchiveId());
+			archiveFile.setIsVolume(0);
+			archiveFileClient.updateById2(archiveFile);
+			this.updateArchivePage(Arrays.asList(archiveFile.getArchiveId(),archiveFile.getOldArchiveId()));
+		}
+		return true;
+	}
 }
 
 

+ 5 - 0
blade-service/blade-business/src/main/java/org/springblade/business/feignClient/ArchiveFileClientImpl.java

@@ -506,6 +506,11 @@ public class ArchiveFileClientImpl implements ArchiveFileClient {
         iArchiveFileService.saveBatch(list);
     }
 
+    @Override
+    public ArchiveFile getArchiveFileById(Long fileId) {
+        return iArchiveFileService.getById(fileId);
+    }
+
     @Override
     public Integer selectMaxSortByContractId(Long contractId) {
         return iArchiveFileService.selectMaxSortByContractId(contractId);