huangtf 2 years ago
parent
commit
cb64498d82

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

@@ -334,6 +334,15 @@ public class ArchivesAutoController extends BladeController {
 		return R.data(url);
 	}
 
+	/**
+	 * 拆卷
+	 */
+	@PostMapping("/split")
+	@ApiOperationSupport(order = 15)
+	@ApiOperation(value = "拆卷", notes = "传入ids")
+	public R split(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		return R.status(archivesAutoService.slipt(ids));
+	}
 
 
 }

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

@@ -62,4 +62,7 @@ public interface IArchivesAutoService extends BaseService<ArchivesAuto> {
 	void splitArchvies(Long project);
 
 	public String getMergeArchivesFile(Long archiveId);
+
+	//拆卷
+	boolean slipt(String ids);
 }

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

@@ -20,6 +20,7 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.AllArgsConstructor;
@@ -1061,5 +1062,45 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 		return  url;
 	}
 
+	/**
+	 * 拆卷
+	 * @param ids
+	 * @return
+	 */
+	public  boolean slipt(String ids) {
+
+		List orgIds = Func.toLongList(ids);
+
+		List<String> strIds = new ArrayList<>();
+		List<Long> lIds = new ArrayList<>();
+
+		//排除锁定的和单文件案卷这种
+		List<ArchivesAuto> archivesAutos = this.listByIds(orgIds);
+		for (ArchivesAuto ar: archivesAutos) {
+			if (ar.getIsLock() == 1) {
+				continue;
+			}
+			if (ar.getIsAutoFile() == 1) {
+				continue;
+			}
+			lIds.add(ar.getId());
+			strIds.add(ar.getId().toString());
+		}
+
+		//更新
+		List<ArchiveFile> files = archiveFileClient.getAllArchiveFileByArchiveIds(strIds);
+		if (files != null && files.size() > 0) {
+			for (ArchiveFile f: files) {
+				f.setIsArchive(0);
+				f.setArchiveId(null);
+				LambdaUpdateWrapper<ArchiveFile> wrappers = Wrappers.lambdaUpdate();
+				this.archiveFileClient.updateWrappers(wrappers.eq(ArchiveFile::getId, f.getId()));
+			}
+		}
+
+		//删除案卷
+		return this.deleteLogic(lIds);
+	}
+
 
 }