Explorar o código

档案插卷时修改排序

lvy hai 5 días
pai
achega
1c051b5a46

+ 2 - 2
blade-service-api/blade-archive-api/src/main/java/org/springblade/archive/vo/ArchivesAutoInsertVO.java

@@ -47,7 +47,7 @@ public class ArchivesAutoInsertVO implements Serializable {
 	@ApiModelProperty("选择位置的文件id")
 	private Long targetIndexFileId;
 
-	@ApiModelProperty("ids, targetIndexFileId 和 sortFileList 二选一")
-	private List<Long> sortFileList;
+	@ApiModelProperty("ids")
+	private String sortFileList;
 
 }

+ 48 - 12
blade-service/blade-archive/src/main/java/org/springblade/archive/controller/ArchivesAutoController.java

@@ -1247,14 +1247,52 @@ public class ArchivesAutoController extends BladeController {
 				return R.fail("文件【" + archiveFile.getFileName() + "】不属于【" + source.getName() + "】案卷,请重新选择");
 			}
 		}
-		if ((vo.getTargetIndexFileId() ==  null || vo.getTargetIndexFileId() <= 0) && (vo.getSortFileList() == null || vo.getSortFileList().isEmpty())) {
+		if ((vo.getTargetIndexFileId() ==  null || vo.getTargetIndexFileId() <= 0)) {
 			return R.fail("请选择要插入的位置");
 		}
-		List<ArchiveFile> targetArchiveFileList = archiveFileClient.getArchiveFileByArchiveIds(vo.getTargetId() + "");
-		targetArchiveFileList.sort(Comparator.comparingInt(ArchiveFile::getArchiveSort));
 		List<ArchiveFile> updateArchiveFileList = new ArrayList<>();
 		int sort = 0;
-		if (vo.getTargetIndexFileId() != null && vo.getTargetIndexFileId() > 0) {
+		if (vo.getSortFileList() != null && !vo.getSortFileList().isEmpty()) {
+			String[] split1 = vo.getSortFileList().split(",");
+			for (String s : split1) {
+				if (StringUtils.isNumeric(s)) {
+					ArchiveFile file = new ArchiveFile();
+					file.setId(Long.parseLong(s));
+					updateArchiveFileList.add(file);
+					if (s.equals(vo.getTargetIndexFileId() + "")) {
+						sourceArchiveFileList.sort(Comparator.comparingInt(ArchiveFile::getArchiveSort));
+						if (vo.getType() == null || vo.getType() == 0) {
+							file.setSort( sort);
+							for (ArchiveFile file1 : sourceArchiveFileList) {
+								ArchiveFile file2 = new ArchiveFile();
+								file2.setId(file1.getId());
+								file2.setArchiveId(target.getId());
+								file2.setPageNum("");
+								sort++;
+								file2.setSort(sort);
+								updateArchiveFileList.add(file2);
+							}
+						} else {
+							for (ArchiveFile file1 : sourceArchiveFileList) {
+								ArchiveFile file2 = new ArchiveFile();
+								file2.setId(file1.getId());
+								file2.setArchiveId(target.getId());
+								file2.setPageNum("");
+								file2.setSort(sort);
+								sort++;
+								updateArchiveFileList.add(file2);
+							}
+							file.setSort( sort);
+						}
+					} else {
+						file.setSort( sort);
+					}
+					sort++;
+				}
+			}
+		} else {
+			List<ArchiveFile> targetArchiveFileList = archiveFileClient.getArchiveFileByArchiveIds(vo.getTargetId() + "");
+			targetArchiveFileList.sort(Comparator.comparingInt(ArchiveFile::getArchiveSort));
 			for (ArchiveFile archiveFile : targetArchiveFileList) {
 				if (archiveFile.getId().equals(vo.getTargetIndexFileId())) {
 					sort = archiveFile.getArchiveSort();
@@ -1287,16 +1325,14 @@ public class ArchivesAutoController extends BladeController {
 					updateArchiveFileList.add(file);
 				}
 			}
-		} else {
-			return R.fail("暂不支持");
+			// 修改排序
+			for (ArchiveFile archiveFile : updateArchiveFileList) {
+				archiveFile.setArchiveSort(sort);
+				archiveFile.setArchiveId(vo.getTargetId());
+				sort++;
+			}
 		}
-		// 修改排序
 		// 修改标识
-		for (ArchiveFile archiveFile : updateArchiveFileList) {
-			archiveFile.setArchiveSort(sort);
-			archiveFile.setArchiveId(vo.getTargetId());
-			sort++;
-		}
 		archiveFileClient.updateArchiveFile(updateArchiveFileList);
 		archivesAutoService.update(Wrappers.<ArchivesAuto>lambdaUpdate().in(ArchivesAuto::getId,vo.getTargetId(), vo.getSourceId()).set(ArchivesAuto::getActionType, 3));
 		return R.status(true);