Prechádzať zdrojové kódy

Merge remote-tracking branch 'origin/dev' into dev

yangguanjin 1 týždeň pred
rodič
commit
0a529fda50
27 zmenil súbory, kde vykonal 276 pridanie a 66 odobranie
  1. 7 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/boilertaskordersignfile/BoilerTaskOrderSignFileController.java
  2. 8 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/orderreport/OrderReportController.java
  3. 10 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/orderreport/vo/OrderReportRespVO.java
  4. 6 3
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/appointmentconfirmorder/AppointmentConfirmOrderServiceImpl.java
  5. 5 1
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/appointmentconfirmorder/PipeAppointmentConfirmOrderServiceImpl.java
  6. 16 8
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilertaskorder/BoilerTaskOrderServiceImpl.java
  7. 8 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilertaskordersignfile/BoilerTaskOrderSignFileService.java
  8. 11 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilertaskordersignfile/BoilerTaskOrderSignFileServiceImpl.java
  9. 11 1
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/boiler/QC10033_202400ReportOFData.java
  10. 8 4
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/comm/QC47025_202400RecordOFData.java
  11. 8 4
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/comm/QC47026_202401RecordOFData.java
  12. 7 3
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/comm/QC47028_202400RecordOFData.java
  13. 8 4
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/comm/QC47029_202400RecordOFData.java
  14. 8 4
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/comm/QC47031_202400RecordOFData.java
  15. 8 4
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/comm/QC47034_202400RecordOFData.java
  16. 8 4
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/comm/QC47037_202400RecordOFData.java
  17. 8 4
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/comm/QC52044_202401RecordOFData.java
  18. 8 4
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/comm/QC52045_202401RecordOFData.java
  19. 8 4
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/comm/QC52046_202400RecordOFData.java
  20. 8 4
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/comm/QC52047_202400RecordOFData.java
  21. 8 4
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/comm/QC52049_202402RecordOFData.java
  22. 8 4
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/comm/QC52054_202400RecordOFData.java
  23. 25 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/orderreport/OrderReportService.java
  24. 51 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/orderreport/OrderReportServiceImpl.java
  25. 7 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipetaskorder/PipeTaskOrderServiceImpl.java
  26. 6 1
      tz-module-pressure2/tz-module-pressure2-biz/src/main/resources/application-hsd.yaml
  27. 2 1
      tz-module-pressure2/tz-module-pressure2-biz/src/main/resources/application-prod.yaml

+ 7 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/boilertaskordersignfile/BoilerTaskOrderSignFileController.java

@@ -99,4 +99,11 @@ public class BoilerTaskOrderSignFileController {
         return success(Boolean.TRUE);
     }
 
+    @GetMapping("/hasValidSign")
+    @Operation(summary = "检查任务单是否有有效签名")
+    @Parameter(name = "orderId", description = "任务单ID", required = true)
+    public CommonResult<Boolean> hasValidSignByOrderId(@RequestParam("orderId") String orderId) {
+        return success(boilerTaskOrderSignFileService.hasValidSignByOrderId(orderId));
+    }
+
 }

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

@@ -131,4 +131,12 @@ public class OrderReportController {
         return success(true);
     }
 
+    @GetMapping("/getByTaskOrderId")
+    @Operation(summary = "根据任务单ID查询关联报告列表")
+    @Parameter(name = "taskOrderId", description = "任务单ID", required = true)
+    public CommonResult<List<OrderReportRespVO>> getByTaskOrderId(@RequestParam("taskOrderId") String taskOrderId) {
+        List<OrderReportDO> list = orderReportService.getByTaskOrderId(taskOrderId);
+        return success(BeanUtils.toBean(list, OrderReportRespVO.class));
+    }
+
 }

+ 10 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/orderreport/vo/OrderReportRespVO.java

@@ -3,6 +3,7 @@ package cn.start.tz.module.pressure2.controller.admin.orderreport.vo;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 import java.util.*;
+import java.time.LocalDate;
 import org.springframework.format.annotation.DateTimeFormat;
 import java.time.LocalDateTime;
 import com.alibaba.excel.annotation.*;
@@ -36,6 +37,15 @@ public class OrderReportRespVO {
     @ExcelProperty("报表实例id")
     private String insId;
 
+    @Schema(description = "签名图片地址")
+    private String signUrl;
+
+    @Schema(description = "签名时间")
+    private LocalDate signDate;
+
+    @Schema(description = "受理单/服务单编号")
+    private String acceptOrderNo;
+
     @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
     @ExcelProperty("创建时间")
     private LocalDateTime createTime;

+ 6 - 3
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/appointmentconfirmorder/AppointmentConfirmOrderServiceImpl.java

@@ -1081,6 +1081,9 @@ public class AppointmentConfirmOrderServiceImpl implements AppointmentConfirmOrd
 
     }
 
+    @Value("${app-auth.wx-app-id}")
+    private String wxAppId;
+
     @Override
     public void sendTemplateMessage(SendTemplateMessageVO sendTemplateMessageVO) {
         AppointmentConfirmOrderDO appointmentConfirmOrderDO = appointmentConfirmOrderMapper.selectById(sendTemplateMessageVO.getId());
@@ -1165,9 +1168,9 @@ public class AppointmentConfirmOrderServiceImpl implements AppointmentConfirmOrd
 
             // if(sendTemplateMessageVO.getPage()){
             SendMpMessageReqVO.MiniProgram mini = new SendMpMessageReqVO.MiniProgram();
-//            mini.setPagePath(String.format("pages/boiler/appointment-confirm/index?id=%s", sendTemplateMessageVO.getId()));
-//            mini.setUsePath(true);
-//            mini.setAppid("wxf88e2dba767bb5d6");
+            mini.setPagePath(String.format("pagesSub/boiler/appointment-confirm/index?id=%s", sendTemplateMessageVO.getId()));
+            mini.setUsePath(true);
+            mini.setAppid(wxAppId);
             param.setMiniProgram(mini);
             //}
             param.setBusinessId(appointmentConfirmOrderDO.getId());

+ 5 - 1
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/appointmentconfirmorder/PipeAppointmentConfirmOrderServiceImpl.java

@@ -1146,6 +1146,9 @@ public class PipeAppointmentConfirmOrderServiceImpl implements PipeAppointmentCo
 
     }
 
+    @Value("${app-auth.wx-app-id}")
+    private String wxAppId;
+
     @Override
     public void sendTemplateMessage(SendTemplateMessageVO sendTemplateMessageVO) {
         AppointmentConfirmOrderDO appointmentConfirmOrderDO = appointmentConfirmOrderMapper.selectById(sendTemplateMessageVO.getId());
@@ -1227,8 +1230,9 @@ public class PipeAppointmentConfirmOrderServiceImpl implements PipeAppointmentCo
 
             // if(sendTemplateMessageVO.getPage()){
             SendMpMessageReqVO.MiniProgram mini = new SendMpMessageReqVO.MiniProgram();
-            mini.setPagePath(String.format("pages/pipe/appointment-confirm/index?id=%s", sendTemplateMessageVO.getId()));
+            mini.setPagePath(String.format("pagesSub/pipe/appointment-confirm/index?id=%s", sendTemplateMessageVO.getId()));
             mini.setUsePath(true);
+            mini.setAppid(wxAppId);
             param.setMiniProgram(mini);
             //}
             param.setBusinessId(appointmentConfirmOrderDO.getId());

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

@@ -44,6 +44,7 @@ import cn.start.tz.module.pressure2.controller.appapi.boilertaskorder.vo.BoilerO
 import cn.start.tz.module.pressure2.dal.dataobject.businessmemberrelation.BusinessMemberRelationDO;
 import cn.start.tz.module.pressure2.dal.dataobject.notificationformreport.NotificationformReportDO;
 import cn.start.tz.module.pressure2.dal.dataobject.opinionnotificationfollowrecord.OpinionNotificationFollowRecordDO;
+import cn.start.tz.module.pressure2.dal.dataobject.orderreport.OrderReportDO;
 import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorder.PipeTaskOrderDO;
 import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitem.PipeTaskOrderItemDO;
 import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderuser.PipeTaskOrderUserDO;
@@ -3195,6 +3196,11 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
                     }
                 }
             }
+            // 金额发生变动,将受理单签名置空,判断全部金额都要和之前不一致
+            if (ObjectUtil.notEqual(shouldAmount, boilerTaskOrderDO.getShouldAmount()) || ObjectUtil.notEqual(serviceAmount, boilerTaskOrderDO.getServiceAmount()) || ObjectUtil.notEqual(reduceFee, boilerTaskOrderDO.getReduceFee()) || ObjectUtil.notEqual(orderFee, boilerTaskOrderDO.getActualAmount())) {
+                orderReportService.updateFeeBoiler(id);
+            }
+
             BoilerTaskOrderDO taskOrderDO = new BoilerTaskOrderDO();
             taskOrderDO.setId(id);
             taskOrderDO.setShouldAmount(shouldAmount);
@@ -3212,6 +3218,8 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
                 acceptOrderDO.setReduceFee(reduceFee);
                 acceptOrderMapper.updateById(acceptOrderDO);
             }
+            // 同步报表
+            orderReportService.syncReportByTaskOrder(id, "boiler");
         }
     }
 
@@ -4505,17 +4513,17 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
         log.info("发起oa审核");
         try {
             ExternalOACreateFlowRes externalOAFlow = createExternalOAFlow(taskOrderItemReportDO,updateObj);
-            
+
             // 判断是否是重新发送(已有summaryId)
             boolean isResend = taskOrderItemReportDO.getSummaryId() != null && !taskOrderItemReportDO.getSummaryId().isEmpty();
-            
+
             // 如果是重新发送,且返回code=0,即使data为null也认为成功
             if (isResend && "0".equals(externalOAFlow.getCode())) {
                 log.info("OA流程重新发送成功,使用原有summaryId: {}", taskOrderItemReportDO.getSummaryId());
                 // 保持原有的summaryId不变,不需要更新
                 return;
             }
-            
+
             // 首次发送,需要获取新的summaryId
             if (externalOAFlow.getData() == null){
                 log.error("OA流程发起失败: {}", externalOAFlow.getMessage());
@@ -6493,7 +6501,7 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
                     throw new RuntimeException(e);
                 }
             });
-            
+
             // pdf 文件流合并
             mergerUtility.setDestinationStream(mergeOutputStream);
             mergerUtility.mergeDocuments(null);
@@ -6502,7 +6510,7 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
             byte[] mergedPdfBytes = mergeOutputStream.toByteArray();
             int skipPages = getMainReportSkipPageCount(taskOrderReportDOS);
             byte[] pdfWithPageNumbers = pdfService.addPageNumbersToPdf(mergedPdfBytes, skipPages);
-            
+
             // 及时释放大对象引用
             mergedPdfBytes = null;
             mergeOutputStream.close();
@@ -6621,7 +6629,7 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
                     throw new RuntimeException(e);
                 }
             });
-            
+
             // pdf 文件流合并
             mergerUtility.setDestinationStream(mergeOutputStream);
             mergerUtility.mergeDocuments(null);
@@ -6629,7 +6637,7 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
             // 重新生成页码
             byte[] mergedPdfBytes = mergeOutputStream.toByteArray();
             byte[] pdfWithPageNumbers = pdfService.addPageNumbersToPdf(mergedPdfBytes, 0);
-            
+
             // 及时释放大对象引用
             mergedPdfBytes = null;
             mergeOutputStream.close();
@@ -7356,7 +7364,7 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
         List<EquipBoilerSchedulingCheckDO> checkDOList = equipBoilerSchedulingCheckService.lambdaQuery()
                 .eq(EquipBoilerSchedulingCheckDO::getTaskOrderId, taskOrderId)
                 .list();
-        
+
         if (!checkDOList.isEmpty()) {
             List<String> checkIds = checkDOList.stream()
                     .map(EquipBoilerSchedulingCheckDO::getCheckId)

+ 8 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilertaskordersignfile/BoilerTaskOrderSignFileService.java

@@ -76,4 +76,12 @@ public interface BoilerTaskOrderSignFileService extends IService<BoilerTaskOrder
      * @param reqVO 入参
      */
     void serviceFromPush(TaskOrderPushReqVO reqVO) throws Exception;
+
+    /**
+     * 检查任务单是否有有效签名
+     *
+     * @param orderId 任务单ID
+     * @return true-签名有效,false-签名已失效
+     */
+    boolean hasValidSignByOrderId(String orderId);
 }

+ 11 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilertaskordersignfile/BoilerTaskOrderSignFileServiceImpl.java

@@ -2,6 +2,7 @@ package cn.start.tz.module.pressure2.service.boilertaskordersignfile;
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
 import cn.start.tz.framework.common.enums.TerminalEnum;
 import cn.start.tz.framework.common.exception.ErrorCode;
 import cn.start.tz.framework.common.exception.ServiceException;
@@ -401,4 +402,14 @@ public class BoilerTaskOrderSignFileServiceImpl extends ServiceImpl<BoilerTaskOr
 //
 //    }
 
+    @Override
+    public boolean hasValidSignByOrderId(String orderId) {
+        List<BoilerTaskOrderSignFileDO> signFiles = boilerTaskOrderSignFileMapper.selectList(
+                BoilerTaskOrderSignFileDO::getOrderId, orderId);
+        if (CollUtil.isEmpty(signFiles)) {
+            return false;
+        }
+        return signFiles.stream().anyMatch(f -> StrUtil.isNotBlank(f.getSignUrl()));
+    }
+
 }

+ 11 - 1
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/boiler/QC10033_202400ReportOFData.java

@@ -114,11 +114,21 @@ public class QC10033_202400ReportOFData implements IDynamicOFData {
                     result.put("medium",equipBoilerDO.getTestmedium());
                     result.put("temperature",equipBoilerDO.getRatedExportTemperature());
 
-                    //下次检日期
+                    //下次检日期
                     if (taskOrderDO != null && taskOrderDO.getCheckDate() != null){
                         LocalDate nextYearCheckDate = taskOrderDO.getCheckDate().plusYears(1).minusDays(1);
                         result.put("nextOutCheckDate1_yearMonth",nextYearCheckDate.format(dateFormatMonthYear));
                     }
+
+                    //下次内检日期
+                    if (equipBoilerDO.getNextInCheckDate() != null){
+                        result.put("nextInCheckDate1_yearMonth",equipBoilerDO.getNextInCheckDate().format(dateFormatMonthYear));
+                    }
+
+                    //下次耐压检验日期
+                    if (equipBoilerDO.getNextPressureCheckDate() != null){
+                        result.put("nextPressureCheckDate1_yearMonth",equipBoilerDO.getNextPressureCheckDate().format(dateFormatMonthYear));
+                    }
                 }
 
             }

+ 8 - 4
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/comm/QC47025_202400RecordOFData.java

@@ -95,18 +95,22 @@ public class QC47025_202400RecordOFData implements IDynamicOFData {
 
             if (itemReportDO != null) {
                 //根据记录字段动态生成报告字段
-                result = autoDataPipeService.autoGeneratePipeReportData(result, refId);
+                result = autoDataPipeService.autoGeneratePipeRecordData(result, refId);
 
                 List<PipeTaskOrderItemDO> itemDOList = pipeTaskOrderItemMapper.selectList(new LambdaQueryWrapper<PipeTaskOrderItemDO>()
                         .eq(PipeTaskOrderItemDO::getOrderId, itemReportDO.getOrderId()));
                 if (!itemDOList.isEmpty()){
                     //设备信息
+                    EquipPipeDO equipDO = equipPipeMapper.selectById(itemDOList.get(0).getEquipId());
+                    if (equipDO != null){
+                        result.put("unitName",equipDO.getUnitName());
+                    }
+
                     if (itemDOList.size() > 1){
                         result.put("equipCode","见一览表");
                     }else {
-                        EquipPipeDO equipDO = equipPipeMapper.selectById(itemDOList.get(0).getEquipId());
-                        if (equipDO != null){
-                            result.put("equipCode",equipDO.getProjectNo());
+                        if (equipDO != null) {
+                            result.put("equipCode", equipDO.getProjectNo());
                         }
                     }
                 }

+ 8 - 4
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/comm/QC47026_202401RecordOFData.java

@@ -95,18 +95,22 @@ public class QC47026_202401RecordOFData implements IDynamicOFData {
 
             if (itemReportDO != null) {
                 //根据记录字段动态生成报告字段
-                result = autoDataPipeService.autoGeneratePipeReportData(result, refId);
+                result = autoDataPipeService.autoGeneratePipeRecordData(result, refId);
 
                 List<PipeTaskOrderItemDO> itemDOList = pipeTaskOrderItemMapper.selectList(new LambdaQueryWrapper<PipeTaskOrderItemDO>()
                         .eq(PipeTaskOrderItemDO::getOrderId, itemReportDO.getOrderId()));
                 if (!itemDOList.isEmpty()){
                     //设备信息
+                    EquipPipeDO equipDO = equipPipeMapper.selectById(itemDOList.get(0).getEquipId());
+                    if (equipDO != null){
+                        result.put("unitName",equipDO.getUnitName());
+                    }
+
                     if (itemDOList.size() > 1){
                         result.put("equipCode","见一览表");
                     }else {
-                        EquipPipeDO equipDO = equipPipeMapper.selectById(itemDOList.get(0).getEquipId());
-                        if (equipDO != null){
-                            result.put("equipCode",equipDO.getProjectNo());
+                        if (equipDO != null) {
+                            result.put("equipCode", equipDO.getProjectNo());
                         }
                     }
                 }

+ 7 - 3
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/comm/QC47028_202400RecordOFData.java

@@ -105,12 +105,16 @@ public class QC47028_202400RecordOFData implements IDynamicOFData {
                         .eq(PipeTaskOrderItemDO::getOrderId, itemReportDO.getOrderId()));
                 if (!itemDOList.isEmpty()){
                     //设备信息
+                    EquipPipeDO equipDO = equipPipeMapper.selectById(itemDOList.get(0).getEquipId());
+                    if (equipDO != null){
+                        result.put("unitName",equipDO.getUnitName());
+                    }
+
                     if (itemDOList.size() > 1){
                         result.put("equipCode","见一览表");
                     }else {
-                        EquipPipeDO equipDO = equipPipeMapper.selectById(itemDOList.get(0).getEquipId());
-                        if (equipDO != null){
-                            result.put("equipCode",equipDO.getProjectNo());
+                        if (equipDO != null) {
+                            result.put("equipCode", equipDO.getProjectNo());
                         }
                     }
                 }

+ 8 - 4
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/comm/QC47029_202400RecordOFData.java

@@ -95,18 +95,22 @@ public class QC47029_202400RecordOFData implements IDynamicOFData {
 
             if (itemReportDO != null) {
                 //根据记录字段动态生成报告字段
-                result = autoDataPipeService.autoGeneratePipeReportData(result, refId);
+                result = autoDataPipeService.autoGeneratePipeRecordData(result, refId);
 
                 List<PipeTaskOrderItemDO> itemDOList = pipeTaskOrderItemMapper.selectList(new LambdaQueryWrapper<PipeTaskOrderItemDO>()
                         .eq(PipeTaskOrderItemDO::getOrderId, itemReportDO.getOrderId()));
                 if (!itemDOList.isEmpty()){
                     //设备信息
+                    EquipPipeDO equipDO = equipPipeMapper.selectById(itemDOList.get(0).getEquipId());
+                    if (equipDO != null){
+                        result.put("unitName",equipDO.getUnitName());
+                    }
+
                     if (itemDOList.size() > 1){
                         result.put("equipCode","见一览表");
                     }else {
-                        EquipPipeDO equipDO = equipPipeMapper.selectById(itemDOList.get(0).getEquipId());
-                        if (equipDO != null){
-                            result.put("equipCode",equipDO.getProjectNo());
+                        if (equipDO != null) {
+                            result.put("equipCode", equipDO.getProjectNo());
                         }
                     }
                 }

+ 8 - 4
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/comm/QC47031_202400RecordOFData.java

@@ -98,18 +98,22 @@ public class QC47031_202400RecordOFData implements IDynamicOFData {
 
             if (itemReportDO != null) {
                 //根据记录字段动态生成报告字段
-                result = autoDataPipeService.autoGeneratePipeReportData(result, refId);
+                result = autoDataPipeService.autoGeneratePipeRecordData(result, refId);
 
                 List<PipeTaskOrderItemDO> itemDOList = pipeTaskOrderItemMapper.selectList(new LambdaQueryWrapper<PipeTaskOrderItemDO>()
                         .eq(PipeTaskOrderItemDO::getOrderId, itemReportDO.getOrderId()));
                 if (!itemDOList.isEmpty()){
                     //设备信息
+                    EquipPipeDO equipDO = equipPipeMapper.selectById(itemDOList.get(0).getEquipId());
+                    if (equipDO != null){
+                        result.put("unitName",equipDO.getUnitName());
+                    }
+
                     if (itemDOList.size() > 1){
                         result.put("equipCode","见一览表");
                     }else {
-                        EquipPipeDO equipDO = equipPipeMapper.selectById(itemDOList.get(0).getEquipId());
-                        if (equipDO != null){
-                            result.put("equipCode",equipDO.getProjectNo());
+                        if (equipDO != null) {
+                            result.put("equipCode", equipDO.getProjectNo());
                         }
                     }
                 }

+ 8 - 4
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/comm/QC47034_202400RecordOFData.java

@@ -95,18 +95,22 @@ public class QC47034_202400RecordOFData implements IDynamicOFData {
 
             if (itemReportDO != null) {
                 //根据记录字段动态生成报告字段
-                result = autoDataPipeService.autoGeneratePipeReportData(result, refId);
+                result = autoDataPipeService.autoGeneratePipeRecordData(result, refId);
 
                 List<PipeTaskOrderItemDO> itemDOList = pipeTaskOrderItemMapper.selectList(new LambdaQueryWrapper<PipeTaskOrderItemDO>()
                         .eq(PipeTaskOrderItemDO::getOrderId, itemReportDO.getOrderId()));
                 if (!itemDOList.isEmpty()){
                     //设备信息
+                    EquipPipeDO equipDO = equipPipeMapper.selectById(itemDOList.get(0).getEquipId());
+                    if (equipDO != null){
+                        result.put("unitName",equipDO.getUnitName());
+                    }
+
                     if (itemDOList.size() > 1){
                         result.put("equipCode","见一览表");
                     }else {
-                        EquipPipeDO equipDO = equipPipeMapper.selectById(itemDOList.get(0).getEquipId());
-                        if (equipDO != null){
-                            result.put("equipCode",equipDO.getProjectNo());
+                        if (equipDO != null) {
+                            result.put("equipCode", equipDO.getProjectNo());
                         }
                     }
                 }

+ 8 - 4
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/comm/QC47037_202400RecordOFData.java

@@ -113,18 +113,22 @@ public class QC47037_202400RecordOFData implements IDynamicOFData {
 
             if (itemReportDO != null) {
                 //根据记录字段动态生成报告字段
-                result = autoDataPipeService.autoGeneratePipeReportData(result, refId);
+                result = autoDataPipeService.autoGeneratePipeRecordData(result, refId);
 
                 List<PipeTaskOrderItemDO> itemDOList = pipeTaskOrderItemMapper.selectList(new LambdaQueryWrapper<PipeTaskOrderItemDO>()
                         .eq(PipeTaskOrderItemDO::getOrderId, itemReportDO.getOrderId()));
                 if (!itemDOList.isEmpty()){
                     //设备信息
+                    EquipPipeDO equipDO = equipPipeMapper.selectById(itemDOList.get(0).getEquipId());
+                    if (equipDO != null){
+                        result.put("unitName",equipDO.getUnitName());
+                    }
+
                     if (itemDOList.size() > 1){
                         result.put("equipCode","见一览表");
                     }else {
-                        EquipPipeDO equipDO = equipPipeMapper.selectById(itemDOList.get(0).getEquipId());
-                        if (equipDO != null){
-                            result.put("equipCode",equipDO.getProjectNo());
+                        if (equipDO != null) {
+                            result.put("equipCode", equipDO.getProjectNo());
                         }
                     }
                 }

+ 8 - 4
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/comm/QC52044_202401RecordOFData.java

@@ -118,18 +118,22 @@ public class QC52044_202401RecordOFData implements IDynamicOFData {
 
             if (itemReportDO != null) {
                 //根据记录字段动态生成报告字段
-                result = autoDataPipeService.autoGeneratePipeReportData(result, refId);
+                result = autoDataPipeService.autoGeneratePipeRecordData(result, refId);
 
                 List<PipeTaskOrderItemDO> itemDOList = pipeTaskOrderItemMapper.selectList(new LambdaQueryWrapper<PipeTaskOrderItemDO>()
                         .eq(PipeTaskOrderItemDO::getOrderId, itemReportDO.getOrderId()));
                 if (!itemDOList.isEmpty()){
                     //设备信息
+                    EquipPipeDO equipDO = equipPipeMapper.selectById(itemDOList.get(0).getEquipId());
+                    if (equipDO != null){
+                        result.put("unitName",equipDO.getUnitName());
+                    }
+
                     if (itemDOList.size() > 1){
                         result.put("equipCode","见一览表");
                     }else {
-                        EquipPipeDO equipDO = equipPipeMapper.selectById(itemDOList.get(0).getEquipId());
-                        if (equipDO != null){
-                            result.put("equipCode",equipDO.getProjectNo());
+                        if (equipDO != null) {
+                            result.put("equipCode", equipDO.getProjectNo());
                         }
                     }
                 }

+ 8 - 4
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/comm/QC52045_202401RecordOFData.java

@@ -121,18 +121,22 @@ public class QC52045_202401RecordOFData implements IDynamicOFData {
 
             if (itemReportDO != null) {
                 //根据记录字段动态生成报告字段
-                result = autoDataPipeService.autoGeneratePipeReportData(result, refId);
+                result = autoDataPipeService.autoGeneratePipeRecordData(result, refId);
 
                 List<PipeTaskOrderItemDO> itemDOList = pipeTaskOrderItemMapper.selectList(new LambdaQueryWrapper<PipeTaskOrderItemDO>()
                         .eq(PipeTaskOrderItemDO::getOrderId, itemReportDO.getOrderId()));
                 if (!itemDOList.isEmpty()){
                     //设备信息
+                    EquipPipeDO equipDO = equipPipeMapper.selectById(itemDOList.get(0).getEquipId());
+                    if (equipDO != null){
+                        result.put("unitName",equipDO.getUnitName());
+                    }
+
                     if (itemDOList.size() > 1){
                         result.put("equipCode","见一览表");
                     }else {
-                        EquipPipeDO equipDO = equipPipeMapper.selectById(itemDOList.get(0).getEquipId());
-                        if (equipDO != null){
-                            result.put("equipCode",equipDO.getProjectNo());
+                        if (equipDO != null) {
+                            result.put("equipCode", equipDO.getProjectNo());
                         }
                     }
                 }

+ 8 - 4
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/comm/QC52046_202400RecordOFData.java

@@ -110,18 +110,22 @@ public class QC52046_202400RecordOFData implements IDynamicOFData {
 
             if (itemReportDO != null) {
                 //根据记录字段动态生成报告字段
-                result = autoDataPipeService.autoGeneratePipeReportData(result, refId);
+                result = autoDataPipeService.autoGeneratePipeRecordData(result, refId);
 
                 List<PipeTaskOrderItemDO> itemDOList = pipeTaskOrderItemMapper.selectList(new LambdaQueryWrapper<PipeTaskOrderItemDO>()
                         .eq(PipeTaskOrderItemDO::getOrderId, itemReportDO.getOrderId()));
                 if (!itemDOList.isEmpty()){
                     //设备信息
+                    EquipPipeDO equipDO = equipPipeMapper.selectById(itemDOList.get(0).getEquipId());
+                    if (equipDO != null){
+                        result.put("unitName",equipDO.getUnitName());
+                    }
+
                     if (itemDOList.size() > 1){
                         result.put("equipCode","见一览表");
                     }else {
-                        EquipPipeDO equipDO = equipPipeMapper.selectById(itemDOList.get(0).getEquipId());
-                        if (equipDO != null){
-                            result.put("equipCode",equipDO.getProjectNo());
+                        if (equipDO != null) {
+                            result.put("equipCode", equipDO.getProjectNo());
                         }
                     }
                 }

+ 8 - 4
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/comm/QC52047_202400RecordOFData.java

@@ -109,18 +109,22 @@ public class QC52047_202400RecordOFData implements IDynamicOFData {
 
             if (itemReportDO != null) {
                 //根据记录字段动态生成报告字段
-                result = autoDataPipeService.autoGeneratePipeReportData(result, refId);
+                result = autoDataPipeService.autoGeneratePipeRecordData(result, refId);
 
                 List<PipeTaskOrderItemDO> itemDOList = pipeTaskOrderItemMapper.selectList(new LambdaQueryWrapper<PipeTaskOrderItemDO>()
                         .eq(PipeTaskOrderItemDO::getOrderId, itemReportDO.getOrderId()));
                 if (!itemDOList.isEmpty()){
                     //设备信息
+                    EquipPipeDO equipDO = equipPipeMapper.selectById(itemDOList.get(0).getEquipId());
+                    if (equipDO != null){
+                        result.put("unitName",equipDO.getUnitName());
+                    }
+
                     if (itemDOList.size() > 1){
                         result.put("equipCode","见一览表");
                     }else {
-                        EquipPipeDO equipDO = equipPipeMapper.selectById(itemDOList.get(0).getEquipId());
-                        if (equipDO != null){
-                            result.put("equipCode",equipDO.getProjectNo());
+                        if (equipDO != null) {
+                            result.put("equipCode", equipDO.getProjectNo());
                         }
                     }
                 }

+ 8 - 4
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/comm/QC52049_202402RecordOFData.java

@@ -122,18 +122,22 @@ public class QC52049_202402RecordOFData implements IDynamicOFData {
 
             if (itemReportDO != null) {
                 //根据记录字段动态生成报告字段
-                result = autoDataPipeService.autoGeneratePipeReportData(result, refId);
+                result = autoDataPipeService.autoGeneratePipeRecordData(result, refId);
 
                 List<PipeTaskOrderItemDO> itemDOList = pipeTaskOrderItemMapper.selectList(new LambdaQueryWrapper<PipeTaskOrderItemDO>()
                         .eq(PipeTaskOrderItemDO::getOrderId, itemReportDO.getOrderId()));
                 if (!itemDOList.isEmpty()){
                     //设备信息
+                    EquipPipeDO equipDO = equipPipeMapper.selectById(itemDOList.get(0).getEquipId());
+                    if (equipDO != null){
+                        result.put("unitName",equipDO.getUnitName());
+                    }
+
                     if (itemDOList.size() > 1){
                         result.put("equipCode","见一览表");
                     }else {
-                        EquipPipeDO equipDO = equipPipeMapper.selectById(itemDOList.get(0).getEquipId());
-                        if (equipDO != null){
-                            result.put("equipCode",equipDO.getProjectNo());
+                        if (equipDO != null) {
+                            result.put("equipCode", equipDO.getProjectNo());
                         }
                     }
                 }

+ 8 - 4
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/comm/QC52054_202400RecordOFData.java

@@ -99,18 +99,22 @@ public class QC52054_202400RecordOFData implements IDynamicOFData {
 
             if (itemReportDO != null) {
                 //根据记录字段动态生成报告字段
-                result = autoDataPipeService.autoGeneratePipeReportData(result, refId);
+                result = autoDataPipeService.autoGeneratePipeRecordData(result, refId);
 
                 List<PipeTaskOrderItemDO> itemDOList = pipeTaskOrderItemMapper.selectList(new LambdaQueryWrapper<PipeTaskOrderItemDO>()
                         .eq(PipeTaskOrderItemDO::getOrderId, itemReportDO.getOrderId()));
                 if (!itemDOList.isEmpty()){
                     //设备信息
+                    EquipPipeDO equipDO = equipPipeMapper.selectById(itemDOList.get(0).getEquipId());
+                    if (equipDO != null){
+                        result.put("unitName",equipDO.getUnitName());
+                    }
+
                     if (itemDOList.size() > 1){
                         result.put("equipCode","见一览表");
                     }else {
-                        EquipPipeDO equipDO = equipPipeMapper.selectById(itemDOList.get(0).getEquipId());
-                        if (equipDO != null){
-                            result.put("equipCode",equipDO.getProjectNo());
+                        if (equipDO != null) {
+                            result.put("equipCode", equipDO.getProjectNo());
                         }
                     }
                 }

+ 25 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/orderreport/OrderReportService.java

@@ -98,4 +98,29 @@ public interface OrderReportService extends IService<OrderReportDO>  {
 
     String generateAcceptOrderNo(String acceptOrderId,Integer EquipMainType,String prefix);
 
+    /**
+     * 锅炉受理单签名置空
+     * @param id 任务单ID
+     */
+    void updateFeeBoiler(String id);
+
+    /**
+     * 管道受理单签名置空
+     * @param id 任务单ID
+     */
+    void updateFeePipe(String id);
+
+    /**
+     * 按任务单ID同步报表数据(金额变动后刷新报表实例)
+     * @param taskOrderId 任务单ID
+     * @param equipMainType 设备类型 (boiler/pipe)
+     */
+    void syncReportByTaskOrder(String taskOrderId, String equipMainType);
+
+    /**
+     * 根据任务单ID查询关联报告列表
+     * @param taskOrderId 任务单ID
+     * @return 报告列表
+     */
+    List<OrderReportDO> getByTaskOrderId(String taskOrderId);
 }

+ 51 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/orderreport/OrderReportServiceImpl.java

@@ -6,6 +6,7 @@ import cn.hutool.core.util.StrUtil;
 import cn.start.tz.framework.common.exception.ErrorCode;
 import cn.start.tz.framework.common.exception.ServiceException;
 import cn.start.tz.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import cn.start.tz.module.infra.api.config.ConfigApi;
 import cn.start.tz.module.infra.api.file.FileApi;
 import cn.start.tz.module.pressure2.controller.admin.acceptorder.vo.AcceptOrderRespVO;
@@ -16,6 +17,7 @@ import cn.start.tz.module.pressure2.dal.dataobject.boilerconnecttbservice.Boiler
 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.boilertaskordersignfile.BoilerTaskOrderSignFileDO;
 import cn.start.tz.module.pressure2.dal.dataobject.dynamictb.DynamicTbDO;
 import cn.start.tz.module.pressure2.dal.dataobject.dynamictbins.DynamicTbInsDO;
 import cn.start.tz.module.pressure2.dal.dataobject.equipboilerschedulingitem.EquipBoilerSchedulingCheckDO;
@@ -25,6 +27,7 @@ import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorder.PipeTaskOrderDO
 import cn.start.tz.module.pressure2.dal.mysql.acceptorder.AcceptOrderMapper;
 import cn.start.tz.module.pressure2.dal.mysql.boilerconnecttbservice.BoilerConnectTbServiceMapper;
 import cn.start.tz.module.pressure2.dal.mysql.boilertaskorder.BoilerTaskOrderMapper;
+import cn.start.tz.module.pressure2.dal.mysql.boilertaskordersignfile.BoilerTaskOrderSignFileMapper;
 import cn.start.tz.module.pressure2.dal.mysql.dynamictb.DynamicTbMapper;
 import cn.start.tz.module.pressure2.dal.mysql.notificationformreport.NotificationformReportMapper;
 import cn.start.tz.module.pressure2.dal.mysql.pipetaskorder.PipeTaskOrderMapper;
@@ -115,6 +118,9 @@ public class OrderReportServiceImpl extends ServiceImpl<OrderReportMapper, Order
     @Resource
     private BoilerTaskOrderMapper boilerTaskOrderMapper;
 
+    @Resource
+    private BoilerTaskOrderSignFileMapper boilerTaskOrderSignFileMapper;
+
     @Resource
     private NotificationformReportMapper notificationformReportMapper;
 
@@ -755,6 +761,51 @@ public class OrderReportServiceImpl extends ServiceImpl<OrderReportMapper, Order
 
     }
 
+    @Override
+    public void updateFeeBoiler(String id) {
+        // 金额发生变动,将受理单签名置空
+        orderReportMapper.update(new LambdaUpdateWrapper<OrderReportDO>()
+                .eq(OrderReportDO::getTaskOrderId, id)
+                .set(OrderReportDO::getSignUrl, null)
+                .set(OrderReportDO::getSignDate, null));
+        // 清除签名文件表中的签名数据(报表模板从此表读取签名)
+        boilerTaskOrderSignFileMapper.update(new LambdaUpdateWrapper<BoilerTaskOrderSignFileDO>()
+                .eq(BoilerTaskOrderSignFileDO::getOrderId, id)
+                .set(BoilerTaskOrderSignFileDO::getSignUrl, null)
+                .set(BoilerTaskOrderSignFileDO::getSignDate, null));
+    }
+
+    @Override
+    public void updateFeePipe(String id) {
+        // 金额发生变动,将受理单签名置空
+        orderReportMapper.update(new LambdaUpdateWrapper<OrderReportDO>()
+                .eq(OrderReportDO::getTaskOrderId, id)
+                .set(OrderReportDO::getSignUrl, null)
+                .set(OrderReportDO::getSignDate, null));
+        // 清除签名文件表中的签名数据(报表模板从此表读取签名)
+        boilerTaskOrderSignFileMapper.update(new LambdaUpdateWrapper<BoilerTaskOrderSignFileDO>()
+                .eq(BoilerTaskOrderSignFileDO::getOrderId, id)
+                .set(BoilerTaskOrderSignFileDO::getSignUrl, null)
+                .set(BoilerTaskOrderSignFileDO::getSignDate, null));
+    }
+
+    @Override
+    public void syncReportByTaskOrder(String taskOrderId, String equipMainType) {
+        List<OrderReportDO> orderReportDOS = orderReportMapper.selectList(OrderReportDO::getTaskOrderId, taskOrderId);
+        if (CollUtil.isNotEmpty(orderReportDOS)) {
+            for (OrderReportDO orderReportDO : orderReportDOS) {
+                if (ObjectUtil.isNotNull(orderReportDO.getTemplateId())) {
+                    refreshSingleOrderReport(orderReportDO.getId(), equipMainType);
+                }
+            }
+        }
+    }
+
+    @Override
+    public List<OrderReportDO> getByTaskOrderId(String taskOrderId) {
+        return orderReportMapper.selectList(OrderReportDO::getTaskOrderId, taskOrderId);
+    }
+
     /**
      * 获取项目代码(2位)锅炉
      *

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

@@ -2282,6 +2282,11 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
                     }
                 }
             }
+            // 金额发生变动,将受理单签名置空,判断全部金额都要和之前不一致
+            if (ObjectUtil.notEqual(shouldAmount, pipeTaskOrderDO.getShouldAmount()) || ObjectUtil.notEqual(serviceAmount, pipeTaskOrderDO.getServiceAmount()) || ObjectUtil.notEqual(reduceFee, pipeTaskOrderDO.getReduceFee()) || ObjectUtil.notEqual(orderFee, pipeTaskOrderDO.getActualAmount())) {
+                orderReportService.updateFeePipe(id);
+            }
+
             PipeTaskOrderDO taskOrderDO = new PipeTaskOrderDO();
             taskOrderDO.setId(id);
             taskOrderDO.setShouldAmount(shouldAmount);
@@ -2298,6 +2303,8 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
                 acceptOrderDO.setReduceFee(reduceFee);
                 acceptOrderMapper.updateById(acceptOrderDO);
             }
+            // 同步报表
+            orderReportService.syncReportByTaskOrder(id, "pipe");
         }
 
     }

+ 6 - 1
tz-module-pressure2/tz-module-pressure2-biz/src/main/resources/application-hsd.yaml

@@ -192,4 +192,9 @@ app-auth:
   enabled: true
   base-url: https://cloud-admin-uat.gzsei.com
   app-id: 20260527
-  app-secret: ce9fba85d73b475ab3897cbb9d62d61d
+  app-secret: ce9fba85d73b475ab3897cbb9d62d61d
+#  base-url: http://192.168.19.165:48080
+#  app-id: 202606003
+#  app-secret: 4bb6167b3fe84dfcba5d8d43b2f35194
+  wx-app-id: wxf88e2dba767bb5d6
+#  wx-app-id: wxe2560012fafd7e1d

+ 2 - 1
tz-module-pressure2/tz-module-pressure2-biz/src/main/resources/application-prod.yaml

@@ -181,4 +181,5 @@ app-auth:
   enabled: true
   base-url: http://192.168.19.165:48080
   app-id: 202606003
-  app-secret: 4bb6167b3fe84dfcba5d8d43b2f35194
+  app-secret: 4bb6167b3fe84dfcba5d8d43b2f35194
+  wx-app-id: wxf88e2dba767bb5d6