瀏覽代碼

档案系统并卷/编辑优化

lvy 16 小時之前
父節點
當前提交
891bc134cb

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

@@ -20,6 +20,7 @@ import org.springblade.business.feign.ArchiveFileClient;
 import org.springblade.business.vo.ArchiveFileVO;
 import org.springblade.common.utils.SnowFlakeUtil;
 import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.oss.model.BladeFile;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
@@ -133,8 +134,12 @@ ArchiveFileAutoController extends BladeController {
                 } else {
                     ArchivesAuto archivesAuto = archivesAutoService.getById(archive.getId());
                     if (archivesAuto!= null ) {
+                        if (archivesAuto.getActionType() == 1 || archivesAuto.getActionType() == 2 ) {
+                            throw new ServiceException("【" + archivesAuto.getName() + "】案卷已正在并卷或重组,请稍后再试!");
+                        }
                         archive.setAutoFileSort(archivesAuto.getAutoFileSort());
                     }
+                    archive.setActionType(null);
                     //如果有替换文件,则替换
                     List<ArchivesAutoVO.ApprovalFile> list = archive.getApprovalFileList();
                     if (list != null && list.size() > 0) {
@@ -241,6 +246,11 @@ ArchiveFileAutoController extends BladeController {
                     }
                     archivesAutoService.save(archive);
                 } else {
+                    ArchivesAuto archivesAuto = archivesAutoService.getById(archive.getId());
+                    if (archivesAuto!= null && (archivesAuto.getActionType() == 1 || archivesAuto.getActionType() == 2)) {
+                        throw new ServiceException("【" + archivesAuto.getName() + "】案卷已正在并卷或重组,请稍后再试!");
+                    }
+                    archive.setActionType(null);
                     archivesAutoService.updateById(archive);
                 }
             }

+ 5 - 1
blade-service/blade-archive/src/main/java/org/springblade/archive/controller/ArchivesAutoController.java

@@ -53,6 +53,7 @@ import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.manager.entity.ArchiveTreeContract;
@@ -694,7 +695,10 @@ public class ArchivesAutoController extends BladeController {
 			throw  new ServiceException("【" + names + "】案卷正在重组或者并卷,请稍后在进行相关操作");
 		}
 		Set<Long> ids = archivesAutoList.stream().map(ArchivesAuto::getId).collect(Collectors.toSet());
-		boolean update = archivesAutoService.update(Wrappers.<ArchivesAuto>lambdaUpdate().set(ArchivesAuto::getActionType, type).in(ArchivesAuto::getId, ids)
+		Date now = new Date();
+		boolean update = archivesAutoService.update(Wrappers.<ArchivesAuto>lambdaUpdate().set(ArchivesAuto::getActionType, type).set(ArchivesAuto::getUpdateTime, now)
+				// createDept 并卷批次
+				.set(ArchivesAuto::getUpdateUser, AuthUtil.getUserId()).set(ArchivesAuto::getCreateDept, SnowFlakeUtil.getId()).in(ArchivesAuto::getId, ids)
 				.and(item -> item.notIn(ArchivesAuto::getActionType, 1,2).or().isNull(ArchivesAuto::getActionType)));
 		if (!update) {
 			throw new ServiceException("操作失败,案卷可能正在重组或者并卷,请稍后在进行相关操作");

+ 38 - 37
blade-service/blade-archive/src/main/java/org/springblade/archive/service/impl/ArchivesAutoServiceImpl.java

@@ -5221,47 +5221,47 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 	@Override
 	@Async
 	public void reCreateArchiveAuto2(List<ArchivesAuto> archivesAutoList, String ids, String name) {
-		//根据档号后缀排序 拿到第一个
-		ArchivesAuto archivesAuto = archivesAutoList.get(0);
-		archivesAutoList.sort(Comparator.comparingInt(a -> {
-			String fileNumber = a.getFileNumber();
-			if (fileNumber == null || fileNumber.isEmpty()) {
-				return Integer.MAX_VALUE;
-			}
-			String[] parts;
-			if (fileNumber.indexOf("_") > 0) {
-				parts = fileNumber.split("_");
-			} else if (fileNumber.indexOf("-") > 0) {
-				parts = fileNumber.split("-");
-			} else {
-				return Integer.MAX_VALUE;
-			}
-			if (parts.length > 0) {
-				try {
-					return Integer.parseInt(parts[parts.length - 1]);
-				} catch (NumberFormatException e) {
+		try {
+			//根据档号后缀排序 拿到第一个
+			ArchivesAuto archivesAuto = archivesAutoList.get(0);
+			archivesAutoList.sort(Comparator.comparingInt(a -> {
+				String fileNumber = a.getFileNumber();
+				if (fileNumber == null || fileNumber.isEmpty()) {
+					return Integer.MAX_VALUE;
+				}
+				String[] parts;
+				if (fileNumber.indexOf("_") > 0) {
+					parts = fileNumber.split("_");
+				} else if (fileNumber.indexOf("-") > 0) {
+					parts = fileNumber.split("-");
+				} else {
 					return Integer.MAX_VALUE;
 				}
+				if (parts.length > 0) {
+					try {
+						return Integer.parseInt(parts[parts.length - 1]);
+					} catch (NumberFormatException e) {
+						return Integer.MAX_VALUE;
+					}
+				}
+				return Integer.MAX_VALUE;
+			}));
+			//将除第一个以外的案卷文件archiveId 设置成第一个的id
+			List<ArchiveFile> waitArchiveFiles = new ArrayList<>();
+			//查出所有案卷文件
+			List<ArchiveFile>archiveFileList=new ArrayList<>();
+			List<Long> longList = Func.toLongList(ids);
+			for (Long id : longList) {
+				archiveFileList.addAll(archiveFileClient.getArchiveFileByArchiveIds(id+""));
 			}
-			return Integer.MAX_VALUE;
-		}));
-		//将除第一个以外的案卷文件archiveId 设置成第一个的id
-		List<ArchiveFile> waitArchiveFiles = new ArrayList<>();
-		//查出所有案卷文件
-		List<ArchiveFile>archiveFileList=new ArrayList<>();
-		List<Long> longList = Func.toLongList(ids);
-		for (Long id : longList) {
-			archiveFileList.addAll(archiveFileClient.getArchiveFileByArchiveIds(id+""));
-		}
-		int i=1;
-		for (ArchiveFile file : archiveFileList) {
-			if (!file.getArchiveId().equals(archivesAuto.getId())) {
-				file.setArchiveId(archivesAuto.getId());
+			int i=1;
+			for (ArchiveFile file : archiveFileList) {
+				if (!file.getArchiveId().equals(archivesAuto.getId())) {
+					file.setArchiveId(archivesAuto.getId());
+				}
+				file.setArchiveSort(i++);
+				waitArchiveFiles.add(file);
 			}
-			file.setArchiveSort(i++);
-			waitArchiveFiles.add(file);
-		}
-		try {
 			archiveFileClient.updateArchiveFile(waitArchiveFiles);
 			archivesAuto.setName(name);
 			//删除其他案卷
@@ -5273,6 +5273,7 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 			log.error("案卷并卷失败," + "案卷Ids:" + ids, e);
 			this.update(Wrappers.<ArchivesAuto>lambdaUpdate().set(ArchivesAuto::getActionType, -1).in(ArchivesAuto::getId, ids));
 		}
+
 	}
 
 	/**