Selaa lähdekoodia

删除卷内文件

huangtf 2 vuotta sitten
vanhempi
commit
f518b27d82

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

@@ -53,6 +53,9 @@ public interface ArchiveFileClient {
     @PostMapping(API_PREFIX + "/listWrappers")
     List<ArchiveFile> listWrappers(@RequestBody LambdaQueryWrapper<ArchiveFile> in);
 
+    @PostMapping(API_PREFIX + "/listbyIds")
+    List<ArchiveFile> listbyIds(@RequestBody List<Long> toLongList);
+
     @PostMapping(API_PREFIX + "/updateWrappers")
     boolean updateWrappers(@RequestBody LambdaUpdateWrapper<ArchiveFile> eq);
 

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

@@ -266,7 +266,7 @@ public class ArchivesAutoController extends BladeController {
 	@ApiOperation(value = "获取归档树同级节点", notes = "传入节点id")
 	public R test() {
 
-		archiveAutoPdfService.test();
+		archivesAutoService.test();
 		return R.data("");
 	}
 
@@ -390,10 +390,15 @@ public class ArchivesAutoController extends BladeController {
 	 */
 	@PostMapping("/removeFiles")
 	@ApiOperationSupport(order = 15)
-	@ApiOperation(value = "删除案卷的卷内文件", notes = "传入ids")
-	public R removeFiles(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+	@ApiOperation(value = "删除案卷的卷内文件", notes = "传入文件ids,归档archiveId")
+	public R removeFiles(@ApiParam(value = "主键集合", required = true) @RequestParam String ids, @RequestParam Long archiveId) {
 
-		return R.status(archivesAutoService.removeFiles(ids));
+		ArchivesAuto archivesAuto = archivesAutoService.getById(archiveId);
+		if (archivesAuto != null && archivesAuto.getIsLock() == 1) {
+			return R.data("案卷锁定中,能不能删除卷内文件");
+		}
+
+		return R.status(archivesAutoService.removeFiles(ids,archiveId));
 	}
 
 	/**
@@ -418,4 +423,6 @@ public class ArchivesAutoController extends BladeController {
 	public R batchUpdate(@Valid @RequestBody ArchivesAutoVO archivesAutoVo) {
 		return R.status(archivesAutoService.updateBatchById(JSONArray.parseArray(JSONObject.toJSONString(archivesAutoVo.getList()), ArchivesAuto.class)));
 	}
+
+
 }

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

@@ -68,9 +68,11 @@ public interface IArchivesAutoService extends BaseService<ArchivesAuto> {
 	boolean slipt(String ids);
 
 	//从案卷里删除文件
-	boolean removeFiles(String ids);
+	boolean removeFiles(String ids,Long archiveId);
 
 
 	//刷新某个项目的档号
 	void refreshFileNumberNoSlipt(Long projectId,Long contractId,Long nodeId);
+
+	void test();
 }

+ 48 - 9
blade-service/blade-archive/src/main/java/org/springblade/archive/service/impl/ArchivesAutoServiceImpl.java

@@ -1192,29 +1192,53 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 	}
 
 	/**
-	 * 从案卷删除文件
+	 * 从案卷删除文件,兵重新生成封面和打码文件
 	 * @param ids
 	 * @return
 	 */
-	public  boolean removeFiles(String ids) {
+	public  boolean removeFiles(String ids,Long archiveId) {
 		List<Long> fids = Func.toLongList(ids);
-		baseMapper.splitFiles(fids);
 
-		LambdaQueryWrapper<ArchiveFile> wrapper = Wrappers.lambdaQuery();
-		wrapper.in(ArchiveFile::getId, fids);
 
-		// 调用 listWrappers() 方法来获取符合条件的 ArchiveFile 对象列表
-		List<ArchiveFile> files = archiveFileClient.listWrappers(wrapper);
+		ArchivesAuto archivesAuto = this.getById(archiveId);
+
+		List<String> strIds = new ArrayList<>();
+		strIds.add(archiveId.toString());
+		List<ArchiveFile> files = archiveFileClient.getAllArchiveFileByArchiveIds(strIds);
+		List<ArchiveFile> waitArchiveFiles = new ArrayList<>();
 		if (files != null && files.size() > 0) {
 			List<String> removeFiles = new ArrayList<>();
-			//删除打码文件
 			for (ArchiveFile file : files) {
-				//打码的也要删除
+
 				if (StringUtils.isNotBlank(file.getPdfPageUrl())){
 					removeFiles.add(FileUtils.getAliYunSubUrl(file.getPdfPageUrl()));
 				}
+
+				if (!fids.contains(file.getId())) {
+					waitArchiveFiles.add(file);
+				}
 			}
+			//删除文件
 			iossClient.removeFiles(removeFiles);
+
+			//删除不用的案卷
+			if (fids.size() > 0) {
+				baseMapper.splitFiles(fids);
+			}
+
+			Long archivesAutoId = archivesAuto.getId();
+
+			//封面和生成文件页码
+			archiveAutoPdfService.buildArchiveFrontPdfs(archivesAuto.getProjectId(),archivesAuto,waitArchiveFiles);
+
+			builtFilePageNo(archivesAuto,waitArchiveFiles);//生成文件页码
+
+			for(ArchiveFile file:waitArchiveFiles){
+				file.setArchiveId(archivesAutoId);//设置文件所属案卷
+				file.setIsArchive(1);
+
+			}
+			archiveFileClient.updateArchiveFileForCreateArchive(waitArchiveFiles);
 		}
 
 		return true;
@@ -1303,6 +1327,21 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 		return result;
 	}
 
+	public void test(){
+		String ids = "1654406079229165569";
+
+		List<Long> fids = Func.toLongList(ids);
+
+
+
+		LambdaQueryWrapper<ArchiveFile> wrapper = Wrappers.lambdaQuery();
+		wrapper.in(ArchiveFile::getId, fids);
+
+		// 调用 listWrappers() 方法来获取符合条件的 ArchiveFile 对象列表
+		List<ArchiveFile> files = archiveFileClient.listbyIds(fids);
+		System.out.println();
+	}
+
 
 
 }

+ 13 - 1
blade-service/blade-business/src/main/java/org/springblade/business/feignClient/ArchiveFileClientImpl.java

@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.AllArgsConstructor;
 import org.apache.commons.lang.StringUtils;
 import org.springblade.business.entity.ArchiveFile;
@@ -16,6 +17,8 @@ import org.springblade.common.utils.FileUtils;
 import org.springblade.common.vo.FileSize;
 import org.springblade.manager.entity.ContractInfo;
 import org.springblade.manager.feign.ContractClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.*;
@@ -77,9 +80,18 @@ public class ArchiveFileClientImpl implements ArchiveFileClient {
 
     @Override
     public List<ArchiveFile> listWrappers(LambdaQueryWrapper<ArchiveFile> in) {
-        return this.iArchiveFileService.list(in);
+        List<ArchiveFile> list =  this.iArchiveFileService.list(in);
+        return list;
     }
 
+    @Override
+    public List<ArchiveFile> listbyIds(@RequestBody List<Long> ids){
+        LambdaQueryWrapper<ArchiveFile> wrapper = Wrappers.lambdaQuery();
+        wrapper.in(ArchiveFile::getId, ids);
+        return  this.iArchiveFileService.list(wrapper);
+    }
+
+
     @Override
     public boolean updateWrappers(LambdaUpdateWrapper<ArchiveFile> eq) {
         return this.iArchiveFileService.update(eq);