0、策略常量类
代码语言:javascript复制/**
* @author Eliauk
*/
public interface PathUploadType {
String PDF = "PDF文件";
String TIF = "TIF文件";
String IMAGE_TO_PDF = "合并图片文件";
String VOLUME = "案卷合并";
String OFD = "OFD文件";
}
1、合并图片为PDF
代码语言:javascript复制这里的逻辑是将当前根目录下所有的包含PDF目录的文件夹里边所有的【jpg", “jpeg”, “png”, “tif”, "tiff】文件都合并成一个PDF文件
logger.info("接受到图片合并处理任务…………");
List<File> fileFolders = new ArrayList<>();
List<String> legalSuffix = Arrays.asList("jpg", "jpeg", "png", "tif", "tiff"
File rootFolder = FileUtil.file(upload localPath);
DirectoryScanner.getFileFoldersWithImages(rootFolder, fileFolders, legalSuffix);
logger.info("列出包含文件的文件夹成功,一共包含{}个文件夹", fileFolders.size()
for (File uploadFileFolder : fileFolders) {
pathUpLoadProducer.syncSendPathUpload(tenantId,Convert.toStr(taskId),null,Convert.toStr(uploadFileFolder),Convert.toStr(overWrite),PathUploadType.IMAGE_TO_PDF);
}
2、OFD转PDF
代码语言:javascript复制List<File> fileFolders = new ArrayList<>();
List<String> legalSuffix = List.of("ofd"
getFoldersWithPDFFiles(upload localPath, fileFolders, legalSuffix);
logger.info("成功列出包含PDF的文件夹,总共包含{}个文件夹", fileFolders.size());
for (int folderIndex = 0; folderIndex < fileFolders.size(); folderIndex ) {
File uploadFileFolder = fileFolders.get(folderIndex);
pathUpLoadProducer.syncSendPathUpload(tenantId,Convert.toStr(taskId),null,Convert.toStr(uploadFileFolder),Convert.toStr(overWrite),PathUploadType.OFD);
}
3、案卷合并
:::warning 这个逻辑与合并图片为PDF不同的是,这个会根据全宗去合并 举个例子: A001-004-021-0001.jpg A001-004-021-0002.jpg A001-004-022-0001.jpg A001-004-022-0002.jpg A001-004-022-0003.jpg A001-004-023-0001.jpg 最终合并成的文件就是【 A001-004-021-0001, A001-004-022-0001, A001-004-023-0001 】 :::
代码语言:javascript复制logger.info("接受到案卷合并处理任务…………");
List<File> fileFolders = new ArrayList<>();
List<String> legalSuffix = Arrays.asList("jpg", "jpeg", "png", "tif", "tiff");
File rootFolder = FileUtil.file(upload localPath);
DirectoryScanner.getFileFoldersWithImages(rootFolder, fileFolders, legalSuffix);
logger.info("列出包含文件的文件夹成功,一共包含{}个文件夹", fileFolders.size());
for (int folderIndex = 0; folderIndex < fileFolders.size(); folderIndex ) {
File uploadFileFolder = fileFolders.get(folderIndex);
pathUpLoadProducer.syncSendPathUpload(tenantId,Convert.toStr(taskId),null,Convert.toStr(uploadFileFolder),Convert.toStr(overWrite),PathUploadType.VOLUME);
}