xuzhancheng vor 2 Wochen
Ursprung
Commit
e2dd5b79af

+ 93 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/pushtaskorder/PushTaskOrderController.java

@@ -0,0 +1,93 @@
+package cn.start.tz.module.pressure2.controller.admin.pushtaskorder;
+
+import cn.start.tz.framework.common.pojo.CommonResult;
+import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorder.BoilerTaskOrderDO;
+import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorder.PipeTaskOrderDO;
+import cn.start.tz.module.pressure2.service.boilertaskorder.BoilerTaskOrderService;
+import cn.start.tz.module.pressure2.service.pipetaskorder.PipeTaskOrderService;
+import cn.start.tz.module.pressure2.service.pushtaskorder.PushTaskOrderService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.annotation.Resource;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import static cn.start.tz.framework.common.pojo.CommonResult.success;
+
+@Slf4j
+@Tag(name = "管理后台 - 承压任务单")
+@RestController
+@RequestMapping("/pressure2/task-order-push")
+@Validated
+public class PushTaskOrderController {
+
+    @Resource
+    BoilerTaskOrderService boilerTaskOrderService;
+    @Resource
+    PipeTaskOrderService pipeTaskOrderService;
+    @Resource
+    PushTaskOrderService pushTaskOrderService;
+
+    @PostMapping("/finance/boiler")
+    @Operation(summary = "推送任务单到收费系统")
+    @Parameter(name = "id", description = "任务单ID", required = true)
+    public CommonResult<Boolean> pushTaskOrderToFinanceBoiler(@RequestParam String id) {
+        // 查询任务单信息
+        BoilerTaskOrderDO taskOrderDO = boilerTaskOrderService.getById(id);
+        if (taskOrderDO == null) {
+            throw new RuntimeException("任务单不存在,ID: " + id);
+        }
+
+        pushTaskOrderService.pushFinanceSystem(taskOrderDO);
+
+        return success(true);
+    }
+
+    @PostMapping("/finance-cancel/boiler")
+    @Operation(summary = "作废任务单到收费系统")
+    @Parameter(name = "id", description = "任务单ID", required = true)
+    public CommonResult<Boolean> pushTaskOrderCancelBoiler(@RequestParam String id) {
+        // 查询任务单信息
+        BoilerTaskOrderDO taskOrderDO = boilerTaskOrderService.getById(id);
+        if (taskOrderDO == null) {
+            throw new RuntimeException("任务单不存在,ID: " + id);
+        }
+
+        pushTaskOrderService.pushFinanceSystemCancel(taskOrderDO);
+        return success(true);
+    }
+
+    @PostMapping("/finance/pipe")
+    @Operation(summary = "推送任务单到收费系统")
+    @Parameter(name = "id", description = "任务单ID", required = true)
+    public CommonResult<Boolean> pushTaskOrderToFinancePipe(@RequestParam String id) {
+        // 查询任务单信息
+        PipeTaskOrderDO taskOrderDO = pipeTaskOrderService.getById(id);
+        if (taskOrderDO == null) {
+            throw new RuntimeException("任务单不存在,ID: " + id);
+        }
+
+        pushTaskOrderService.pushFinanceSystem(taskOrderDO);
+
+        return success(true);
+    }
+
+    @PostMapping("/finance-cancel/pipe")
+    @Operation(summary = "作废任务单到收费系统")
+    @Parameter(name = "id", description = "任务单ID", required = true)
+    public CommonResult<Boolean> pushTaskOrderCancelToFinancePipe(@RequestParam String id) {
+        // 查询任务单信息
+        PipeTaskOrderDO taskOrderDO = pipeTaskOrderService.getById(id);
+        if (taskOrderDO == null) {
+            throw new RuntimeException("任务单不存在,ID: " + id);
+        }
+
+        pushTaskOrderService.pushFinanceSystemCancel(taskOrderDO);
+        return success(true);
+    }
+}

+ 2 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/dal/dataobject/appointmentconfirmorder/AppointmentConfirmOrderDO.java

@@ -223,4 +223,6 @@ public class AppointmentConfirmOrderDO extends BaseDO {
      * 锅炉设备数量
      */
      private Integer equipNumBoiler;
+
+     private LocalDate confirmDate;
 }

+ 6 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/dal/dataobject/boilertaskorder/BoilerTaskOrderDO.java

@@ -312,4 +312,10 @@ public class BoilerTaskOrderDO extends BaseDO {
      *  设备类型 100容器 200锅炉 300管道
      * */
     private Integer equipMainType;
+
+    /**
+     * 录入时间
+     *
+     */
+    private LocalDate inputDate;
 }

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

@@ -310,4 +310,11 @@ public class PipeTaskOrderDO extends BaseDO {
      *  设备类型 100容器 200锅炉 300管道
      * */
     private Integer equipMainType;
+
+
+    /**
+     * 录入时间
+     *
+     */
+    private LocalDate inputDate;
 }

+ 29 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pushtaskorder/PushTaskOrderService.java

@@ -0,0 +1,29 @@
+package cn.start.tz.module.pressure2.service.pushtaskorder;
+
+import cn.start.tz.framework.common.pojo.PageResult;
+import cn.start.tz.module.pressure2.controller.admin.boilertaskorder.vo.*;
+import cn.start.tz.module.pressure2.controller.admin.bpmtaskinfo.vo.BpmTaskRespVO;
+import cn.start.tz.module.pressure2.controller.admin.costfield.vo.CostFieldRespVO;
+import cn.start.tz.module.pressure2.dal.dataobject.acceptorder.AcceptOrderDO;
+import cn.start.tz.module.pressure2.dal.dataobject.boileracceptorderitem.BoilerAcceptOrderItemDO;
+import cn.start.tz.module.pressure2.dal.dataobject.boileracceptorderuser.BoilerAcceptOrderUserDO;
+import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorder.BoilerTaskOrderDO;
+import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderitemreport.BoilerTaskOrderItemReportDO;
+import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorder.PipeTaskOrderDO;
+import cn.start.tz.module.system.api.user.dto.AdminUserRespDTO;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import jakarta.validation.Valid;
+
+import java.util.List;
+
+public interface PushTaskOrderService {
+    void pushFinanceSystem(BoilerTaskOrderDO taskOrderDO);
+
+    void pushFinanceSystemCancel(BoilerTaskOrderDO taskOrderDO);
+
+    void pushFinanceSystem(PipeTaskOrderDO taskOrderDO);
+
+    void pushFinanceSystemCancel(PipeTaskOrderDO taskOrderDO);
+}

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

@@ -0,0 +1,555 @@
+package cn.start.tz.module.pressure2.service.pushtaskorder;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.IdUtil;
+import cn.hutool.core.util.ObjectUtil;
+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.common.exception.enums.GlobalErrorCodeConstants;
+import cn.start.tz.framework.common.pojo.CommonResult;
+import cn.start.tz.framework.common.pojo.PageResult;
+import cn.start.tz.framework.common.util.object.BeanUtils;
+import cn.start.tz.framework.ip.core.Area;
+import cn.start.tz.framework.ip.core.utils.AreaUtils;
+import cn.start.tz.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.start.tz.framework.security.core.LoginUser;
+import cn.start.tz.module.bpm.api.task.BpmProcessInstanceApi;
+import cn.start.tz.module.bpm.api.task.BpmTaskApi;
+import cn.start.tz.module.bpm.api.task.dto.*;
+import cn.start.tz.module.bpm.enums.boiler.BoilerBpmModeConstantsEnum;
+import cn.start.tz.module.bpm.enums.boiler.BoilerBpmModelConstants;
+import cn.start.tz.module.bpm.enums.task.BpmModeConstantsEnum;
+import cn.start.tz.module.bpm.enums.task.BpmTaskStatusEnum;
+import cn.start.tz.module.infra.api.file.FileApi;
+import cn.start.tz.module.infra.api.pay.PayApi;
+import cn.start.tz.module.infra.api.pay.dto.TaskInfoDTO;
+import cn.start.tz.module.member.api.templatesendlog.TemplateSendLogApi;
+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.enums.TaskOrderStatusEnum;
+import cn.start.tz.module.pressure2.constant.TemplateIdConstants;
+import cn.start.tz.module.pressure2.controller.admin.appointmentconfirmorder.vo.TeamItemVO;
+import cn.start.tz.module.pressure2.controller.admin.appointmentconfirmrefuseyearitem.vo.YearCheckIdVO;
+import cn.start.tz.module.pressure2.controller.admin.boilerorderexception.vo.BoilerOrderExceptionRespVO;
+import cn.start.tz.module.pressure2.controller.admin.boilertaskorder.vo.*;
+import cn.start.tz.module.pressure2.controller.admin.boilertaskorderitem.vo.BoilerTaskOrderItemPageReqVO;
+import cn.start.tz.module.pressure2.controller.admin.boilertaskorderitem.vo.BoilerTaskOrderItemRespVO;
+import cn.start.tz.module.pressure2.controller.admin.boilertaskorderitempart.vo.BoilerTaskOrderItemPartSaveReqVO;
+import cn.start.tz.module.pressure2.controller.admin.boilertaskorderitemrecheck.vo.BoilerTaskOrderItemRecheckRespVO;
+import cn.start.tz.module.pressure2.controller.admin.boilertaskorderitemreport.vo.BoilerTaskOrderItemReportRespVO;
+import cn.start.tz.module.pressure2.controller.admin.bpmtaskinfo.vo.BpmTaskRespVO;
+import cn.start.tz.module.pressure2.controller.admin.costfield.vo.CostFieldRespVO;
+import cn.start.tz.module.pressure2.controller.admin.dynamictbins.vo.CreateInstantiateWithRuleVO;
+import cn.start.tz.module.pressure2.controller.admin.equipboilerscheduling.vo.BoilerDeleteTask;
+import cn.start.tz.module.pressure2.controller.admin.reporttemplate.vo.ReportPreviewVO;
+import cn.start.tz.module.pressure2.dal.dataobject.acceptorder.AcceptOrderDO;
+import cn.start.tz.module.pressure2.dal.dataobject.appointmentconfirmorder.AppointmentConfirmOrderDO;
+import cn.start.tz.module.pressure2.dal.dataobject.appointmentconfirmorderrefuseitem.AppointmentConfirmOrderRefuseItemDO;
+import cn.start.tz.module.pressure2.dal.dataobject.boileracceptorderitem.BoilerAcceptOrderItemDO;
+import cn.start.tz.module.pressure2.dal.dataobject.boileracceptorderuser.BoilerAcceptOrderUserDO;
+import cn.start.tz.module.pressure2.dal.dataobject.boilerconnectrecordreport.BoilerConnectRecordReportDO;
+import cn.start.tz.module.pressure2.dal.dataobject.boilerconnecttbservice.BoilerConnectTbServiceDO;
+import cn.start.tz.module.pressure2.dal.dataobject.boilerorderexception.BoilerOrderExceptionDO;
+import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorder.BoilerTaskOrderDO;
+import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderfileversion.BoilerTaskOrderFileVersionDO;
+import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderitem.BoilerTaskOrderItemDO;
+import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderitempart.BoilerTaskOrderItemPartDO;
+import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderitemrecheck.BoilerTaskOrderItemRecheckDO;
+import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderitemreport.BoilerTaskOrderItemReportDO;
+import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderitemreportequip.BoilerTaskOrderItemReportEquipDO;
+import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderitemreportrecord.BoilerTaskOrderItemReportRecordDO;
+import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderitemreportuser.BoilerTaskOrderItemReportUserDO;
+import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderitemuser.BoilerTaskOrderItemUserDO;
+import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderoperation.BoilerTaskOrderOperationDO;
+import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderreport.BoilerTaskOrderReportDO;
+import cn.start.tz.module.pressure2.dal.dataobject.boilertaskordersecuritycheck.BoilerTaskOrderSecurityCheckDO;
+import cn.start.tz.module.pressure2.dal.dataobject.boilertaskordersignfile.BoilerTaskOrderSignFileDO;
+import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderuser.BoilerTaskOrderUserDO;
+import cn.start.tz.module.pressure2.dal.dataobject.bpmtaskinfo.BpmTaskInfoDO;
+import cn.start.tz.module.pressure2.dal.dataobject.businessmemberrelation.BusinessMemberRelationDO;
+import cn.start.tz.module.pressure2.dal.dataobject.defectinspectionrecords.DefectInspectionRecordsDO;
+import cn.start.tz.module.pressure2.dal.dataobject.dynamictb.DynamicTbDO;
+import cn.start.tz.module.pressure2.dal.dataobject.dynamictbcol.DynamicTbColDO;
+import cn.start.tz.module.pressure2.dal.dataobject.dynamictbins.DynamicTbInsDO;
+import cn.start.tz.module.pressure2.dal.dataobject.dynamictbval.DynamicTbValDO;
+import cn.start.tz.module.pressure2.dal.dataobject.equipboiler.EquipBoilerDO;
+import cn.start.tz.module.pressure2.dal.dataobject.equipboilercheckhistory.EquipBoilerCheckHistoryDO;
+import cn.start.tz.module.pressure2.dal.dataobject.equipboilerscheduling.EquipBoilerSchedulingRecordDO;
+import cn.start.tz.module.pressure2.dal.dataobject.equipboilerschedulingitem.EquipBoilerSchedulingCheckDO;
+import cn.start.tz.module.pressure2.dal.dataobject.inspectionnature.InspectionNatureTemplateDO;
+import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorder.PipeTaskOrderDO;
+import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderuser.PipeTaskOrderUserDO;
+import cn.start.tz.module.pressure2.dal.dataobject.reporttemplate.ReportTemplateDO;
+import cn.start.tz.module.pressure2.dal.mysql.acceptorder.AcceptOrderMapper;
+import cn.start.tz.module.pressure2.dal.mysql.appointmentconfirmorder.AppointmentConfirmOrderMapper;
+import cn.start.tz.module.pressure2.dal.mysql.appointmentconfirmorderrefuseitem.AppointmentConfirmOrderRefuseItemMapper;
+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.boilerconnecttbservice.BoilerConnectTbServiceMapper;
+import cn.start.tz.module.pressure2.dal.mysql.boilerorderexception.BoilerOrderExceptionMapper;
+import cn.start.tz.module.pressure2.dal.mysql.boilertaskorder.BoilerTaskOrderMapper;
+import cn.start.tz.module.pressure2.dal.mysql.boilertaskorderfileversion.BoilerTaskOrderFileVersionMapper;
+import cn.start.tz.module.pressure2.dal.mysql.boilertaskorderitem.BoilerTaskOrderItemMapper;
+import cn.start.tz.module.pressure2.dal.mysql.boilertaskorderitempart.BoilerTaskOrderItemPartMapper;
+import cn.start.tz.module.pressure2.dal.mysql.boilertaskorderitemrecheck.BoilerTaskOrderItemRecheckMapper;
+import cn.start.tz.module.pressure2.dal.mysql.boilertaskorderitemreport.BoilerTaskOrderItemReportMapper;
+import cn.start.tz.module.pressure2.dal.mysql.boilertaskorderitemreportequip.BoilerTaskOrderItemReportEquipMapper;
+import cn.start.tz.module.pressure2.dal.mysql.boilertaskorderitemreportrecord.BoilerTaskOrderItemReportRecordMapper;
+import cn.start.tz.module.pressure2.dal.mysql.boilertaskorderitemreportuser.BoilerTaskOrderItemReportUserMapper;
+import cn.start.tz.module.pressure2.dal.mysql.boilertaskorderitemuser.BoilerTaskOrderItemUserMapper;
+import cn.start.tz.module.pressure2.dal.mysql.boilertaskorderreport.BoilerTaskOrderReportMapper;
+import cn.start.tz.module.pressure2.dal.mysql.boilertaskordersecuritycheck.TaskOrderSecurityCheckMapper;
+import cn.start.tz.module.pressure2.dal.mysql.boilertaskordersignfile.BoilerTaskOrderSignFileMapper;
+import cn.start.tz.module.pressure2.dal.mysql.boilertaskorderuser.BoilerTaskOrderUserMapper;
+import cn.start.tz.module.pressure2.dal.mysql.bpmtaskinfo.BpmTaskInfoMapper;
+import cn.start.tz.module.pressure2.dal.mysql.businessmemberrelation.BusinessMemberRelationMapper;
+import cn.start.tz.module.pressure2.dal.mysql.defectinspectionrecords.DefectInspectionRecordsMapper;
+import cn.start.tz.module.pressure2.dal.mysql.dynamictb.DynamicTbMapper;
+import cn.start.tz.module.pressure2.dal.mysql.equipboiler.EquipBoilerMapper;
+import cn.start.tz.module.pressure2.dal.mysql.equipboilercheckhistory.EquipBoilerCheckHistoryMapper;
+import cn.start.tz.module.pressure2.dal.mysql.equipboilerscheduling.EquipBoilerSchedulingRecordMapper;
+import cn.start.tz.module.pressure2.dal.mysql.equipboilerschedulingitem.EquipBoilerSchedulingCheckMapper;
+import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderuser.PipeTaskOrderUserMapper;
+import cn.start.tz.module.pressure2.dal.mysql.reporttemplate.ReportTemplateMapper;
+import cn.start.tz.module.pressure2.enums.AcceptOrderStatusEnum;
+import cn.start.tz.module.pressure2.enums.RedisKeyEnums;
+import cn.start.tz.module.pressure2.enums.TaskOrderItemReportTypeEnum;
+import cn.start.tz.module.pressure2.service.appointmentconfirmrefuseyearitem.AppointmentConfirmRefuseYearItemService;
+import cn.start.tz.module.pressure2.service.boilerconnectrecordreport.BoilerConnectRecordReportService;
+import cn.start.tz.module.pressure2.service.boilertaskorderfileversion.BoilerTaskOrderFileVersionService;
+import cn.start.tz.module.pressure2.service.boilertaskorderitempart.BoilerTaskOrderItemPartService;
+import cn.start.tz.module.pressure2.service.boilertaskorderitemreport.BoilerTaskOrderItemReportService;
+import cn.start.tz.module.pressure2.service.boilertaskorderitemreportversion.BoilerTaskOrderItemReportVersionService;
+import cn.start.tz.module.pressure2.service.boilertaskorderoperation.BoilerTaskOrderOperationService;
+import cn.start.tz.module.pressure2.service.boilertaskordersecuritycheck.BoilerTaskOrderSecurityCheckService;
+import cn.start.tz.module.pressure2.service.common.RedisService;
+import cn.start.tz.module.pressure2.service.costfield.CostFieldService;
+import cn.start.tz.module.pressure2.service.dynamictbcol.DynamicTbColService;
+import cn.start.tz.module.pressure2.service.dynamictbins.DynamicTbInsService;
+import cn.start.tz.module.pressure2.service.dynamictbval.DynamicTbValService;
+import cn.start.tz.module.pressure2.service.equipboiler.EquipBoilerService;
+import cn.start.tz.module.pressure2.service.equipboilerscheduling.EquipBoilerSchedulingService;
+import cn.start.tz.module.pressure2.service.equipboilerschedulingcheck.EquipBoilerSchedulingCheckService;
+import cn.start.tz.module.pressure2.service.externalOA.ExternalOAService;
+import cn.start.tz.module.pressure2.service.externalOA.vo.*;
+import cn.start.tz.module.pressure2.service.inspectionnature.InspectionNatureService;
+import cn.start.tz.module.pressure2.service.inspectionnature.InspectionNatureTemplateService;
+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.synchronization.SynchronizationService;
+import cn.start.tz.module.pressure2.service.userwallthicknesstemplate.UserWallThicknessTemplateService;
+import cn.start.tz.module.pressure2.util.ConversionUtil;
+import cn.start.tz.module.pressure2.util.DeptDataPermissionUtil;
+import cn.start.tz.module.pressure2.util.JsonDiffTool;
+import cn.start.tz.module.pressure2.util.JsonFieldMapper;
+import cn.start.tz.module.pressure2.util.vo.FieldMetadata;
+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.dept.DeptApi;
+import cn.start.tz.module.system.api.dept.dto.DeptRespDTO;
+import cn.start.tz.module.system.api.dict.DictDataApi;
+import cn.start.tz.module.system.api.dict.dto.DictDataRespDTO;
+import cn.start.tz.module.system.api.orgcontact.OrgContactApi;
+import cn.start.tz.module.system.api.orgcontact.dto.OrgContactDTO;
+import cn.start.tz.module.system.api.standard.StandardTemplateApi;
+import cn.start.tz.module.system.api.template.TemplateInitDataApi;
+import cn.start.tz.module.system.api.user.AdminUserApi;
+import cn.start.tz.module.system.api.user.dto.AdminUserRespDTO;
+import cn.start.tz.module.system.enums.TemplateInitDataEnums;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.nacos.client.naming.utils.CollectionUtils;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.github.yulichang.query.MPJLambdaQueryWrapper;
+import com.google.common.collect.Lists;
+import jakarta.annotation.Resource;
+import jodd.util.StringUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.pdfbox.multipdf.PDFMergerUtility;
+import org.redisson.api.RLock;
+import org.redisson.api.RedissonClient;
+import org.springframework.beans.BeanWrapper;
+import org.springframework.beans.BeanWrapperImpl;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.validation.annotation.Validated;
+
+import java.beans.PropertyDescriptor;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicReference;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+import static cn.start.tz.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.start.tz.framework.common.exception.util.ServiceExceptionUtil.exception0;
+import static cn.start.tz.framework.common.util.json.JsonUtils.getHandleDateValue;
+import static cn.start.tz.framework.security.core.util.SecurityFrameworkUtils.getLoginUser;
+import static cn.start.tz.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
+import static cn.start.tz.module.pressure.enums.ErrorCodeConstants.REPORT_TEMPLATE_NOT_EXISTS;
+import static cn.start.tz.module.pressure2.enums.ErrorCodeConstants.BOILER_TASK_ORDER_NOT_EXISTS;
+import static java.time.LocalDate.now;
+
+/**
+ * 锅炉检验任务确认 Service 实现类
+ *
+ * @author 容*0
+ */
+@Service
+@Validated
+@Slf4j
+public class PushTaskOrderServiceImpl implements PushTaskOrderService {
+    @Value("${spring.profiles.active}")
+    private String profilesEnv;
+
+    @Resource
+    private PayApi payApi;
+    @Resource
+    private DeptApi deptApi;
+
+
+    @Resource
+    private AppointmentConfirmOrderMapper appointmentConfirmOrderMapper;
+    @Resource
+    private AcceptOrderMapper acceptOrderMapper;
+
+    @Override
+    public void pushFinanceSystem(BoilerTaskOrderDO taskOrderDO) {
+        if (taskOrderDO == null) {
+            return;
+        }
+        TaskInfoDTO reqDTO = new TaskInfoDTO();
+        reqDTO.setTaskno(taskOrderDO.getOrderNo());
+
+        // 定检要收服务费的,传14-2
+        reqDTO.setItemType("14-2");
+        if (taskOrderDO.getCheckDate() != null) {
+            reqDTO.setCheckDate(taskOrderDO.getCheckDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+        }
+        // 收费性质
+        int chargeWay = 0;
+        if (taskOrderDO.getFeeType() != null && taskOrderDO.getFeeType() == 200) {
+            chargeWay = 1;
+        }
+
+        reqDTO.setChargeWay(chargeWay);
+        reqDTO.setUnitname(taskOrderDO.getUnitName());
+        reqDTO.setUnitcode(taskOrderDO.getUnitCode());
+        reqDTO.setContacts(taskOrderDO.getUnitContact());
+        reqDTO.setPhone(taskOrderDO.getUnitPhone());
+        reqDTO.setInData("4");
+        reqDTO.setOrderFlag("1");// 服务单
+        reqDTO.setChangeStatus("0");
+        // reqDTO.setReportFinishFlag("2");
+
+        if (taskOrderDO.getTaskStatus() != null && taskOrderDO.getTaskStatus() == cn.start.tz.module.pressure.enums.TaskOrderStatusEnum.REPORT_FINISH.getStatus().intValue()) {
+            reqDTO.setReportFinishFlag("2");
+        }
+
+        if (taskOrderDO.getTaskStatus() != null && taskOrderDO.getTaskStatus() == TaskOrderStatusEnum.CANCEL.getStatus().intValue()) {
+            // 任务单状态,0 正常 1被替换 2作废
+            reqDTO.setChangeStatus("2");
+            reqDTO.setReportFinishFlag("0");
+        }
+
+
+        if (profilesEnv.equals("uat")) {
+            reqDTO.setRemark("测试");
+        }
+        // reqDTO.setServiceFee(taskOrderDO.getServiceAmount());
+        reqDTO.setServiceFee(taskOrderDO.getActualAmount());
+
+
+        if (taskOrderDO.getOrderNo() != null && taskOrderDO.getOrderNo().startsWith("RD")) {
+            reqDTO.setCreateAt(taskOrderDO.getInputDate());
+        } else {
+            AcceptOrderDO acceptOrderDO = acceptOrderMapper.selectOne(new LambdaQueryWrapperX<AcceptOrderDO>().
+                    eq(AcceptOrderDO::getId, taskOrderDO.getAcceptOrderId()), false);
+            if (acceptOrderDO != null) {
+                AppointmentConfirmOrderDO appointmentConfirmOrderDO = appointmentConfirmOrderMapper.selectById(acceptOrderDO.getAppointmentId());
+                if (appointmentConfirmOrderDO != null && appointmentConfirmOrderDO.getConfirmDate() != null) {
+                    reqDTO.setCreateAt(appointmentConfirmOrderDO.getConfirmDate());
+                }
+            }
+        }
+
+        List<TaskInfoDTO.TaskDeptShareInfo> deptInfos = new ArrayList<>();
+        TaskInfoDTO.TaskDeptShareInfo deptInfo = new TaskInfoDTO.TaskDeptShareInfo();
+
+        if (StringUtils.isNotBlank(taskOrderDO.getDeptId())) {
+            DeptRespDTO deptRespDTO = deptApi.getDept(taskOrderDO.getDeptId()).getData();
+            if (deptRespDTO != null) {
+                deptInfo.setDeptName(deptRespDTO.getName());
+                deptInfo.setDeptCode(deptRespDTO.getCode());
+
+                reqDTO.setDeptName(deptRespDTO.getName());
+                reqDTO.setCreateDept(deptRespDTO.getCode());
+            }
+            deptInfo.setServiceFee(taskOrderDO.getServiceAmount());
+            deptInfo.setTypecode(reqDTO.getItemType());
+        }
+
+        deptInfos.add(deptInfo);
+        reqDTO.setDeptShareInfos(deptInfos);
+        // 任务单推送到结算系统
+        if (taskOrderDO.getCheckType() != null && taskOrderDO.getCheckType() != 100 && reqDTO.getServiceFee() != null && reqDTO.getServiceFee().intValue() > 0) {
+            payApi.pushOrder(reqDTO);
+            log.info("任务单推送到结算系统 {}", taskOrderDO.getOrderNo());
+        }
+    }
+
+    @Override
+    public void pushFinanceSystemCancel(BoilerTaskOrderDO taskOrderDO) {
+        if (taskOrderDO == null) {
+            return;
+        }
+        TaskInfoDTO reqDTO = new TaskInfoDTO();
+        reqDTO.setTaskno(taskOrderDO.getOrderNo());
+
+        // 这个值,年检传14-1,定检要收服务费的,传14-2
+        reqDTO.setItemType("14-2");
+        if (taskOrderDO.getCheckType() != null && taskOrderDO.getCheckType() == 200) {
+            reqDTO.setItemType("14-1");
+        } else if (taskOrderDO.getCheckType() != null && taskOrderDO.getCheckType() == 300) {
+            reqDTO.setItemType("14-2");
+        }
+        if (taskOrderDO.getCheckDate() != null) {
+            reqDTO.setCheckDate(taskOrderDO.getCheckDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+        }
+        // 收费性质
+        int chargeWay = 0;
+        if (taskOrderDO.getFeeType() != null && taskOrderDO.getFeeType() == 200) {
+            chargeWay = 1;
+        }
+
+        reqDTO.setChargeWay(chargeWay);
+        reqDTO.setUnitname(taskOrderDO.getUnitName());
+        reqDTO.setUnitcode(taskOrderDO.getUnitCode());
+        reqDTO.setContacts(taskOrderDO.getUnitContact());
+        reqDTO.setPhone(taskOrderDO.getUnitPhone());
+        reqDTO.setInData("4");
+        reqDTO.setOrderFlag("1");// 服务单
+        // reqDTO.setReportFinishFlag("2");
+
+        // 任务单状态,0 正常 1被替换 2作废
+        reqDTO.setChangeStatus("2");
+        reqDTO.setReportFinishFlag("0");
+        reqDTO.setServiceFee(taskOrderDO.getActualAmount());
+
+        if (taskOrderDO.getOrderNo() != null && taskOrderDO.getOrderNo().startsWith("RD")) {
+            reqDTO.setCreateAt(taskOrderDO.getInputDate());
+        } else {
+            AcceptOrderDO acceptOrderDO = acceptOrderMapper.selectOne(new LambdaQueryWrapperX<AcceptOrderDO>().
+                    eq(AcceptOrderDO::getId, taskOrderDO.getAcceptOrderId()), false);
+            if (acceptOrderDO != null) {
+                AppointmentConfirmOrderDO appointmentConfirmOrderDO = appointmentConfirmOrderMapper.selectById(acceptOrderDO.getAppointmentId());
+                if (appointmentConfirmOrderDO != null && appointmentConfirmOrderDO.getConfirmDate() != null) {
+                    reqDTO.setCreateAt(appointmentConfirmOrderDO.getConfirmDate());
+                }
+            }
+        }
+
+        List<TaskInfoDTO.TaskDeptShareInfo> deptInfos = new ArrayList<>();
+        TaskInfoDTO.TaskDeptShareInfo deptInfo = new TaskInfoDTO.TaskDeptShareInfo();
+
+        if (StringUtils.isNotBlank(taskOrderDO.getDeptId())) {
+            DeptRespDTO deptRespDTO = deptApi.getDept(taskOrderDO.getDeptId()).getData();
+            if (deptRespDTO != null) {
+                deptInfo.setDeptName(deptRespDTO.getName());
+                deptInfo.setDeptCode(deptRespDTO.getCode());
+
+                reqDTO.setDeptName(deptRespDTO.getName());
+                reqDTO.setCreateDept(deptRespDTO.getCode());
+            }
+            deptInfo.setServiceFee(taskOrderDO.getServiceAmount());
+            deptInfo.setTypecode(reqDTO.getItemType());
+        }
+
+        deptInfos.add(deptInfo);
+        reqDTO.setDeptShareInfos(deptInfos);
+        // 任务单推送到结算系统
+        payApi.pushOrder(reqDTO);
+    }
+
+    @Override
+    public void pushFinanceSystem(PipeTaskOrderDO taskOrderDO) {
+        if (taskOrderDO == null) {
+            return;
+        }
+        TaskInfoDTO reqDTO = new TaskInfoDTO();
+        reqDTO.setTaskno(taskOrderDO.getOrderNo());
+
+        // 这个值,年检传14-1,定检要收服务费的,传14-2
+        reqDTO.setItemType("14-2");
+        if (taskOrderDO.getCheckType() != null && taskOrderDO.getCheckType() == 200) {
+            reqDTO.setItemType("14-1");
+        }
+        if (taskOrderDO.getCheckDate() != null) {
+            reqDTO.setCheckDate(taskOrderDO.getCheckDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+        }
+        // 收费性质
+        int chargeWay = 0;
+        if (taskOrderDO.getFeeType() != null && taskOrderDO.getFeeType() == 200) {
+            chargeWay = 1;
+        }
+
+        reqDTO.setChargeWay(chargeWay);
+        reqDTO.setUnitname(taskOrderDO.getUnitName());
+        reqDTO.setUnitcode(taskOrderDO.getUnitCode());
+        reqDTO.setContacts(taskOrderDO.getUnitContact());
+        reqDTO.setPhone(taskOrderDO.getUnitPhone());
+        reqDTO.setInData("4");
+        reqDTO.setOrderFlag("1");// 服务单
+        reqDTO.setChangeStatus("0");
+        // reqDTO.setReportFinishFlag("2");
+
+        if (taskOrderDO.getTaskStatus() != null && taskOrderDO.getTaskStatus() == cn.start.tz.module.pressure.enums.TaskOrderStatusEnum.REPORT_FINISH.getStatus().intValue()) {
+            reqDTO.setReportFinishFlag("2");
+        }
+
+        if (taskOrderDO.getTaskStatus() != null && taskOrderDO.getTaskStatus() == TaskOrderStatusEnum.CANCEL.getStatus().intValue()) {
+            // 任务单状态,0 正常 1被替换 2作废
+            reqDTO.setChangeStatus("2");
+            reqDTO.setReportFinishFlag("0");
+        }
+
+
+        if (profilesEnv.equals("uat")) {
+            reqDTO.setRemark("测试");
+        }
+        // reqDTO.setServiceFee(taskOrderDO.getServiceAmount());
+        reqDTO.setServiceFee(taskOrderDO.getActualAmount());
+
+
+        if (taskOrderDO.getOrderNo() != null && taskOrderDO.getOrderNo().startsWith("RD")) {
+            reqDTO.setCreateAt(taskOrderDO.getInputDate());
+        } else {
+            AcceptOrderDO acceptOrderDO = acceptOrderMapper.selectOne(new LambdaQueryWrapperX<AcceptOrderDO>().
+                    eq(AcceptOrderDO::getId, taskOrderDO.getAcceptOrderId()), false);
+            if (acceptOrderDO != null) {
+                AppointmentConfirmOrderDO appointmentConfirmOrderDO = appointmentConfirmOrderMapper.selectById(acceptOrderDO.getAppointmentId());
+                if (appointmentConfirmOrderDO != null && appointmentConfirmOrderDO.getConfirmDate() != null) {
+                    reqDTO.setCreateAt(appointmentConfirmOrderDO.getConfirmDate());
+                }
+            }
+        }
+
+        List<TaskInfoDTO.TaskDeptShareInfo> deptInfos = new ArrayList<>();
+        TaskInfoDTO.TaskDeptShareInfo deptInfo = new TaskInfoDTO.TaskDeptShareInfo();
+
+        if (StringUtils.isNotBlank(taskOrderDO.getDeptId())) {
+            DeptRespDTO deptRespDTO = deptApi.getDept(taskOrderDO.getDeptId()).getData();
+            if (deptRespDTO != null) {
+                deptInfo.setDeptName(deptRespDTO.getName());
+                deptInfo.setDeptCode(deptRespDTO.getCode());
+
+                reqDTO.setDeptName(deptRespDTO.getName());
+                reqDTO.setCreateDept(deptRespDTO.getCode());
+            }
+            deptInfo.setServiceFee(taskOrderDO.getServiceAmount());
+            deptInfo.setTypecode(reqDTO.getItemType());
+        }
+
+        deptInfos.add(deptInfo);
+        reqDTO.setDeptShareInfos(deptInfos);
+        // 任务单推送到结算系统
+        if (taskOrderDO.getCheckType() != null && taskOrderDO.getCheckType() != 100 && reqDTO.getServiceFee() != null && reqDTO.getServiceFee().intValue() > 0) {
+            payApi.pushOrder(reqDTO);
+            log.info("任务单推送到结算系统 {}", taskOrderDO.getOrderNo());
+        }
+    }
+
+    @Override
+    public void pushFinanceSystemCancel(PipeTaskOrderDO taskOrderDO) {
+        if (taskOrderDO == null) {
+            return;
+        }
+        TaskInfoDTO reqDTO = new TaskInfoDTO();
+        reqDTO.setTaskno(taskOrderDO.getOrderNo());
+
+        // 这个值,年检传14-1,定检要收服务费的,传14-2
+        reqDTO.setItemType("14-2");
+        if (taskOrderDO.getCheckType() != null && taskOrderDO.getCheckType() == 200) {
+            reqDTO.setItemType("14-1");
+        } else if (taskOrderDO.getCheckType() != null && taskOrderDO.getCheckType() == 300) {
+            reqDTO.setItemType("14-2");
+        }
+        if (taskOrderDO.getCheckDate() != null) {
+            reqDTO.setCheckDate(taskOrderDO.getCheckDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+        }
+        // 收费性质
+        int chargeWay = 0;
+        if (taskOrderDO.getFeeType() != null && taskOrderDO.getFeeType() == 200) {
+            chargeWay = 1;
+        }
+
+        reqDTO.setChargeWay(chargeWay);
+        reqDTO.setUnitname(taskOrderDO.getUnitName());
+        reqDTO.setUnitcode(taskOrderDO.getUnitCode());
+        reqDTO.setContacts(taskOrderDO.getUnitContact());
+        reqDTO.setPhone(taskOrderDO.getUnitPhone());
+        reqDTO.setInData("4");
+        reqDTO.setOrderFlag("1");// 服务单
+        // reqDTO.setReportFinishFlag("2");
+
+        // 任务单状态,0 正常 1被替换 2作废
+        reqDTO.setChangeStatus("2");
+        reqDTO.setReportFinishFlag("0");
+        reqDTO.setServiceFee(taskOrderDO.getActualAmount());
+
+        if (taskOrderDO.getOrderNo() != null && taskOrderDO.getOrderNo().startsWith("RD")) {
+            reqDTO.setCreateAt(taskOrderDO.getInputDate());
+        } else {
+            AcceptOrderDO acceptOrderDO = acceptOrderMapper.selectOne(new LambdaQueryWrapperX<AcceptOrderDO>().
+                    eq(AcceptOrderDO::getId, taskOrderDO.getAcceptOrderId()), false);
+            if (acceptOrderDO != null) {
+                AppointmentConfirmOrderDO appointmentConfirmOrderDO = appointmentConfirmOrderMapper.selectById(acceptOrderDO.getAppointmentId());
+                if (appointmentConfirmOrderDO != null && appointmentConfirmOrderDO.getConfirmDate() != null) {
+                    reqDTO.setCreateAt(appointmentConfirmOrderDO.getConfirmDate());
+                }
+            }
+        }
+
+        List<TaskInfoDTO.TaskDeptShareInfo> deptInfos = new ArrayList<>();
+        TaskInfoDTO.TaskDeptShareInfo deptInfo = new TaskInfoDTO.TaskDeptShareInfo();
+
+        if (StringUtils.isNotBlank(taskOrderDO.getDeptId())) {
+            DeptRespDTO deptRespDTO = deptApi.getDept(taskOrderDO.getDeptId()).getData();
+            if (deptRespDTO != null) {
+                deptInfo.setDeptName(deptRespDTO.getName());
+                deptInfo.setDeptCode(deptRespDTO.getCode());
+
+                reqDTO.setDeptName(deptRespDTO.getName());
+                reqDTO.setCreateDept(deptRespDTO.getCode());
+            }
+            deptInfo.setServiceFee(taskOrderDO.getServiceAmount());
+            deptInfo.setTypecode(reqDTO.getItemType());
+        }
+
+        deptInfos.add(deptInfo);
+        reqDTO.setDeptShareInfos(deptInfos);
+        // 任务单推送到结算系统
+        payApi.pushOrder(reqDTO);
+    }
+}