|
@@ -1238,6 +1238,12 @@ public class ArchivesAutoController extends BladeController {
|
|
if (target == null || source == null) {
|
|
if (target == null || source == null) {
|
|
return R.fail("插入或选择的案卷不存在");
|
|
return R.fail("插入或选择的案卷不存在");
|
|
}
|
|
}
|
|
|
|
+ if (target.getActionType() != null && (target.getActionType() == 1 || target.getActionType() == 2)) {
|
|
|
|
+ return R.fail("案卷【"+ target.getName() + "进行重组或者并卷,请稍后再试");
|
|
|
|
+ }
|
|
|
|
+ if (source.getActionType() != null && (source.getActionType() == 1 || source.getActionType() == 2)) {
|
|
|
|
+ return R.fail("案卷【"+ source.getName() + "进行重组或者并卷,请稍后再试");
|
|
|
|
+ }
|
|
List<ArchiveFile> sourceArchiveFileList = archiveFileClient.getAllArchiveFileByIds(sourceFileIds);
|
|
List<ArchiveFile> sourceArchiveFileList = archiveFileClient.getAllArchiveFileByIds(sourceFileIds);
|
|
if (sourceArchiveFileList == null || sourceArchiveFileList.isEmpty()) {
|
|
if (sourceArchiveFileList == null || sourceArchiveFileList.isEmpty()) {
|
|
return R.fail("请择要插入的文件不存在");
|
|
return R.fail("请择要插入的文件不存在");
|
|
@@ -1247,97 +1253,32 @@ public class ArchivesAutoController extends BladeController {
|
|
return R.fail("文件【" + archiveFile.getFileName() + "】不属于【" + source.getName() + "】案卷,请重新选择");
|
|
return R.fail("文件【" + archiveFile.getFileName() + "】不属于【" + source.getName() + "】案卷,请重新选择");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- if ((vo.getTargetIndexFileId() == null || vo.getTargetIndexFileId() <= 0)) {
|
|
|
|
- return R.fail("请选择要插入的位置");
|
|
|
|
|
|
+ if ((vo.getSortFileList() == null || !vo.getSortFileList().contains(","))) {
|
|
|
|
+ return R.fail("参数错误");
|
|
}
|
|
}
|
|
List<ArchiveFile> updateArchiveFileList = new ArrayList<>();
|
|
List<ArchiveFile> updateArchiveFileList = new ArrayList<>();
|
|
int sort = 0;
|
|
int sort = 0;
|
|
- if (vo.getSortFileList() != null && !vo.getSortFileList().isEmpty()) {
|
|
|
|
- String[] split1 = vo.getSortFileList().split(",");
|
|
|
|
- // sourceArchiveFileList id 可能存在split1中,需要过滤
|
|
|
|
- Map<Long, Long> longMap = Arrays.stream(split1).filter(StringUtils::isNumeric).map(Long::parseLong).collect(Collectors.toMap(k -> k, v -> v, (k1, k2) -> k1));
|
|
|
|
- sourceArchiveFileList.removeIf(file -> longMap.containsKey(file.getId()));
|
|
|
|
- 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();
|
|
|
|
- ArchiveFile file = new ArchiveFile();
|
|
|
|
- file.setId(archiveFile.getId());
|
|
|
|
- file.setArchiveId(archiveFile.getArchiveId());
|
|
|
|
- sourceArchiveFileList.sort(Comparator.comparingInt(ArchiveFile::getArchiveSort));
|
|
|
|
- if (vo.getType() == null || vo.getType() == 0) {
|
|
|
|
- updateArchiveFileList.add(file);
|
|
|
|
- for (ArchiveFile file1 : sourceArchiveFileList) {
|
|
|
|
- ArchiveFile file2 = new ArchiveFile();
|
|
|
|
- file2.setId(file1.getId());
|
|
|
|
- file2.setArchiveId(archiveFile.getArchiveId());
|
|
|
|
- file2.setPageNum("");
|
|
|
|
- updateArchiveFileList.add(file2);
|
|
|
|
- }
|
|
|
|
- } else {
|
|
|
|
- for (ArchiveFile file1 : sourceArchiveFileList) {
|
|
|
|
- ArchiveFile file2 = new ArchiveFile();
|
|
|
|
- file2.setId(file1.getId());
|
|
|
|
- file2.setArchiveId(archiveFile.getArchiveId());
|
|
|
|
- file2.setPageNum("");
|
|
|
|
- updateArchiveFileList.add(file2);
|
|
|
|
- }
|
|
|
|
- updateArchiveFileList.add(file);
|
|
|
|
- }
|
|
|
|
- } else if (!updateArchiveFileList.isEmpty()) {
|
|
|
|
- ArchiveFile file = new ArchiveFile();
|
|
|
|
- file.setId(archiveFile.getId());
|
|
|
|
- updateArchiveFileList.add(file);
|
|
|
|
|
|
+ String[] split1 = vo.getSortFileList().split(",");
|
|
|
|
+ Map<Long, Integer> map = sourceArchiveFileList.stream().collect(Collectors.toMap(ArchiveFile::getId, ArchiveFile::getSort));
|
|
|
|
+ for (String s : split1) {
|
|
|
|
+ if (StringUtils.isNumeric(s)) {
|
|
|
|
+ ArchiveFile file = new ArchiveFile();
|
|
|
|
+ file.setId(Long.parseLong(s));
|
|
|
|
+ updateArchiveFileList.add(file);
|
|
|
|
+ file.setSort(sort);
|
|
|
|
+ if (map.containsKey(file.getId())) {
|
|
|
|
+ file.setPageNum("");
|
|
|
|
+ file.setArchiveId(target.getId());
|
|
}
|
|
}
|
|
- }
|
|
|
|
- // 修改排序
|
|
|
|
- for (ArchiveFile archiveFile : updateArchiveFileList) {
|
|
|
|
- archiveFile.setArchiveSort(sort);
|
|
|
|
- archiveFile.setArchiveId(vo.getTargetId());
|
|
|
|
sort++;
|
|
sort++;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
// 修改标识
|
|
// 修改标识
|
|
archiveFileClient.updateArchiveFile(updateArchiveFileList);
|
|
archiveFileClient.updateArchiveFile(updateArchiveFileList);
|
|
- archivesAutoService.update(Wrappers.<ArchivesAuto>lambdaUpdate().in(ArchivesAuto::getId,vo.getTargetId(), vo.getSourceId()).set(ArchivesAuto::getActionType, 3));
|
|
|
|
|
|
+ boolean update = archivesAutoService.update(Wrappers.<ArchivesAuto>lambdaUpdate().in(ArchivesAuto::getId, vo.getTargetId(), vo.getSourceId()).set(ArchivesAuto::getActionType, 3).last("and (action_type is null or action_type in (0,3))"));
|
|
|
|
+ if (!update) {
|
|
|
|
+ return R.fail("案卷【" + target.getName() + "】或【" + source.getName() + "】正在被其他用户操作,请稍后再试");
|
|
|
|
+ }
|
|
return R.status(true);
|
|
return R.status(true);
|
|
}
|
|
}
|
|
|
|
|