laibulaizheli hai 1 mes
pai
achega
0cffc77663

+ 62 - 6
blade-service/blade-archive/src/main/java/org/springblade/archive/service/impl/ArchivesAutoServiceImpl.java

@@ -1491,6 +1491,54 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 		}
 	}
 
+	/**
+	 * 单独组卷规则组卷
+	 *
+	 * @param waitArchiveFiles
+	 * @param node             规格参数所在节点
+	 * @param pageN
+	 */
+	private void createArchive3_new(List<ArchiveFile> waitArchiveFiles, ArchiveTreeContract node, int pageN,IArchiveNameService.NodeHierarchy nameInfo) {
+
+		String archiveStartDateAndEndDate = getArchiveStartDateAndEndDate(waitArchiveFiles);
+		String[] split = archiveStartDateAndEndDate.split(",");
+		String startDate = split.length >= 1 ? split[0] : "";
+		String endDate = split.length >= 2 ? split[1] : "";
+		int fileN = waitArchiveFiles.size();
+		if (fileN == 0) {
+			return;
+		}
+
+		String archiveName = builtArchiveName_new(waitArchiveFiles, node, false,nameInfo);//获取案卷题名
+		//1.创建新案卷
+		ArchivesAuto archivesAuto = builtArchives(node, pageN, fileN, startDate, endDate, archiveName);
+		//2.设置文件所属案卷,组卷状态
+		Long archivesAutoId = archivesAuto.getId();
+
+		//封面和生成文件页码
+		archiveAutoPdfService.buildArchiveFrontPdfs(archivesAuto.getProjectId(), archivesAuto, waitArchiveFiles, false);
+
+		builtFilePageNo(archivesAuto, waitArchiveFiles);//生成文件页码
+
+
+		for (ArchiveFile file : waitArchiveFiles) {
+			file.setArchiveId(archivesAutoId);//设置文件所属案卷
+			file.setIsArchive(1);
+
+		}
+		archiveFileClient.updateArchiveFileForCreateArchive(waitArchiveFiles);
+		try {
+//			for (ArchiveFile saveVo : waitArchiveFiles) {
+//				metadataClassificationClient.createMetadataFile(saveVo.getId(), 0);
+//			}
+			batchCreateMetadataFiles(waitArchiveFiles);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+
+
 	/**
 	 * 分类并卷组卷
 	 *
@@ -1768,6 +1816,10 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 
 	private void archiveAutoMethod3(List<ArchiveTreeContract> list, Map<String, List<ArchiveFile>> boxMap,
 									Map<Long, String> boxFileMap, Long traceId) {
+
+		// 4. 构建节点层级关系
+		IArchiveNameService.NodeHierarchy nameInfo =
+				archiveNameService.buildNodeHierarchy(list);
 		// 步骤1:遍历节点集合
 		for (ArchiveTreeContract node : list) {
 			// 步骤2:获取当前节点的案卷规格
@@ -1803,7 +1855,7 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 
 					// 如果是最后一个文件且有待组卷文件,则组卷
 					if (archiveFilesSize == archiveFiles.size() && !waitArchiveFiles.isEmpty()) {
-						createArchive3(waitArchiveFiles, node, archivesSize);
+						createArchive3_new(waitArchiveFiles, node, archivesSize,nameInfo);
 						waitArchiveFiles.clear();
 						archivesSize = 0;
 					}
@@ -1822,7 +1874,7 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 
 						// 最后一个文件直接组卷
 						if (archiveFilesSize == archiveFiles.size()) {
-							createArchive3(waitArchiveFiles, node, archivesSize);
+							createArchive3_new(waitArchiveFiles, node, archivesSize,nameInfo);
 							waitArchiveFiles.clear();
 							archivesSize = 0;
 						}
@@ -1831,7 +1883,7 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 					else if (checkStatus == 1) {
 						waitArchiveFiles.add(file);
 						archivesSize = tempTotalSize;
-						createArchive3(waitArchiveFiles, node, archivesSize);
+						createArchive3_new(waitArchiveFiles, node, archivesSize,nameInfo);
 
 						// 重置待组卷集合
 						waitArchiveFiles.clear();
@@ -1841,7 +1893,7 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 					else if (checkStatus == -1) {
 						if (!waitArchiveFiles.isEmpty()) {
 							// 先将现有集合组卷(不含当前文件)
-							createArchive3(waitArchiveFiles, node, archivesSize);
+							createArchive3_new(waitArchiveFiles, node, archivesSize,nameInfo);
 
 							// 新建集合存放当前文件
 							waitArchiveFiles.clear();
@@ -1850,7 +1902,7 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 
 							// 最后一个文件直接组卷
 							if (archiveFilesSize == archiveFiles.size()) {
-								createArchive3(waitArchiveFiles, node, archivesSize);
+								createArchive3_new(waitArchiveFiles, node, archivesSize,nameInfo);
 								waitArchiveFiles.clear();
 								archivesSize = 0;
 							}
@@ -1858,7 +1910,7 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 							// 当前文件单独成卷
 							waitArchiveFiles.add(file);
 							archivesSize = filePage;
-							createArchive3(waitArchiveFiles, node, archivesSize);
+							createArchive3_new(waitArchiveFiles, node, archivesSize,nameInfo);
 
 							// 重置集合
 							waitArchiveFiles.clear();
@@ -2171,6 +2223,10 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 		}
 	}
 
+
+
+
+
 	private void archiveAutoMethodGroup(List<ArchiveFile> archiveFiles, Long archiveAutoGroupId, Long projectId,IArchiveNameService.NodeHierarchy nameInfo) {
 		if (archiveFiles.size()==0) {
 			return;