Browse Source

生成报表PDF

xy 3 tuần trước cách đây
mục cha
commit
03af205623
11 tập tin đã thay đổi với 173 bổ sung37 xóa
  1. 8 0
      build-uat/update.sql
  2. 5 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/dal/dataobject/boilertaskorderitemreport/BoilerTaskOrderItemReportDO.java
  3. 5 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/dal/dataobject/pipetaskorderitemreport/PipeTaskOrderItemReportDO.java
  4. 10 17
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilertaskorder/BoilerTaskOrderServiceImpl.java
  5. 7 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilertaskorderissuereport/BoilerTaskOrderIssueReportService.java
  6. 61 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilertaskorderissuereport/BoilerTaskOrderIssueReportServiceImpl.java
  7. 3 3
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilertaskorderitemreport/BoilerTaskOrderItemReportServiceImpl.java
  8. 10 17
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipetaskorder/PipeTaskOrderServiceImpl.java
  9. 7 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipetaskorderissuereport/PipeTaskOrderIssueReportService.java
  10. 54 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipetaskorderissuereport/PipeTaskOrderIssueReportServiceImpl.java
  11. 3 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipetaskorderitemreport/PipeTaskOrderItemReportServiceImpl.java

+ 8 - 0
build-uat/update.sql

@@ -1621,6 +1621,14 @@ COMMENT ON COLUMN "PRESSURE2_USER_ALERT_CONFIG"."DELETED" IS '是否删除';
 
 -- 已加
 
+--20260618
+ALTER TABLE "PRESSURE2_BOILER_TASK_ORDER_ITEM_REPORT" ADD COLUMN "ENTER_PDF_URL" VARCHAR(64);
+COMMENT ON COLUMN "PRESSURE2_BOILER_TASK_ORDER_ITEM_REPORT"."ENTER_PDF_URL" IS '记录pdfurl';
+
+ALTER TABLE "PRESSURE2_PIPE_TASK_ORDER_ITEM_REPORT" ADD COLUMN "ENTER_PDF_URL" VARCHAR(64);
+COMMENT ON COLUMN "PRESSURE2_PIPE_TASK_ORDER_ITEM_REPORT"."ENTER_PDF_URL" IS '记录pdfurl';
+
+
 
 ALTER TABLE "PRESSURE2_BOILER_TASK_ORDER_ITEM_REPORT" ADD COLUMN "ENTER_PDF_URL" VARCHAR(64);
 COMMENT ON COLUMN "PRESSURE2_BOILER_TASK_ORDER_ITEM_REPORT"."ENTER_PDF_URL" IS '记录pdfurl';

+ 5 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/dal/dataobject/boilertaskorderitemreport/BoilerTaskOrderItemReportDO.java

@@ -380,4 +380,9 @@ public class BoilerTaskOrderItemReportDO extends BaseDO {
     private String qrCodeUrl;
 
     private String projectId;
+
+    /**
+     * 记录pdfUrl
+     */
+    private String enterPdfUrl;
 }

+ 5 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/dal/dataobject/pipetaskorderitemreport/PipeTaskOrderItemReportDO.java

@@ -376,4 +376,9 @@ public class PipeTaskOrderItemReportDO extends BaseDO {
     private String qrCodeUrl;
 
     private String projectId;
+
+    /**
+     * 记录pdfUrl
+     */
+    private String enterPdfUrl;
 }

+ 10 - 17
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilertaskorder/BoilerTaskOrderServiceImpl.java

@@ -3856,23 +3856,6 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
                 syncReportVO_rp.setReportType("report");
                 syncReportData(syncReportVO_rp);
 
-                if (TaskOrderItemReportTypeEnum.SUB_REPORT.getType().equals(boilerTaskOrderItemReportDO.getReportType())){
-                    //子项目生成报告PDF
-                    CompletableFuture.runAsync(() -> {
-                        try {
-                            log.info("记录校核生成PDF");
-                            byte[] bytes = pdfService.pdfByRefId(dynamicTbDOReport.getId(), "report_" + itemReportDO.getId());
-                            String fileUrl = fileApi.createFile(bytes);
-                            BoilerTaskOrderItemReportDO updateIssueDo = new BoilerTaskOrderItemReportDO();
-                            updateIssueDo.setId(taskOrderAuditSingleVO.getId());
-                            updateIssueDo.setIssueUrl(fileUrl);
-                            taskOrderItemReportMapper.updateById(updateIssueDo);
-                        } catch (Exception e) {
-                            log.error("记录校核生成PDF错误,{}", e.getMessage());
-                        }
-                    });
-                }
-
             }
 
             if (dynamicTbDOResult != null){
@@ -3904,6 +3887,16 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
             }
         }
 
+        //生成PDF文件
+        CompletableFuture.runAsync(() -> {
+            try {
+                log.info("记录校核生成PDF");
+                boilerTaskOrderIssueReportService.generateReportIssueUrl(taskOrderAuditSingleVO.getId());
+            } catch (Exception e) {
+                log.error("记录校核生成PDF错误,{}", e.getMessage());
+            }
+        });
+
     }
 
     @Override

+ 7 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilertaskorderissuereport/BoilerTaskOrderIssueReportService.java

@@ -93,4 +93,11 @@ public interface BoilerTaskOrderIssueReportService extends IService<BoilerTaskOr
     BoilerTaskOrderArchiveDetailRespVO archiveDetail(String orderItemId);
 
     void createIssueUrl(String orderId);
+
+    //生成整个任务单中所有的报告pdf
+    void generateAllReportsIssueUrl(String orderId);
+
+    //生成单个报告的pdf
+    void generateReportIssueUrl(String reportId);
+
 }

+ 61 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilertaskorderissuereport/BoilerTaskOrderIssueReportServiceImpl.java

@@ -1961,6 +1961,67 @@ public class BoilerTaskOrderIssueReportServiceImpl extends ServiceImpl<BoilerTas
         }
     }
 
+    @Override
+    public void generateAllReportsIssueUrl(String orderId) {
+        try {
+
+            List<BoilerTaskOrderItemDO> taskOrderItemDOS = taskOrderItemMapper.selectList(BoilerTaskOrderItemDO::getOrderId, orderId);
+            if (CollUtil.isNotEmpty(taskOrderItemDOS)) {
+                for (BoilerTaskOrderItemDO taskOrderItemDO : taskOrderItemDOS) {
+
+                    //报告办结状态的主报告、子报告和独走报告
+                    List<BoilerTaskOrderItemReportDO> taskOrderItemReportDOS = taskOrderItemReportMapper.selectList(new LambdaQueryWrapperX<BoilerTaskOrderItemReportDO>()
+                            .eq(BoilerTaskOrderItemReportDO::getOrderItemId, taskOrderItemDO.getId())
+                            .in(BoilerTaskOrderItemReportDO::getReportType, TaskOrderItemReportTypeEnum.MAIN_REPORT.getType(),
+                                    TaskOrderItemReportTypeEnum.SUB_REPORT.getType(),TaskOrderItemReportTypeEnum.SOLO_TRIP_REPORT.getType()));
+
+                    for (BoilerTaskOrderItemReportDO taskOrderItemReportDO : taskOrderItemReportDOS) {
+                        generateReportIssueUrl(taskOrderItemReportDO.getId());
+                    }
+
+                }
+            }
+        } catch (Exception e) {
+            log.error("生成任务单设备报告失败", e);
+            throw new RuntimeException(e);
+        }
+    }
+
+    @Override
+    public void generateReportIssueUrl(String reportId) {
+
+        BoilerTaskOrderItemReportDO itemReportDO = taskOrderItemReportMapper.selectById(reportId);
+
+        if (itemReportDO != null){
+
+            try {
+
+                BoilerTaskOrderItemReportDO updateIssueDo = new BoilerTaskOrderItemReportDO();
+                updateIssueDo.setId(reportId);
+
+                if (itemReportDO.getTemplateId() != null){
+                    byte[] bytes = pdfService.pdfByRefId(itemReportDO.getTemplateId(), itemReportDO.getId());
+                    String fileUrl = fileApi.createFile(bytes);
+                    updateIssueDo.setEnterPdfUrl(fileUrl);
+                }
+
+                if (itemReportDO.getReportTemplateId() != null && TaskOrderStatusEnum.REPORT_FINISH.getStatus().equals(itemReportDO.getTaskStatus())){
+                    byte[] bytes = pdfService.pdfByRefId(itemReportDO.getReportTemplateId(), "report_" + itemReportDO.getId());
+                    String fileUrl = fileApi.createFile(bytes);
+                    updateIssueDo.setIssueUrl(fileUrl);
+                }
+
+                taskOrderItemReportMapper.updateById(updateIssueDo);
+
+            } catch (Exception e) {
+                log.error("报告编号{}生成报表PDF失败",reportId, e);
+                throw new RuntimeException(e);
+            }
+
+        }
+
+    }
+
     @Override
     public PageResult<BoilerOrderItemPageRespVO> orderItemReportConclusionPage(BoilerTaskOrderPageReqVO pageReqVO) {
         pageReqVO.setInReportTypes(Lists.newArrayList(TaskOrderItemReportTypeEnum.MAIN_REPORT.getType(),

+ 3 - 3
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilertaskorderitemreport/BoilerTaskOrderItemReportServiceImpl.java

@@ -921,9 +921,6 @@ public class BoilerTaskOrderItemReportServiceImpl extends ServiceImpl<BoilerTask
                     pushTaskOrderService.pushFinanceSystem(boilerTaskOrderDO);
                 });
 
-                //生成任务单下所有设备报告
-//                commonThread.runWithOutResult(() -> boilerTaskOrderIssueReportService.createIssueUrl(boilerTaskOrderDO.getId()));
-
                 //合同收费/属于免征则直接发送报告
                 if (Integer.valueOf(200).equals(boilerTaskOrderDO.getFeeType()) || Integer.valueOf(300).equals(boilerTaskOrderDO.getFeeNature())) {
                     boilerTaskOrderIssueReportService.autoIssueTaskOrderReport(boilerTaskOrderDO, boilerTaskOrderItemDOList);
@@ -951,6 +948,9 @@ public class BoilerTaskOrderItemReportServiceImpl extends ServiceImpl<BoilerTask
             //生成任务单下所有设备报告
             commonThread.runWithOutResult(() -> boilerTaskOrderIssueReportService.createIssueUrl(boilerTaskOrderDO.getId()));
 
+            //生成任务单下所有的报告PDF
+            commonThread.runWithOutResult(() -> boilerTaskOrderIssueReportService.generateAllReportsIssueUrl(boilerTaskOrderDO.getId()));
+
             //任务单办结后重置容器设备排期状态
             EquipBoilerDO equipBoilerDO = new EquipBoilerDO();
             equipBoilerDO.setId(taskOrderItemTmp.getEquipId());

+ 10 - 17
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipetaskorder/PipeTaskOrderServiceImpl.java

@@ -3014,23 +3014,6 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
                 syncReportVO_rp.setReportType("report");
                 syncReportData(syncReportVO_rp);
 
-                if (TaskOrderItemReportTypeEnum.SUB_REPORT.getType().equals(boilerTaskOrderItemReportDO.getReportType())){
-                    //子项目生成报告PDF
-                    CompletableFuture.runAsync(() -> {
-                        try {
-                            log.info("记录校核生成PDF");
-                            byte[] bytes = pdfService.pdfByRefId(dynamicTbDOReport.getId(), "report_" + itemReportDO.getId());
-                            String fileUrl = fileApi.createFile(bytes);
-                            PipeTaskOrderItemReportDO updateIssueDo = new PipeTaskOrderItemReportDO();
-                            updateIssueDo.setId(taskOrderAuditSingleVO.getId());
-                            updateIssueDo.setIssueUrl(fileUrl);
-                            taskOrderItemReportMapper.updateById(updateIssueDo);
-                        } catch (Exception e) {
-                            log.error("记录校核生成PDF错误,{}", e.getMessage());
-                        }
-                    });
-                }
-
             }
 
             if (dynamicTbDOResult != null){
@@ -3063,6 +3046,16 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
             }
         }
 
+        //生成PDF文件
+        CompletableFuture.runAsync(() -> {
+            try {
+                log.info("记录校核生成PDF");
+                pipeTaskOrderIssueReportService.generateReportIssueUrl(taskOrderAuditSingleVO.getId());
+            } catch (Exception e) {
+                log.error("记录校核生成PDF错误,{}", e.getMessage());
+            }
+        });
+
     }
 
     @Override

+ 7 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipetaskorderissuereport/PipeTaskOrderIssueReportService.java

@@ -106,4 +106,11 @@ public interface PipeTaskOrderIssueReportService extends IService<PipeTaskOrderI
     PipeTaskOrderArchiveDetailRespVO archiveDetail(String orderItemId);
 
     void createIssueUrl(String orderId);
+
+    //生成整个任务单中所有的报告pdf
+    void generateAllReportsIssueUrl(String orderId);
+
+    //生成单个报告的pdf
+    void generateReportIssueUrl(String reportId);
+
 }

+ 54 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipetaskorderissuereport/PipeTaskOrderIssueReportServiceImpl.java

@@ -1990,6 +1990,60 @@ public class PipeTaskOrderIssueReportServiceImpl extends ServiceImpl<PipeTaskOrd
         }
     }
 
+    @Override
+    public void generateAllReportsIssueUrl(String orderId) {
+        try {
+
+            //报告办结状态的主报告、子报告和独走报告
+            List<PipeTaskOrderItemReportDO> taskOrderItemReportDOS = taskOrderItemReportMapper.selectList(new LambdaQueryWrapperX<PipeTaskOrderItemReportDO>()
+                    .eq(PipeTaskOrderItemReportDO::getOrderId, orderId)
+                    .in(PipeTaskOrderItemReportDO::getReportType, cn.start.tz.module.pressure.enums.TaskOrderItemReportTypeEnum.MAIN_REPORT.getType(),
+                            cn.start.tz.module.pressure.enums.TaskOrderItemReportTypeEnum.SUB_REPORT.getType(), cn.start.tz.module.pressure.enums.TaskOrderItemReportTypeEnum.SOLO_TRIP_REPORT.getType()));
+
+            for (PipeTaskOrderItemReportDO taskOrderItemReportDO : taskOrderItemReportDOS) {
+                generateReportIssueUrl(taskOrderItemReportDO.getId());
+            }
+        } catch (Exception e) {
+            log.error("生成任务单设备报告失败", e);
+            throw new RuntimeException(e);
+        }
+    }
+
+    @Override
+    public void generateReportIssueUrl(String reportId) {
+
+        PipeTaskOrderItemReportDO itemReportDO = taskOrderItemReportMapper.selectById(reportId);
+
+        if (itemReportDO != null){
+
+            PipeTaskOrderItemReportDO updateIssueDo = new PipeTaskOrderItemReportDO();
+            updateIssueDo.setId(reportId);
+
+            try {
+
+                if (itemReportDO.getTemplateId() != null){
+                    byte[] bytes = pdfService.pdfByRefId(itemReportDO.getTemplateId(), itemReportDO.getId());
+                    String fileUrl = fileApi.createFile(bytes);
+                    updateIssueDo.setEnterPdfUrl(fileUrl);
+                }
+
+                if (itemReportDO.getReportTemplateId() != null && cn.start.tz.module.pressure.enums.TaskOrderStatusEnum.REPORT_FINISH.getStatus().equals(itemReportDO.getTaskStatus())){
+                    byte[] bytes = pdfService.pdfByRefId(itemReportDO.getReportTemplateId(), "report_" + itemReportDO.getId());
+                    String fileUrl = fileApi.createFile(bytes);
+                    updateIssueDo.setIssueUrl(fileUrl);
+                }
+
+                taskOrderItemReportMapper.updateById(updateIssueDo);
+
+            } catch (Exception e) {
+                log.error("报告编号{}生成报表PDF失败",reportId, e);
+                throw new RuntimeException(e);
+            }
+
+        }
+
+    }
+
     @Override
     public PageResult<PipeTaskOrderRespVO> archivePage(PipeTaskOrderPageReqVO pageReqVO) {
 

+ 3 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipetaskorderitemreport/PipeTaskOrderItemReportServiceImpl.java

@@ -846,6 +846,9 @@ public class PipeTaskOrderItemReportServiceImpl extends ServiceImpl<PipeTaskOrde
             //生成任务单下所有设备报告
             commonThread.runWithOutResult(() -> pipeTaskOrderIssueReportService.createIssueUrl(pipeTaskOrderDO.getId()));
 
+            //生成任务单下所有的报告PDF
+            commonThread.runWithOutResult(() -> pipeTaskOrderIssueReportService.generateAllReportsIssueUrl(pipeTaskOrderDO.getId()));
+
             //定检需要生成使用登记表
             if (EquipmentCheckTypeEnum.PERIODICAL_SURVEY.getType().equals(pipeTaskOrderDO.getCheckType())) {
                 pipeUseRegistrationReportService.generatePipeUseRegistrationReport(pipeTaskOrderDO.getId());