Ver Fonte

非税、结算

xuzhancheng há 4 dias atrás
pai
commit
8246419445
20 ficheiros alterados com 626 adições e 42 exclusões
  1. 1 1
      tz-module-infra/tz-module-infra-biz/src/main/java/cn/start/tz/module/infra/framework/pay/config/PayConfig.java
  2. 3 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/boilertaskorder/vo/BoilerTaskOrderRespVO.java
  3. 3 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/pipetaskorder/vo/PipeTaskOrderRespVO.java
  4. 3 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/appapi/boilertaskorder/vo/TaskOrderPushReqVO.java
  5. 9 9
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/framework/appauth/core/interceptor/AppAuthInterceptor.java
  6. 159 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/mq/consumer/ContractServiceRelConsumer.java
  7. 95 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/mq/consumer/FsPayNoticeConsumer.java
  8. 45 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/mq/message/ContractServiceRelMessage.java
  9. 58 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/mq/message/FsPayNoticeMessage.java
  10. 5 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilertaskorder/BoilerTaskOrderService.java
  11. 139 4
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilertaskorder/BoilerTaskOrderServiceImpl.java
  12. 6 1
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilertaskorderissuereport/BoilerTaskOrderIssueReportServiceImpl.java
  13. 2 2
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilertaskordersignfile/BoilerTaskOrderSignFileServiceImpl.java
  14. 53 2
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/comm/QC01006_202400OFData.java
  15. 10 6
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/comm/QC01007_202400OFData.java
  16. 10 6
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/comm/QC01010_202402OFData.java
  17. 11 6
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipetaskorder/PipeTaskOrderServiceImpl.java
  18. 5 1
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipetaskorderissuereport/PipeTaskOrderIssueReportServiceImpl.java
  19. 3 3
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pushtaskorder/PushTaskOrderServiceImpl.java
  20. 6 1
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/tasksign/TaskSignServiceImpl.java

+ 1 - 1
tz-module-infra/tz-module-infra-biz/src/main/java/cn/start/tz/module/infra/framework/pay/config/PayConfig.java

@@ -38,7 +38,7 @@ public class PayConfig {
 
     public String getPayHost() {
         if (StrUtil.isBlank(payHost)) {
-            payHost = "https://apiplat-uat.gzsei.work";
+            payHost = "https://apiplat.gzsei.work";
         }
         return payHost;
     }

+ 3 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/boilertaskorder/vo/BoilerTaskOrderRespVO.java

@@ -86,6 +86,9 @@ public class BoilerTaskOrderRespVO {
     @ExcelProperty("支付金额")
     private BigDecimal payAmount;
 
+    @Schema(description = "总金额")
+    private BigDecimal totalAmount;
+
     @Schema(description = "是否已交费")
     @ExcelProperty("是否已交费")
     private Integer isPay;

+ 3 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/pipetaskorder/vo/PipeTaskOrderRespVO.java

@@ -83,6 +83,9 @@ public class PipeTaskOrderRespVO {
     @ExcelProperty("支付金额")
     private BigDecimal payAmount;
 
+    @Schema(description = "总金额")
+    private BigDecimal totalAmount;
+
     @Schema(description = "是否已交费")
     @ExcelProperty("是否已交费")
     private Integer isPay;

+ 3 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/appapi/boilertaskorder/vo/TaskOrderPushReqVO.java

@@ -38,4 +38,7 @@ public class TaskOrderPushReqVO {
 
     @Schema(description = "安全检查记录ID")
     private String securityCheckId;
+
+    @Schema(description = "BoilerTaskOrderSignFileDOID")
+    private String signFileId;
 }

+ 9 - 9
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/framework/appauth/core/interceptor/AppAuthInterceptor.java

@@ -57,15 +57,15 @@ public class AppAuthInterceptor implements HandlerInterceptor {
         String accessToken = extractAccessToken(request);
         boolean hasToken = StrUtil.isNotEmpty(accessToken);
 
-        log.info("[preHandle][{} {}][permitAll={}, hasToken={}]",
-                method, uri, effectiveAnnotation.permitAll(), hasToken);
-
-        if (effectiveAnnotation.permitAll()) {
-            if (hasToken) {
-                authenticateAndSetContext(accessToken, request);
-            }
-            return true;
-        }
+//        log.info("[preHandle][{} {}][permitAll={}, hasToken={}]",
+//                method, uri, effectiveAnnotation.permitAll(), hasToken);
+
+//        if (effectiveAnnotation.permitAll()) {
+//            if (hasToken) {
+//                authenticateAndSetContext(accessToken, request);
+//            }
+//            return true;
+//        }
 
         if (!hasToken) {
             log.warn("[preHandle][{} {}][缺少Authorization令牌]", method, uri);

+ 159 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/mq/consumer/ContractServiceRelConsumer.java

@@ -0,0 +1,159 @@
+package cn.start.tz.module.pressure2.mq.consumer;
+
+
+
+import cn.start.tz.module.pressure2.mq.message.ContractServiceRelMessage;
+import cn.start.tz.module.pressure2.service.boilertaskorder.BoilerTaskOrderService;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import jakarta.annotation.Resource;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
+import org.apache.rocketmq.spring.core.RocketMQListener;
+import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Component;
+
+/**
+ * 合同服务单关联关系消费者
+ *
+ * @author 特种管理员
+ */
+@Component
+@RocketMQMessageListener(
+        topic = "js_con_contract_service_rel",
+        consumerGroup = "contract_service_rel" + "_pressure2_" + "${spring.profiles.active}"
+)
+@Slf4j
+public class ContractServiceRelConsumer implements RocketMQListener<String> {
+
+    @Resource
+    private ObjectMapper objectMapper;
+
+//    @Resource
+//    private BoilerTaskOrderApi taskOrderApi;
+    @Resource
+    private BoilerTaskOrderService boilerTaskOrderService;
+
+    @Override
+    @EventListener
+    public void onMessage(String messageStr) {
+        log.info("========== ContractServiceRelConsumer 收到原始消息 ==========");
+        log.info("消息类型: {}", messageStr != null ? messageStr.getClass().getName() : "null");
+        log.info("消息长度: {}", messageStr != null ? messageStr.length() : 0);
+        log.info("消息内容: {}", messageStr);
+        log.info("==========================================================");
+
+        try {
+            if (messageStr == null || messageStr.trim().isEmpty()) {
+                log.error("ContractServiceRelConsumer 接收到空消息");
+                return;
+            }
+
+            ContractServiceRelMessage message;
+            try {
+                message = objectMapper.readValue(messageStr, ContractServiceRelMessage.class);
+                log.info("消息反序列化成功: contractNo={}, eventType={}, serviceNo size={}", 
+                        message.getContractNo(), 
+                        message.getEventType(),
+                        message.getServiceNo() != null ? message.getServiceNo().size() : 0);
+            } catch (Exception e) {
+                log.error("❌ JSON反序列化失败! 原始消息不是有效的JSON格式: {}", messageStr, e);
+                return;
+            }
+
+            if (message == null) {
+                log.error("ContractServiceRelConsumer 反序列化后为空消息");
+                return;
+            }
+
+            if (message.getEventType() == null) {
+                log.error("ContractServiceRelConsumer 事件类型为空");
+                return;
+            }
+
+            if (message.getEventTime() == null || message.getEventTime().trim().isEmpty()) {
+                log.error("ContractServiceRelConsumer 事件时间为空");
+                return;
+            }
+
+            // 根据事件类型处理不同的业务逻辑
+            switch (message.getEventType()) {
+                case 1:
+                    // 处理绑定关系
+                    handleBindRelation(message);
+                    break;
+                case 2:
+                    // 处理绑定关系
+                    handleUnbindRelation(message);
+                    break;
+                default:
+                    log.warn("ContractServiceRelConsumer 未知的事件类型: {}", message.getEventType());
+                    break;
+            }
+
+        } catch (Exception e) {
+            log.error("ContractServiceRelConsumer 处理消息失败, 原始消息: {}", messageStr, e);
+        }
+    }
+
+    /**
+     * 处理绑定关系
+     *
+     * @param message 消息内容
+     */
+    private void handleBindRelation(ContractServiceRelMessage message) {
+        log.info("处理合同与服务单绑定关系 - 合同编号: {}, 服务单数量: {}, 操作员: {}, 操作时间: {}",
+                message.getContractNo(),
+                message.getServiceNo() != null ? message.getServiceNo().size() : 0,
+                message.getOperator(),
+                message.getEventTime());
+
+        if (message.getContractNo() == null || message.getContractNo().trim().isEmpty()) {
+            log.error("ContractServiceRelConsumer 合同编号为空");
+            return;
+        }
+
+        if (message.getServiceNo() == null || message.getServiceNo().isEmpty()) {
+            log.warn("绑定操作时服务单列表为空,合同编号: {}", message.getContractNo());
+            return;
+        }
+
+
+        for (String serviceNo : message.getServiceNo()) {
+            log.info("绑定服务单到合同 - 服务单号: {}, 合同编号: {}", serviceNo, message.getContractNo());
+
+            if(StringUtils.isBlank(serviceNo) ){
+                continue;
+            }
+            log.info("绑定服务单到合同 - 服务单号: {} taskOrderApi.updateFeeType ", serviceNo);
+            boilerTaskOrderService.updateFeeType(serviceNo,200,message.getContractNo());
+        }
+
+        log.info("合同与服务单绑定关系处理完成 - 合同编号: {}", message.getContractNo());
+    }
+
+    /**
+     * 处理解除绑定关系
+     *
+     * @param message 消息内容
+     */
+    private void handleUnbindRelation(ContractServiceRelMessage message) {
+        log.info("处理合同与服务单解除绑定关系 - 合同编号: {}, 服务单数量: {}, 操作员: {}, 操作时间: {}",
+                message.getContractNo(),
+                message.getServiceNo() != null ? message.getServiceNo().size() : 0,
+                message.getOperator(),
+                message.getEventTime());
+
+        if (message.getServiceNo() == null || message.getServiceNo().isEmpty()) {
+            log.warn("解除绑定操作时服务单列表为空,合同编号: {}", message.getContractNo());
+            return;
+        }
+
+        for (String serviceNo : message.getServiceNo()) {
+            log.info("解除服务单与合同的绑定 - 服务单号: {}, 合同编号: {}", serviceNo, message.getContractNo());
+            boilerTaskOrderService.updateFeeType(serviceNo,100, message.getContractNo());
+        }
+
+        log.info("合同与服务单解除绑定关系处理完成 - 合同编号: {}", message.getContractNo());
+    }
+}

+ 95 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/mq/consumer/FsPayNoticeConsumer.java

@@ -0,0 +1,95 @@
+package cn.start.tz.module.pressure2.mq.consumer;
+
+import cn.start.tz.framework.common.pojo.CommonResult;
+import cn.start.tz.module.pressure.api.taskorder.TaskOrderApi;
+import cn.start.tz.module.pressure.api.taskorder.dto.NonTaxPayStatusDTO;
+import cn.start.tz.module.pressure.enums.ErrorCodeConstants;
+import cn.start.tz.module.pressure2.mq.message.FsPayNoticeMessage;
+import cn.start.tz.module.pressure2.service.boilertaskorder.BoilerTaskOrderService;
+import jakarta.annotation.Resource;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
+import org.apache.rocketmq.spring.core.RocketMQListener;
+import org.springframework.stereotype.Component;
+
+/**
+ * 非税缴费通知消费者
+ *
+ * @author system
+ */
+@Component
+@RocketMQMessageListener(
+        topic = "tjy_fs_pay_notice",
+        consumerGroup = "tjy_fs_pay_notice" + "_" + "${spring.profiles.active}"
+)
+@Slf4j
+public class FsPayNoticeConsumer implements RocketMQListener<FsPayNoticeMessage> {
+
+//    @Resource
+//    private TaskOrderApi taskOrderApi;
+
+    private BoilerTaskOrderService boilerTaskOrderService;
+
+    @Override
+    public void onMessage(FsPayNoticeMessage message) {
+        log.info("FsPayNoticeConsumer [onMessage][接收到非税缴费通知消息,内容({})]", message);
+
+        try {
+            // 验证消息必填字段
+            if (message.getPayNoticeNo() == null) {
+                log.error("FsPayNoticeConsumer 消息缺少缴费通知单号,消息内容: {}", message);
+                return;
+            }
+
+            // 处理缴费通知
+            processPayNotice(message);
+
+            log.info("FsPayNoticeConsumer [onMessage][非税缴费通知处理完成,缴费通知单号: {}]",
+                    message.getPayNoticeNo());
+        } catch (Exception e) {
+            log.error("FsPayNoticeConsumer [onMessage][处理非税缴费通知失败,缴费通知单号: {}, 错误: {}]",
+                    message.getPayNoticeNo(), e.getMessage(), e);
+            // 根据业务需求决定是否抛出异常进行重试
+            // throw e;
+        }
+    }
+
+    /**
+     * 处理缴费通知
+     *
+     * @param message 缴费通知消息
+     */
+    private void processPayNotice(FsPayNoticeMessage message) {
+        log.info("开始处理非税缴费通知: 缴费通知单号={}, 受理单号={}, 使用单位名称={}, 缴费金额={}",
+                message.getPayNoticeNo(),
+                message.getAcceptNo(),
+                message.getUseUnitName(),
+                message.getPayMoney());
+
+        // 转换消息为DTO
+        NonTaxPayStatusDTO dto = new NonTaxPayStatusDTO();
+        dto.setPhone(message.getPhone());
+        dto.setAcceptNo(message.getAcceptNo());
+        dto.setPayNoticeNo(message.getPayNoticeNo());
+        dto.setUseUnitName(message.getUseUnitName());
+        dto.setImpUrl(message.getImpUrl());
+        dto.setPayValidityDate(message.getPayValidityDate());
+        dto.setPayMoney(message.getPayMoney());
+
+        // 调用任务单API更新非税缴费状态
+        CommonResult<Boolean> result = boilerTaskOrderService.nonTaxPayStatus(dto);
+
+        if (result == null || !result.isSuccess()) {
+            log.error("FsPayNoticeConsumer 调用任务单API失败,缴费通知单号: {}, 错误信息: {}",
+                    message.getPayNoticeNo(),
+                    result != null ? result.getMsg() : "返回结果为空");
+            return;
+        }
+
+        if (Boolean.TRUE.equals(result.getData())) {
+            log.info("非税缴费通知处理成功: 缴费通知单号={}", message.getPayNoticeNo());
+        } else {
+            log.warn("非税缴费通知处理未成功: 缴费通知单号={}", message.getPayNoticeNo());
+        }
+    }
+}

+ 45 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/mq/message/ContractServiceRelMessage.java

@@ -0,0 +1,45 @@
+package cn.start.tz.module.pressure2.mq.message;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 合同服务单关联关系消息
+ *
+ * @author 特种管理员
+ */
+@Data
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ContractServiceRelMessage implements Serializable {
+    
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 合同编号
+     */
+    private String contractNo;
+
+    /**
+     * 服务单号列表
+     */
+    private List<String> serviceNo;
+
+    /**
+     * 事件类型:1.绑定  2.解除绑定
+     */
+    private Integer eventType;
+
+    /**
+     * 操作员
+     */
+    private String operator;
+
+    /**
+     * 事件时间 格式:yyyy-MM-dd HH:mm:ss
+     */
+    private String eventTime;
+
+}

+ 58 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/mq/message/FsPayNoticeMessage.java

@@ -0,0 +1,58 @@
+package cn.start.tz.module.pressure2.mq.message;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * 非税缴费通知消息
+ *
+ * @author system
+ */
+@Data
+public class FsPayNoticeMessage {
+
+    /**
+     * 联系电话
+     */
+    @JsonProperty("phone")
+    private String phone;
+
+    /**
+     * 受理单号
+     */
+    @JsonProperty("acceptNo")
+    private String acceptNo;
+
+    /**
+     * 缴费通知单号
+     */
+    @JsonProperty("payNoticeNo")
+    private String payNoticeNo;
+
+    /**
+     * 使用单位名称
+     */
+    @JsonProperty("useUnitName")
+    private String useUnitName;
+
+    /**
+     * 缴费链接
+     */
+    @JsonProperty("impUrl")
+    private String impUrl;
+
+    /**
+     * 缴费有效期至
+     * 格式: yyyy-MM-dd
+     */
+    @JsonProperty("payValidityDate")
+    private String payValidityDate;
+
+    /**
+     * 缴费金额
+     */
+    @JsonProperty("payMoney")
+    private String payMoney;
+}

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

@@ -1,5 +1,7 @@
 package cn.start.tz.module.pressure2.service.boilertaskorder;
 
+import cn.start.tz.framework.common.pojo.CommonResult;
+import cn.start.tz.module.pressure.api.taskorder.dto.NonTaxPayStatusDTO;
 import cn.start.tz.module.pressure2.api.taskorder.dto.UpdatePayStatusDTO;
 import cn.start.tz.module.pressure2.controller.admin.bpmtaskinfo.vo.BpmTaskRespVO;
 import cn.start.tz.module.pressure2.controller.admin.costfield.vo.CostFieldRespVO;
@@ -208,4 +210,7 @@ public interface BoilerTaskOrderService extends IService<BoilerTaskOrderDO>  {
 
     void majorIssuesRecovery(@Valid TaskOrderMajorIssuesVO taskOrderMajorIssuesVO);
 
+    Boolean updateFeeType(String serviceNo, int feeType, String contractNo);
+
+    CommonResult<Boolean> nonTaxPayStatus(NonTaxPayStatusDTO dto);
 }

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

@@ -29,6 +29,7 @@ import cn.start.tz.module.member.api.templatesendlog.dto.TemplateSendLogDto;
 import cn.start.tz.module.member.api.templatesendlog.dto.TemplateSendLogRespDto;
 import cn.start.tz.module.member.api.user.MemberUserApi;
 import cn.start.tz.module.member.api.user.dto.MemberUserRespDTO;
+import cn.start.tz.module.pressure.api.taskorder.dto.NonTaxPayStatusDTO;
 import cn.start.tz.module.pressure2.api.taskorder.dto.UpdatePayStatusDTO;
 import cn.start.tz.module.pressure2.constant.TemplateIdConstants;
 import cn.start.tz.module.pressure2.controller.admin.boilertaskorderitempart.vo.BoilerTaskOrderItemPartSaveReqVO;
@@ -42,15 +43,22 @@ import cn.start.tz.module.pressure2.dal.dataobject.notificationformreport.Notifi
 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.pipetaskorderitemreport.PipeTaskOrderItemReportDO;
 import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitemreportuser.PipeTaskOrderItemReportUserDO;
 import cn.start.tz.module.pressure2.dal.dataobject.pipetaskordersecuritycheck.PipeTaskOrderSecurityCheckDO;
 import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderuser.PipeTaskOrderUserDO;
+import cn.start.tz.module.pressure2.dal.dataobject.taskordernontaxrecord.TaskOrderNonTaxRecordDO;
+import cn.start.tz.module.pressure2.dal.dataobject.taskordernontaxrecorditem.TaskOrderNonTaxRecordItemDO;
 import cn.start.tz.module.pressure2.dal.mysql.boileracceptorderuser.BoilerAcceptOrderUserMapper;
 import cn.start.tz.module.pressure2.dal.mysql.boilerconnectrecordreport.BoilerConnectRecordReportMapper;
 import cn.start.tz.module.pressure2.dal.mysql.businessmemberrelation.BusinessMemberRelationMapper;
 import cn.start.tz.module.pressure2.dal.mysql.notificationformreport.NotificationformReportMapper;
+import cn.start.tz.module.pressure2.dal.mysql.pipetaskorder.PipeTaskOrderMapper;
+import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderitem.PipeTaskOrderItemMapper;
 import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderuser.PipeTaskOrderUserMapper;
+import cn.start.tz.module.pressure2.dal.mysql.taskordernontaxrecord.TaskOrderNonTaxRecordMapper;
+import cn.start.tz.module.pressure2.dal.mysql.taskordernontaxrecorditem.TaskOrderNonTaxRecordItemMapper;
 import cn.start.tz.module.pressure2.enums.AcceptOrderStatusEnum;
 import cn.start.tz.module.pressure2.enums.RedisKeyEnums;
 import cn.start.tz.module.pressure2.enums.TaskOrderItemReportTypeEnum;
@@ -154,6 +162,7 @@ import cn.start.tz.module.pressure2.service.orderreport.OrderReportService;
 import cn.start.tz.module.pressure2.service.pdf.PdfService;
 import cn.start.tz.module.pressure2.service.pipetaskorder.PipeTaskOrderService;
 import cn.start.tz.module.pressure2.service.pipetaskorder.PipeTaskOrderServiceImpl;
+import cn.start.tz.module.pressure2.service.pipetaskorderissuereport.PipeTaskOrderIssueReportService;
 import cn.start.tz.module.pressure2.service.synchronization.SynchronizationService;
 import cn.start.tz.module.pressure2.service.synchronization.dto.ReportDto;
 import cn.start.tz.module.pressure2.service.userwallthicknesstemplate.UserWallThicknessTemplateService;
@@ -511,7 +520,8 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
         BigDecimal serviceAmount = Optional.ofNullable(boilerTaskOrderDO.getServiceAmount()).orElse(BigDecimal.ZERO);
         BigDecimal shouldAmount = Optional.ofNullable(boilerTaskOrderDO.getShouldAmount()).orElse(BigDecimal.ZERO);
         BigDecimal reduceFee = Optional.ofNullable(boilerTaskOrderDO.getReduceFee()).orElse(BigDecimal.ZERO);
-        boilerTaskOrderRespVO.setPayAmount(serviceAmount.add(shouldAmount).add(reduceFee));
+//        boilerTaskOrderRespVO.setPayAmount(serviceAmount.add(shouldAmount).add(reduceFee));
+        boilerTaskOrderRespVO.setTotalAmount(serviceAmount.add(shouldAmount).add(reduceFee));
         // 邮箱
         boilerTaskOrderRespVO.setUnitEmail(boilerTaskOrderDO.getEmail());
 
@@ -3183,7 +3193,7 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
                 new Date();
         String dateStr = simpleDateFormat.format(dateToUse);
 
-        String acceptNo = "RW" + dateStr + redisService.generateAcceptanceNo(RedisKeyEnums.TASK_ORDER.getKey());
+        String acceptNo = "GC" + dateStr + redisService.generateAcceptanceNo(RedisKeyEnums.TASK_ORDER.getKey());
         return acceptNo;
     }
 
@@ -6089,8 +6099,12 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
         //获取任务单关联部门信息
         List<String> deptIds = new ArrayList<>(pageResult.getList().stream().map(BoilerOrderItemPageRespVO::getDeptId).filter(Objects::nonNull).toList());
         Map<String, DeptRespDTO> deptMap = new HashMap<>();
-        if (CollUtil.isNotEmpty(deptIds)) {
-            deptMap = deptApi.getDeptMap(deptIds);
+        try {
+            if (CollUtil.isNotEmpty(deptIds)) {
+                deptMap = deptApi.getDeptMap(deptIds);
+            }
+        }catch (Exception e) {
+            log.error("获取部门信息失败", e);
         }
         Map<String, DeptRespDTO> finalDeptMap = deptMap;
 
@@ -6331,5 +6345,126 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
 
         return "05";
     }
+    @Resource
+    @Lazy
+    private PipeTaskOrderItemMapper pipeTaskOrderItemMapper;
+
+    @Resource
+    @Lazy
+    private PipeTaskOrderIssueReportService pipeTaskOrderIssueReportService;
+
+    @Resource
+    @Lazy
+    private PipeTaskOrderMapper pipeTaskOrderMapper;
+
+    @Override
+    public Boolean updateFeeType(String serviceNo, int feeType, String contractNo) {
+        log.info("serviceNo {} ,feeType {} ,contractNo {}",serviceNo,feeType ,contractNo);
+        LambdaQueryWrapperX<BoilerTaskOrderDO> queryWrapper = new LambdaQueryWrapperX<BoilerTaskOrderDO>().eq(BoilerTaskOrderDO::getOrderNo, serviceNo);
+        queryWrapper.eq(BoilerTaskOrderDO::getOrderNo, serviceNo);
+        List<BoilerTaskOrderDO> boilerTaskOrderDOS = boilerTaskOrderMapper.selectList(queryWrapper);
+        if (CollUtil.isNotEmpty(boilerTaskOrderDOS)) {
+            BoilerTaskOrderDO boilerTaskOrderDO = boilerTaskOrderDOS.get(0);
+            //boilerTaskOrderDO.setFeeType(feeType);
+            LambdaUpdateWrapper<BoilerTaskOrderDO> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
+            lambdaUpdateWrapper.eq(BoilerTaskOrderDO::getId,boilerTaskOrderDO.getId());
+            lambdaUpdateWrapper.set(BoilerTaskOrderDO::getFeeType,feeType);
+            if(StringUtils.isNotBlank(contractNo)){
+                lambdaUpdateWrapper.set(BoilerTaskOrderDO::getContractNo,contractNo);
+            }else{
+                lambdaUpdateWrapper.set(BoilerTaskOrderDO::getContractNo,null);
+            }
+            boilerTaskOrderMapper.update(lambdaUpdateWrapper);
 
+            // 合同编号不为空,记录待发送报告
+            if(StringUtils.isNotBlank(contractNo)){
+                List<BoilerTaskOrderItemDO> taskOrderItemDOList = boilerTaskOrderItemMapper.selectList(new LambdaQueryWrapperX<BoilerTaskOrderItemDO>().
+                        eq(BoilerTaskOrderItemDO::getOrderId, boilerTaskOrderDO.getId()).
+                        ne(BoilerTaskOrderItemDO::getTaskStatus, TaskOrderStatusEnum.CANCEL.getStatus()));
+                if (CollUtil.isNotEmpty(taskOrderItemDOList) && TaskOrderStatusEnum.REPORT_FINISH.getStatus().equals(boilerTaskOrderDO.getTaskStatus())) {
+                    try {
+                        //合同绑定回调时进行自动发送报告推送
+                        boilerTaskOrderIssueReportService.autoIssueTaskOrderReport(boilerTaskOrderDO, taskOrderItemDOList);
+                        return true;
+                    } catch (Exception e) {
+                        log.error("[合同绑定回调][自动发送报告推送失败({})]", e.getMessage());
+                    }
+                }
+                PipeTaskOrderDO pipeTaskOrderDO = pipeTaskOrderMapper.selectById(boilerTaskOrderDO.getId());
+                List<PipeTaskOrderItemDO> taskOrderItemDOList2 = pipeTaskOrderItemMapper.selectList(new LambdaQueryWrapperX<PipeTaskOrderItemDO>().
+                        eq(PipeTaskOrderItemDO::getOrderId, boilerTaskOrderDO.getId()).
+                        ne(PipeTaskOrderItemDO::getTaskStatus, TaskOrderStatusEnum.CANCEL.getStatus()));
+                if (CollUtil.isNotEmpty(taskOrderItemDOList2) && TaskOrderStatusEnum.REPORT_FINISH.getStatus().equals(boilerTaskOrderDO.getTaskStatus())) {
+                    try {
+                        //合同绑定回调时进行自动发送报告推送
+                        pipeTaskOrderIssueReportService.autoIssueTaskOrderReport(pipeTaskOrderDO, taskOrderItemDOList2);
+                    } catch (Exception e) {
+                        log.error("[合同绑定回调][自动发送报告推送失败({})]", e.getMessage());
+                    }
+                }
+            }
+        }
+        return true;
+    }
+
+    @Resource
+    private TaskOrderNonTaxRecordMapper taskOrderNonTaxRecordMapper;
+
+    @Resource
+    private TaskOrderNonTaxRecordItemMapper taskOrderNonTaxRecordItemMapper;
+
+    @Override
+    public CommonResult<Boolean> nonTaxPayStatus(NonTaxPayStatusDTO nonTaxPayStatusDTO) {
+        log.info("开始处理非税缴费状态更新: 缴费通知单号={}, 受理单号={}",
+                nonTaxPayStatusDTO.getPayNoticeNo(), nonTaxPayStatusDTO.getAcceptNo());
+
+        TaskOrderNonTaxRecordDO taxRecordDO = taskOrderNonTaxRecordMapper.selectOne(new LambdaQueryWrapperX<TaskOrderNonTaxRecordDO>().
+                        eq(TaskOrderNonTaxRecordDO::getPaymentInstructionNo, nonTaxPayStatusDTO.getPayNoticeNo())
+                , false);
+        if(taxRecordDO == null){
+            return CommonResult.success(true);
+        }
+
+        TaskOrderNonTaxRecordDO updateRecord = new TaskOrderNonTaxRecordDO();
+        updateRecord.setId(taxRecordDO.getId());
+        updateRecord.setImpUrl(nonTaxPayStatusDTO.getImpUrl());
+
+        // 数据类型转换: String (yyyy-MM-dd) -> LocalDateTime
+        if (StringUtils.isNotBlank(nonTaxPayStatusDTO.getPayValidityDate())) {
+            try {
+                LocalDate payValidityDate = LocalDate.parse(nonTaxPayStatusDTO.getPayValidityDate());
+                updateRecord.setPayDate(payValidityDate.atStartOfDay());
+            } catch (Exception e) {
+                log.error("缴费有效期日期解析失败: {}", nonTaxPayStatusDTO.getPayValidityDate(), e);
+                updateRecord.setPayDate(LocalDateTime.now());
+            }
+        }
+        updateRecord.setPayStatus(200);
+
+
+        BigDecimal actualAmount = new BigDecimal(nonTaxPayStatusDTO.getPayMoney());
+        updateRecord.setActualAmount(actualAmount);
+        taskOrderNonTaxRecordMapper.updateById(updateRecord);
+
+        List<TaskOrderNonTaxRecordItemDO> taskOrderNonTaxRecordItemDOS = taskOrderNonTaxRecordItemMapper.selectList(new LambdaQueryWrapperX<TaskOrderNonTaxRecordItemDO>().
+                eq(TaskOrderNonTaxRecordItemDO::getRecordId, taxRecordDO.getId()));
+        if(CollUtil.isEmpty(taskOrderNonTaxRecordItemDOS)){
+            log.info("taskOrderNonTaxRecordItemDOS is empty");
+            return CommonResult.success(true);
+        }
+
+        for(TaskOrderNonTaxRecordItemDO item:taskOrderNonTaxRecordItemDOS){
+            BoilerTaskOrderDO taskOrderDO = boilerTaskOrderMapper.selectById(item.getOrderId());
+            if(taskOrderDO == null){
+                continue;
+            }
+            BoilerTaskOrderDO updateOrder = new BoilerTaskOrderDO();
+            updateOrder.setId(item.getOrderId());
+            updateOrder.setPaymentStatus(1);
+            updateOrder.setPayTime(updateRecord.getPayDate());
+            boilerTaskOrderMapper.updateById(updateOrder);
+        }
+
+        return CommonResult.success(true);
+    }
 }

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

@@ -2003,7 +2003,12 @@ public class BoilerTaskOrderIssueReportServiceImpl extends ServiceImpl<BoilerTas
 
         Map<String, DeptRespDTO> deptMap = new HashMap<>();
         if (CollUtil.isNotEmpty(deptIds)) {
-            deptMap = deptApi.getDeptMap(deptIds);
+            try {
+                deptMap = deptApi.getDeptMap(deptIds);
+            } catch (Exception e) {
+                log.error("部门信息查询失败", e);
+            }
+//            deptMap = deptApi.getDeptMap(deptIds);
         }
 
         // 预处理数据:按itemId分组

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

@@ -116,7 +116,7 @@ public class BoilerTaskOrderSignFileServiceImpl extends ServiceImpl<BoilerTaskOr
         lambdaQueryWrapperX.eqIfPresent(BoilerTaskOrderSignFileDO::getOrderItemId, orderItemId);
         lambdaQueryWrapperX.eqIfPresent(BoilerTaskOrderSignFileDO::getSecurityCheckId, securityCheckId);
         lambdaQueryWrapperX.eqIfPresent(BoilerTaskOrderSignFileDO::getBusinessType, businessType);
-        lambdaQueryWrapperX.orderByDesc(BoilerTaskOrderSignFileDO::getCreateTime);
+        lambdaQueryWrapperX.orderByDesc(BoilerTaskOrderSignFileDO::getUpdateTime);
         lambdaQueryWrapperX.last("limit 1");
         return boilerTaskOrderSignFileMapper.selectOne(lambdaQueryWrapperX);
 
@@ -127,7 +127,7 @@ public class BoilerTaskOrderSignFileServiceImpl extends ServiceImpl<BoilerTaskOr
         LambdaQueryWrapperX<BoilerTaskOrderSignFileDO> lambdaQueryWrapperX = new LambdaQueryWrapperX<>();
         lambdaQueryWrapperX.eqIfPresent(BoilerTaskOrderSignFileDO::getOrderId, orderId);
         lambdaQueryWrapperX.eqIfPresent(BoilerTaskOrderSignFileDO::getBusinessType, businessType);
-        lambdaQueryWrapperX.orderByDesc(BoilerTaskOrderSignFileDO::getCreateTime);
+        lambdaQueryWrapperX.orderByDesc(BoilerTaskOrderSignFileDO::getUpdateTime);
         lambdaQueryWrapperX.last("limit 1");
         return boilerTaskOrderSignFileMapper.selectOne(lambdaQueryWrapperX);
 

+ 53 - 2
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/comm/QC01006_202400OFData.java

@@ -1,6 +1,7 @@
 package cn.start.tz.module.pressure2.service.dynamicOFData.comm;
 
 import cn.start.tz.framework.ip.core.utils.AreaUtils;
+import cn.start.tz.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.start.tz.module.pressure2.controller.admin.dynamictbins.vo.CreateInstantiateWithRuleVO;
 import cn.start.tz.module.pressure2.controller.admin.equipboiler.vo.EquipBoilerReportVO;
 import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorder.BoilerTaskOrderDO;
@@ -8,6 +9,7 @@ import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderitem.BoilerTas
 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.equippipe.EquipPipeDO;
+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.pipetaskorderitemreport.PipeTaskOrderItemReportDO;
 import cn.start.tz.module.pressure2.dal.mysql.boilertaskorder.BoilerTaskOrderMapper;
@@ -20,6 +22,7 @@ import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderitemreport.PipeTaskOr
 import cn.start.tz.module.pressure2.service.boilertaskorder.BoilerTaskOrderService;
 import cn.start.tz.module.pressure2.service.boilertaskordersignfile.BoilerTaskOrderSignFileService;
 import cn.start.tz.module.pressure2.service.dynamicOFData.IDynamicOFData;
+import cn.start.tz.module.pressure2.service.pipetaskorder.PipeTaskOrderService;
 import cn.start.tz.module.system.api.clientunit.ClientUnitApi;
 import cn.start.tz.module.system.api.clientunit.dto.ClientUnitDTO;
 import cn.start.tz.module.system.api.dict.DictDataApi;
@@ -57,6 +60,9 @@ public class QC01006_202400OFData implements IDynamicOFData {
     @Resource
     private BoilerTaskOrderMapper boilerTaskOrderMapper;
 
+    @Resource
+    private PipeTaskOrderService pipeTaskOrderService;
+
     @Resource
     private BoilerTaskOrderItemMapper boilerTaskOrderItemMapper;
 
@@ -105,10 +111,10 @@ public class QC01006_202400OFData implements IDynamicOFData {
                 result.put("checkUnit", itemReportDO.getSignUrl());
                 if (itemReportDO.getEnterId() != null) {
                     AdminUserRespDTO checkedData = adminUserApi.getUser(itemReportDO.getEnterId()).getCheckedData();
-                    result.put("checkName", checkedData.getSignUrl());
+                    result.put("checkName", checkedData != null ? checkedData.getSignUrl() : null);
                 } else {
                     AdminUserRespDTO checkedData = adminUserApi.getUser(itemReportDO.getCreator()).getCheckedData();
-                    result.put("checkName", checkedData.getSignUrl());
+                    result.put("checkName", checkedData != null ? checkedData.getSignUrl() : null);
                 }
 
                 String orderItemId = itemReportDO.getOrderItemId();
@@ -148,6 +154,51 @@ public class QC01006_202400OFData implements IDynamicOFData {
             }
 
         }else if (equipMainTpe.equals("pipe")){
+            PipeTaskOrderItemReportDO itemReportDO = pipeTaskOrderItemReportMapper.selectById(refId);
+            if (itemReportDO != null){
+                // 填充签名
+                PipeTaskOrderDO taskOrderDO = pipeTaskOrderService.getOne(new LambdaQueryWrapper<PipeTaskOrderDO>().eq(PipeTaskOrderDO::getId, itemReportDO.getOrderId()));
+                result.put("checkUnit", itemReportDO.getSignUrl());
+                if (itemReportDO.getEnterId() != null) {
+                    AdminUserRespDTO checkedData = adminUserApi.getUser(itemReportDO.getEnterId()).getCheckedData();
+                    result.put("checkName", checkedData != null ? checkedData.getSignUrl() : null);
+                } else {
+                    AdminUserRespDTO checkedData = adminUserApi.getUser(itemReportDO.getCreator()).getCheckedData();
+                    result.put("checkName", checkedData != null ? checkedData.getSignUrl() : null);
+                }
+
+                if (taskOrderDO != null){
+                    result.put("checkDate",taskOrderDO.getCheckDate());
+                    List<PipeTaskOrderItemDO> itemDOS = pipeTaskOrderItemMapper.selectList(new LambdaQueryWrapperX<PipeTaskOrderItemDO>()
+                            .eq(PipeTaskOrderItemDO::getOrderId, taskOrderDO.getId()));
+
+                    if (!itemDOS.isEmpty()){
+
+                        PipeTaskOrderItemDO pipeTaskOrderItemDO = itemDOS.get(0);
+                        EquipPipeDO equipPipeDO = equipPipeMapper.selectById(pipeTaskOrderItemDO.getEquipId());
+                        if (equipPipeDO != null){
+                            //设备信息
+                            result.put("unitName",equipPipeDO.getUnitName());
+                            result.put("equipMainType", "压力管道");
+                            result.put("equipName","压力管道");
+                            result.put("equipInCode","-");
+                            result.put("useNo",equipPipeDO.getCertificateNo());
+                            if (itemReportDO.getRatifyTime() != null){
+                                // 计算15个工作日后的日期
+                                LocalDate ratifyDate = LocalDate.from(itemReportDO.getRatifyTime());
+                                LocalDate after15WorkDays = addWorkingDays(ratifyDate, 15);
+                                result.put("ExpiryDate", after15WorkDays.format(dateFormat));
+                            }
+                            result.put("contact",equipPipeDO.getContact());
+                            result.put("contactPhone",equipPipeDO.getContactPhone());
+                            result.put("unitAddress",equipPipeDO.getUnitAddress());
+                            result.put("zipCode",equipPipeDO.getPostalCode());
+                        }
+                    }
+                    result.put("reportNo",itemReportDO.getReportNo());
+                }
+
+            }
 
         }
 

+ 10 - 6
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/comm/QC01007_202400OFData.java

@@ -113,10 +113,10 @@ public class QC01007_202400OFData implements IDynamicOFData {
                 }
                 if (itemReportDO.getEnterId() != null) {
                     AdminUserRespDTO checkedData = adminUserApi.getUser(itemReportDO.getEnterId()).getCheckedData();
-                    result.put("checkName", checkedData.getSignUrl());
+                    result.put("checkName", checkedData != null ? checkedData.getSignUrl() : null);
                 }else {
                     AdminUserRespDTO checkedData = adminUserApi.getUser(itemReportDO.getCreator()).getCheckedData();
-                    result.put("checkName", checkedData.getSignUrl());
+                    result.put("checkName", checkedData != null ? checkedData.getSignUrl() : null);
                 }
                 if (taskOrderDO != null){
                     result.put("checkDate",taskOrderDO.getCheckDate());
@@ -154,7 +154,8 @@ public class QC01007_202400OFData implements IDynamicOFData {
                 result.put("reportNo",itemReportDO.getReportNo());
 
                 //审核人员信息
-                AdminUserRespDTO userInfo = adminUserApi.getUser(itemReportDO.getApprovalId()).getData();
+                AdminUserRespDTO userInfo = adminUserApi.getUser(itemReportDO.getApprovalId()) != null ? 
+                        adminUserApi.getUser(itemReportDO.getApprovalId()).getData() : null;
                 if (userInfo != null){
                     result.put("approvalName",userInfo.getSignUrl());
                 }else{
@@ -165,7 +166,8 @@ public class QC01007_202400OFData implements IDynamicOFData {
                 }
 
                 //审批人员信息
-                userInfo = adminUserApi.getUser(itemReportDO.getRatifyId()).getData();
+                userInfo = adminUserApi.getUser(itemReportDO.getRatifyId()) != null ? 
+                        adminUserApi.getUser(itemReportDO.getRatifyId()).getData() : null;
                 if (userInfo != null){
                     result.put("ratifyName",userInfo.getSignUrl());
                 }else{
@@ -223,7 +225,8 @@ public class QC01007_202400OFData implements IDynamicOFData {
                     result.put("reportNo",itemReportDO.getReportNo());
 
                     //审核人员信息
-                    AdminUserRespDTO userInfo = adminUserApi.getUser(itemReportDO.getApprovalId()).getData();
+                    AdminUserRespDTO userInfo = adminUserApi.getUser(itemReportDO.getApprovalId()) != null ? 
+                            adminUserApi.getUser(itemReportDO.getApprovalId()).getData() : null;
                     if (userInfo != null){
                         result.put("approvalName",userInfo.getSignUrl());
                     }else{
@@ -234,7 +237,8 @@ public class QC01007_202400OFData implements IDynamicOFData {
                     }
 
                     //审批人员信息
-                    userInfo = adminUserApi.getUser(itemReportDO.getRatifyId()).getData();
+                    userInfo = adminUserApi.getUser(itemReportDO.getRatifyId()) != null ? 
+                            adminUserApi.getUser(itemReportDO.getRatifyId()).getData() : null;
                     if (userInfo != null){
                         result.put("ratifyName",userInfo.getSignUrl());
                     }else{

+ 10 - 6
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/comm/QC01010_202402OFData.java

@@ -116,9 +116,11 @@ public class QC01010_202402OFData implements IDynamicOFData {
                     String userId = boilerTaskOrderItemReportUserDO.getUserId();
                     if (userId != null) {
                         AdminUserRespDTO checkedData = adminUserApi.getUser(userId).getCheckedData();
-                        result.put("value24", checkedData.getSignUrl());
-                        result.put("value25", itemReportDO.getCheckDate());
-                        result.put("value26", checkedData.getMobile());
+                        if (checkedData != null){
+                            result.put("value24", checkedData.getSignUrl());
+                            result.put("value25", itemReportDO.getCheckDate());
+                            result.put("value26", checkedData.getMobile());
+                         }
                     }
                 }
 
@@ -165,9 +167,11 @@ public class QC01010_202402OFData implements IDynamicOFData {
                     String userId = pipeTaskOrderItemReportUserDO.getUserId();
                     if (userId != null) {
                         AdminUserRespDTO checkedData = adminUserApi.getUser(userId).getCheckedData();
-                        result.put("value24", checkedData.getSignUrl());
-                        result.put("value25", itemReportDO.getCheckDate());
-                        result.put("value26", checkedData.getMobile());
+                        if (checkedData != null){
+                            result.put("value27", checkedData.getSignUrl());
+                            result.put("value28", itemReportDO.getCheckDate());
+                            result.put("value29", checkedData.getMobile());
+                        }
                     }
                 }
 

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

@@ -436,7 +436,8 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
         BigDecimal serviceAmount = Optional.ofNullable(taskOrderDO.getServiceAmount()).orElse(BigDecimal.ZERO);
         BigDecimal shouldAmount = Optional.ofNullable(taskOrderDO.getShouldAmount()).orElse(BigDecimal.ZERO);
         BigDecimal reduceFee = Optional.ofNullable(taskOrderDO.getReduceFee()).orElse(BigDecimal.ZERO);
-        TaskOrderRespVO.setPayAmount(serviceAmount.add(shouldAmount).add(reduceFee));
+//        TaskOrderRespVO.setPayAmount(serviceAmount.add(shouldAmount).add(reduceFee));
+        TaskOrderRespVO.setTotalAmount(serviceAmount.add(shouldAmount).add(reduceFee));
         // 邮箱
         TaskOrderRespVO.setUnitEmail(taskOrderDO.getEmail());
 
@@ -2443,7 +2444,7 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
                 new Date();
         String dateStr = simpleDateFormat.format(dateToUse);
 
-        String acceptNo = "RW" + dateStr + redisService.generateAcceptanceNo(RedisKeyEnums.TASK_ORDER_PIPE.getKey());
+        String acceptNo = "DD" + dateStr + redisService.generateAcceptanceNo(RedisKeyEnums.TASK_ORDER_PIPE.getKey());
         return acceptNo;
     }
 
@@ -5298,7 +5299,11 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
         List<String> deptIds = new ArrayList<>(pageResult.getList().stream().map(PipeOrderItemPageRespVO::getDeptId).filter(Objects::nonNull).toList());
         Map<String, DeptRespDTO> deptMap = new HashMap<>();
         if (CollUtil.isNotEmpty(deptIds)) {
-            deptMap = deptApi.getDeptMap(deptIds);
+            try {
+                deptMap = deptApi.getDeptMap(deptIds);
+            } catch (Exception e) {
+                log.error("获取部门信息失败", e);
+            }
         }
         Map<String, DeptRespDTO> finalDeptMap = deptMap;
 
@@ -5547,9 +5552,9 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
             if (StringUtils.isNotEmpty(pageReqVO.getRecipientPhone())) {
                 memberUser = memberUserApi.getUserByMobile(pageReqVO.getRecipientPhone()).getCheckedData();
             }
-            if (StringUtils.isNotEmpty(pageReqVO.getRecipient())) {
-                memberUsers = memberUserApi.getUserListByName(pageReqVO.getRecipient()).getCheckedData();
-            }
+//            if (StringUtils.isNotEmpty(pageReqVO.getRecipient())) {
+//                memberUsers = memberUserApi.getUserListByName(pageReqVO.getRecipient()).getCheckedData();
+//            }
             //用于处理根据手机号码和接收人一起查询时
             if (StringUtils.isNotEmpty(pageReqVO.getRecipientPhone()) && StringUtils.isNotEmpty(pageReqVO.getRecipient())) {
                 if (ObjectUtil.isEmpty(memberUser) || CollUtil.isEmpty(memberUsers)) {

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

@@ -1979,7 +1979,11 @@ public class PipeTaskOrderIssueReportServiceImpl extends ServiceImpl<PipeTaskOrd
 
         Map<String, DeptRespDTO> deptMap = new HashMap<>();
         if (CollUtil.isNotEmpty(deptIds)) {
-            deptMap = deptApi.getDeptMap(deptIds);
+            try {
+                deptMap = deptApi.getDeptMap(deptIds);
+            }catch (Exception e) {
+                log.error("查询部门信息失败", e);
+            }
         }
 
         // 预处理数据:按itemId分组

+ 3 - 3
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pushtaskorder/PushTaskOrderServiceImpl.java

@@ -278,7 +278,7 @@ public class PushTaskOrderServiceImpl implements PushTaskOrderService {
             reqDTO.setRemark("测试");
         }
         // reqDTO.setServiceFee(taskOrderDO.getServiceAmount());
-        reqDTO.setServiceFee(taskOrderDO.getActualAmount());
+        reqDTO.setServiceFee(taskOrderDO.getServiceAmount());
 
 
         if (taskOrderDO.getOrderNo() != null && taskOrderDO.getOrderNo().startsWith("RW")) {
@@ -355,7 +355,7 @@ public class PushTaskOrderServiceImpl implements PushTaskOrderService {
         // 任务单状态,0 正常 1被替换 2作废
         reqDTO.setChangeStatus("2");
         reqDTO.setReportFinishFlag("0");
-        reqDTO.setServiceFee(taskOrderDO.getActualAmount());
+        reqDTO.setServiceFee(taskOrderDO.getServiceAmount());
 
         if (taskOrderDO.getOrderNo() != null && taskOrderDO.getOrderNo().startsWith("RW")) {
             reqDTO.setCreateAt(taskOrderDO.getInputDate());
@@ -439,7 +439,7 @@ public class PushTaskOrderServiceImpl implements PushTaskOrderService {
             reqDTO.setRemark("测试");
         }
         // reqDTO.setServiceFee(taskOrderDO.getServiceAmount());
-        reqDTO.setServiceFee(taskOrderDO.getActualAmount());
+        reqDTO.setServiceFee(taskOrderDO.getServiceAmount());
 
 
         if (taskOrderDO.getOrderNo() != null && taskOrderDO.getOrderNo().startsWith("RW")) {

+ 6 - 1
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/tasksign/TaskSignServiceImpl.java

@@ -202,9 +202,14 @@ public class TaskSignServiceImpl implements TaskSignService {
         }
 
         // 查询是否已有签名文件记录
-        BoilerTaskOrderSignFileDO taskOrderSignFileDO = boilerTaskOrderSignFileService
+        BoilerTaskOrderSignFileDO taskOrderSignFileDO;
+        if (reqVO.getSignFileId() != null){
+            taskOrderSignFileDO = boilerTaskOrderSignFileService.getById(reqVO.getSignFileId());
+        }else {
+        taskOrderSignFileDO = boilerTaskOrderSignFileService
                 .selectLastOneByOrderIdAndBusinessType(taskOrderDO.getId(), reqVO.getBusinessType(),
                         reqVO.getOrderItemId(), reqVO.getSecurityCheckId());
+        }
 
         // 保存或更新签名文件记录
         saveOrUpdateSignFile(taskOrderSignFileDO, taskOrderDO, reqVO);