|
|
@@ -3100,7 +3100,8 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
|
|
|
|
|
|
// 记录模板
|
|
|
DynamicTbInsDO dynamicTbInsDO1 = dynamicTbInsService.getDynamicRefId(taskOrderItemReportDO.getId());
|
|
|
- byte[] pdf1 = pdfService.pdf(dynamicTbInsDO1.getTbId(), dynamicTbInsDO1.getId());
|
|
|
+// byte[] pdf1 = pdfService.pdf(dynamicTbInsDO1.getTbId(), dynamicTbInsDO1.getId());
|
|
|
+ byte[] pdf1 =getRecordOutputStreamMerge2(pipeTaskOrderDO.getId());
|
|
|
// 报告模板
|
|
|
byte[] pdf2 =getRecordOutputStreamMerge(pipeTaskOrderDO.getId());
|
|
|
// byte[] pdf2 = externalOAService.pdf(dynamicTbInsDO1.getTbId(), dynamicTbInsDO1.getId());
|
|
|
@@ -4841,6 +4842,58 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
|
|
|
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 合并记录pdf
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public byte[] getRecordOutputStreamMerge2(String orderId) {
|
|
|
+
|
|
|
+// List<PipeTaskOrderItemReportDO> taskOrderReportDOS = taskOrderItemReportMapper.selectList(new LambdaQueryWrapperX<PipeTaskOrderItemReportDO>().
|
|
|
+// eq(PipeTaskOrderItemReportDO::getOrderId, orderId).
|
|
|
+// in(PipeTaskOrderItemReportDO::getTaskStatus, List.of(520,600,700,710,800))
|
|
|
+// .orderByDesc(PipeTaskOrderItemReportDO::getOrderItemId)
|
|
|
+// .orderByAsc(PipeTaskOrderItemReportDO::getSort)
|
|
|
+// .orderByAsc(PipeTaskOrderItemReportDO::getReportType)); //主报告排最前面
|
|
|
+
|
|
|
+ List<PipeTaskOrderItemReportDO> taskOrderReportDOS = taskOrderItemReportMapper.selectGenerateReportList(orderId);
|
|
|
+
|
|
|
+ if (CollUtil.isEmpty(taskOrderReportDOS)) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ try {
|
|
|
+ ByteArrayOutputStream mergeOutputStream = new ByteArrayOutputStream();
|
|
|
+ PDFMergerUtility mergerUtility = new PDFMergerUtility();
|
|
|
+
|
|
|
+ taskOrderReportDOS.parallelStream().forEachOrdered(taskOrderReportDO -> {
|
|
|
+ try {
|
|
|
+
|
|
|
+ // 报告模板
|
|
|
+ DynamicTbInsDO insDO = dynamicTbInsService.getDynamicRefId("record_" + taskOrderReportDO.getId());
|
|
|
+ if (insDO != null) {
|
|
|
+ byte[] pdf = pdfService.pdf(taskOrderReportDO.getReportTemplateId(), insDO.getId());
|
|
|
+ mergerUtility.addSource(new ByteArrayInputStream(pdf));
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ throw new RuntimeException(e);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ // pdf 文件流合并
|
|
|
+ mergerUtility.setDestinationStream(mergeOutputStream);
|
|
|
+ mergerUtility.mergeDocuments(null);
|
|
|
+
|
|
|
+ // 重新生成页码
|
|
|
+ byte[] mergedPdfBytes = mergeOutputStream.toByteArray();
|
|
|
+ byte[] pdfWithPageNumbers = pdfService.addPageNumbersToPdf(mergedPdfBytes);
|
|
|
+
|
|
|
+ return pdfWithPageNumbers;
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ throw new RuntimeException(e);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public PageResult<AdminUserRespDTO> getRecheckUserPage(PipeRecheckUserPageReqVO pageReqVO) {
|
|
|
|