瀏覽代碼

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

yangguanjin 6 天之前
父節點
當前提交
a5e03d0368
共有 45 個文件被更改,包括 791 次插入206 次删除
  1. 2 0
      tz-module-pressure2/tz-module-pressure2-api/src/main/java/cn/start/tz/module/pressure2/enums/ErrorCodeConstants.java
  2. 6 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/boilertaskorder/vo/BoilerOrderItemAddReportVO.java
  3. 6 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/boilertaskorder/vo/BoilerOrderItemCostInfoRepsVO.java
  4. 3 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/boilertaskorder/vo/OrderItemReportApproveBatchVO.java
  5. 3 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/boilertaskorder/vo/OrderItemReportRollbackBatchVO.java
  6. 3 6
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/boilertaskorderitemreport/vo/BoilerTaskOrderItemReportSaveReqVO.java
  7. 2 4
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/boilertaskorderreport/vo/BoilerTaskOrderReportSaveReqVO.java
  8. 69 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/defaultapproval/DefaultApprovalController.java
  9. 30 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/defaultapproval/vo/DefaultApprovalPageReqVO.java
  10. 34 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/defaultapproval/vo/DefaultApprovalRespVO.java
  11. 19 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/defaultapproval/vo/DefaultApprovalSaveReqVO.java
  12. 3 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/equipboilerscheduling/vo/BoilerPlanSchedulingCheckItemVO.java
  13. 5 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/equippipedetail/vo/EquipPipeDetailSaveReqVO.java
  14. 3 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/inspectionnature/vo/InspectionNatureTemplateDetailRespVO.java
  15. 3 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/inspectionnature/vo/InspectionNatureTemplateSaveReqVO.java
  16. 6 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/pipetaskorder/vo/PipeOrderItemAddReportVO.java
  17. 3 6
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/pipetaskorderitemreport/vo/PipeTaskOrderItemReportSaveReqVO.java
  18. 41 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/dal/dataobject/defaultapproval/DefaultApprovalDO.java
  19. 5 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/dal/dataobject/equipboilerschedulingitem/EquipBoilerSchedulingCheckDO.java
  20. 5 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/dal/dataobject/equippipedetail/EquipPipeDetailDO.java
  21. 5 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/dal/dataobject/equippipeschedulingitem/EquipPipeSchedulingCheckDO.java
  22. 5 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/dal/dataobject/inspectionnature/InspectionNatureTemplateDO.java
  23. 1 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/dal/mysql/boilertaskorderitemreport/BoilerTaskOrderItemReportMapper.java
  24. 27 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/dal/mysql/defaultapproval/DefaultApprovalMapper.java
  25. 3 1
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/dal/mysql/equippipedetail/EquipPipeDetailMapper.java
  26. 8 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilerconnectrecordreport/BoilerConnectRecordReportServiceImpl.java
  27. 84 29
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilertaskorder/BoilerTaskOrderServiceImpl.java
  28. 47 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/defaultapproval/DefaultApprovalService.java
  29. 117 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/defaultapproval/DefaultApprovalServiceImpl.java
  30. 16 16
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/boiler/QC10033_202400ReportOFData.java
  31. 4 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/boiler/QC10098_202400RecordOFData.java
  32. 10 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/comm/QC01001_202400OFData.java
  33. 20 8
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/comm/QC47037_202400RecordOFData.java
  34. 17 9
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/pipe/QC12116_202400RecordOFData.java
  35. 26 58
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/pipe/QC12133_202400RecordOFData.java
  36. 15 29
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/pipe/QC12133_202401RecordOFData.java
  37. 1 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/equipboilerscheduling/EquipBoilerSchedulingServiceImpl.java
  38. 1 1
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/equippipedetail/EquipPipeDetailServiceImpl.java
  39. 1 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/equippipescheduling/EquipPipeSchedulingServiceImpl.java
  40. 3 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/inspectionnature/InspectionNatureTemplateServiceImpl.java
  41. 104 31
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipetaskorder/PipeTaskOrderServiceImpl.java
  42. 1 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/synchronization/SynchronizationServiceImpl.java
  43. 5 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/synchronization/dto/PipeDetailDto.java
  44. 4 3
      tz-module-system/tz-module-system-biz/src/main/java/cn/start/tz/module/system/controller/admin/user/vo/user/UserAssignRoleBatchReqVO.java
  45. 15 5
      tz-module-system/tz-module-system-biz/src/main/java/cn/start/tz/module/system/service/user/AdminUserServiceImpl.java

+ 2 - 0
tz-module-pressure2/tz-module-pressure2-api/src/main/java/cn/start/tz/module/pressure2/enums/ErrorCodeConstants.java

@@ -211,4 +211,6 @@ public interface ErrorCodeConstants{
 
     ErrorCode USER_WALL_THICKNESS_TEMPLATE_NOT_EXISTS = new ErrorCode(5019, "检验性质类型关联报告模版不存在");
     ErrorCode USER_TEMPLATE_LIBRARY_NOT_EXISTS = new ErrorCode(5020, "用户操作指导书模板库不存在");
+
+    ErrorCode DEFAULT_APPROVAL_NOT_EXISTS = new ErrorCode(5021, "默认审批配置不存在");
 }

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

@@ -43,4 +43,10 @@ public class BoilerOrderItemAddReportVO {
 
     @Schema(description = "费用类型", example = "1")
     private String type;
+
+    @Schema(description = "排序", example = "1")
+    private Integer sort;
+
+    @Schema(description = "费用计算json", example = "6822")
+    private String feeCalculateJson;
 }

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

@@ -75,4 +75,10 @@ public class BoilerOrderItemCostInfoRepsVO {
 
     @Schema(description = "是否收费")
     private String isFee;
+
+    /**
+     * 序号
+     */
+    @Schema(description = "序号")
+    private Integer sort;
 }

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

@@ -12,4 +12,7 @@ public class OrderItemReportApproveBatchVO {
     @Schema(description = "批量ids")
     private List<String> ids;
 
+    @Schema(description = "id")
+    private String id;
+
 }

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

@@ -15,4 +15,7 @@ public class OrderItemReportRollbackBatchVO {
     @Schema(description = "退回原因")
     private String returnReason;
 
+    @Schema(description = "id")
+    private String id;
+
 }

+ 3 - 6
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/boilertaskorderitemreport/vo/BoilerTaskOrderItemReportSaveReqVO.java

@@ -155,8 +155,7 @@ public class BoilerTaskOrderItemReportSaveReqVO {
     @Schema(description = "出具报告url", example = "https://www.iocoder.cn")
     private String issueUrl;
 
-    @Schema(description = "是否上报(0=否,1=是)", requiredMode = Schema.RequiredMode.REQUIRED)
-    @NotNull(message = "是否上报(0=否,1=是)不能为空")
+    @Schema(description = "是否上报(0=否,1=是)")
     private Boolean isReported;
 
     @Schema(description = "未知", example = "1852")
@@ -177,8 +176,7 @@ public class BoilerTaskOrderItemReportSaveReqVO {
     @Schema(description = "整改视频")
     private String rectificationVideo;
 
-    @Schema(description = "整改状态 (0=待确认,1=待整改,2=已提交,3=材料有误,4=整改通过)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
-    @NotNull(message = "整改状态 (0=待确认,1=待整改,2=已提交,3=材料有误,4=整改通过)不能为空")
+    @Schema(description = "整改状态 (0=待确认,1=待整改,2=已提交,3=材料有误,4=整改通过)")
     private Integer rectificationStatus;
 
     @Schema(description = "签名url", example = "https://www.iocoder.cn")
@@ -205,8 +203,7 @@ public class BoilerTaskOrderItemReportSaveReqVO {
     @Schema(description = "是否手动上传")
     private Boolean isManual;
 
-    @Schema(description = "是否办结上报(0=否,1=是)", requiredMode = Schema.RequiredMode.REQUIRED)
-    @NotNull(message = "是否办结上报(0=否,1=是)不能为空")
+    @Schema(description = "是否办结上报(0=否,1=是)")
     private Boolean isCloseReported;
 
     @Schema(description = "意见通知书url", example = "https://www.iocoder.cn")

+ 2 - 4
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/boilertaskorderreport/vo/BoilerTaskOrderReportSaveReqVO.java

@@ -155,8 +155,7 @@ public class BoilerTaskOrderReportSaveReqVO {
     @Schema(description = "出具报告url", example = "https://www.iocoder.cn")
     private String issueUrl;
 
-    @Schema(description = "是否上报(0=否,1=是)", requiredMode = Schema.RequiredMode.REQUIRED)
-    @NotNull(message = "是否上报(0=否,1=是)不能为空")
+    @Schema(description = "是否上报(0=否,1=是)")
     private Boolean isReported;
 
     @Schema(description = "审批流id", example = "9126")
@@ -177,8 +176,7 @@ public class BoilerTaskOrderReportSaveReqVO {
     @Schema(description = "整改视频")
     private String rectificationVideo;
 
-    @Schema(description = "整改状态 (0=待确认,1=待整改,2=已提交,3=材料有误,4=整改通过)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
-    @NotNull(message = "整改状态 (0=待确认,1=待整改,2=已提交,3=材料有误,4=整改通过)不能为空")
+    @Schema(description = "整改状态 (0=待确认,1=待整改,2=已提交,3=材料有误,4=整改通过)")
     private Integer rectificationStatus;
 
     @Schema(description = "签名url", example = "https://www.iocoder.cn")

+ 69 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/defaultapproval/DefaultApprovalController.java

@@ -0,0 +1,69 @@
+package cn.start.tz.module.pressure2.controller.admin.defaultapproval;
+
+import cn.start.tz.framework.common.pojo.CommonResult;
+import cn.start.tz.framework.common.pojo.PageResult;
+import cn.start.tz.module.pressure2.controller.admin.defaultapproval.vo.DefaultApprovalPageReqVO;
+import cn.start.tz.module.pressure2.controller.admin.defaultapproval.vo.DefaultApprovalRespVO;
+import cn.start.tz.module.pressure2.controller.admin.defaultapproval.vo.DefaultApprovalSaveReqVO;
+import cn.start.tz.module.pressure2.dal.dataobject.defaultapproval.DefaultApprovalDO;
+import cn.start.tz.module.pressure2.service.defaultapproval.DefaultApprovalService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.annotation.Resource;
+import jakarta.validation.Valid;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import static cn.start.tz.framework.common.pojo.CommonResult.success;
+
+@Tag(name = "管理后台 - 承压2默认审批配置")
+@RestController
+@RequestMapping("/pressure2/default-approval")
+@Validated
+public class DefaultApprovalController {
+
+    @Resource
+    private DefaultApprovalService defaultApprovalService;
+
+    @PostMapping("/create")
+    @Operation(summary = "创建默认审批配置")
+    public CommonResult<String> createDefaultApproval(@Valid @RequestBody DefaultApprovalSaveReqVO createReqVO) {
+        return success(defaultApprovalService.createDefaultApproval(createReqVO));
+    }
+
+    @PutMapping("/update")
+    @Operation(summary = "更新默认审批配置")
+    public CommonResult<Boolean> updateDefaultApproval(@Valid @RequestBody DefaultApprovalSaveReqVO updateReqVO) {
+        defaultApprovalService.updateDefaultApproval(updateReqVO);
+        return success(true);
+    }
+
+    @DeleteMapping("/delete")
+    @Operation(summary = "删除默认审批配置")
+    @Parameter(name = "id", description = "编号", required = true)
+    public CommonResult<Boolean> deleteDefaultApproval(@RequestParam("id") String id) {
+        defaultApprovalService.deleteDefaultApproval(id);
+        return success(true);
+    }
+
+    @PostMapping("/save")
+    @Operation(summary = "保存当前用户的默认审批配置(存在则更新,不存在则创建)")
+    public CommonResult<Boolean> saveDefaultApproval(@Valid @RequestBody DefaultApprovalSaveReqVO saveReqVO) {
+        defaultApprovalService.saveDefaultApproval(saveReqVO);
+        return success(true);
+    }
+
+    @GetMapping("/get")
+    @Operation(summary = "获取当前用户的默认审批配置")
+    public CommonResult<DefaultApprovalRespVO> getDefaultApproval() {
+        return success(defaultApprovalService.getDefaultApproval());
+    }
+
+    @GetMapping("/page")
+    @Operation(summary = "获得默认审批配置分页")
+    public CommonResult<PageResult<DefaultApprovalDO>> getDefaultApprovalPage(@Valid DefaultApprovalPageReqVO pageReqVO) {
+        return success(defaultApprovalService.getDefaultApprovalPage(pageReqVO));
+    }
+
+}

+ 30 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/defaultapproval/vo/DefaultApprovalPageReqVO.java

@@ -0,0 +1,30 @@
+package cn.start.tz.module.pressure2.controller.admin.defaultapproval.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import cn.start.tz.framework.common.pojo.PageParam;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+
+import static cn.start.tz.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - 承压2默认审批配置分页 Request VO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class DefaultApprovalPageReqVO extends PageParam {
+
+    @Schema(description = "用户id", example = "1024")
+    private String userId;
+
+    @Schema(description = "校核人id", example = "1024")
+    private String recheckId;
+
+    @Schema(description = "审核人工号", example = "A001")
+    private String approveEmployeeNo;
+
+    @Schema(description = "创建时间")
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    private LocalDateTime[] createTime;
+
+}

+ 34 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/defaultapproval/vo/DefaultApprovalRespVO.java

@@ -0,0 +1,34 @@
+package cn.start.tz.module.pressure2.controller.admin.defaultapproval.vo;
+
+import cn.start.tz.module.system.api.user.dto.AdminUserRespDTO;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Schema(description = "管理后台 - 承压2默认审批配置 Response VO")
+@Data
+public class DefaultApprovalRespVO {
+
+    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
+    private String id;
+
+    @Schema(description = "用户id", example = "1024")
+    private String userId;
+
+    @Schema(description = "校核人id", example = "1024")
+    private String recheckId;
+
+    @Schema(description = "审核人工号", example = "A001")
+    private String approveEmployeeNo;
+
+    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+    private LocalDateTime createTime;
+
+    @Schema(description = "校核人信息")
+    private AdminUserRespDTO recheckUser;
+
+    @Schema(description = "审核人信息")
+    private AdminUserRespDTO approveUser;
+
+}

+ 19 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/defaultapproval/vo/DefaultApprovalSaveReqVO.java

@@ -0,0 +1,19 @@
+package cn.start.tz.module.pressure2.controller.admin.defaultapproval.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Schema(description = "管理后台 - 承压2默认审批配置新增/修改 Request VO")
+@Data
+public class DefaultApprovalSaveReqVO {
+
+    @Schema(description = "主键", example = "1024")
+    private String id;
+
+    @Schema(description = "校核人id", example = "1024")
+    private String recheckId;
+
+    @Schema(description = "审核人工号", example = "A001")
+    private String approveEmployeeNo;
+
+}

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

@@ -26,4 +26,7 @@ public class BoilerPlanSchedulingCheckItemVO {
 
     @Schema(description = "默认数量")
     private Integer defaultCount;
+
+    @Schema(description = "排序")
+    private Integer sort;
 }

+ 5 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/equippipedetail/vo/EquipPipeDetailSaveReqVO.java

@@ -197,4 +197,9 @@ public class EquipPipeDetailSaveReqVO {
      */
     private String workpressure;
 
+    /**
+     * 排序
+     */
+    private String sort;
+
 }

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

@@ -64,4 +64,7 @@ public class InspectionNatureTemplateDetailRespVO {
 
     @Schema(description = "默认数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
     private Integer defaultCount;
+
+    @Schema(description = "序号", example = "1")
+    private Integer sort;
 }

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

@@ -28,4 +28,7 @@ public class InspectionNatureTemplateSaveReqVO {
     @Schema(description = "默认数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
     private Integer defaultCount;
 
+    @Schema(description = "序号", example = "1")
+    private Integer sort;
+
 }

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

@@ -50,4 +50,10 @@ public class PipeOrderItemAddReportVO {
 
     @Schema(description = "壁厚测定点位列表")
     private List<WallThicknessReqVO> wallThicknessList;
+
+    @Schema(description = "排序", example = "1")
+    private Integer sort;
+
+    @Schema(description = "费用计算json", example = "6822")
+    private String feeCalculateJson;
 }

+ 3 - 6
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/pipetaskorderitemreport/vo/PipeTaskOrderItemReportSaveReqVO.java

@@ -155,8 +155,7 @@ public class PipeTaskOrderItemReportSaveReqVO {
     @Schema(description = "出具报告url", example = "https://www.iocoder.cn")
     private String issueUrl;
 
-    @Schema(description = "是否上报(0=否,1=是)", requiredMode = Schema.RequiredMode.REQUIRED)
-    @NotNull(message = "是否上报(0=否,1=是)不能为空")
+    @Schema(description = "是否上报(0=否,1=是)")
     private Boolean isReported;
 
     @Schema(description = "未知", example = "8439")
@@ -177,8 +176,7 @@ public class PipeTaskOrderItemReportSaveReqVO {
     @Schema(description = "整改视频")
     private String rectificationVideo;
 
-    @Schema(description = "整改状态 (0=待确认,1=待整改,2=已提交,3=材料有误,4=整改通过)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
-    @NotNull(message = "整改状态 (0=待确认,1=待整改,2=已提交,3=材料有误,4=整改通过)不能为空")
+    @Schema(description = "整改状态 (0=待确认,1=待整改,2=已提交,3=材料有误,4=整改通过)")
     private Integer rectificationStatus;
 
     @Schema(description = "签名url", example = "https://www.iocoder.cn")
@@ -205,8 +203,7 @@ public class PipeTaskOrderItemReportSaveReqVO {
     @Schema(description = "是否手动上传")
     private Boolean isManual;
 
-    @Schema(description = "是否办结上报(0=否,1=是)", requiredMode = Schema.RequiredMode.REQUIRED)
-    @NotNull(message = "是否办结上报(0=否,1=是)不能为空")
+    @Schema(description = "是否办结上报(0=否,1=是)")
     private Boolean isCloseReported;
 
     @Schema(description = "意见通知书url", example = "https://www.iocoder.cn")

+ 41 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/dal/dataobject/defaultapproval/DefaultApprovalDO.java

@@ -0,0 +1,41 @@
+package cn.start.tz.module.pressure2.dal.dataobject.defaultapproval;
+
+import com.baomidou.mybatisplus.annotation.*;
+import cn.start.tz.framework.mybatis.core.dataobject.BaseDO;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+
+/**
+ * 承压2默认审批配置 DO
+ *
+ * @author 特种管理员
+ */
+@TableName("pressure2_default_approval")
+@KeySequence("pressure2_default_approval_seq")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class DefaultApprovalDO extends BaseDO {
+
+    /**
+     * id
+     */
+    @TableId(value = "id", type = IdType.ASSIGN_UUID)
+    private String id;
+    /**
+     * 用户id
+     */
+    private String userId;
+    /**
+     * 校核人id
+     */
+    private String recheckId;
+    /**
+     * 审核人工号
+     */
+    private String approveEmployeeNo;
+
+}

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

@@ -78,4 +78,9 @@ public class EquipBoilerSchedulingCheckDO extends BaseDO {
      * 默认数量
      */
     private Integer defaultCount;
+
+    /**
+     * 序号
+     */
+    private Integer sort;
 }

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

@@ -253,4 +253,9 @@ public class EquipPipeDetailDO extends BaseDO {
      */
     private String useno;
 
+    /**
+     * 排序
+     */
+    private String sort;
+
 }

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

@@ -77,4 +77,9 @@ public class EquipPipeSchedulingCheckDO extends BaseDO {
      * 默认数量
      */
     private Integer defaultCount;
+
+    /**
+     * 序号
+     */
+    private Integer sort;
 }

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

@@ -45,4 +45,9 @@ public class InspectionNatureTemplateDO extends BaseDO {
      */
     private Integer defaultCount;
 
+    /**
+     * 序号
+     */
+    private Integer sort;
+
 }

+ 1 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/dal/mysql/boilertaskorderitemreport/BoilerTaskOrderItemReportMapper.java

@@ -211,6 +211,7 @@ public interface BoilerTaskOrderItemReportMapper extends BaseMapperX<BoilerTaskO
                 .eq(BoilerTaskOrderItemReportDO::getOrderItemId, orderItemId)
                 .eq(BoilerTaskOrderItemReportDO::getRecheckId, recheckId)
                 .eq(BoilerTaskOrderItemReportDO::getRecheckStatus, 100)
+                .orderByAsc(BoilerTaskOrderItemReportDO::getSort)
                 .orderByDesc(BoilerTaskOrderItemReportDO::getCreateTime));
     }
 

+ 27 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/dal/mysql/defaultapproval/DefaultApprovalMapper.java

@@ -0,0 +1,27 @@
+package cn.start.tz.module.pressure2.dal.mysql.defaultapproval;
+
+import cn.start.tz.framework.common.pojo.PageResult;
+import cn.start.tz.framework.mybatis.core.mapper.BaseMapperX;
+import cn.start.tz.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.start.tz.module.pressure2.controller.admin.defaultapproval.vo.DefaultApprovalPageReqVO;
+import cn.start.tz.module.pressure2.dal.dataobject.defaultapproval.DefaultApprovalDO;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 承压2默认审批配置 Mapper
+ *
+ * @author 特种管理员
+ */
+@Mapper
+public interface DefaultApprovalMapper extends BaseMapperX<DefaultApprovalDO> {
+
+    default PageResult<DefaultApprovalDO> selectPage(DefaultApprovalPageReqVO reqVO) {
+        return selectPage(reqVO, new LambdaQueryWrapperX<DefaultApprovalDO>()
+                .eqIfPresent(DefaultApprovalDO::getUserId, reqVO.getUserId())
+                .eqIfPresent(DefaultApprovalDO::getRecheckId, reqVO.getRecheckId())
+                .eqIfPresent(DefaultApprovalDO::getApproveEmployeeNo, reqVO.getApproveEmployeeNo())
+                .betweenIfPresent(DefaultApprovalDO::getCreateTime, reqVO.getCreateTime())
+                .orderByDesc(DefaultApprovalDO::getCreateTime));
+    }
+
+}

+ 3 - 1
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/dal/mysql/equippipedetail/EquipPipeDetailMapper.java

@@ -67,7 +67,8 @@ public interface EquipPipeDetailMapper extends BaseMapperX<EquipPipeDetailDO> {
                 .eqIfPresent(EquipPipeDetailDO::getYearInspectionConclusion, reqVO.getYearInspectionConclusion())
                 .eqIfPresent(EquipPipeDetailDO::getYearInspectionIssues, reqVO.getYearInspectionIssues())
                 .betweenIfPresent(EquipPipeDetailDO::getCreateTime, reqVO.getCreateTime())
-                .orderByDesc(EquipPipeDetailDO::getId));
+//                .orderByDesc(EquipPipeDetailDO::getId));
+                .orderByDesc(EquipPipeDetailDO::getSort));
     }
 
     List<EquipPipeSchedulingPipesDetailRespVO> selectPlanPipesDetailPage(String id, EquipPipeSchedulingPageReqVO equipPipeSchedulingPageReqVO);
@@ -123,6 +124,7 @@ public interface EquipPipeDetailMapper extends BaseMapperX<EquipPipeDetailDO> {
                 .set(EquipPipeDetailDO::getCommissioningDate, equipPipeDetailDO.getCommissioningDate())
                 .set(EquipPipeDetailDO::getPipeCategory, equipPipeDetailDO.getPipeCategory())
                 .set(EquipPipeDetailDO::getPipeType, equipPipeDetailDO.getPipeType())
+                .set(EquipPipeDetailDO::getSort, equipPipeDetailDO.getSort())
                 .eq(EquipPipeDetailDO::getId, equipPipeDetailDO.getId()));
     }
 }

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

@@ -83,6 +83,14 @@ public class BoilerConnectRecordReportServiceImpl extends ServiceImpl<BoilerConn
                 .set(BoilerConnectRecordReportDO::getProjectCode, updateObj.getProjectCode())
                 .set(BoilerConnectRecordReportDO::getAcceptOrderTemplateId, updateObj.getAcceptOrderTemplateId())
                 .set(BoilerConnectRecordReportDO::getFeeTypes, updateObj.getFeeTypes())
+                .set(BoilerConnectRecordReportDO::getFeeCalcType, updateObj.getFeeCalcType())
+                .set(BoilerConnectRecordReportDO::getFee, updateObj.getFee())
+                .set(BoilerConnectRecordReportDO::getFeeFileUrl, updateObj.getFeeFileUrl())
+                .set(BoilerConnectRecordReportDO::getProjectType, updateObj.getProjectType())
+                .set(BoilerConnectRecordReportDO::getOperationInstruction, updateObj.getOperationInstruction())
+                .set(BoilerConnectRecordReportDO::getApprovalCode, updateObj.getApprovalCode())
+                .set(BoilerConnectRecordReportDO::getIsSign, updateObj.getIsSign())
+                .set(BoilerConnectRecordReportDO::getIsFee, updateObj.getIsFee())
                 .set(BoilerConnectRecordReportDO::getStatus, updateObj.getStatus())
                         .eq(BoilerConnectRecordReportDO::getId, updateObj.getId()
         )

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

@@ -895,7 +895,7 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
         }
 
         //根据前台约检勾选的检验项目生成数据
-        List<EquipBoilerSchedulingCheckDO> checkDOList = equipBoilerSchedulingCheckService.lambdaQuery().eq(EquipBoilerSchedulingCheckDO::getTaskOrderId, taskOrderDO.getId()).list();
+        List<EquipBoilerSchedulingCheckDO> checkDOList = equipBoilerSchedulingCheckService.lambdaQuery().eq(EquipBoilerSchedulingCheckDO::getTaskOrderId, taskOrderDO.getId()).orderByAsc(EquipBoilerSchedulingCheckDO::getSort).list();
         AtomicReference<Integer> index = new AtomicReference<>(1);
         List<BoilerTaskOrderItemReportDO> insertList = new ArrayList<>();
         if (!checkDOList.isEmpty()){
@@ -919,6 +919,7 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
 
                         BoilerTaskOrderItemReportDO addReport1 = new BoilerTaskOrderItemReportDO();
                         addReport1.setProjectId(recordReportDO.getId());
+                        addReport1.setSort(item.getSort());
                         addReport1.setOrderItemId(id);
                         addReport1.setTemplateId(dynamicTbDO.getId());
                         // 将 String 类型的 fee 转换为 BigDecimal
@@ -946,6 +947,7 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
                                 addInstructionReport.setOrderItemId(id);
                                 addInstructionReport.setTaskStatus(TaskOrderStatusEnum.ENTER.getStatus());
                                 addInstructionReport.setFeeType(item.getType());
+                                addInstructionReport.setSort(item.getSort());
                                 addInstructionReport.setProjectId(recordReportDO.getId());
                                 addInstructionReport.setFee(item.getFee());
                                 DynamicTbDO dynamicTbDO1 = dynamicTbMapper.selectById(recordReportDO.getOperationInstruction());
@@ -974,6 +976,7 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
                             addReport1.setOrderItemId(id);
 //                            addReport1.setTemplateId(dynamicTbDO.getId());
                             addReport1.setReportTemplateId(dynamicTbDO.getId());
+                            addReport1.setSort(item.getSort());
                             // 将 String 类型的 fee 转换为 BigDecimal
 //                            addReport1.setFee(ConversionUtil.convert(recordReportDO.getFee()));
                             addReport1.setFee(item.getFee());
@@ -997,6 +1000,7 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
                                     addInstructionReport.setTemplateId(recordReportDO.getOperationInstruction());
                                     addInstructionReport.setOrderId(taskOrderDO.getId());
                                     addInstructionReport.setOrderItemId(id);
+                                    addInstructionReport.setSort(item.getSort());
                                     addInstructionReport.setTaskStatus(TaskOrderStatusEnum.ENTER.getStatus());
                                     addInstructionReport.setFeeType(item.getType());
                                     addInstructionReport.setProjectId(recordReportDO.getId());
@@ -1032,13 +1036,12 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
             if (!insertList.isEmpty()){
 
                 //按报告类型排序
-                insertList.sort(Comparator.comparing(BoilerTaskOrderItemReportDO::getReportType));
+//                insertList.sort(Comparator.comparing(BoilerTaskOrderItemReportDO::getReportType));
                 // 重新设置 sort 字段,确保每个记录都有连续递增的排序值
-                for (int i = 0; i < insertList.size(); i++) {
-                    BoilerTaskOrderItemReportDO item = insertList.get(i);
-                    item.setSort(index.getAndSet(index.get() + 1));
-                }
-
+//                for (int i = 0; i < insertList.size(); i++) {
+//                    BoilerTaskOrderItemReportDO item = insertList.get(i);
+//                    item.setSort(index.getAndSet(index.get() + 1));
+//                }
                 // 新增报告
                 taskOrderItemReportMapper.insert(insertList);
                 insertList.forEach(item -> {
@@ -1351,6 +1354,7 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
                                 .ifPresent(natureTemplateDO -> {
                                     // 找到匹配的检验性质模版
                                     repsVO.setUse("1".equals(natureTemplateDO.getIsDefault()));
+                                    repsVO.setSort(natureTemplateDO.getSort());
                                 });
                         repsVO.setUse(repsVO.getUse() || "MAIN".equals(templateDO.getProjectType()));
                         // 4. 从Map中直接查找匹配项
@@ -1376,6 +1380,7 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
                                 .ifPresent(natureTemplateDO -> {
                                     // 找到匹配的检验性质模版
                                     baseVO.setUse("1".equals(natureTemplateDO.getIsDefault()));
+                                    baseVO.setSort(natureTemplateDO.getSort());
                                 });
                         baseVO.setUse(baseVO.getUse() || "MAIN".equals(templateDO.getProjectType()));
 
@@ -1427,6 +1432,7 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
                             repsVO.setProjectType(connectRecordReportDO.getProjectType());
                             repsVO.setIsMainProject("MAIN".equals(connectRecordReportDO.getProjectType()) ? "1" : "0");
                             repsVO.setDefaultCount(natureTemplateDO.getDefaultCount() != null ? natureTemplateDO.getDefaultCount() : 1);
+                            repsVO.setSort(natureTemplateDO.getSort() != null ? natureTemplateDO.getSort() : 1);
                             return repsVO;
                         }else {
                             return null;
@@ -1447,6 +1453,7 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
                                 repsVO.setProjectType(connectRecordReportDO.getProjectType());
                                 repsVO.setIsMainProject("MAIN".equals(connectRecordReportDO.getProjectType()) ? "1" : "0");
                                 repsVO.setDefaultCount(natureTemplateDO.getDefaultCount() != null ? natureTemplateDO.getDefaultCount() : 1);
+                                repsVO.setSort(natureTemplateDO.getSort() != null ? natureTemplateDO.getSort() : 1);
                                 return repsVO;
                             }else {
                                 return null;
@@ -1458,6 +1465,7 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
                         return null;
                     }
                 })
+                .sorted(Comparator.comparing(BoilerOrderItemCostInfoRepsVO::getSort))
                 .collect(Collectors.toCollection(ArrayList::new)); // 预分配空间
 
         list.addAll(resultList);
@@ -1551,19 +1559,30 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
 
     @Override
     public Boolean batchRecheckApprove(OrderItemReportApproveBatchVO orderItemReportApproveBatchVO) {
-
-        BoilerTaskOrderItemRecheckDO taskOrderItemRecheckDO = taskOrderItemRecheckMapper.selectOne(new LambdaQueryWrapperX<BoilerTaskOrderItemRecheckDO>().
-                eq(BoilerTaskOrderItemRecheckDO::getReportId, orderItemReportApproveBatchVO.getIds().get(0)));
+        BoilerTaskOrderItemRecheckDO taskOrderItemRecheckDO = null;
         List<BoilerTaskOrderItemRecheckDO> taskOrderItemRecheckDOS = new ArrayList<>();
+        if (!CollUtil.isEmpty(orderItemReportApproveBatchVO.getIds())) {
+            taskOrderItemRecheckDO = taskOrderItemRecheckMapper.selectOne(new LambdaQueryWrapperX<BoilerTaskOrderItemRecheckDO>().
+                    eq(BoilerTaskOrderItemRecheckDO::getReportId, orderItemReportApproveBatchVO.getIds().get(0)));
+
+            if (taskOrderItemRecheckDO != null) {
+                taskOrderItemRecheckDOS = taskOrderItemRecheckMapper.selectList(BoilerTaskOrderItemRecheckDO::getMainReportId, taskOrderItemRecheckDO.getMainReportId());
+            }
 
-        if (taskOrderItemRecheckDO != null) {
-            taskOrderItemRecheckDOS = taskOrderItemRecheckMapper.selectList(BoilerTaskOrderItemRecheckDO::getMainReportId, taskOrderItemRecheckDO.getMainReportId());
+            for (String id : orderItemReportApproveBatchVO.getIds()) {
+                BoilerTaskOrderAuditSingleVO approve = new BoilerTaskOrderAuditSingleVO();
+                approve.setId(id);
+                recheckOrderItemApprove(approve);
+            }
         }
+        if (orderItemReportApproveBatchVO.getId() != null) {
+            taskOrderItemRecheckDO = taskOrderItemRecheckMapper.selectOne(new LambdaQueryWrapperX<BoilerTaskOrderItemRecheckDO>().
+                    eq(BoilerTaskOrderItemRecheckDO::getReportId, orderItemReportApproveBatchVO.getId()));
 
-        for (String id : orderItemReportApproveBatchVO.getIds()) {
-            BoilerTaskOrderAuditSingleVO approve = new BoilerTaskOrderAuditSingleVO();
-            approve.setId(id);
-            recheckOrderItemApprove(approve);
+            if (taskOrderItemRecheckDO != null) {
+                taskOrderItemRecheckDOS = taskOrderItemRecheckMapper.selectList(BoilerTaskOrderItemRecheckDO::getMainReportId, taskOrderItemRecheckDO.getMainReportId());
+            }
+            recheckOrderItemApprove(new BoilerTaskOrderAuditSingleVO().setId(orderItemReportApproveBatchVO.getId()));
         }
 
         if (taskOrderItemRecheckDO == null || taskOrderItemRecheckDOS.isEmpty()) {
@@ -1621,6 +1640,13 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
 
     @Override
     public Boolean batchRecheckRollback(OrderItemReportRollbackBatchVO rollbackVO) {
+        if (CollUtil.isEmpty(rollbackVO.getIds())) {
+            BoilerTaskOrderAuditSingleVO reject = new BoilerTaskOrderAuditSingleVO();
+            reject.setId(rollbackVO.getId());
+            reject.setReason(rollbackVO.getReturnReason());
+            recheckOrderItemReject(reject);
+            return true;
+        }
         for (String id : rollbackVO.getIds()) {
             BoilerTaskOrderAuditSingleVO reject = new BoilerTaskOrderAuditSingleVO();
             reject.setId(id);
@@ -2204,7 +2230,7 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
                 //orderItemIds为空时则为创建检验方案没有勾选任务单设备
                 if (StringUtils.isNotEmpty(itemReportDO.getOrderItemIdsStr())) {
                     List<String> orderItemIds = List.of(itemReportDO.getOrderItemIdsStr().split(","));
-                    String reportNo = generateOrderItemInspectionPlanReportNo(reportDO.getOrderId());
+//                    String reportNo = generateOrderItemInspectionPlanReportNo(reportDO.getOrderId());
                     taskOrderItemReportDOS.stream().map(item -> {
                         //找出匹配的设备
                         List<String> findList = orderItemIds.stream().filter(x -> x.equals(item.getId())).toList();
@@ -2212,7 +2238,7 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
                             BoilerTaskOrderItemReportDO bean = BeanUtils.toBean(reportDO, BoilerTaskOrderItemReportDO.class);
                             bean.setId(null);
 //                            bean.setReportNo(reportDO.getReportNo());
-                            bean.setReportNo(reportNo);
+//                            bean.setReportNo(reportNo);
                             bean.setOrderItemId(item.getId());
                             bean.setTaskStatus(TaskOrderStatusEnum.REPORT_FINISH.getStatus());
                             bean.setStatus(200);
@@ -2260,7 +2286,7 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
                         taskOrderItemReportUserMapper.insert(userDO);
 
                     });
-                    itemReportDO.setReportNo(reportNo);
+//                    itemReportDO.setReportNo(reportNo);
                 }
             }
 
@@ -2734,10 +2760,15 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
             if (reportTemplateDO.getTbType() != null && TaskOrderItemReportTypeEnum.NOTICE_OF_OPINION.getType().intValue() == reportTemplateDO.getTbType()) {
                 addReport.setSort(999);
             }else{
-                addReport.setSort(count + 1);
+                if (vo.getSort() != null){
+                    addReport.setSort(vo.getSort());
+                }else{
+                    addReport.setSort(count + 1);
+                }
             }
             addReport.setItemPartId(itemPartId);
             addReport.setFeeType(vo.getType());
+            addReport.setFeeCalculateJson(vo.getFeeCalculateJson());
             // 非手动上传
             if (StringUtils.isBlank(vo.getManualUrl())) {
 
@@ -2769,7 +2800,11 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
                             addInstructionReport.setOrderId(orderItemDOS.get(0).getOrderId());
                             addInstructionReport.setOrderItemId(vo.getOrderItemId());
                             addInstructionReport.setTaskStatus(TaskOrderStatusEnum.ENTER.getStatus());
-                            addInstructionReport.setSort(count + 1);
+                            if (vo.getSort() != null){
+                                addInstructionReport.setSort(vo.getSort());
+                            }else{
+                                addInstructionReport.setSort(count + 1);
+                            }
                             addInstructionReport.setFeeType(vo.getType());
                             addInstructionReport.setItemPartId(itemPartId);
                             addInstructionReport.setProjectId(connectDO.getId());
@@ -4741,7 +4776,7 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
             if (StringUtils.isNotEmpty(taskOrderMajorIssuesVO.getReportName())) {
                 taskOrderReportDO.setReportName(taskOrderMajorIssuesVO.getReportName());
             }
-            taskOrderReportDO.setReportNo(reportNo);
+            taskOrderReportDO.setReportNo(generateOrderItemInspectionPlanReportNo(addReport.getOrderId()));
             taskOrderReportMapper.insert(taskOrderReportDO);
 
             //生成报表数据 -- 检验方案表不同暂不通用
@@ -6212,18 +6247,38 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
 
         try {
             LambdaQueryWrapperX <BoilerTaskOrderReportDO> queryWrapperX = new LambdaQueryWrapperX<>();
-            queryWrapperX.eq(BoilerTaskOrderReportDO::getTaskStatus, 800);
             queryWrapperX.eq(BoilerTaskOrderReportDO::getOrderId, orderId);
             List<BoilerTaskOrderReportDO> taskOrderReportDOS = taskOrderReportMapper.selectList(queryWrapperX);
             BoilerTaskOrderDO taskOrderDO = this.boilerTaskOrderMapper.selectById(orderId);
-            if (CollUtil.isNotEmpty(taskOrderReportDOS)) {
-                if (ObjectUtil.isNotEmpty(taskOrderDO)) {
-                    int i = taskOrderReportDOS.size() + 1;
-                    acceptNo = taskOrderDO.getOrderNo() + "-" + i;
+
+            if (ObjectUtil.isNotEmpty(taskOrderDO)) {
+                if (CollUtil.isNotEmpty(taskOrderReportDOS)) {
+                    // 从现有的reportNo中提取数字并找到最大值
+                    int maxNumber = taskOrderReportDOS.stream()
+                            .map(BoilerTaskOrderReportDO::getReportNo)
+                            .filter(Objects::nonNull)
+                            .map(reportNo -> {
+                                // 提取-后面的数字部分
+                                String[] parts = reportNo.split("-");
+                                if (parts.length > 0) {
+                                    try {
+                                        return Integer.parseInt(parts[parts.length - 1]);
+                                    } catch (NumberFormatException e) {
+                                        return 0;
+                                    }
+                                }
+                                return 0;
+                            })
+                            .max(Integer::compareTo)
+                            .orElse(0);
+
+                    // 最大值加1
+                    acceptNo = taskOrderDO.getOrderNo() + "-" + (maxNumber + 1);
+                } else {
+                    acceptNo = taskOrderDO.getOrderNo() + "-" + 1;
                 }
-            } else {
-                acceptNo = taskOrderDO.getOrderNo() + "-" + 1;
             }
+
         } catch (Exception e) {
             throw new RuntimeException("检验方案任务单设备报告编号创建-执行失败:" + e.getMessage());
         } finally {

+ 47 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/defaultapproval/DefaultApprovalService.java

@@ -0,0 +1,47 @@
+package cn.start.tz.module.pressure2.service.defaultapproval;
+
+import cn.start.tz.framework.common.pojo.PageResult;
+import cn.start.tz.module.pressure2.controller.admin.defaultapproval.vo.DefaultApprovalPageReqVO;
+import cn.start.tz.module.pressure2.controller.admin.defaultapproval.vo.DefaultApprovalRespVO;
+import cn.start.tz.module.pressure2.controller.admin.defaultapproval.vo.DefaultApprovalSaveReqVO;
+import cn.start.tz.module.pressure2.dal.dataobject.defaultapproval.DefaultApprovalDO;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * 承压2默认审批配置 Service 接口
+ *
+ * @author 特种管理员
+ */
+public interface DefaultApprovalService extends IService<DefaultApprovalDO> {
+
+    /**
+     * 创建默认审批配置
+     */
+    String createDefaultApproval(DefaultApprovalSaveReqVO createReqVO);
+
+    /**
+     * 更新默认审批配置
+     */
+    void updateDefaultApproval(DefaultApprovalSaveReqVO updateReqVO);
+
+    /**
+     * 删除默认审批配置
+     */
+    void deleteDefaultApproval(String id);
+
+    /**
+     * 获取当前用户的默认审批配置
+     */
+    DefaultApprovalRespVO getDefaultApproval();
+
+    /**
+     * 保存当前用户的默认审批配置(存在则更新,不存在则创建)
+     */
+    void saveDefaultApproval(DefaultApprovalSaveReqVO saveReqVO);
+
+    /**
+     * 获得默认审批配置分页
+     */
+    PageResult<DefaultApprovalDO> getDefaultApprovalPage(DefaultApprovalPageReqVO pageReqVO);
+
+}

+ 117 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/defaultapproval/DefaultApprovalServiceImpl.java

@@ -0,0 +1,117 @@
+package cn.start.tz.module.pressure2.service.defaultapproval;
+
+import cn.start.tz.framework.common.pojo.PageResult;
+import cn.start.tz.framework.common.util.object.BeanUtils;
+import cn.start.tz.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.start.tz.module.pressure2.controller.admin.defaultapproval.vo.DefaultApprovalPageReqVO;
+import cn.start.tz.module.pressure2.controller.admin.defaultapproval.vo.DefaultApprovalRespVO;
+import cn.start.tz.module.pressure2.controller.admin.defaultapproval.vo.DefaultApprovalSaveReqVO;
+import cn.start.tz.module.pressure2.dal.dataobject.defaultapproval.DefaultApprovalDO;
+import cn.start.tz.module.pressure2.dal.mysql.defaultapproval.DefaultApprovalMapper;
+import cn.start.tz.module.system.api.user.AdminUserApi;
+import cn.start.tz.module.system.api.user.dto.AdminUserRespDTO;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+import org.springframework.validation.annotation.Validated;
+
+import java.util.*;
+
+import static cn.start.tz.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.start.tz.framework.web.core.util.WebFrameworkUtils.getLoginUserId;
+import static cn.start.tz.module.pressure2.enums.ErrorCodeConstants.DEFAULT_APPROVAL_NOT_EXISTS;
+
+/**
+ * 承压2默认审批配置 Service 实现类
+ *
+ * @author 特种管理员
+ */
+@Service
+@Validated
+public class DefaultApprovalServiceImpl extends ServiceImpl<DefaultApprovalMapper, DefaultApprovalDO> implements DefaultApprovalService {
+
+    @Resource
+    private DefaultApprovalMapper defaultApprovalMapper;
+
+    @Resource
+    private AdminUserApi adminUserApi;
+
+    @Override
+    public String createDefaultApproval(DefaultApprovalSaveReqVO createReqVO) {
+        DefaultApprovalDO defaultApproval = BeanUtils.toBean(createReqVO, DefaultApprovalDO.class);
+        defaultApproval.setUserId(getLoginUserId());
+        defaultApprovalMapper.insert(defaultApproval);
+        return defaultApproval.getId();
+    }
+
+    @Override
+    public void updateDefaultApproval(DefaultApprovalSaveReqVO updateReqVO) {
+        // 校验存在
+        validateDefaultApprovalExists(updateReqVO.getId());
+        // 更新
+        DefaultApprovalDO updateObj = BeanUtils.toBean(updateReqVO, DefaultApprovalDO.class);
+        defaultApprovalMapper.updateById(updateObj);
+    }
+
+    @Override
+    public void deleteDefaultApproval(String id) {
+        // 校验存在
+        validateDefaultApprovalExists(id);
+        // 删除
+        defaultApprovalMapper.deleteById(id);
+    }
+
+    @Override
+    public void saveDefaultApproval(DefaultApprovalSaveReqVO saveReqVO) {
+        String userId = getLoginUserId();
+        DefaultApprovalDO existing = defaultApprovalMapper.selectOne(
+                new LambdaQueryWrapperX<DefaultApprovalDO>().eq(DefaultApprovalDO::getUserId, userId));
+        if (existing != null) {
+            // 更新
+            existing.setRecheckId(saveReqVO.getRecheckId());
+            existing.setApproveEmployeeNo(saveReqVO.getApproveEmployeeNo());
+            defaultApprovalMapper.updateById(existing);
+        } else {
+            // 创建
+            DefaultApprovalDO defaultApproval = BeanUtils.toBean(saveReqVO, DefaultApprovalDO.class);
+            defaultApproval.setUserId(userId);
+            defaultApprovalMapper.insert(defaultApproval);
+        }
+    }
+
+    @Override
+    public DefaultApprovalRespVO getDefaultApproval() {
+        String userId = getLoginUserId();
+        DefaultApprovalDO defaultApproval = defaultApprovalMapper.selectOne(
+                new LambdaQueryWrapperX<DefaultApprovalDO>().eq(DefaultApprovalDO::getUserId, userId));
+        if (defaultApproval == null) {
+            return null;
+        }
+        DefaultApprovalRespVO respVO = BeanUtils.toBean(defaultApproval, DefaultApprovalRespVO.class);
+        // 补全校核人信息(按id查询)
+        if (defaultApproval.getRecheckId() != null) {
+            List<String> userIds = new ArrayList<>();
+            userIds.add(defaultApproval.getRecheckId());
+            Map<String, AdminUserRespDTO> userMap = adminUserApi.getUserMap(userIds);
+            respVO.setRecheckUser(userMap.get(defaultApproval.getRecheckId()));
+        }
+        // 补全审核人信息(按工号查询)
+        if (defaultApproval.getApproveEmployeeNo() != null) {
+            AdminUserRespDTO approveUser = adminUserApi.getUserByEmployeeNo(defaultApproval.getApproveEmployeeNo()).getCheckedData();
+            respVO.setApproveUser(approveUser);
+        }
+        return respVO;
+    }
+
+    @Override
+    public PageResult<DefaultApprovalDO> getDefaultApprovalPage(DefaultApprovalPageReqVO pageReqVO) {
+        return defaultApprovalMapper.selectPage(pageReqVO);
+    }
+
+    private void validateDefaultApprovalExists(String id) {
+        if (defaultApprovalMapper.selectById(id) == null) {
+            throw exception(DEFAULT_APPROVAL_NOT_EXISTS);
+        }
+    }
+
+}

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

@@ -113,28 +113,28 @@ public class QC10033_202400ReportOFData implements IDynamicOFData {
                     result.put("pressure",equipBoilerDO.getWorkpressure());
                     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 (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));
-                    }
+                //下次耐压检验日期
+                if (equipBoilerDO.getNextPressureCheckDate() != null){
+                    result.put("nextPressureCheckDate1_yearMonth",equipBoilerDO.getNextPressureCheckDate().format(dateFormatMonthYear));
                 }
 
             }
 
             if (taskOrderDO != null){
-                String checkDateStr = taskOrderDO.getCheckDate().format(dateFormat);
+                String checkDateStr = taskOrderDO.getCheckDate() != null ? taskOrderDO.getCheckDate().format(dateFormat) : "";
                 if (itemDO.getEndCheckDate() != null){
                     checkDateStr += " 至 " + itemDO.getEndCheckDate().format(dateFormat);
                 }

+ 4 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/boiler/QC10098_202400RecordOFData.java

@@ -89,6 +89,10 @@ public class QC10098_202400RecordOFData implements IDynamicOFData {
                 if (firstInsDO == null) {
                     result.put("other"," - ");
                     result.put("refluxTemperature",equipBoilerDO.getOilEquipBackTemp());
+
+                    result.put("unitName_edit",equipBoilerDO.getUnitName());
+                    result.put("lstOutCheckProblem_edit",equipBoilerDO.getLastOutCheckProblem());
+
                 }
 
                 //设备信息

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

@@ -124,6 +124,9 @@ public class QC01001_202400OFData implements IDynamicOFData {
                         if (checkTypeDTO != null){
                             checkTypeName = checkTypeDTO.getLabel();
                         }
+
+                        result.put("checkValue2",true);
+
                     }
 
                     String[] orderItemIdArray = orderItemIds.split(",");
@@ -259,6 +262,13 @@ public class QC01001_202400OFData implements IDynamicOFData {
                         if (checkTypeDTO != null){
                             checkTypeName = checkTypeDTO.getLabel();
                         }
+
+                        if (taskOrderDO.getCheckType() == 100){
+                            result.put("checkValue2",true);
+                        }else if (taskOrderDO.getCheckType() == 200){
+                            result.put("checkValue3",true);
+                        }
+
                     }
 
                     String[] equipIdIdArray = orderItems.stream().map(PipeTaskOrderItemDO::getEquipId).toArray(String[]::new);

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

@@ -6,6 +6,7 @@ import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorder.BoilerTaskOrd
 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.boilertaskorderitemreportuser.BoilerTaskOrderItemReportUserDO;
+import cn.start.tz.module.pressure2.dal.dataobject.dynamictbins.DynamicTbInsDO;
 import cn.start.tz.module.pressure2.dal.dataobject.equippipe.EquipPipeDO;
 import cn.start.tz.module.pressure2.dal.dataobject.equippipedetail.EquipPipeDetailDO;
 import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorder.PipeTaskOrderDO;
@@ -26,6 +27,7 @@ import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderitemreportuser.PipeTa
 import cn.start.tz.module.pressure2.service.dynamicOFData.IDynamicOFData;
 import cn.start.tz.module.pressure2.service.dynamicOFData.util.AutoDataBoilerService;
 import cn.start.tz.module.pressure2.service.dynamicOFData.util.AutoDataPipeService;
+import cn.start.tz.module.pressure2.service.dynamictbins.DynamicTbInsService;
 import cn.start.tz.module.pressure2.service.synchronization.dto.PipeDetailDto;
 import cn.start.tz.module.system.api.dict.DictDataApi;
 import cn.start.tz.module.system.api.dict.dto.DictDataRespDTO;
@@ -69,6 +71,9 @@ public class QC47037_202400RecordOFData implements IDynamicOFData {
     @Resource
     private AutoDataPipeService autoDataPipeService;
 
+    @Resource
+    private DynamicTbInsService dynamicTbInsService;
+
     @Override
     public JSONObject getOFData(JSONObject params) {
         return null;
@@ -101,7 +106,7 @@ public class QC47037_202400RecordOFData implements IDynamicOFData {
 
                 // 设置设备编码
                 if (equipBoilerDO != null){
-                    result.put("equipCode",(equipBoilerDO.getFactoryCode() == null ? " - " : equipBoilerDO.getFactoryCode())
+                    result.put("equipCode_edit",(equipBoilerDO.getFactoryCode() == null ? " - " : equipBoilerDO.getFactoryCode())
                             + "/" + (equipBoilerDO.getEquipCode() == null ? " - " : equipBoilerDO.getEquipCode()));
                 }
 
@@ -118,19 +123,26 @@ public class QC47037_202400RecordOFData implements IDynamicOFData {
                 List<PipeTaskOrderItemDO> itemDOList = pipeTaskOrderItemMapper.selectList(new LambdaQueryWrapper<PipeTaskOrderItemDO>()
                         .eq(PipeTaskOrderItemDO::getOrderId, itemReportDO.getOrderId()));
                 if (!itemDOList.isEmpty()){
+
                     //设备信息
                     EquipPipeDO equipDO = equipPipeMapper.selectById(itemDOList.get(0).getEquipId());
+
+                    //只需第一次初始化的数据
+                    DynamicTbInsDO firstInsDO = dynamicTbInsService.getDynamicRefId(refId);
+                    if (firstInsDO == null) {
+                        if (itemDOList.size() > 1){
+                            result.put("equipCode_edit","见一览表");
+                        }else {
+                            if (equipDO != null) {
+                                result.put("equipCode_edit", equipDO.getProjectNo());
+                            }
+                        }
+                    }
+
                     if (equipDO != null){
                         result.put("unitName",equipDO.getUnitName());
                     }
 
-                    if (itemDOList.size() > 1){
-                        result.put("equipCode","见一览表");
-                    }else {
-                        if (equipDO != null) {
-                            result.put("equipCode", equipDO.getProjectNo());
-                        }
-                    }
                 }
 
             }

+ 17 - 9
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/pipe/QC12116_202400RecordOFData.java

@@ -31,6 +31,7 @@ import org.springframework.stereotype.Service;
 import java.math.BigDecimal;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
+import java.util.Comparator;
 import java.util.List;
 
 /**
@@ -100,16 +101,22 @@ public class QC12116_202400RecordOFData implements IDynamicOFData {
                     //一览表生成时先删除所有值,防止设备不对
                     //dynamicTbValService.deleteDynamicTbValByRefId(refId);
 
+                    //只需第一次初始化的数据
+                    if (firstInsDO == null) {
+
+                        result.put("securityDept_edit",equipPipeDO.getDepartment());
+                        result.put("securityMan_edit",equipPipeDO.getSecurityMan());
+                        result.put("contact_edit",equipPipeDO.getContact());
+                        result.put("contactPhone_edit",equipPipeDO.getContactPhone());
+
+                    }
+
                     //设备信息
                     result.put("projectNo",equipPipeDO.getProjectNo());
                     result.put("unitName",equipPipeDO.getUnitName());
                     result.put("unitAddress",equipPipeDO.getUnitAddress());
                     result.put("pipeAddress",equipPipeDO.getPipeAddress());
-                    result.put("securityMan",equipPipeDO.getSecurityMan());
                     result.put("relationDeptName",equipPipeDO.getRelationDeptName());
-                    result.put("securityDept",equipPipeDO.getDepartment());
-                    result.put("contact",equipPipeDO.getContact());
-                    result.put("contactPhone",equipPipeDO.getContactPhone());
                     result.put("projectName",equipPipeDO.getProjectName());
                     result.put("certificateNo",equipPipeDO.getCertificateNo());
 
@@ -118,11 +125,12 @@ public class QC12116_202400RecordOFData implements IDynamicOFData {
                     if (!details.isEmpty()){
                         List<EquipPipeDetailDO> pipeDetails = equipPipeDetailMapper.selectByIds(details.stream().map(PipeTaskOrderItemDetailDO::getEquipDetailId).toList())
                                 .stream()
-                                .sorted((a, b) -> {
-                                    String pipeRegCodeA = a.getPipeRegCode() != null ? a.getPipeRegCode() : "";
-                                    String pipeRegCodeB = b.getPipeRegCode() != null ? b.getPipeRegCode() : "";
-                                    return pipeRegCodeA.compareTo(pipeRegCodeB);
-                                })
+//                                .sorted((a, b) -> {
+//                                    String pipeRegCodeA = a.getPipeRegCode() != null ? a.getPipeRegCode() : "";
+//                                    String pipeRegCodeB = b.getPipeRegCode() != null ? b.getPipeRegCode() : "";
+//                                    return pipeRegCodeA.compareTo(pipeRegCodeB);
+//                                })
+                                .sorted(Comparator.comparing(EquipPipeDetailDO::getSort))
                                 .toList();
                         if (!pipeDetails.isEmpty()){
                             List<String> nos = new ArrayList<>();

+ 26 - 58
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/pipe/QC12133_202400RecordOFData.java

@@ -1,6 +1,7 @@
 package cn.start.tz.module.pressure2.service.dynamicOFData.pipe;
 
 import cn.start.tz.module.pressure2.controller.admin.dynamictbins.vo.CreateInstantiateWithRuleVO;
+import cn.start.tz.module.pressure2.dal.dataobject.dynamictbins.DynamicTbInsDO;
 import cn.start.tz.module.pressure2.dal.dataobject.equippipe.EquipPipeDO;
 import cn.start.tz.module.pressure2.dal.dataobject.equippipedetail.EquipPipeDetailDO;
 import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorder.PipeTaskOrderDO;
@@ -13,7 +14,9 @@ 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.pipetaskorderitemreport.PipeTaskOrderItemReportMapper;
 import cn.start.tz.module.pressure2.service.dynamicOFData.IDynamicOFData;
+import cn.start.tz.module.pressure2.service.dynamicOFData.util.AutoDataPipeService;
 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.pipetaskorderitemdetail.PipeTaskOrderItemDetailService;
 import cn.start.tz.module.system.api.user.AdminUserApi;
@@ -45,19 +48,10 @@ public class QC12133_202400RecordOFData implements IDynamicOFData {
     private PipeTaskOrderItemDetailService pipeTaskOrderItemDetailService;
 
     @Resource
-    private EquipPipeDetailMapper equipPipeDetailMapper;
+    private AutoDataPipeService autoDataPipeService;
 
     @Resource
-    private PipeTaskOrderMapper pipeTaskOrderMapper;
-
-    @Resource
-    private DynamicTbColService dynamicTbColService;
-
-    @Resource
-    private DynamicTbValService dynamicTbValService;
-
-    @Resource
-    private AdminUserApi adminUserApi;
+    private DynamicTbInsService dynamicTbInsService;
 
     @Override
     public JSONObject getOFData(JSONObject params) {
@@ -67,69 +61,43 @@ public class QC12133_202400RecordOFData implements IDynamicOFData {
     @Override
     public JSONObject getOfDataByVO(CreateInstantiateWithRuleVO ruleVO) {
 
-        //日期格式
-        DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy年MM月dd日");
-
         //设备报表ID
         String refId = ruleVO.getRefId();
-        //检验员ID
-        String checkUserId = ruleVO.getParams().getString("checkUserId");
 
-        JSONObject result = new JSONObject();
+        JSONObject result = autoDataPipeService.autoGeneratePipeRecordData(new JSONObject(), refId);
         PipeTaskOrderItemReportDO itemReportDO = pipeTaskOrderItemReportMapper.selectById(refId);
 
-        if (itemReportDO != null){
+        if (itemReportDO != null) {
 
             List<PipeTaskOrderItemDO> itemDOList = pipeTaskOrderItemMapper.selectList(new LambdaQueryWrapper<PipeTaskOrderItemDO>()
                     .eq(PipeTaskOrderItemDO::getOrderId, itemReportDO.getOrderId()));
-            if (!itemDOList.isEmpty()){
+            if (!itemDOList.isEmpty()) {
                 //设备信息
-                if (itemDOList.size() > 1){
-                    result.put("projectNo","见一览表");
-                    result.put("certificateNo","见一览表");
-                }else {
+                if (itemDOList.size() > 1) {
+                    result.put("projectNo", "见一览表");
+                    result.put("projectName", "见一览表");
+                    result.put("certificateNo", "见一览表");
+                } else {
                     EquipPipeDO equipPipeDO = equipPipeMapper.selectById(itemDOList.get(0).getEquipId());
-                    if (equipPipeDO != null){
-                        result.put("projectNo",equipPipeDO.getProjectNo());
-                        result.put("certificateNo",equipPipeDO.getCertificateNo());
+                    if (equipPipeDO != null) {
+                        result.put("projectNo", equipPipeDO.getProjectNo());
+                        result.put("projectName", equipPipeDO.getProjectName());
+                        result.put("certificateNo", equipPipeDO.getCertificateNo());
                     }
                 }
-            }
 
-            //管线信息
-            List<PipeTaskOrderItemDetailDO> details = pipeTaskOrderItemDetailService.lambdaQuery().eq(PipeTaskOrderItemDetailDO::getOrderId,itemReportDO.getOrderId()).list();
-            if (!details.isEmpty()) {
-                List<EquipPipeDetailDO> pipeDetails = equipPipeDetailMapper.selectByIds(details.stream().map(PipeTaskOrderItemDetailDO::getEquipDetailId).toList());
-                if (!pipeDetails.isEmpty()) {
-                    for (int i = 0; i < pipeDetails.size(); i++) {
-                        EquipPipeDetailDO pipeDetail = pipeDetails.get(i);
-                        result.put("pipeNo_" + (i + 1), pipeDetail.getPipeNo());
-                    }
-                }
-            }
+                //只需第一次初始化的数据
+                DynamicTbInsDO firstInsDO = dynamicTbInsService.getDynamicRefId(refId);
+                if (firstInsDO == null) {
 
-            result.put("reportNo",itemReportDO.getReportNo());
+                    int index = 1;
+                    List<EquipPipeDetailDO> equipPipeDetailDOS = pipeTaskOrderItemDetailService.getPipeTaskOrderItemDetailList(itemReportDO.getOrderId());
 
-            //检验员信息
-            String orderId = itemReportDO.getOrderId();
-            PipeTaskOrderDO taskOrderDO =  pipeTaskOrderMapper.selectById(orderId);
-            if (taskOrderDO != null){
-                result.put("checkDate",taskOrderDO.getCheckDate().format(dateFormat));
-            }
-            AdminUserRespDTO userInfo = adminUserApi.getUser(checkUserId).getData();
-            if (userInfo != null){
-                result.put("checkName",userInfo.getSignUrl());
-            }
+                    for (EquipPipeDetailDO equipPipeDetailDO : equipPipeDetailDOS) {
+                        result.put("pipeNo_" + index++, equipPipeDetailDO.getPipeNo());
+                    }
+                }
 
-            //校验人员信息
-            userInfo = adminUserApi.getUser(itemReportDO.getRecheckId()).getData();
-            if (userInfo != null){
-                result.put("recheckName",userInfo.getSignUrl());
-            }else{
-                result.put("recheckName",itemReportDO.getRecheckName());
-            }
-            if (itemReportDO.getRecheckDate() != null){
-                result.put("recheckDate",itemReportDO.getRecheckDate().format(dateFormat));
             }
 
         }

+ 15 - 29
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/pipe/QC12133_202401RecordOFData.java

@@ -1,6 +1,7 @@
 package cn.start.tz.module.pressure2.service.dynamicOFData.pipe;
 
 import cn.start.tz.module.pressure2.controller.admin.dynamictbins.vo.CreateInstantiateWithRuleVO;
+import cn.start.tz.module.pressure2.dal.dataobject.dynamictbins.DynamicTbInsDO;
 import cn.start.tz.module.pressure2.dal.dataobject.equippipe.EquipPipeDO;
 import cn.start.tz.module.pressure2.dal.dataobject.equippipedetail.EquipPipeDetailDO;
 import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorder.PipeTaskOrderDO;
@@ -16,6 +17,7 @@ import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderitemreport.PipeTaskOr
 import cn.start.tz.module.pressure2.service.dynamicOFData.IDynamicOFData;
 import cn.start.tz.module.pressure2.service.dynamicOFData.util.AutoDataPipeService;
 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.pipetaskorderitemdetail.PipeTaskOrderItemDetailService;
 import cn.start.tz.module.system.api.user.AdminUserApi;
@@ -51,16 +53,7 @@ public class QC12133_202401RecordOFData implements IDynamicOFData {
     private EquipPipeDetailMapper equipPipeDetailMapper;
 
     @Resource
-    private PipeTaskOrderMapper pipeTaskOrderMapper;
-
-    @Resource
-    private DynamicTbColService dynamicTbColService;
-
-    @Resource
-    private DynamicTbValService dynamicTbValService;
-
-    @Resource
-    private AdminUserApi adminUserApi;
+    private DynamicTbInsService dynamicTbInsService;
 
     @Resource
     private AutoDataPipeService autoDataPipeService;
@@ -73,13 +66,8 @@ public class QC12133_202401RecordOFData implements IDynamicOFData {
     @Override
     public JSONObject getOfDataByVO(CreateInstantiateWithRuleVO ruleVO) {
 
-        //日期格式
-        DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy年MM月dd日");
-
         //设备报表ID
         String refId = ruleVO.getRefId();
-        //检验员ID
-        String checkUserId = ruleVO.getParams().getString("checkUserId");
 
         JSONObject result = autoDataPipeService.autoGeneratePipeRecordData(new JSONObject(), refId);
         PipeTaskOrderItemReportDO itemReportDO = pipeTaskOrderItemReportMapper.selectById(refId);
@@ -93,28 +81,26 @@ public class QC12133_202401RecordOFData implements IDynamicOFData {
                 if (itemDOList.size() > 1) {
                     result.put("projectNo", "见一览表");
                     result.put("projectName", "见一览表");
+                    result.put("certificateNo", "见一览表");
                 } else {
                     EquipPipeDO equipPipeDO = equipPipeMapper.selectById(itemDOList.get(0).getEquipId());
                     if (equipPipeDO != null) {
                         result.put("projectNo", equipPipeDO.getProjectNo());
                         result.put("projectName", equipPipeDO.getProjectName());
+                        result.put("certificateNo", equipPipeDO.getCertificateNo());
                     }
                 }
-                result.put("certificateNo", "见一览表");
-                int index = 1;
-                /*for (PipeTaskOrderItemDO pipeTaskOrderItemDO : itemDOList) {
-                    EquipPipeDO equipPipeDO = equipPipeMapper.selectById(pipeTaskOrderItemDO.getEquipId());
-                    if (equipPipeDO != null) {
-                        List<EquipPipeDetailDO> equipPipeDetailDOS = equipPipeDetailMapper.selectList(EquipPipeDetailDO::getEquipPipeId, equipPipeDO.getId());
-                        for (EquipPipeDetailDO equipPipeDetailDO : equipPipeDetailDOS) {
-                            result.put("pipeNo_" + index++, equipPipeDetailDO.getPipeNo());
-                        }
-                    }
-                }*/
-                List<EquipPipeDetailDO> equipPipeDetailDOS = pipeTaskOrderItemDetailService.getPipeTaskOrderItemDetailList(itemReportDO.getOrderId());
 
-                for (EquipPipeDetailDO equipPipeDetailDO : equipPipeDetailDOS) {
-                    result.put("pipeNo_" + index++, equipPipeDetailDO.getPipeNo());
+                //只需第一次初始化的数据
+                DynamicTbInsDO firstInsDO = dynamicTbInsService.getDynamicRefId(refId);
+                if (firstInsDO == null) {
+
+                    int index = 1;
+                    List<EquipPipeDetailDO> equipPipeDetailDOS = pipeTaskOrderItemDetailService.getPipeTaskOrderItemDetailList(itemReportDO.getOrderId());
+
+                    for (EquipPipeDetailDO equipPipeDetailDO : equipPipeDetailDOS) {
+                        result.put("pipeNo_" + index++, equipPipeDetailDO.getPipeNo());
+                    }
                 }
 
             }

+ 1 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/equipboilerscheduling/EquipBoilerSchedulingServiceImpl.java

@@ -438,6 +438,7 @@ public class EquipBoilerSchedulingServiceImpl extends ServiceImpl<EquipBoilerSch
                     checkDO.setSchedulingId(item.getId());
                     checkDO.setType(checkItem.getType());
                     checkDO.setCheckId(checkItem.getReportId());
+                    checkDO.setSort(checkItem.getSort());
                     if (checkItem.getNewAmount() != null){
                         checkDO.setFee(BigDecimal.valueOf(checkItem.getNewAmount()));
                     }else {

+ 1 - 1
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/equippipedetail/EquipPipeDetailServiceImpl.java

@@ -96,7 +96,7 @@ public class EquipPipeDetailServiceImpl extends ServiceImpl<EquipPipeDetailMappe
     public List<EquipPipeDetailRespVO> getEquipPipeDetailByEquipPipeId(String equipPipeId) {
         // 显式创建LambdaQueryWrapper对象来避免sqlFirst错误
         LambdaQueryWrapper<EquipPipeDetailDO> queryWrapper = new LambdaQueryWrapper<>();
-        List<EquipPipeDetailDO> list = list(queryWrapper.eq(EquipPipeDetailDO::getEquipPipeId, equipPipeId));
+        List<EquipPipeDetailDO> list = list(queryWrapper.eq(EquipPipeDetailDO::getEquipPipeId, equipPipeId).orderByDesc(EquipPipeDetailDO::getSort));
         return BeanUtils.toBean(list, EquipPipeDetailRespVO.class);
     }
 

+ 1 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/equippipescheduling/EquipPipeSchedulingServiceImpl.java

@@ -492,6 +492,7 @@ public class EquipPipeSchedulingServiceImpl extends ServiceImpl<EquipPipeSchedul
                     checkDO.setSchedulingId(item.getId());
                     checkDO.setCheckId(checkItem.getReportId());
                     checkDO.setType(checkItem.getType());
+                    checkDO.setSort(checkItem.getSort());
                     if (checkItem.getNewAmount() != null){
                         checkDO.setFee(BigDecimal.valueOf(checkItem.getNewAmount()));
                     }else {

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

@@ -94,6 +94,7 @@ public class InspectionNatureTemplateServiceImpl implements InspectionNatureTemp
     public List<InspectionNatureTemplateDO> listByNatureIds(List<String> natureIds) {
         LambdaQueryWrapperX<InspectionNatureTemplateDO> queryWrapperX = new LambdaQueryWrapperX<>();
         queryWrapperX.inIfPresent(InspectionNatureTemplateDO::getInspectionNatureId, natureIds);
+        queryWrapperX.orderByAsc(InspectionNatureTemplateDO::getSort);
         return inspectionNatureTemplateMapper.selectList(queryWrapperX);
     }
 
@@ -101,6 +102,7 @@ public class InspectionNatureTemplateServiceImpl implements InspectionNatureTemp
     public List<InspectionNatureTemplateDO> listByNatureId(String natureId) {
         LambdaQueryWrapperX<InspectionNatureTemplateDO> queryWrapperX = new LambdaQueryWrapperX<>();
         queryWrapperX.eq(InspectionNatureTemplateDO::getInspectionNatureId, natureId);
+        queryWrapperX.orderByAsc(InspectionNatureTemplateDO::getSort);
         return inspectionNatureTemplateMapper.selectList(queryWrapperX);
     }
 
@@ -142,6 +144,7 @@ public class InspectionNatureTemplateServiceImpl implements InspectionNatureTemp
         }
 
         List<InspectionNatureTemplateDO> natureTemplateDOList = inspectionNatureTemplateMapper.selectList(InspectionNatureTemplateDO::getInspectionNatureId, inspectionNatureDO.getId());
+        natureTemplateDOList.sort(Comparator.comparing(InspectionNatureTemplateDO::getSort, Comparator.nullsLast(Comparator.naturalOrder())));
         if(natureTemplateDOList == null){
             return new ArrayList<>();
         }

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

@@ -882,6 +882,7 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
                                 addReport1.setOrderId(taskOrderDO.getId());
                                 addReport1.setTaskStatus(500);
                                 addReport1.setReportNo(reportNo);
+                                addReport1.setSort(item.getSort());
                                 addReport1.setReportUrl(itemDO.getId());
                                 //addReport1.setSort(index.getAndSet(index.get() + 1));
                                 addReport1.setReportType(dynamicTbDO.getTbType());
@@ -901,6 +902,7 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
                                         addInstructionReport.setFeeType(item.getType());
                                         addInstructionReport.setProjectId(recordReportDO.getId());
                                         addInstructionReport.setFee(item.getFee());
+                                        addInstructionReport.setSort(item.getSort());
                                         DynamicTbDO dynamicTbDO1 = dynamicTbMapper.selectById(recordReportDO.getOperationInstruction());
                                         addInstructionReport.setReportName(dynamicTbDO1.getTbName());
                                         addInstructionReport.setReportType(700);
@@ -936,6 +938,7 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
                             addReport1.setOrderId(taskOrderDO.getId());
                             addReport1.setTaskStatus(500);
                             addReport1.setReportNo(reportNo);
+                            addReport1.setSort(item.getSort());
                             //addReport1.setSort(index.getAndSet(index.get() + 1));
                             addReport1.setReportType(dynamicTbDO.getTbType());
                             addReport1.setProjectId(recordReportDO.getId());
@@ -965,6 +968,7 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
                                 addReport1.setOrderId(taskOrderDO.getId());
                                 addReport1.setTaskStatus(520);
                                 addReport1.setReportNo(reportNo);
+                                addReport1.setSort(item.getSort());
                                 //addReport1.setSort(index.getAndSet(index.get() + 1));
                                 // projectType为MAIN的为主报告
                                 String projectType = recordReportDO.getProjectType();
@@ -992,12 +996,12 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
             if (!insertList.isEmpty()){
 
                 //按报告类型排序
-                insertList.sort(Comparator.comparing(PipeTaskOrderItemReportDO::getReportType));
+//                insertList.sort(Comparator.comparing(PipeTaskOrderItemReportDO::getReportType));
                 // 重新设置 sort 字段,确保每个记录都有连续递增的排序值
-                for (int i = 0; i < insertList.size(); i++) {
-                    PipeTaskOrderItemReportDO item = insertList.get(i);
-                    item.setSort(index.getAndSet(index.get() + 1));
-                }
+//                for (int i = 0; i < insertList.size(); i++) {
+//                    PipeTaskOrderItemReportDO item = insertList.get(i);
+//                    item.setSort(index.getAndSet(index.get() + 1));
+//                }
 
                 taskOrderItemReportMapper.insertBatch(insertList);
                 insertList.forEach(item -> {
@@ -1344,11 +1348,13 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
                                 .ifPresent(natureTemplateDO -> {
                                     // 找到匹配的检验性质模版
                                     repsVO.setUse("1".equals(natureTemplateDO.getIsDefault()));
+                                    repsVO.setSort(natureTemplateDO.getSort());
                                 });
                         repsVO.setUse(repsVO.getUse() || "MAIN".equals(templateDO.getProjectType()));
 
                         return repsVO;
                     })
+                    .sorted(Comparator.comparing(BoilerOrderItemCostInfoRepsVO::getSort))
                     .collect(Collectors.toCollection(ArrayList::new)); // 预分配空间
 
             // 外部结果集引用
@@ -1366,10 +1372,12 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
                                 .ifPresent(natureTemplateDO -> {
                                     // 找到匹配的检验性质模版
                                     baseVO.setUse("1".equals(natureTemplateDO.getIsDefault()));
+                                    baseVO.setSort(natureTemplateDO.getSort());
                                 });
                         baseVO.setUse(baseVO.getUse() || "MAIN".equals(templateDO.getProjectType()));
                         return baseVO;
                     })
+                    .sorted(Comparator.comparing(BoilerOrderItemCostInfoRepsVO::getSort))
                     .collect(Collectors.toCollection(ArrayList::new)); // 预分配空间
             // 外部结果集引用
             list.addAll(resultList);
@@ -1413,6 +1421,7 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
                             repsVO.setFee("1".equals(connectRecordReportDO.getIsFee()) ? ConversionUtil.convert(connectRecordReportDO.getFee()) : BigDecimal.ZERO);
                             repsVO.setReportType(dynamicTbDO.getTbType());
                             repsVO.setUse("1".equals(natureTemplateDO.getIsDefault())); // 默认值
+                            repsVO.setSort(natureTemplateDO.getSort());
                             repsVO.setProjectType(connectRecordReportDO.getProjectType());
                             repsVO.setIsMainProject("MAIN".equals(connectRecordReportDO.getProjectType()) ? "1" : "0");
                             repsVO.setDefaultCount(natureTemplateDO.getDefaultCount() != null ? natureTemplateDO.getDefaultCount() : 1);
@@ -1432,6 +1441,7 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
                                 repsVO.setTemplateId(dynamicTbDO.getId());
                                 repsVO.setIsAutoAmount("0");
                                 repsVO.setReportType(dynamicTbDO.getTbType());
+                                repsVO.setSort(natureTemplateDO.getSort());
                                 repsVO.setUse("1".equals(natureTemplateDO.getIsDefault())); // 默认值
                                 repsVO.setProjectType(connectRecordReportDO.getProjectType());
                                 repsVO.setIsMainProject("MAIN".equals(connectRecordReportDO.getProjectType()) ? "1" : "0");
@@ -1446,6 +1456,7 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
                         return null;
                     }
                 })
+                .sorted(Comparator.comparing(BoilerOrderItemCostInfoRepsVO::getSort))
                 .collect(Collectors.toCollection(ArrayList::new)); // 预分配空间
 
         list.addAll(resultList);
@@ -1583,9 +1594,15 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
                 if (reportTemplateDO.getTbType() != null && TaskOrderItemReportTypeEnum.NOTICE_OF_OPINION.getType().intValue() == reportTemplateDO.getTbType()) {
                     addReport.setSort(999);
                 }else{
-                    addReport.setSort(count + 1 + i);
+                    // 其他报告类型根据排序字段排序
+                    if (vo.getSort() != null){
+                        addReport.setSort(vo.getSort());
+                    }else{
+                        addReport.setSort(count + 1 + i);
+                    }
                 }
                 addReport.setFeeType(vo.getType());
+                addReport.setFeeCalculateJson(vo.getFeeCalculateJson());
 
                 // 计算当前是第几个(从 1 开始)
                 int currentIndex = existingTemplateCount + i + 1;
@@ -1629,7 +1646,13 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
                                 addInstructionReport.setTemplateId(connectDO.getOperationInstruction());
                                 addInstructionReport.setOrderId(orderId);
                                 addInstructionReport.setTaskStatus(TaskOrderStatusEnum.ENTER.getStatus());
-                                addInstructionReport.setSort(count + 1 + i);
+                                // 其他报告类型根据排序字段排序
+                                if (vo.getSort() != null){
+                                    addInstructionReport.setSort(vo.getSort());
+                                }else{
+                                    addInstructionReport.setSort(count + 1 + i);
+                                }
+
                                 addInstructionReport.setFeeType(vo.getType());
 
                                 addInstructionReport.setProjectId(connectDO.getId());
@@ -2927,7 +2950,9 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
         // 2. 收集报告的检验人员ID
         List<PipeTaskOrderItemReportDO> itemReportDOS = taskOrderItemReportMapper.selectList(new LambdaQueryWrapperX<PipeTaskOrderItemReportDO>().
                 eq(PipeTaskOrderItemReportDO::getOrderId, taskOrderDO.getId())
-                .orderByAsc(PipeTaskOrderItemReportDO::getSort));
+                .orderByAsc(PipeTaskOrderItemReportDO::getSort)
+                .orderByAsc(PipeTaskOrderItemReportDO::getCreateTime)
+        );
         //.orderByAsc(BoilerTaskOrderItemReportDO::getReportType));
 
         // 检验方案(通过的)
@@ -3536,6 +3561,7 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
         }
 
         String orderId = taskOrderMajorIssuesVO.getOrderId();
+        String reportNo = "";
 
         DynamicTbDO dynamicTbDO = dynamicTbMapper.selectById(taskOrderMajorIssuesVO.getTemplateId());
         if (dynamicTbDO == null) {
@@ -3596,17 +3622,19 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
             if (taskOrderDO != null && taskOrderDO.getSchemeEnterTime() != null){
                 addReport.setPrepareTime(taskOrderDO.getSchemeEnterTime());
             }
+            //检验方案的编号规则特殊
+            addReport.setReportNo(generateOrderItemInspectionPlanReportNo(addReport.getOrderId()));
+        }else{
+            PipeTaskOrderItemReportDO mainReport = taskOrderItemReportMapper.selectOne(new LambdaQueryWrapperX<PipeTaskOrderItemReportDO>().
+                    eq(PipeTaskOrderItemReportDO::getOrderId, taskOrderMajorIssuesVO.getOrderId()), false);
+            if (mainReport != null) {
+                reportNo = mainReport.getReportNo();
+                addReport.setReportNo(reportNo);
+            }
         }
         addReport.setPrepareJson(taskOrderMajorIssuesVO.getPrepareJson());
         addReport.setReportUrl(taskOrderMajorIssuesVO.getReportUrl());
 
-        String reportNo = "";
-        PipeTaskOrderItemReportDO mainReport = taskOrderItemReportMapper.selectOne(new LambdaQueryWrapperX<PipeTaskOrderItemReportDO>().
-                eq(PipeTaskOrderItemReportDO::getOrderId, taskOrderMajorIssuesVO.getOrderId()), false);
-        if (mainReport != null) {
-            reportNo = mainReport.getReportNo();
-        }
-
         // 检验情况告知表
         if (dynamicTbDO.getTbType() != null && TaskOrderItemReportTypeEnum.NOTIFICATION_FORM.getType().intValue() == dynamicTbDO.getTbType()) {
 
@@ -3614,8 +3642,6 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
 
             reportDO.setTaskOrderId(orderId);
             reportDO.setTemplateId(dynamicTbDO.getId());
-            reportDO.setReportNo(reportNo);
-
             notificationformReportMapper.insert(reportDO);
 
             //生成报表数据
@@ -3643,7 +3669,6 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
             return reportDO.getId();
         }
 
-        addReport.setReportNo(reportNo);
         taskOrderItemReportMapper.insert(addReport);
 
         //添加提交人
@@ -3818,6 +3843,33 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
                     }
                 }
             }
+            //一览表回写设备信息逻辑
+            PipeTaskOrderItemReportDO updateReportDO = taskOrderItemReportMapper.selectById(orderItemEnterVO.getId());
+            if (updateReportDO != null) {
+                DynamicTbDO dynamicTbDO = dynamicTbMapper.selectById(updateReportDO.getTemplateId());
+                if (dynamicTbDO != null && dynamicTbDO.getTbCode().contains("QC12116")){
+                    if (updateReportDO.getOrderItemId() != null){
+                        PipeTaskOrderItemDO pipeTaskOrderItemDO = pipeTaskOrderItemMapper.selectById(updateReportDO.getOrderItemId());
+                        if (pipeTaskOrderItemDO != null){
+                            EquipPipeDO updatePipeDO = new EquipPipeDO();
+                            updatePipeDO.setId(pipeTaskOrderItemDO.getEquipId());
+                            if (jsonObject.containsKey("securityMan_edit")) {
+                                updatePipeDO.setSecurityMan(jsonObject.getString("securityMan_edit"));
+                            }
+                            if (jsonObject.containsKey("securityDept_edit")) {
+                                updatePipeDO.setDepartment(jsonObject.getString("securityDept_edit"));
+                            }
+                            if (jsonObject.containsKey("contact_edit")) {
+                                updatePipeDO.setContact(jsonObject.getString("contact_edit"));
+                            }
+                            if (jsonObject.containsKey("contactPhone_edit")) {
+                                updatePipeDO.setContactPhone(jsonObject.getString("contactPhone_edit"));
+                            }
+                            equipPipeMapper.updateById(updatePipeDO);
+                        }
+                    }
+                }
+            }
         }
         if (StringUtils.isNotBlank(orderItemEnterVO.getPrepareUrl())) {
             taskOrderItemReportDO.setPrepareUrl(orderItemEnterVO.getPrepareUrl());
@@ -4580,7 +4632,7 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
                 //orderItemIds为空时则为创建检验方案没有勾选任务单设备
                 if (StringUtils.isNotEmpty(itemReportDO.getOrderItemIdsStr())) {
                     List<String> orderItemIds = List.of(itemReportDO.getOrderItemIdsStr().split(","));
-                    String reportNo = generateOrderItemInspectionPlanReportNo(reportDO.getOrderId());
+//                    String reportNo = generateOrderItemInspectionPlanReportNo(reportDO.getOrderId());
                     taskOrderItemReportDOS.stream().map(item -> {
                         //找出匹配的设备
                         List<String> findList = orderItemIds.stream().filter(x -> x.equals(item.getId())).toList();
@@ -4588,7 +4640,7 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
                             PipeTaskOrderItemReportDO bean = BeanUtils.toBean(reportDO, PipeTaskOrderItemReportDO.class);
                             bean.setId(null);
 //                            bean.setReportNo(reportDO.getReportNo());
-                            bean.setReportNo(reportNo);
+//                            bean.setReportNo(reportNo);
                             bean.setTaskStatus(TaskOrderStatusEnum.REPORT_FINISH.getStatus());
                             bean.setStatus(200);
                             bean.setRatifyId(userId);
@@ -4602,7 +4654,7 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
                         taskOrderItemReportMapper.insert(item);
                         dynamicTbInsService.copyInstantiate(reportDO.getId(), item.getId());
                     });
-                    itemReportDO.setReportNo(reportNo);
+//                    itemReportDO.setReportNo(reportNo);
                 }
             }
 
@@ -5290,19 +5342,40 @@ public class PipeTaskOrderServiceImpl extends ServiceImpl<PipeTaskOrderMapper, P
         }
 
         try {
-            LambdaQueryWrapperX <PipeTaskOrderReportDO> queryWrapperX = new LambdaQueryWrapperX<>();
-            queryWrapperX.eq(PipeTaskOrderReportDO::getTaskStatus, 800);
-            queryWrapperX.eq(PipeTaskOrderReportDO::getOrderId, orderId);
-            List<PipeTaskOrderReportDO> taskOrderReportDOS = taskOrderReportMapper.selectList(queryWrapperX);
+            LambdaQueryWrapperX <PipeTaskOrderItemReportDO> queryWrapperX = new LambdaQueryWrapperX<>();
+            queryWrapperX.eq(PipeTaskOrderItemReportDO::getOrderId, orderId);
+            queryWrapperX.eq(PipeTaskOrderItemReportDO::getReportType, 600);
+            List<PipeTaskOrderItemReportDO> taskOrderReportDOS = taskOrderItemReportMapper.selectList(queryWrapperX);
             PipeTaskOrderDO taskOrderDO = this.pipeTaskOrderMapper.selectById(orderId);
-            if (CollUtil.isNotEmpty(taskOrderReportDOS)) {
-                if (ObjectUtil.isNotEmpty(taskOrderDO)) {
-                    int i = taskOrderReportDOS.size() + 1;
-                    acceptNo = taskOrderDO.getOrderNo() + "-" + i;
+
+            if (ObjectUtil.isNotEmpty(taskOrderDO)) {
+                if (CollUtil.isNotEmpty(taskOrderReportDOS)) {
+                    // 从现有的reportNo中提取数字并找到最大值
+                    int maxNumber = taskOrderReportDOS.stream()
+                            .map(PipeTaskOrderItemReportDO::getReportNo)
+                            .filter(Objects::nonNull)
+                            .map(reportNo -> {
+                                // 提取-后面的数字部分
+                                String[] parts = reportNo.split("-");
+                                if (parts.length > 0) {
+                                    try {
+                                        return Integer.parseInt(parts[parts.length - 1]);
+                                    } catch (NumberFormatException e) {
+                                        return 0;
+                                    }
+                                }
+                                return 0;
+                            })
+                            .max(Integer::compareTo)
+                            .orElse(0);
+
+                    // 最大值加1
+                    acceptNo = taskOrderDO.getOrderNo() + "-" + (maxNumber + 1);
+                } else {
+                    acceptNo = taskOrderDO.getOrderNo() + "-" + 1;
                 }
-            } else {
-                acceptNo = taskOrderDO.getOrderNo() + "-" + 1;
             }
+
         } catch (Exception e) {
             throw new RuntimeException("检验方案任务单设备报告编号创建-执行失败:" + e.getMessage());
         } finally {

+ 1 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/synchronization/SynchronizationServiceImpl.java

@@ -988,6 +988,7 @@ public class SynchronizationServiceImpl implements SynchronizationService {
         String pipeCategory = findDictValueByLabel(systemEquipPipeType, pipeDetailDto.PIPE_CATEGORY);
         equipPipeDetailDO.setPipeCategory(pipeCategory);
         equipPipeDetailDO.setPipeType(pipeDetailDto.PIPE_TYPE);
+        equipPipeDetailDO.setSort(pipeDetailDto.SERIAL_NO);
         return equipPipeDetailDO;
     }
 

+ 5 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/synchronization/dto/PipeDetailDto.java

@@ -173,4 +173,9 @@ public class PipeDetailDto {
      * 管道品种
      */
     public String PIPE_TYPE;
+
+    /**
+     * 序号
+     */
+    public String SERIAL_NO;
 }

+ 4 - 3
tz-module-system/tz-module-system-biz/src/main/java/cn/start/tz/module/system/controller/admin/user/vo/user/UserAssignRoleBatchReqVO.java

@@ -2,7 +2,6 @@ package cn.start.tz.module.system.controller.admin.user.vo.user;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
-import jakarta.validation.constraints.NotEmpty;
 import lombok.Data;
 
 import java.util.List;
@@ -15,7 +14,9 @@ public class UserAssignRoleBatchReqVO {
     @NotBlank(message = "角色ID不能为空")
     private String roleId;
 
-    @Schema(description = "用户ID数组", requiredMode = Schema.RequiredMode.REQUIRED, example = "[\"1\",\"2\"]")
-    @NotEmpty(message = "用户ID数组不能为空")
+    @Schema(description = "需要分配角色的用户ID数组", example = "[\"1\",\"2\"]")
     private List<String> userIds;
+
+    @Schema(description = "需要取消角色的用户ID数组", example = "[\"3\",\"4\"]")
+    private List<String> removeUserIds;
 }

+ 15 - 5
tz-module-system/tz-module-system-biz/src/main/java/cn/start/tz/module/system/service/user/AdminUserServiceImpl.java

@@ -706,11 +706,21 @@ public class AdminUserServiceImpl implements AdminUserService {
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void assignRoleBatch(UserAssignRoleBatchReqVO reqVO) {
-        // 遍历用户列表,为每个用户追加该角色(保留已有角色)
-        for (String userId : reqVO.getUserIds()) {
-            Set<String> existingRoleIds = permissionService.getUserRoleIdListByUserId(userId);
-            existingRoleIds.add(reqVO.getRoleId());
-            permissionService.assignUserRole(userId, existingRoleIds);
+        // 遍历需要分配角色的用户列表,为每个用户追加该角色(保留已有角色)
+        if (CollUtil.isNotEmpty(reqVO.getUserIds())) {
+            for (String userId : reqVO.getUserIds()) {
+                Set<String> existingRoleIds = permissionService.getUserRoleIdListByUserId(userId);
+                existingRoleIds.add(reqVO.getRoleId());
+                permissionService.assignUserRole(userId, existingRoleIds);
+            }
+        }
+        // 遍历需要取消角色的用户列表,为每个用户移除该角色
+        if (CollUtil.isNotEmpty(reqVO.getRemoveUserIds())) {
+            for (String userId : reqVO.getRemoveUserIds()) {
+                Set<String> existingRoleIds = permissionService.getUserRoleIdListByUserId(userId);
+                existingRoleIds.remove(reqVO.getRoleId());
+                permissionService.assignUserRole(userId, existingRoleIds);
+            }
         }
     }