|
@@ -371,8 +371,38 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
|
|
|
if (StringUtils.isNotBlank(vo.getSecretLevel())) {
|
|
|
vo.setSecretLevelValue("1".equals(vo.getSecretLevel()) ? "机密" : ("2".equals(vo.getSecretLevel()) ? "绝密" : "秘密"));
|
|
|
}
|
|
|
- if (vo.getApprovalFileList() != null && vo.getApprovalFileList().size() > 0) {
|
|
|
- vo.setPageNumber(vo.getApprovalFileList().size());
|
|
|
+ List<ArchivesAutoVO.ApprovalFile> approvalFiles = vo.getApprovalFileList();
|
|
|
+ ArchivesAutoVO.ApprovalFile front = null;
|
|
|
+ ArchivesAutoVO.ApprovalFile cataLog = null;
|
|
|
+ ArchivesAutoVO.ApprovalFile spare = null;
|
|
|
+ ArchivesAutoVO.ApprovalFile back = null;
|
|
|
+ if (approvalFiles != null && !approvalFiles.isEmpty()) {
|
|
|
+ // 四要素
|
|
|
+ Map<String, List<ArchivesAutoVO.ApprovalFile>> collect = approvalFiles.stream().collect(Collectors.groupingBy(approvalFile -> {
|
|
|
+ if (approvalFile != null &&
|
|
|
+ (approvalFile.getFileName().equals("封面") || approvalFile.getFileName().equals("卷内目录") || approvalFile.getFileName().equals("备考表") || approvalFile.getFileName().equals("背脊"))) {
|
|
|
+ return approvalFile.getFileName();
|
|
|
+ }
|
|
|
+ return "0";
|
|
|
+ }, Collectors.toList()));
|
|
|
+ List<ArchivesAutoVO.ApprovalFile> approvalFiles1 = collect.get("0");
|
|
|
+ if (approvalFiles1 == null) {
|
|
|
+ approvalFiles1 = new ArrayList<>();
|
|
|
+ }
|
|
|
+ vo.setPageNumber(approvalFiles1.size());
|
|
|
+ vo.setApprovalFileList(approvalFiles1);
|
|
|
+ if (collect.containsKey("封面")) {
|
|
|
+ front = collect.get("封面").stream().max(Comparator.comparing(ArchivesAutoVO.ApprovalFile::getId)).orElse(null);
|
|
|
+ }
|
|
|
+ if (collect.containsKey("卷内目录")) {
|
|
|
+ cataLog = collect.get("卷内目录").stream().max(Comparator.comparing(ArchivesAutoVO.ApprovalFile::getId)).orElse(null);
|
|
|
+ }
|
|
|
+ if (collect.containsKey("备考表")) {
|
|
|
+ spare = collect.get("备考表").stream().max(Comparator.comparing(ArchivesAutoVO.ApprovalFile::getId)).orElse(null);
|
|
|
+ }
|
|
|
+ if (collect.containsKey("背脊")) {
|
|
|
+ back = collect.get("背脊").stream().max(Comparator.comparing(ArchivesAutoVO.ApprovalFile::getId)).orElse(null);
|
|
|
+ }
|
|
|
} else {
|
|
|
vo.setPageNumber(0);
|
|
|
}
|
|
@@ -381,15 +411,12 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
|
|
|
// 根据 factorType 字符串生成档案号码字符串链表
|
|
|
ArchiveProjectConfig config = archiveProjectConfigService.getByProjectIdOrNew(vo.getProjectId());
|
|
|
String[] frontUrls = outUrl.split(",");
|
|
|
- ArchivesAutoVO.ApprovalFile front = new ArchivesAutoVO.ApprovalFile();
|
|
|
- ArchivesAutoVO.ApprovalFile cataLog = new ArchivesAutoVO.ApprovalFile();
|
|
|
- ArchivesAutoVO.ApprovalFile spare = new ArchivesAutoVO.ApprovalFile();
|
|
|
- ArchivesAutoVO.ApprovalFile back = new ArchivesAutoVO.ApprovalFile();
|
|
|
for (String frontUrl : frontUrls) {
|
|
|
// 封面(原r_Archives_front)增加中文"封面"匹配
|
|
|
- if ((frontUrl.contains(ArchiveAutoPdfServiceImpl.ARCHIVE_NUMBER[0])
|
|
|
+ if (front == null && (frontUrl.contains(ArchiveAutoPdfServiceImpl.ARCHIVE_NUMBER[0])
|
|
|
|| frontUrl.contains("封面"))
|
|
|
&& config.getFactorType().contains("1")) {
|
|
|
+ front = new ArchivesAutoVO.ApprovalFile();
|
|
|
front.setFileName("封面");
|
|
|
if(frontUrl.contains("@@@")){
|
|
|
front.setFileUrl(frontUrl.substring(0,frontUrl.indexOf("@@@")));
|
|
@@ -398,9 +425,10 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
|
|
|
}
|
|
|
}
|
|
|
// 卷内目录(原r_Archives_catalog)增加中文匹配
|
|
|
- else if ((frontUrl.contains(ArchiveAutoPdfServiceImpl.ARCHIVE_NUMBER[1])
|
|
|
+ else if (cataLog == null && (frontUrl.contains(ArchiveAutoPdfServiceImpl.ARCHIVE_NUMBER[1])
|
|
|
|| frontUrl.contains("卷内目录"))
|
|
|
&& config.getFactorType().contains("2")) {
|
|
|
+ cataLog = new ArchivesAutoVO.ApprovalFile();
|
|
|
cataLog.setFileName("卷内目录");
|
|
|
if(frontUrl.contains("@@@")){
|
|
|
cataLog.setFileUrl(frontUrl.substring(0,frontUrl.indexOf("@@@")));
|
|
@@ -409,9 +437,10 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
|
|
|
}
|
|
|
}
|
|
|
// 备考表(原r_Archives_spare)增加中文匹配
|
|
|
- else if ((frontUrl.contains(ArchiveAutoPdfServiceImpl.ARCHIVE_NUMBER[2])
|
|
|
+ else if (spare == null && (frontUrl.contains(ArchiveAutoPdfServiceImpl.ARCHIVE_NUMBER[2])
|
|
|
|| frontUrl.contains("备考表"))
|
|
|
&& config.getFactorType().contains("3")) {
|
|
|
+ spare = new ArchivesAutoVO.ApprovalFile();
|
|
|
spare.setFileName("备考表");
|
|
|
if(frontUrl.contains("@@@")){
|
|
|
spare.setFileUrl(frontUrl.substring(0,frontUrl.indexOf("@@@")));
|
|
@@ -420,9 +449,10 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
|
|
|
}
|
|
|
}
|
|
|
// 背脊(原r_Archives_back)增加中文匹配
|
|
|
- else if ((frontUrl.contains(ArchiveAutoPdfServiceImpl.ARCHIVE_NUMBER[3])
|
|
|
+ else if (back == null && (frontUrl.contains(ArchiveAutoPdfServiceImpl.ARCHIVE_NUMBER[3])
|
|
|
|| frontUrl.contains("背脊"))
|
|
|
&& config.getFactorType().contains("4")) {
|
|
|
+ back = new ArchivesAutoVO.ApprovalFile();
|
|
|
back.setFileName("背脊");
|
|
|
if(frontUrl.contains("@@@")){
|
|
|
back.setFileUrl(frontUrl.substring(0,frontUrl.indexOf("@@@")));
|
|
@@ -431,32 +461,51 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- List<ArchivesAutoVO.ApprovalFile> files = vo.getApprovalFileList();
|
|
|
- if (files != null && !files.isEmpty()) {
|
|
|
- ArchivesAutoVO.ApprovalFile temp = files.get(0);
|
|
|
- if (front.getFileUrl() != null) {
|
|
|
- front.setId(temp.getId() + "_1");
|
|
|
- front.setPdfFileUrl(front.getFileUrl());
|
|
|
- files.add(0,front);
|
|
|
+ List<ArchivesAutoVO.ApprovalFile> files = vo.getApprovalFileList();;
|
|
|
+ if (files != null) {
|
|
|
+ String tempId = null;
|
|
|
+ if (!files.isEmpty()) {
|
|
|
+ tempId = files.get(0).getId();
|
|
|
}
|
|
|
- if (cataLog.getFileUrl() != null) {
|
|
|
- cataLog.setId(temp.getId() + "_2");
|
|
|
- cataLog.setPdfFileUrl(cataLog.getFileUrl());
|
|
|
- if (front.getFileUrl() != null) {
|
|
|
- files.add(1,cataLog);
|
|
|
- } else {
|
|
|
- files.add(0,cataLog);
|
|
|
+ if (front != null && front.getFileUrl() != null) {
|
|
|
+ if (front.getId() == null && tempId != null) {
|
|
|
+ front.setId(tempId + "_1");
|
|
|
+ }
|
|
|
+ if (front.getId() != null) {
|
|
|
+ front.setPdfFileUrl(front.getFileUrl());
|
|
|
+ files.add(0,front);
|
|
|
}
|
|
|
}
|
|
|
- if (spare.getFileUrl() != null) {
|
|
|
- spare.setId(temp.getId() + "_3");
|
|
|
- spare.setPdfFileUrl(spare.getFileUrl());
|
|
|
- files.add(spare);
|
|
|
+ if (cataLog != null && cataLog.getFileUrl() != null) {
|
|
|
+ if (cataLog.getId() == null && tempId != null) {
|
|
|
+ cataLog.setId(tempId + "_2");
|
|
|
+ }
|
|
|
+ if (cataLog.getId() != null) {
|
|
|
+ cataLog.setPdfFileUrl(cataLog.getFileUrl());
|
|
|
+ if (front != null && front.getFileUrl() != null) {
|
|
|
+ files.add(1,cataLog);
|
|
|
+ } else {
|
|
|
+ files.add(0,cataLog);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (spare != null && spare.getFileUrl() != null) {
|
|
|
+ if (spare.getId() == null && tempId != null) {
|
|
|
+ spare.setId(tempId + "_3");
|
|
|
+ }
|
|
|
+ if (spare.getId() != null) {
|
|
|
+ spare.setPdfFileUrl(spare.getFileUrl());
|
|
|
+ files.add(spare);
|
|
|
+ }
|
|
|
}
|
|
|
- if (back.getFileUrl() != null) {
|
|
|
- back.setId(temp.getId() + "_4");
|
|
|
- back.setPdfFileUrl(back.getFileUrl());
|
|
|
- files.add(back);
|
|
|
+ if (back != null && back.getFileUrl() != null) {
|
|
|
+ if (back.getId() == null && tempId != null) {
|
|
|
+ back.setId(tempId + "_4");
|
|
|
+ }
|
|
|
+ if (back.getId() != null) {
|
|
|
+ back.setPdfFileUrl(back.getFileUrl());
|
|
|
+ files.add(back);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|