|
@@ -60,66 +60,43 @@ public class PDFExportFirstPageService {
|
|
|
|
|
|
|
|
|
@Async
|
|
|
- public void mergePdfFirstPage(ExportTaskDTO exportTask){
|
|
|
+ public void mergePdfFirstPage(ExportTaskDTO exportTask) throws IOException {
|
|
|
EsCustomFieldBatchVO EsVO = exportTask.getEsVO();
|
|
|
- try {
|
|
|
- List<String> patentNos = this.getPatentNo(EsVO);
|
|
|
- Integer total = patentNos.size();
|
|
|
- Integer defaultNum = 0;
|
|
|
- PDFMergerUtility merger = new PDFMergerUtility();
|
|
|
- PDDocument resultDocument = new PDDocument();
|
|
|
- for (int i = 0; i < patentNos.size(); i++) {
|
|
|
- PatentNoVO patentNoVO = new PatentNoVO();
|
|
|
- patentNoVO.setPatentNo(patentNos.get(i));
|
|
|
- PatentColumnDTO patentColumnDTO = new PatentColumnDTO();
|
|
|
- try {
|
|
|
- patentColumnDTO = patentService.selectPatentDetail(patentNoVO);
|
|
|
- } catch (Exception e) {
|
|
|
- defaultNum++;
|
|
|
- continue;
|
|
|
- }
|
|
|
- if (patentColumnDTO != null) {
|
|
|
- //判断申请号是否为空
|
|
|
- if (patentColumnDTO.getAppNo() != null) {
|
|
|
- String appNo = patentColumnDTO.getAppNo();
|
|
|
- Integer type = 1;
|
|
|
- //获取公告专利pdf文档guid
|
|
|
- String pdfGuid = FormatUtil.getPDFFormat(appNo, type);
|
|
|
- byte[] pdfData = new byte[0];
|
|
|
- try {
|
|
|
- pdfData = fileManagerService.downloadSystemFileFromFMS(pdfGuid);
|
|
|
+ List<String> patentNos = this.getPatentNo(EsVO);
|
|
|
+ Integer total = patentNos.size();
|
|
|
+ Integer defaultNum = 0;
|
|
|
+ PDFMergerUtility merger = new PDFMergerUtility();
|
|
|
+ PDDocument resultDocument = new PDDocument();
|
|
|
+ for (int i = 0; i < patentNos.size(); i++) {
|
|
|
+ PatentNoVO patentNoVO = new PatentNoVO();
|
|
|
+ patentNoVO.setPatentNo(patentNos.get(i));
|
|
|
+ PatentColumnDTO patentColumnDTO = new PatentColumnDTO();
|
|
|
+ try {
|
|
|
+ patentColumnDTO = patentService.selectPatentDetail(patentNoVO);
|
|
|
+ } catch (Exception e) {
|
|
|
+ defaultNum++;
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (patentColumnDTO != null) {
|
|
|
+ //判断申请号是否为空
|
|
|
+ if (patentColumnDTO.getAppNo() != null) {
|
|
|
+ String appNo = patentColumnDTO.getAppNo();
|
|
|
+ Integer type = 1;
|
|
|
+ //获取公告专利pdf文档guid
|
|
|
+ String pdfGuid = FormatUtil.getPDFFormat(appNo, type);
|
|
|
+ byte[] pdfData = new byte[0];
|
|
|
+ try {
|
|
|
+ pdfData = fileManagerService.downloadSystemFileFromFMS(pdfGuid);
|
|
|
+ if (pdfData == null || pdfData.length == 0) {
|
|
|
+ //获取公开专利pdf文档guid
|
|
|
+ Integer type2 = 0;
|
|
|
+ String pdfGuid2 = FormatUtil.getPDFFormat(appNo, type2);
|
|
|
+ pdfData = fileManagerService.downloadSystemFileFromFMS(pdfGuid2);
|
|
|
if (pdfData == null || pdfData.length == 0) {
|
|
|
- //获取公开专利pdf文档guid
|
|
|
- Integer type2 = 0;
|
|
|
- String pdfGuid2 = FormatUtil.getPDFFormat(appNo, type2);
|
|
|
- pdfData = fileManagerService.downloadSystemFileFromFMS(pdfGuid2);
|
|
|
- if (pdfData == null || pdfData.length == 0) {
|
|
|
- defaultNum++;
|
|
|
- continue;
|
|
|
- } else {
|
|
|
- // 加载输入的PDF文档
|
|
|
- PDDocument document = PDDocument.load(pdfData);
|
|
|
- // 获取第一页
|
|
|
- PDPage firstPage = document.getPage(0);
|
|
|
- // 创建一个新的文档用于保存第一页
|
|
|
- PDDocument firstPageDocument = new PDDocument();
|
|
|
- firstPageDocument.addPage(firstPage);
|
|
|
- // 将第一页添加到合并器中
|
|
|
- merger.appendDocument(resultDocument, firstPageDocument);
|
|
|
- // 关闭当前处理的文档
|
|
|
- document.close();
|
|
|
- firstPageDocument.close();
|
|
|
- WebSocketMessageVO webSocketMessageVO =new WebSocketMessageVO();
|
|
|
- webSocketMessageVO.setProjectId(EsVO.getProjectId());
|
|
|
- webSocketMessageVO.setCreateId("328");
|
|
|
- webSocketMessageVO.setCode(604);
|
|
|
- webSocketMessageVO.setAllNum(total);
|
|
|
- webSocketMessageVO.setCurrentNum(i+1);
|
|
|
- webSocketMessageVO.setState(1);
|
|
|
- messageService.sendPatentExportMessage(webSocketMessageVO);
|
|
|
- }
|
|
|
+ defaultNum++;
|
|
|
+ continue;
|
|
|
} else {
|
|
|
- // 加载每个输入的PDF文档
|
|
|
+ // 加载输入的PDF文档
|
|
|
PDDocument document = PDDocument.load(pdfData);
|
|
|
// 获取第一页
|
|
|
PDPage firstPage = document.getPage(0);
|
|
@@ -131,54 +108,73 @@ public class PDFExportFirstPageService {
|
|
|
// 关闭当前处理的文档
|
|
|
document.close();
|
|
|
firstPageDocument.close();
|
|
|
- WebSocketMessageVO webSocketMessageVO = new WebSocketMessageVO();
|
|
|
+ WebSocketMessageVO webSocketMessageVO =new WebSocketMessageVO();
|
|
|
webSocketMessageVO.setProjectId(EsVO.getProjectId());
|
|
|
- webSocketMessageVO.setCreateId(exportTask.getCreateId());
|
|
|
+ webSocketMessageVO.setCreateId("328");
|
|
|
webSocketMessageVO.setCode(604);
|
|
|
webSocketMessageVO.setAllNum(total);
|
|
|
webSocketMessageVO.setCurrentNum(i+1);
|
|
|
webSocketMessageVO.setState(1);
|
|
|
messageService.sendPatentExportMessage(webSocketMessageVO);
|
|
|
}
|
|
|
- } catch (IOException e) {
|
|
|
- e.printStackTrace();
|
|
|
- defaultNum++;
|
|
|
- continue;//继续处理下一件专利
|
|
|
+ } else {
|
|
|
+ // 加载每个输入的PDF文档
|
|
|
+ PDDocument document = PDDocument.load(pdfData);
|
|
|
+ // 获取第一页
|
|
|
+ PDPage firstPage = document.getPage(0);
|
|
|
+ // 创建一个新的文档用于保存第一页
|
|
|
+ PDDocument firstPageDocument = new PDDocument();
|
|
|
+ firstPageDocument.addPage(firstPage);
|
|
|
+ // 将第一页添加到合并器中
|
|
|
+ merger.appendDocument(resultDocument, firstPageDocument);
|
|
|
+ // 关闭当前处理的文档
|
|
|
+ document.close();
|
|
|
+ firstPageDocument.close();
|
|
|
+ WebSocketMessageVO webSocketMessageVO = new WebSocketMessageVO();
|
|
|
+ webSocketMessageVO.setProjectId(EsVO.getProjectId());
|
|
|
+ webSocketMessageVO.setCreateId(exportTask.getCreateId());
|
|
|
+ webSocketMessageVO.setCode(604);
|
|
|
+ webSocketMessageVO.setAllNum(total);
|
|
|
+ webSocketMessageVO.setCurrentNum(i+1);
|
|
|
+ webSocketMessageVO.setState(1);
|
|
|
+ messageService.sendPatentExportMessage(webSocketMessageVO);
|
|
|
}
|
|
|
- } else {
|
|
|
+ } catch (IOException e) {
|
|
|
+ e.printStackTrace();
|
|
|
defaultNum++;
|
|
|
- continue;
|
|
|
+ continue;//继续处理下一件专利
|
|
|
}
|
|
|
} else {
|
|
|
defaultNum++;
|
|
|
continue;
|
|
|
}
|
|
|
+ } else {
|
|
|
+ defaultNum++;
|
|
|
+ continue;
|
|
|
}
|
|
|
- ByteArrayOutputStream out = new ByteArrayOutputStream();
|
|
|
- resultDocument.save(out);
|
|
|
- resultDocument.close();
|
|
|
- WebSocketMessageVO webSocketMessageVO = new WebSocketMessageVO();
|
|
|
- webSocketMessageVO.setProjectId(EsVO.getProjectId());
|
|
|
- webSocketMessageVO.setCreateId(exportTask.getCreateId());
|
|
|
- webSocketMessageVO.setCode(605);
|
|
|
- webSocketMessageVO.setAllNum(total);
|
|
|
- webSocketMessageVO.setCurrentNum(total);
|
|
|
- webSocketMessageVO.setState(2);
|
|
|
- messageService.sendPatentExportMessage(webSocketMessageVO);
|
|
|
- String fileGuid = "";
|
|
|
- if (out.toByteArray() != null && out.toByteArray().length != 0) {
|
|
|
- fileGuid = parseByteToFileUtils.uploadFile(out.toByteArray(), 2);
|
|
|
- }
|
|
|
- exportTask.setFileGuid(fileGuid);
|
|
|
- exportTask.setAllNum(total);
|
|
|
- exportTask.setDefaultNum(defaultNum);
|
|
|
- exportTask.setState(2);
|
|
|
- Integer taskId = importTaskService.updateExportTask(exportTask);
|
|
|
- if (taskId == null) {
|
|
|
- throw new XiaoShiException("导出记录失败");
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- throw new XiaoShiException("合并错误");
|
|
|
+ }
|
|
|
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
|
|
|
+ resultDocument.save(out);
|
|
|
+ resultDocument.close();
|
|
|
+ WebSocketMessageVO webSocketMessageVO = new WebSocketMessageVO();
|
|
|
+ webSocketMessageVO.setProjectId(EsVO.getProjectId());
|
|
|
+ webSocketMessageVO.setCreateId(exportTask.getCreateId());
|
|
|
+ webSocketMessageVO.setCode(605);
|
|
|
+ webSocketMessageVO.setAllNum(total);
|
|
|
+ webSocketMessageVO.setCurrentNum(total);
|
|
|
+ webSocketMessageVO.setState(2);
|
|
|
+ messageService.sendPatentExportMessage(webSocketMessageVO);
|
|
|
+ String fileGuid = "";
|
|
|
+ if (out.toByteArray() != null && out.toByteArray().length != 0) {
|
|
|
+ fileGuid = parseByteToFileUtils.uploadFile(out.toByteArray(), 2);
|
|
|
+ }
|
|
|
+ exportTask.setFileGuid(fileGuid);
|
|
|
+ exportTask.setAllNum(total);
|
|
|
+ exportTask.setDefaultNum(defaultNum);
|
|
|
+ exportTask.setState(2);
|
|
|
+ Integer taskId = importTaskService.updateExportTask(exportTask);
|
|
|
+ if (taskId == null) {
|
|
|
+ throw new XiaoShiException("导出记录失败");
|
|
|
}
|
|
|
}
|
|
|
|