소스 검색

需要检验方案才能录入

xy 1 주 전
부모
커밋
91edd2dbcf
16개의 변경된 파일370개의 추가작업 그리고 104개의 파일을 삭제
  1. 17 0
      build-prod/updata.sql
  2. 1 1
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/boilertaskorder/BoilerTaskOrderController.java
  3. 8 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/boilertaskorder/BoilerTaskOrderInspectionController.java
  4. 1 1
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/pipetaskorder/PipeTaskOrderController.java
  5. 6 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/pipetaskorder/PipeTaskOrderInspectionController.java
  6. 1 1
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/appapi/boilertaskorder/AppApiBoilerTaskOrderController.java
  7. 1 1
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/appapi/pipetaskorder/AppApiPipeTaskOrderController.java
  8. 15 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/dal/dataobject/boilertaskorderitem/BoilerTaskOrderItemDO.java
  9. 15 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/dal/dataobject/pipetaskorder/PipeTaskOrderDO.java
  10. 8 1
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilertaskorder/BoilerTaskOrderService.java
  11. 141 4
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilertaskorder/BoilerTaskOrderServiceImpl.java
  12. 10 82
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilertaskorderissuereport/BoilerTaskOrderIssueReportServiceImpl.java
  13. 48 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/comm/QC01001_202400OFData.java
  14. 8 1
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipetaskorder/PipeTaskOrderService.java
  15. 80 3
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipetaskorder/PipeTaskOrderServiceImpl.java
  16. 10 9
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipetaskorderissuereport/PipeTaskOrderIssueReportServiceImpl.java

+ 17 - 0
build-prod/updata.sql

@@ -20,3 +20,20 @@ ALTER TABLE "PRESSURE2_EQUIP_PIPE_SCHEDULING_CHECK" MODIFY "DEFAULT_COUNT" INT D
 ALTER TABLE "PRESSURE2_EQUIP_BOILER_SCHEDULING_CHECK" MODIFY "DEFAULT_COUNT" INT DEFAULT (1) NULL;
 
 --已加
+
+--20260627
+ALTER TABLE "PRESSURE_TASK_ORDER" ADD COLUMN "SCHEME_ENTER_TIME" DATETIME(6);
+ALTER TABLE "PRESSURE_TASK_ORDER" ADD COLUMN "SCHEME_APPROVAL_TIME" VARCHAR(50);
+ALTER TABLE "PRESSURE_TASK_ORDER" ADD COLUMN "SCHEME_RATIFY_TIME" VARCHAR(50);
+COMMENT ON COLUMN "PRESSURE_TASK_ORDER"."SCHEME_ENTER_TIME" IS '检验方案录入时间';
+COMMENT ON COLUMN "PRESSURE_TASK_ORDER"."SCHEME_APPROVAL_TIME" IS '检验方案审核时间';
+COMMENT ON COLUMN "PRESSURE_TASK_ORDER"."SCHEME_RATIFY_TIME" IS '检验方案审批时间';
+
+ALTER TABLE "PRESSURE2_BOILER_TASK_ORDER_ITEM" ADD COLUMN "SCHEME_ENTER_TIME" DATETIME(6);
+ALTER TABLE "PRESSURE2_BOILER_TASK_ORDER_ITEM" ADD COLUMN "SCHEME_APPROVAL_TIME" VARCHAR(50);
+ALTER TABLE "PRESSURE2_BOILER_TASK_ORDER_ITEM" ADD COLUMN "SCHEME_RATIFY_TIME" VARCHAR(50);
+COMMENT ON COLUMN "PRESSURE2_BOILER_TASK_ORDER_ITEM"."SCHEME_ENTER_TIME" IS '检验方案录入时间';
+COMMENT ON COLUMN "PRESSURE2_BOILER_TASK_ORDER_ITEM"."SCHEME_APPROVAL_TIME" IS '检验方案审核时间';
+COMMENT ON COLUMN "PRESSURE2_BOILER_TASK_ORDER_ITEM"."SCHEME_RATIFY_TIME" IS '检验方案审批时间';
+
+--已加

+ 1 - 1
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/boilertaskorder/BoilerTaskOrderController.java

@@ -560,7 +560,7 @@ public class BoilerTaskOrderController {
     public void generateReportPdf(@RequestParam(value = "orderItemId") String orderItemId,
                                   HttpServletResponse response) throws Exception {
 
-        byte[] pdfByte = boilerTaskOrderService.getReportOutputStreamMerge(orderItemId);
+        byte[] pdfByte = boilerTaskOrderService.getReportOutputStreamMerge(orderItemId,false);
         if (pdfByte != null) {
             response.getOutputStream().write(pdfByte);
         }else{

+ 8 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/boilertaskorder/BoilerTaskOrderInspectionController.java

@@ -21,6 +21,7 @@ import cn.start.tz.module.pressure2.service.boilertaskorderoperation.BoilerTaskO
 import cn.start.tz.module.system.api.dict.dto.DictDataRespDTO;
 import cn.start.tz.module.system.api.user.dto.AdminUserRespDTO;
 import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import jakarta.annotation.Resource;
 import jakarta.servlet.http.HttpServletResponse;
@@ -153,6 +154,13 @@ public class BoilerTaskOrderInspectionController {
         return success(countVo);
     }
 
+    @GetMapping("/check-scheme-status")
+    @Operation(summary = "校验设备是否有已审批的检验方案")
+    @Parameter(name = "orderItemId", description = "任务单设备ID", required = true)
+    public CommonResult<Boolean> checkSchemeStatus(@RequestParam("orderItemId") String orderItemId) {
+        return success(boilerTaskOrderService.checkSchemeApproved(orderItemId));
+    }
+
     @PostMapping("/reported/export-excel")
     @Operation(summary = "隐患上报记录导出")
     @Tag(name = "检验意见通知书隐患上报")

+ 1 - 1
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/pipetaskorder/PipeTaskOrderController.java

@@ -523,7 +523,7 @@ public class PipeTaskOrderController {
     public void generateReportPdf(@RequestParam(value = "orderId") String orderId,
                        HttpServletResponse response) throws Exception {
 
-        byte[] pdfByte = pipeTaskOrderService.getReportOutputStreamMerge(orderId);
+        byte[] pdfByte = pipeTaskOrderService.getReportOutputStreamMerge(orderId,false);
         if (pdfByte != null) {
             response.getOutputStream().write(pdfByte);
         }else{

+ 6 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/pipetaskorder/PipeTaskOrderInspectionController.java

@@ -154,6 +154,12 @@ public class PipeTaskOrderInspectionController {
         return success(countVo);
     }
 
+    @GetMapping("/check-scheme-status")
+    @Operation(summary = "校验任务单是否有已审批的检验方案")
+    public CommonResult<Boolean> checkSchemeStatus(@RequestParam("orderId") String orderId) {
+        return success(pipeTaskOrderService.checkSchemeApproved(orderId));
+    }
+
     @PostMapping("/reported/export-excel")
     @Operation(summary = "隐患上报记录导出")
     @Tag(name = "检验意见通知书隐患上报")

+ 1 - 1
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/appapi/boilertaskorder/AppApiBoilerTaskOrderController.java

@@ -527,7 +527,7 @@ public class AppApiBoilerTaskOrderController {
     public void generateReportPdf(@RequestParam(value = "orderItemId") String orderItemId,
                                   HttpServletResponse response) throws Exception {
 
-        byte[] pdfByte = boilerTaskOrderService.getReportOutputStreamMerge(orderItemId);
+        byte[] pdfByte = boilerTaskOrderService.getReportOutputStreamMerge(orderItemId,false);
         if (pdfByte != null) {
             response.getOutputStream().write(pdfByte);
         }else{

+ 1 - 1
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/appapi/pipetaskorder/AppApiPipeTaskOrderController.java

@@ -497,7 +497,7 @@ public class AppApiPipeTaskOrderController {
     public void generateReportPdf(@RequestParam(value = "orderId") String orderId,
                        HttpServletResponse response) throws Exception {
 
-        byte[] pdfByte = pipeTaskOrderService.getReportOutputStreamMerge(orderId);
+        byte[] pdfByte = pipeTaskOrderService.getReportOutputStreamMerge(orderId,false);
         if (pdfByte != null) {
             response.getOutputStream().write(pdfByte);
         }else{

+ 15 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/dal/dataobject/boilertaskorderitem/BoilerTaskOrderItemDO.java

@@ -82,4 +82,19 @@ public class BoilerTaskOrderItemDO extends BaseDO {
     private Boolean isSuspend;
 
     private LocalDateTime suspendTime;
+
+    /**
+     * 检验方案录入时间(首次审批通过时记录)
+     */
+    private LocalDateTime schemeEnterTime;
+
+    /**
+     * 检验方案审核时间(首次审批通过时记录)
+     */
+    private LocalDateTime schemeApprovalTime;
+
+    /**
+     * 检验方案审批时间(首次审批通过时记录)
+     */
+    private LocalDateTime schemeRatifyTime;
 }

+ 15 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/dal/dataobject/pipetaskorder/PipeTaskOrderDO.java

@@ -344,6 +344,21 @@ public class PipeTaskOrderDO extends BaseDO {
 
     private LocalDateTime noTaxPayTime;
 
+    /**
+     * 检验方案录入时间(首次审批通过时记录)
+     */
+    private LocalDateTime schemeEnterTime;
+
+    /**
+     * 检验方案审核时间(首次审批通过时记录)
+     */
+    private LocalDateTime schemeApprovalTime;
+
+    /**
+     * 检验方案审批时间(首次审批通过时记录)
+     */
+    private LocalDateTime schemeRatifyTime;
+
     /**
      * 是否同步数据
      */

+ 8 - 1
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilertaskorder/BoilerTaskOrderService.java

@@ -208,7 +208,7 @@ public interface BoilerTaskOrderService extends IService<BoilerTaskOrderDO>  {
 
     void orderConfirmFinish(OrderConfirmFinishVO orderItemRatifyVO);
 
-    byte[] getReportOutputStreamMerge(String orderId);
+    byte[] getReportOutputStreamMerge(String orderId,boolean isCover);
 
     Boolean syncReportData(BoilerTaskOrderSyncReportVO reqVO);
 
@@ -222,6 +222,13 @@ public interface BoilerTaskOrderService extends IService<BoilerTaskOrderDO>  {
 
     Boolean generateInspectionPlan(MajorIssuesSubmitVO majorIssuesSubmitVO);
 
+    /**
+     * 校验设备下是否有已审批完成的检验方案
+     * @param orderItemId 任务单设备ID
+     * @return true=存在已审批的检验方案
+     */
+    boolean checkSchemeApproved(String orderItemId);
+
     Boolean updatePayStatus(UpdatePayStatusDTO payInfo);
 
     void majorIssuesRecovery(@Valid TaskOrderMajorIssuesVO taskOrderMajorIssuesVO);

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

@@ -1902,11 +1902,43 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
                     updateReport.setId(id);
                     updateReport.setApprovalId(userId);
                     updateReport.setApprovalTime(LocalDateTime.now());
+                    //检验方案读取记录下来的审核日期
+                    String[] OrderItemIds = itemReportDO.getOrderItemId().split(",");
+                    List<BoilerTaskOrderItemDO> taskOrderItemDOS = boilerTaskOrderItemMapper.selectList(new LambdaQueryWrapperX<BoilerTaskOrderItemDO>().
+                            in(BoilerTaskOrderItemDO::getId, OrderItemIds));
+                    if (!taskOrderItemDOS.isEmpty()){
+                        BoilerTaskOrderItemDO firstSchemeItem = taskOrderItemDOS.stream()
+                                .filter(item -> item.getSchemeApprovalTime() != null)
+                                .findFirst()
+                                .orElse(null);
+                        if (firstSchemeItem != null){
+                            updateReport.setApprovalTime(firstSchemeItem.getSchemeApprovalTime());
+                        }
+                    }
 
                     if (userRespDTO != null) {
                         updateReport.setApprovalName(userRespDTO.getNickname());
                     }
                     taskOrderReportMapper.updateById(updateReport);
+
+                    //生成报表数据 -- 检验方案表不同暂不通用
+                    CreateInstantiateWithRuleVO ruleVO = new CreateInstantiateWithRuleVO();
+                    ruleVO.setTemplateId(itemReportDO.getTemplateId());
+                    ruleVO.setRefId(itemReportDO.getId());
+                    ruleVO.setRefName(itemReportDO.getReportName());
+                    ruleVO.setReportType(1);
+                    com.alibaba.fastjson2.JSONObject params = new com.alibaba.fastjson2.JSONObject();
+                    params.put("equipMainType","boiler");
+                    ruleVO.setParams(params);
+                    //获取tbCode的服务方法名
+                    BoilerConnectTbServiceDO tbServiceDO = boilerConnectTbServiceMapper.selectOne(BoilerConnectTbServiceDO::getTbId,itemReportDO.getTemplateId());
+                    if (tbServiceDO != null){
+                        ruleVO.setServiceName(tbServiceDO.getInitServiceName());
+                        dynamicTbInsService.createInstantiateWithRule(ruleVO);
+                    }else{
+                        ruleVO.setServiceName("");
+                        dynamicTbInsService.createInstantiateWithRule(ruleVO);
+                    }
                 }
 
             }
@@ -2114,13 +2146,35 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
                             bean.setRatifyTime(itemReportDO.getRatifyTime());
                             bean.setRatifyName(itemReportDO.getRatifyName());
                             bean.setOrderReportId(reportDO.getId());
+
+                            //检验方案读取记录下来的审批日期
+                            BoilerTaskOrderItemDO taskOrderItemDO = boilerTaskOrderItemMapper.selectById(item.getId());
+                            if (taskOrderItemDO != null){
+                                if (taskOrderItemDO.getSchemeEnterTime() != null){
+                                    bean.setPrepareTime(taskOrderItemDO.getSchemeEnterTime());
+                                }
+                                if (taskOrderItemDO.getSchemeApprovalTime() != null){
+                                    bean.setApprovalTime(taskOrderItemDO.getSchemeApprovalTime());
+                                }
+                                if (taskOrderItemDO.getSchemeRatifyTime() != null){
+                                    bean.setRatifyTime(taskOrderItemDO.getSchemeRatifyTime());
+                                }
+                            }
+
                             return bean;
                         }
                         return null;
                     }).filter(Objects::nonNull).toList().forEach(item -> {
+
                         taskOrderItemReportMapper.insert(item);
                         dynamicTbInsService.copyInstantiate(reportDO.getId(), item.getId());
 
+                        //更新 报表数据
+                        BoilerTaskOrderSyncReportVO syncReportVO = new BoilerTaskOrderSyncReportVO();
+                        syncReportVO.setRefId(item.getId());
+                        syncReportVO.setReportType("record");
+                        syncReportData(syncReportVO);
+
                         //添加提交人
                         BoilerTaskOrderItemReportUserDO userDO = new BoilerTaskOrderItemReportUserDO();
                         if (reportDO.getSubmitId() != null){
@@ -2140,9 +2194,79 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
             itemReportDO.setTaskStatus(TaskOrderStatusEnum.ENTER.getStatus());
         }
         taskOrderReportMapper.updateById(itemReportDO);
+
+        //生成报表数据 -- 检验方案表不同暂不通用
+        CreateInstantiateWithRuleVO ruleVO = new CreateInstantiateWithRuleVO();
+        ruleVO.setTemplateId(itemReportDO.getTemplateId());
+        ruleVO.setRefId(itemReportDO.getId());
+        ruleVO.setRefName(itemReportDO.getReportName());
+        ruleVO.setReportType(1);
+        com.alibaba.fastjson2.JSONObject params = new com.alibaba.fastjson2.JSONObject();
+        params.put("equipMainType","boiler");
+        ruleVO.setParams(params);
+        //获取tbCode的服务方法名
+        BoilerConnectTbServiceDO tbServiceDO = boilerConnectTbServiceMapper.selectOne(BoilerConnectTbServiceDO::getTbId,itemReportDO.getTemplateId());
+        if (tbServiceDO != null){
+            ruleVO.setServiceName(tbServiceDO.getInitServiceName());
+            dynamicTbInsService.createInstantiateWithRule(ruleVO);
+        }else{
+            ruleVO.setServiceName("");
+            dynamicTbInsService.createInstantiateWithRule(ruleVO);
+        }
+
         return true;
     }
 
+    @Override
+    public boolean checkSchemeApproved(String orderItemId) {
+
+        BoilerTaskOrderItemDO taskOrderItemDO = boilerTaskOrderItemMapper.selectById(orderItemId);
+        if (taskOrderItemDO == null) {
+            throw new ServiceException(404, "设备任务单不存在");
+        }
+        BoilerTaskOrderDO taskOrderDO = boilerTaskOrderMapper.selectById(taskOrderItemDO.getOrderId());
+        if (taskOrderDO == null) {
+            throw new ServiceException(404, "任务单不存在");
+        }
+
+        //锅炉内检才需要判断检验方案
+        if (taskOrderDO.getCheckType() != 100){
+            return true;
+        }else{
+            List<BoilerTaskOrderItemReportDO> boilerTaskOrderItemReportDOS = taskOrderItemReportMapper.selectList(
+                    new LambdaQueryWrapperX<BoilerTaskOrderItemReportDO>()
+                            .eq(BoilerTaskOrderItemReportDO::getOrderItemId, orderItemId)
+                            .eq(BoilerTaskOrderItemReportDO::getReportType, 600)
+                            .eq(BoilerTaskOrderItemReportDO::getStatus, AcceptOrderStatusEnum.AUDIT.getStatus())
+                            .isNotNull(BoilerTaskOrderItemReportDO::getRatifyTime)
+                            .orderByDesc(BoilerTaskOrderItemReportDO::getRatifyTime)
+            );
+
+            if (boilerTaskOrderItemReportDOS.isEmpty()){
+                return false;
+            }else{
+
+                //记录审批时间
+                BoilerTaskOrderItemReportDO lastReport = boilerTaskOrderItemReportDOS.get(0);
+                if (taskOrderItemDO.getSchemeEnterTime() == null || taskOrderItemDO.getSchemeApprovalTime() == null || taskOrderItemDO.getSchemeRatifyTime() == null){
+
+                    if (lastReport != null){
+                        BoilerTaskOrderItemDO updateTaskOrderDO = new BoilerTaskOrderItemDO();
+                        updateTaskOrderDO.setId(orderItemId);
+                        updateTaskOrderDO.setSchemeEnterTime(lastReport.getPrepareTime());
+                        updateTaskOrderDO.setSchemeApprovalTime(lastReport.getApprovalTime());
+                        updateTaskOrderDO.setSchemeRatifyTime(lastReport.getRatifyTime());
+                        boilerTaskOrderItemMapper.updateById(updateTaskOrderDO);
+                    }
+
+                }
+
+                return true;
+            }
+        }
+
+    }
+
     @Resource
     private PushTaskOrderService pushTaskOrderService;
 
@@ -4393,7 +4517,7 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
 //        byte[] pdf1 = pdfService.pdf(dynamicTbInsDO.getTbId(), dynamicTbInsDO.getId());
         byte[] pdf1 = getRecordOutputStreamMerge(taskOrderItemReportDO.getOrderItemId());
         // 报告
-        byte[] pdf2 = getReportOutputStreamMerge(taskOrderItemReportDO.getOrderItemId());
+        byte[] pdf2 = getReportOutputStreamMerge(taskOrderItemReportDO.getOrderItemId(),false);
         ExternalOAUploadAttachmentRes externalOAUploadAttachmentRes1 = externalOAService.externalOAUploadAttachment(new ByteArrayInputStream(pdf1), "检验记录_" + boilerTaskOrderDO.getOrderNo() + ".pdf");
         ExternalOAUploadAttachmentRes externalOAUploadAttachmentRes2 = externalOAService.externalOAUploadAttachment(new ByteArrayInputStream(pdf2), "检验报告_" + boilerTaskOrderDO.getOrderNo() + ".pdf");
         List<ExternalOAUploadAttachmentRes.Attachment> atts1 = externalOAUploadAttachmentRes1.getAtts();
@@ -4516,6 +4640,20 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
             if (CollUtil.isNotEmpty(taskOrderMajorIssuesVO.getOrderItemIds())) {
                 taskOrderReportDO.setOrderItemIdsStr(String.join(",", taskOrderMajorIssuesVO.getOrderItemIds()));
                 taskOrderReportDO.setOrderItemId(String.join(",", taskOrderMajorIssuesVO.getOrderItemIds()));
+
+                //检验方案读取记录下来的录入日期
+                List<BoilerTaskOrderItemDO> taskOrderItemDOS = boilerTaskOrderItemMapper.selectList(new LambdaQueryWrapperX<BoilerTaskOrderItemDO>().
+                        in(BoilerTaskOrderItemDO::getId, taskOrderMajorIssuesVO.getOrderItemIds()));
+                if (!taskOrderItemDOS.isEmpty()){
+                    BoilerTaskOrderItemDO firstSchemeItem = taskOrderItemDOS.stream()
+                            .filter(item -> item.getSchemeEnterTime() != null)
+                            .findFirst()
+                            .orElse(null);
+                    if (firstSchemeItem != null){
+                        taskOrderReportDO.setPrepareTime(firstSchemeItem.getSchemeEnterTime());
+                    }
+                }
+
             }
             if (StringUtils.isNotEmpty(taskOrderMajorIssuesVO.getReportName())) {
                 taskOrderReportDO.setReportName(taskOrderMajorIssuesVO.getReportName());
@@ -4530,7 +4668,6 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
             ruleVO.setRefName(addReport.getReportName());
             ruleVO.setReportType(1);
             com.alibaba.fastjson2.JSONObject params = new com.alibaba.fastjson2.JSONObject();
-            params.put("checkUserId",getLoginUserId());
             params.put("equipMainType","boiler");
             ruleVO.setParams(params);
             //获取tbCode的服务方法名
@@ -6228,7 +6365,7 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
     }
 
     @Override
-    public byte[] getReportOutputStreamMerge(String orderItemId) {
+    public byte[] getReportOutputStreamMerge(String orderItemId,boolean isCover) {
 
 //        List<BoilerTaskOrderItemReportDO> taskOrderReportDOS = taskOrderItemReportMapper.selectList(new LambdaQueryWrapperX<BoilerTaskOrderItemReportDO>().
 //                eq(BoilerTaskOrderItemReportDO::getOrderItemId, orderItemId).
@@ -6237,7 +6374,7 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
 //                .orderByAsc(BoilerTaskOrderItemReportDO::getSort));
 
         BoilerTaskOrderItemDO taskOrderItemDO = boilerTaskOrderItemMapper.selectById(orderItemId);
-        if (taskOrderItemDO.getIssueUrl() != null && !taskOrderItemDO.getIssueUrl().isEmpty()){
+        if (taskOrderItemDO.getIssueUrl() != null && !taskOrderItemDO.getIssueUrl().isEmpty() && !isCover){
             try {
 
                 log.info("---获取已生成报告PDF---");

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

@@ -503,7 +503,7 @@ public class BoilerTaskOrderIssueReportServiceImpl extends ServiceImpl<BoilerTas
                             try {
 
                                 // 生成报告URL
-                                ReportUrlInfo reportUrlInfo = generateReportUrl(taskOrderItemDO);
+                                ReportUrlInfo reportUrlInfo = generateReportUrl(taskOrderItemDO,false);
                                 String reportUrl = reportUrlInfo.getReportUrl();
                                 String fileUrl = reportUrlInfo.getFileUrl();
 
@@ -532,79 +532,6 @@ public class BoilerTaskOrderIssueReportServiceImpl extends ServiceImpl<BoilerTas
                     }
 
                 }
-                /*if (item.getMiniProgramPush() != null && item.getMiniProgramPush()) {
-                    //根据接收人电话获取平台用户信息
-//                    MemberUserRespDTO memberUser = memberUserApi.getUserByMobile(item.getRecipientPhone()).getCheckedData();
-                    MemberUserRespVO memberUser = memberRemoteService.getUserByMobile(item.getRecipientPhone());
-                    // 获取不到平台用户信息时创建一个平台用户账号
-                    if (ObjectUtil.isEmpty(memberUser)) {
-                        MemberUserCreateReqVO memberUserReqVo = new MemberUserCreateReqVO();
-                        memberUserReqVo.setMobile(item.getRecipientPhone());
-                        memberUserReqVo.setName(item.getRecipientPhone());
-                        memberUserReqVo.setRegisterIp(getClientIP());
-                        memberUser = memberRemoteService.createUser(memberUserReqVo);
-                        if (ObjectUtil.isEmpty(memberUser)) {
-                            throw exception(new ErrorCode(1007,"创建用户失败"));
-                        }
-                    }
-
-                    if (ObjectUtil.isNotEmpty(memberUser)) {
-                        SendMpMessageReqVO param = new SendMpMessageReqVO();
-                        param.setMemberId(memberUser.getId());
-                        if (EnvEnum.LOCAL.getEnvName().equals(env)){
-                            param.setTemplateId("y_D6jCp4MuYMABo5O0mTrREGmI6rip0Feke-r9PkV_g");
-                        } else if (EnvEnum.PROD.getEnvName().equals(env)) {
-                            param.setTemplateId("fTvRP72t6_8xZZ1u8F0PhYOUHUVreor7aCD3qIF596Y");
-                        }
-                        List<SendMpMessageReqVO.TemplateData> list1 = new ArrayList<>();
-                        list1.add(new SendMpMessageReqVO.TemplateData("thing2", itemReportDOS.get(0).getReportName(), null));
-                        list1.add(new SendMpMessageReqVO.TemplateData("time4", taskOrderDO.getCheckDate().toString(), null));
-                        list1.add(new SendMpMessageReqVO.TemplateData("thing6", TaskOrderStatusEnum.getByStatus(taskOrderDO.getTaskStatus()).getName(), null));
-                        param.setTemplateDataList(list1);
-                        SendMpMessageReqVO.MiniProgram mini = new SendMpMessageReqVO.MiniProgram();
-                        mini.setPagePath("pagesSub/reportArchive/index");
-                        mini.setUsePath(true);
-                        param.setMiniProgram(mini);
-                        param.setBusinessId(taskOrderDO.getId());
-                        param.setBusinessType(1);
-//                        memberUserApi.sendMpMessage(param).getCheckedData();
-                        memberMessageRemoteService.sendMpMessage(param);
-
-                        // 生成url
-                        MemberUserRespVO finalMemberUser = memberUser;
-                        taskOrderItemDOList.forEach(taskOrderItemDO -> {
-                            try {
-
-                                // 生成报告URL
-                                ReportUrlInfo reportUrlInfo = generateReportUrl(taskOrderItemDO);
-                                String reportUrl = reportUrlInfo.getReportUrl();
-                                String fileUrl = reportUrlInfo.getFileUrl();
-
-                                // 公众模版发送
-                                List<BoilerTaskOrderItemReportDO> reports = itemReportDOS.stream().filter(x -> x.getOrderItemId().equals(taskOrderItemDO.getId())).toList();
-                                if (CollUtil.isNotEmpty(reports)) {
-                                    //更新任务单出具报告记录-公众号推送人员信息
-                                    LambdaUpdateWrapper<BoilerTaskOrderIssueReportDO> updateWrapper = new LambdaUpdateWrapper<>();
-                                    updateWrapper.set(BoilerTaskOrderIssueReportDO::getOrderItemReportId, reports.get(0).getId());
-                                    updateWrapper.set(BoilerTaskOrderIssueReportDO::getRecipientMemberUserId, finalMemberUser.getId());
-                                    updateWrapper.eq(BoilerTaskOrderIssueReportDO::getId, taskOrderIssueReport.getId());
-                                    taskOrderIssueReportMapper.update(updateWrapper);
-                                    // }
-                                    BoilerTaskOrderItemDO updateOb = new BoilerTaskOrderItemDO();
-                                    updateOb.setId(taskOrderItemDO.getId());
-                                    updateOb.setIssueUrl(fileUrl);
-                                    taskOrderItemMapper.updateById(updateOb);
-                                }
-                            } catch (Exception e) {
-                                log.error("公众模版发送失败", e);
-                                throw new RuntimeException(e);
-                            }
-                        });
-                    } else {
-                        //todo 获取不到平台用户信息是创建一个平台用户账号
-                    }
-
-                }*/
             });
         });
 
@@ -742,7 +669,7 @@ public class BoilerTaskOrderIssueReportServiceImpl extends ServiceImpl<BoilerTas
                 finalTaskOrderItemDOList.forEach(taskOrderItemDO -> {
                     try {
                         // 生成报告URL
-                        ReportUrlInfo reportUrlInfo = generateReportUrl(taskOrderItemDO);
+                        ReportUrlInfo reportUrlInfo = generateReportUrl(taskOrderItemDO,false);
                         String reportUrl = reportUrlInfo.getReportUrl();
                         String fileUrl = reportUrlInfo.getFileUrl();
 
@@ -856,7 +783,7 @@ public class BoilerTaskOrderIssueReportServiceImpl extends ServiceImpl<BoilerTas
                 finalTaskOrderItemDOList.forEach(taskOrderItemDO -> {
                     try {
                         // 生成报告URL
-                        ReportUrlInfo reportUrlInfo = generateReportUrl(taskOrderItemDO);
+                        ReportUrlInfo reportUrlInfo = generateReportUrl(taskOrderItemDO,false);
                         String reportUrl = reportUrlInfo.getReportUrl();
                         String fileUrl = reportUrlInfo.getFileUrl();
 
@@ -1401,7 +1328,7 @@ public class BoilerTaskOrderIssueReportServiceImpl extends ServiceImpl<BoilerTas
                     finalTaskOrderItemDOList.forEach(taskOrderItemDO -> {
                         try {
                             // 生成报告URL
-                            ReportUrlInfo reportUrlInfo = generateReportUrl(taskOrderItemDO);
+                            ReportUrlInfo reportUrlInfo = generateReportUrl(taskOrderItemDO,false);
                             String reportUrl = reportUrlInfo.getReportUrl();
                             String fileUrl = reportUrlInfo.getFileUrl();
 
@@ -1515,7 +1442,7 @@ public class BoilerTaskOrderIssueReportServiceImpl extends ServiceImpl<BoilerTas
                     finalTaskOrderItemDOList.forEach(taskOrderItemDO -> {
                         try {
                             // 生成报告URL
-                            ReportUrlInfo reportUrlInfo = generateReportUrl(taskOrderItemDO);
+                            ReportUrlInfo reportUrlInfo = generateReportUrl(taskOrderItemDO, false);
                             String reportUrl = reportUrlInfo.getReportUrl();
                             String fileUrl = reportUrlInfo.getFileUrl();
 
@@ -1937,7 +1864,7 @@ public class BoilerTaskOrderIssueReportServiceImpl extends ServiceImpl<BoilerTas
                     BoilerTaskOrderItemDO updateOb = new BoilerTaskOrderItemDO();
 
                     //生成报告pdf
-                    ReportUrlInfo reportUrlInfo = generateReportUrl(taskOrderItemDO);
+                    ReportUrlInfo reportUrlInfo = generateReportUrl(taskOrderItemDO,true);
                     String reportUrl = reportUrlInfo.getReportUrl();
                     String fileUrl = reportUrlInfo.getFileUrl();
 
@@ -2844,16 +2771,17 @@ public class BoilerTaskOrderIssueReportServiceImpl extends ServiceImpl<BoilerTas
     /**
      * 生成报告URL
      * @param taskOrderItemDO 任务单项目
+     * @param isCover 是否覆盖原文件
      * @return ReportUrlInfo 包含reportUrl(完整路径)和fileUrl(文件名称)
      */
-    private ReportUrlInfo generateReportUrl(BoilerTaskOrderItemDO taskOrderItemDO) {
+    private ReportUrlInfo generateReportUrl(BoilerTaskOrderItemDO taskOrderItemDO,boolean isCover) {
         String reportUrl = "";
         String fileUrl = "";
         byte[] pdfByte = null;
-        if (StringUtils.isNotEmpty(taskOrderItemDO.getIssueUrl())) {
+        if (StringUtils.isNotEmpty(taskOrderItemDO.getIssueUrl()) && !isCover) {
             fileUrl = taskOrderItemDO.getIssueUrl();
         } else {
-            pdfByte = taskOrderService.getReportOutputStreamMerge(taskOrderItemDO.getId());
+            pdfByte = taskOrderService.getReportOutputStreamMerge(taskOrderItemDO.getId(),isCover);
             if (pdfByte != null){
                 fileUrl = fileApi.createFile(pdfByte);
             }

+ 48 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/comm/QC01001_202400OFData.java

@@ -4,6 +4,7 @@ import cn.start.tz.module.pressure2.controller.admin.dynamictbins.vo.CreateInsta
 import cn.start.tz.module.pressure2.controller.admin.equipboiler.vo.EquipBoilerReportVO;
 import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorder.BoilerTaskOrderDO;
 import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderitem.BoilerTaskOrderItemDO;
+import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderitemreport.BoilerTaskOrderItemReportDO;
 import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderreport.BoilerTaskOrderReportDO;
 import cn.start.tz.module.pressure2.dal.dataobject.equippipe.EquipPipeDO;
 import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorder.PipeTaskOrderDO;
@@ -12,6 +13,7 @@ import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitemreport.PipeT
 import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderreport.PipeTaskOrderReportDO;
 import cn.start.tz.module.pressure2.dal.mysql.boilertaskorder.BoilerTaskOrderMapper;
 import cn.start.tz.module.pressure2.dal.mysql.boilertaskorderitem.BoilerTaskOrderItemMapper;
+import cn.start.tz.module.pressure2.dal.mysql.boilertaskorderitemreport.BoilerTaskOrderItemReportMapper;
 import cn.start.tz.module.pressure2.dal.mysql.boilertaskorderreport.BoilerTaskOrderReportMapper;
 import cn.start.tz.module.pressure2.dal.mysql.equipboiler.EquipBoilerMapper;
 import cn.start.tz.module.pressure2.dal.mysql.equippipe.EquipPipeMapper;
@@ -62,6 +64,9 @@ public class QC01001_202400OFData implements IDynamicOFData {
     @Resource
     private PipeTaskOrderItemReportMapper pipeTaskOrderItemReportMapper;
 
+    @Resource
+    private BoilerTaskOrderItemReportMapper boilerTaskOrderItemReportMapper;
+
     @Resource
     private PipeTaskOrderItemService pipeTaskOrderItemService;
 
@@ -195,6 +200,49 @@ public class QC01001_202400OFData implements IDynamicOFData {
                 }
 
             }
+            else {
+                BoilerTaskOrderItemReportDO itemReportDO1 = boilerTaskOrderItemReportMapper.selectById(refId);
+                if (itemReportDO1 != null){
+                    //编制人员信息
+                    AdminUserRespDTO userInfo = adminUserApi.getUser(itemReportDO1.getPrepareId()).getData();
+                    if (userInfo != null){
+                        if (userInfo.getSignUrl() != null){
+                            result.put("prepareName",userInfo.getSignUrl());
+                        }else{
+                            result.put("prepareName",itemReportDO1.getPrepareName());
+                        }
+                    }
+                    if (itemReportDO1.getPrepareTime() != null){
+                        result.put("prepareTime",itemReportDO1.getPrepareTime().format(dateFormat));
+                    }
+
+                    //审核人员信息
+                    userInfo = adminUserApi.getUser(itemReportDO1.getApprovalId()).getData();
+                    if (userInfo != null){
+                        if (userInfo.getSignUrl() != null){
+                            result.put("approvalName",userInfo.getSignUrl());
+                        }else{
+                            result.put("approvalName",itemReportDO1.getApprovalName());
+                        }
+                    }
+                    if (itemReportDO1.getApprovalTime() != null){
+                        result.put("approvalTime",itemReportDO1.getApprovalTime().format(dateFormat));
+                    }
+
+                    //批准人员信息
+                    userInfo = adminUserApi.getUser(itemReportDO1.getRatifyId()).getData();
+                    if (userInfo != null){
+                        if (userInfo.getSignUrl() != null){
+                            result.put("ratifyName",userInfo.getSignUrl());
+                        }else{
+                            result.put("ratifyName",itemReportDO1.getRatifyName());
+                        }
+                    }
+                    if (itemReportDO1.getRatifyTime() != null){
+                        result.put("ratifyTime",itemReportDO1.getRatifyTime().format(dateFormat));
+                    }
+                }
+            }
 
         }else if (equipMainTpe.equals("pipe")){
 

+ 8 - 1
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipetaskorder/PipeTaskOrderService.java

@@ -185,7 +185,7 @@ public interface PipeTaskOrderService extends IService<PipeTaskOrderDO>  {
 
     void orderConfirmFinish(OrderConfirmFinishVO orderItemRatifyVO);
 
-    byte[] getReportOutputStreamMerge(String orderId);
+    byte[] getReportOutputStreamMerge(String orderId,boolean isCover);
 
     PageResult<AdminUserRespDTO> getRecheckUserPage(PipeRecheckUserPageReqVO pageReqVO);
 
@@ -205,6 +205,13 @@ public interface PipeTaskOrderService extends IService<PipeTaskOrderDO>  {
 
     Boolean generateInspectionPlan(MajorIssuesSubmitVO majorIssuesSubmitVO);
 
+    /**
+     * 校验任务单下是否有已审批完成的检验方案
+     * @param orderId 任务单ID
+     * @return true=存在已审批的检验方案
+     */
+    boolean checkSchemeApproved(String orderId);
+
     void majorIssuesRecovery(@Valid TaskOrderMajorIssuesVO taskOrderMajorIssuesVO);
 
     Boolean updatePayStatus(UpdatePayStatusDTO payInfo);

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

@@ -3460,7 +3460,7 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
 //        byte[] pdf1 =  pdfService.pdf(dynamicTbInsDO1.getTbId(), dynamicTbInsDO1.getId());
         byte[] pdf1 =getRecordOutputStreamMerge(pipeTaskOrderDO.getId());
         // 报告模板
-        byte[] pdf2 =getReportOutputStreamMerge(pipeTaskOrderDO.getId());
+        byte[] pdf2 =getReportOutputStreamMerge(pipeTaskOrderDO.getId(),false);
 //        byte[] pdf2 = externalOAService.pdf(dynamicTbInsDO1.getTbId(), dynamicTbInsDO1.getId());
         ExternalOAUploadAttachmentRes externalOAUploadAttachmentRes1 = externalOAService.externalOAUploadAttachment(new ByteArrayInputStream(pdf1), "检验记录_" + pipeTaskOrderDO.getOrderNo() + ".pdf");
         ExternalOAUploadAttachmentRes externalOAUploadAttachmentRes2 = externalOAService.externalOAUploadAttachment(new ByteArrayInputStream(pdf2), "检验报告_" + pipeTaskOrderDO.getOrderNo() + ".pdf");
@@ -3572,6 +3572,13 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
         addReport.setPrepareId(taskOrderMajorIssuesVO.getPrepareId());
         addReport.setPrepareName(taskOrderMajorIssuesVO.getPrepareName());
         addReport.setPrepareTime(LocalDateTime.now());
+        //检验方案读取记录下来的编制时间
+        if (dynamicTbDO.getTbType() != null && TaskOrderItemReportTypeEnum.INSPECTION_PLAN.getType().intValue() == dynamicTbDO.getTbType()) {
+            PipeTaskOrderDO taskOrderDO = pipeTaskOrderMapper.selectById(orderId);
+            if (taskOrderDO != null && taskOrderDO.getSchemeEnterTime() != null){
+                addReport.setPrepareTime(taskOrderDO.getSchemeEnterTime());
+            }
+        }
         addReport.setPrepareJson(taskOrderMajorIssuesVO.getPrepareJson());
         addReport.setReportUrl(taskOrderMajorIssuesVO.getReportUrl());
 
@@ -4589,6 +4596,54 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
 
     }
 
+    @Override
+    @Transactional
+    public boolean checkSchemeApproved(String orderId) {
+
+        PipeTaskOrderDO taskOrderDO = pipeTaskOrderMapper.selectById(orderId);
+
+        if (taskOrderDO == null){
+            throw new ServiceException(404, "任务单不存在");
+        }
+
+        //管道定检才需要判断检验方案
+        if (taskOrderDO.getCheckType() != 100){
+            return true;
+        }else{
+            List<PipeTaskOrderItemReportDO> pipeTaskOrderItemReportDOS = taskOrderItemReportMapper.selectList(
+                    new LambdaQueryWrapperX<PipeTaskOrderItemReportDO>()
+                            .eq(PipeTaskOrderItemReportDO::getOrderId, orderId)
+                            .eq(PipeTaskOrderItemReportDO::getReportType, 600)
+                            .eq(PipeTaskOrderItemReportDO::getStatus, AcceptOrderStatusEnum.AUDIT.getStatus())
+                            .isNotNull(PipeTaskOrderItemReportDO::getRatifyTime)
+                            .orderByDesc(PipeTaskOrderItemReportDO::getRatifyTime)
+            );
+
+            if (pipeTaskOrderItemReportDOS.isEmpty()){
+                return false;
+            }else{
+
+                //记录审批时间
+                PipeTaskOrderItemReportDO lastReport = pipeTaskOrderItemReportDOS.get(0);
+                if (taskOrderDO.getSchemeEnterTime() == null || taskOrderDO.getSchemeApprovalTime() == null || taskOrderDO.getSchemeRatifyTime() == null){
+
+                    if (lastReport != null){
+                        PipeTaskOrderDO updateTaskOrderDO = new PipeTaskOrderDO();
+                        updateTaskOrderDO.setId(orderId);
+                        updateTaskOrderDO.setSchemeEnterTime(lastReport.getPrepareTime());
+                        updateTaskOrderDO.setSchemeApprovalTime(lastReport.getApprovalTime());
+                        updateTaskOrderDO.setSchemeRatifyTime(lastReport.getRatifyTime());
+                        pipeTaskOrderMapper.updateById(updateTaskOrderDO);
+                    }
+
+                }
+
+                return true;
+            }
+        }
+
+    }
+
     @Override
     @Transactional
     public Boolean auditInitiateApproval(String id, Integer status, String reason) {
@@ -4675,6 +4730,21 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
             } else {
                 itemReportDO.setRatifyId(userId);
                 itemReportDO.setRatifyTime(LocalDateTime.now());
+                //检验方案读取记录下来的审批日期
+                if (reportDO.getReportType() != null && TaskOrderItemReportTypeEnum.INSPECTION_PLAN.getType().intValue() == reportDO.getReportType()) {
+                    PipeTaskOrderDO taskOrderDO = pipeTaskOrderMapper.selectById(reportDO.getOrderId());
+                    if (taskOrderDO != null){
+                        if (taskOrderDO.getSchemeEnterTime() != null){
+                            itemReportDO.setPrepareTime(taskOrderDO.getSchemeEnterTime());
+                        }
+                        if (taskOrderDO.getSchemeApprovalTime() != null){
+                            itemReportDO.setApprovalTime(taskOrderDO.getSchemeApprovalTime());
+                        }
+                        if (taskOrderDO.getSchemeRatifyTime() != null){
+                            itemReportDO.setRatifyTime(taskOrderDO.getSchemeRatifyTime());
+                        }
+                    }
+                }
 
                 if (userRespDTO != null) {
                     itemReportDO.setRatifyName(userRespDTO.getNickname());
@@ -4846,6 +4916,13 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
                 updateReport.setId(id);
                 updateReport.setApprovalId(userId);
                 updateReport.setApprovalTime(LocalDateTime.now());
+                //检验方案读取记录下来的审核日期
+                if (reqVO.getReportType() != null && TaskOrderItemReportTypeEnum.INSPECTION_PLAN.getType().intValue() == reqVO.getReportType()) {
+                    PipeTaskOrderDO taskOrderDO = pipeTaskOrderMapper.selectById(itemReportDO.getOrderId());
+                    if (taskOrderDO != null && taskOrderDO.getSchemeApprovalTime() != null){
+                        updateReport.setApprovalTime(taskOrderDO.getSchemeApprovalTime());
+                    }
+                }
 
                 if (userRespDTO != null) {
                     updateReport.setApprovalName(userRespDTO.getNickname());
@@ -5253,7 +5330,7 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
     }
 
     @Override
-    public byte[] getReportOutputStreamMerge(String orderId) {
+    public byte[] getReportOutputStreamMerge(String orderId,boolean isCover) {
 
 //        List<PipeTaskOrderItemReportDO> taskOrderReportDOS = taskOrderItemReportMapper.selectList(new LambdaQueryWrapperX<PipeTaskOrderItemReportDO>().
 //                eq(PipeTaskOrderItemReportDO::getOrderId, orderId).
@@ -5263,7 +5340,7 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
 //                .orderByAsc(PipeTaskOrderItemReportDO::getReportType)); //主报告排最前面
 
         PipeTaskOrderDO taskOrderDO = pipeTaskOrderMapper.selectById(orderId);
-        if (taskOrderDO.getIssueUrl() != null && !taskOrderDO.getIssueUrl().isEmpty()){
+        if (taskOrderDO.getIssueUrl() != null && !taskOrderDO.getIssueUrl().isEmpty() && !isCover){
             try {
 
                 log.info("---获取已生成报告PDF---");

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

@@ -496,7 +496,7 @@ public class PipeTaskOrderIssueReportServiceImpl extends ServiceImpl<PipeTaskOrd
                         taskOrderItemDOList.forEach(taskOrderItemDO -> {
                             try {
 
-                                ReportUrlInfo reportUrlInfo = generateReportUrl(taskOrderDO);
+                                ReportUrlInfo reportUrlInfo = generateReportUrl(taskOrderDO,false);
                                 String reportUrl = reportUrlInfo.getReportUrl();
                                 String fileUrl = reportUrlInfo.getFileUrl();
 
@@ -670,7 +670,7 @@ public class PipeTaskOrderIssueReportServiceImpl extends ServiceImpl<PipeTaskOrd
 
                         try {
 
-                            ReportUrlInfo reportUrlInfo = generateReportUrl(taskOrderDO);
+                            ReportUrlInfo reportUrlInfo = generateReportUrl(taskOrderDO,false);
                             String reportUrl = reportUrlInfo.getReportUrl();
                             String fileUrl = reportUrlInfo.getFileUrl();
                             log.info("报告url:{}", reportUrl);
@@ -802,7 +802,7 @@ public class PipeTaskOrderIssueReportServiceImpl extends ServiceImpl<PipeTaskOrd
                 finalTaskOrderItemDOList.forEach(taskOrderItemDO -> {
                     try {
 
-                        ReportUrlInfo reportUrlInfo = generateReportUrl(taskOrderDO);
+                        ReportUrlInfo reportUrlInfo = generateReportUrl(taskOrderDO,false);
                         String reportUrl = reportUrlInfo.getReportUrl();
                         String fileUrl = reportUrlInfo.getFileUrl();
 
@@ -1357,7 +1357,7 @@ public class PipeTaskOrderIssueReportServiceImpl extends ServiceImpl<PipeTaskOrd
 
                             try {
 
-                                ReportUrlInfo reportUrlInfo = generateReportUrl(taskOrderDO);
+                                ReportUrlInfo reportUrlInfo = generateReportUrl(taskOrderDO,false);
                                 String reportUrl = reportUrlInfo.getReportUrl();
                                 String fileUrl = reportUrlInfo.getFileUrl();
                                 log.info("报告url:{}", reportUrl);
@@ -1491,7 +1491,7 @@ public class PipeTaskOrderIssueReportServiceImpl extends ServiceImpl<PipeTaskOrd
                         try {
 
                             // 生成报告URL
-                            ReportUrlInfo reportUrlInfo = generateReportUrl(taskOrderDO);
+                            ReportUrlInfo reportUrlInfo = generateReportUrl(taskOrderDO,false);
                             String reportUrl = reportUrlInfo.getReportUrl();
                             String fileUrl = reportUrlInfo.getFileUrl();
 
@@ -1960,7 +1960,7 @@ public class PipeTaskOrderIssueReportServiceImpl extends ServiceImpl<PipeTaskOrd
             PipeTaskOrderDO taskOrderDO = taskOrderMapper.selectById(orderId);
 
             //生成报告pdf
-            ReportUrlInfo reportUrlInfo = generateReportUrl(taskOrderDO);
+            ReportUrlInfo reportUrlInfo = generateReportUrl(taskOrderDO,true);
             String reportUrl = reportUrlInfo.getReportUrl();
             String fileUrl = reportUrlInfo.getFileUrl();
 
@@ -2829,16 +2829,17 @@ public class PipeTaskOrderIssueReportServiceImpl extends ServiceImpl<PipeTaskOrd
     /**
      * 生成报告URL
      * @param taskOrderDO 任务单项目
+     * @param isCover 是否覆盖原文件
      * @return ReportUrlInfo 包含reportUrl(完整路径)和fileUrl(文件名称)
      */
-    private ReportUrlInfo generateReportUrl(PipeTaskOrderDO taskOrderDO) {
+    private ReportUrlInfo generateReportUrl(PipeTaskOrderDO taskOrderDO, boolean isCover) {
         String reportUrl = "";
         String fileUrl = "";
         byte[] pdfByte = null;
-        if (StringUtils.isNotEmpty(taskOrderDO.getIssueUrl())) {
+        if (StringUtils.isNotEmpty(taskOrderDO.getIssueUrl()) && !isCover) {
             fileUrl = taskOrderDO.getIssueUrl();
         } else {
-            pdfByte = taskOrderService.getReportOutputStreamMerge(taskOrderDO.getId());
+            pdfByte = taskOrderService.getReportOutputStreamMerge(taskOrderDO.getId(),isCover);
             if (pdfByte != null){
                 fileUrl = fileApi.createFile(pdfByte);
             }