Browse Source

管道使用登记表

xy 4 weeks ago
parent
commit
11b71abdbf
14 changed files with 874 additions and 5 deletions
  1. 3 0
      tz-module-pressure2/tz-module-pressure2-api/src/main/java/cn/start/tz/module/pressure2/constant/TemplateIdConstants.java
  2. 2 0
      tz-module-pressure2/tz-module-pressure2-api/src/main/java/cn/start/tz/module/pressure2/enums/ErrorCodeConstants.java
  3. 98 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/pipeuseregistrationreport/PipeUseRegistrationReportController.java
  4. 29 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/pipeuseregistrationreport/vo/PipeUseRegistrationReportAuditReqVO.java
  5. 75 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/pipeuseregistrationreport/vo/PipeUseRegistrationReportPageReqVO.java
  6. 89 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/pipeuseregistrationreport/vo/PipeUseRegistrationReportRespVO.java
  7. 65 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/pipeuseregistrationreport/vo/PipeUseRegistrationReportSaveReqVO.java
  8. 97 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/dal/dataobject/pipeuseregistrationreport/PipeUseRegistrationReportDO.java
  9. 56 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/dal/mysql/pipeuseregistrationreport/PipeUseRegistrationReportMapper.java
  10. 5 5
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/pipe/QC12016_202401JRecordOFData.java
  11. 9 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipetaskorderitemreport/PipeTaskOrderItemReportServiceImpl.java
  12. 61 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipeuseregistrationreport/PipeUseRegistrationReportService.java
  13. 273 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipeuseregistrationreport/PipeUseRegistrationReportServiceImpl.java
  14. 12 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/resources/mapper/pipeuseregistrationreport/PipeUseRegistrationReportMapper.xml

+ 3 - 0
tz-module-pressure2/tz-module-pressure2-api/src/main/java/cn/start/tz/module/pressure2/constant/TemplateIdConstants.java

@@ -18,4 +18,7 @@ public final class TemplateIdConstants {
     // 安全检查
     public static final String A_Q_J_C_G_Z_D = "3ccb98222ea3d4b3a831461c0681b324";
 
+    //管道使用登记表
+    public static final String G_D_S_Y_D_J_B = "3ccb98222ea3d4b3a831461c0681b324";
+
 }

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

@@ -135,6 +135,8 @@ public interface ErrorCodeConstants{
 
     ErrorCode ORDER_ITEM_REPORT_COMPLETED_NOT_EXISTS = new ErrorCode(1065, "任务单设备报告办结上报记录不存在");
 
+    ErrorCode PIPE_USE_REGISTRATION_REPORT_NOT_EXISTS = new ErrorCode(1066, "管道使用登记不存在");
+
     ErrorCode EQUIP_BOILER_NOT_EXISTS = new ErrorCode(2000, "锅炉设备不存在");
 
     ErrorCode BOILER_EQUIP_OPERATION_RECORD_NOT_EXISTS = new ErrorCode(2001, "锅炉操作记录不存在");

+ 98 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/pipeuseregistrationreport/PipeUseRegistrationReportController.java

@@ -0,0 +1,98 @@
+package cn.start.tz.module.pressure2.controller.admin.pipeuseregistrationreport;
+
+import org.springframework.web.bind.annotation.*;
+import jakarta.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.security.access.prepost.PreAuthorize;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Operation;
+
+import jakarta.validation.constraints.*;
+import jakarta.validation.*;
+import jakarta.servlet.http.*;
+import java.util.*;
+import java.io.IOException;
+
+import cn.start.tz.framework.common.pojo.PageParam;
+import cn.start.tz.framework.common.pojo.PageResult;
+import cn.start.tz.framework.common.pojo.CommonResult;
+import cn.start.tz.framework.common.util.object.BeanUtils;
+import static cn.start.tz.framework.common.pojo.CommonResult.success;
+
+import cn.start.tz.framework.excel.core.util.ExcelUtils;
+
+import cn.start.tz.framework.apilog.core.annotation.ApiAccessLog;
+import static cn.start.tz.framework.apilog.core.enums.OperateTypeEnum.*;
+
+import cn.start.tz.module.pressure2.controller.admin.pipeuseregistrationreport.vo.*;
+import cn.start.tz.module.pressure2.dal.dataobject.pipeuseregistrationreport.PipeUseRegistrationReportDO;
+import cn.start.tz.module.pressure2.service.pipeuseregistrationreport.PipeUseRegistrationReportService;
+
+@Tag(name = "管理后台 - 管道使用登记")
+@RestController
+@RequestMapping("/pressure2/pipe-use-registration-report")
+@Validated
+public class PipeUseRegistrationReportController {
+
+    @Resource
+    private PipeUseRegistrationReportService pipeUseRegistrationReportService;
+
+    @PostMapping("/create")
+    @Operation(summary = "创建管道使用登记")
+    public CommonResult<String> createPipeUseRegistrationReport(@Valid @RequestBody PipeUseRegistrationReportSaveReqVO createReqVO) {
+        return success(pipeUseRegistrationReportService.createPipeUseRegistrationReport(createReqVO));
+    }
+
+    @PutMapping("/update")
+    @Operation(summary = "更新管道使用登记")
+    public CommonResult<Boolean> updatePipeUseRegistrationReport(@Valid @RequestBody PipeUseRegistrationReportSaveReqVO updateReqVO) {
+        pipeUseRegistrationReportService.updatePipeUseRegistrationReport(updateReqVO);
+        return success(true);
+    }
+
+    @DeleteMapping("/delete")
+    @Operation(summary = "删除管道使用登记")
+    @Parameter(name = "id", description = "编号", required = true)
+    public CommonResult<Boolean> deletePipeUseRegistrationReport(@RequestParam("id") String id) {
+        pipeUseRegistrationReportService.deletePipeUseRegistrationReport(id);
+        return success(true);
+    }
+
+    @GetMapping("/get")
+    @Operation(summary = "获得管道使用登记")
+    @Parameter(name = "id", description = "编号", required = true, example = "1024")
+    public CommonResult<PipeUseRegistrationReportRespVO> getPipeUseRegistrationReport(@RequestParam("id") String id) {
+        PipeUseRegistrationReportDO pipeUseRegistrationReport = pipeUseRegistrationReportService.getPipeUseRegistrationReport(id);
+        return success(BeanUtils.toBean(pipeUseRegistrationReport, PipeUseRegistrationReportRespVO.class));
+    }
+
+    @GetMapping("/page")
+    @Operation(summary = "获得管道使用登记分页")
+    public CommonResult<PageResult<PipeUseRegistrationReportRespVO>> getPipeUseRegistrationReportPage(@Valid PipeUseRegistrationReportPageReqVO pageReqVO) {
+        PageResult<PipeUseRegistrationReportRespVO> pageResult = pipeUseRegistrationReportService.getPipeUseRegistrationReportPage(pageReqVO);
+        return success(BeanUtils.toBean(pageResult, PipeUseRegistrationReportRespVO.class));
+    }
+
+    @PostMapping("/generate")
+    @Operation(summary = "生成管道使用登记表")
+    public CommonResult<Boolean> generatePipeUseRegistrationReport(@Valid @RequestBody PipeUseRegistrationReportSaveReqVO createReqVO) {
+        pipeUseRegistrationReportService.generatePipeUseRegistrationReport(createReqVO.getTaskOrderId());
+        return success(true);
+    }
+
+    @PostMapping("/audit")
+    @Operation(summary = "发起审核")
+    public CommonResult<Boolean> auditPipeUseRegistrationReport(@Valid @RequestBody PipeUseRegistrationReportAuditReqVO auditReqVO) {
+        pipeUseRegistrationReportService.auditPipeUseRegistrationReport(auditReqVO);
+        return success(true);
+    }
+
+    @PostMapping("/approve")
+    @Operation(summary = "通过/拒绝")
+    public CommonResult<Boolean> approvePipeUseRegistrationReport(@Valid @RequestBody PipeUseRegistrationReportAuditReqVO auditReqVO) {
+        pipeUseRegistrationReportService.approvePipeUseRegistrationReport(auditReqVO);
+        return success(true);
+    }
+
+}

+ 29 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/pipeuseregistrationreport/vo/PipeUseRegistrationReportAuditReqVO.java

@@ -0,0 +1,29 @@
+package cn.start.tz.module.pressure2.controller.admin.pipeuseregistrationreport.vo;
+
+import cn.start.tz.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+import static cn.start.tz.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - 管道使用登记分页 Request VO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class PipeUseRegistrationReportAuditReqVO extends PageParam {
+
+    private String id;
+
+    private Integer status;
+
+    private String reason;
+
+    private String approverId;
+
+}

+ 75 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/pipeuseregistrationreport/vo/PipeUseRegistrationReportPageReqVO.java

@@ -0,0 +1,75 @@
+package cn.start.tz.module.pressure2.controller.admin.pipeuseregistrationreport.vo;
+
+import lombok.*;
+import java.util.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+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 = "管理后台 - 管道使用登记分页 Request VO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class PipeUseRegistrationReportPageReqVO extends PageParam {
+
+    @Schema(description = "任务单号", example = "29512")
+    private String taskOrderId;
+
+    @Schema(description = "模板ID", example = "2466")
+    private String templateId;
+
+    @Schema(description = "创建时间")
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    private LocalDateTime[] createTime;
+
+    @Schema(description = "报表编号")
+    private String reportNo;
+
+    @Schema(description = "审核状态", example = "1")
+    private List<Integer> status;
+
+    @Schema(description = "备注", example = "随便")
+    private String remark;
+
+    @Schema(description = "报告名称", example = "赵六")
+    private String reportName;
+
+    @Schema(description = "审核人", example = "6705")
+    private String approvalId;
+
+    @Schema(description = "审核时间")
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    private LocalDateTime[] approvalTime;
+
+    @Schema(description = "审核人名称", example = "张三")
+    private String approvalName;
+
+    @Schema(description = "提交人", example = "531")
+    private String submitId;
+
+    @Schema(description = "提交时间")
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    private LocalDateTime[] submitTime;
+
+    @Schema(description = "提交人名称", example = "芋艿")
+    private String submitName;
+
+    @Schema(description = "工程号")
+    private String projectNo;
+
+    @Schema(description = "使用单位名称", example = "王五")
+    private String unitName;
+
+    @Schema(description = "使用登记证编号")
+    private String certificateNo;
+
+    @Schema(description = "部门ID", example = "6736")
+    private String deptId;
+
+    @Schema(description = "是否有使用登记证编号(1=有,0=无)")
+    private String hasCertificateNo;
+
+}

+ 89 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/pipeuseregistrationreport/vo/PipeUseRegistrationReportRespVO.java

@@ -0,0 +1,89 @@
+package cn.start.tz.module.pressure2.controller.admin.pipeuseregistrationreport.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+import com.alibaba.excel.annotation.*;
+
+@Schema(description = "管理后台 - 管道使用登记 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class PipeUseRegistrationReportRespVO {
+
+    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "20216")
+    @ExcelProperty("主键")
+    private String id;
+
+    @Schema(description = "任务单号", example = "29512")
+    @ExcelProperty("任务单号")
+    private String taskOrderId;
+
+    @Schema(description = "模板ID", example = "2466")
+    @ExcelProperty("模板ID")
+    private String templateId;
+
+    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("创建时间")
+    private LocalDateTime createTime;
+
+    @Schema(description = "报表编号")
+    @ExcelProperty("报表编号")
+    private String reportNo;
+
+    @Schema(description = "审核状态", example = "1")
+    @ExcelProperty("审核状态")
+    private Integer status;
+
+    @Schema(description = "备注", example = "随便")
+    @ExcelProperty("备注")
+    private String remark;
+
+    @Schema(description = "报告名称", example = "赵六")
+    @ExcelProperty("报告名称")
+    private String reportName;
+
+    @Schema(description = "审核人", example = "6705")
+    @ExcelProperty("审核人")
+    private String approvalId;
+
+    @Schema(description = "审核时间")
+    @ExcelProperty("审核时间")
+    private LocalDateTime approvalTime;
+
+    @Schema(description = "审核人名称", example = "张三")
+    @ExcelProperty("审核人名称")
+    private String approvalName;
+
+    @Schema(description = "提交人", example = "531")
+    @ExcelProperty("提交人")
+    private String submitId;
+
+    @Schema(description = "提交时间")
+    @ExcelProperty("提交时间")
+    private LocalDateTime submitTime;
+
+    @Schema(description = "提交人名称", example = "芋艿")
+    @ExcelProperty("提交人名称")
+    private String submitName;
+
+    @Schema(description = "工程号")
+    @ExcelProperty("工程号")
+    private String projectNo;
+
+    @Schema(description = "使用单位名称", example = "王五")
+    @ExcelProperty("使用单位名称")
+    private String unitName;
+
+    @Schema(description = "使用登记证编号")
+    @ExcelProperty("使用登记证编号")
+    private String certificateNo;
+
+    @Schema(description = "部门ID", example = "6736")
+    @ExcelProperty("部门ID")
+    private String deptId;
+
+    private String deptName;
+
+}

+ 65 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/pipeuseregistrationreport/vo/PipeUseRegistrationReportSaveReqVO.java

@@ -0,0 +1,65 @@
+package cn.start.tz.module.pressure2.controller.admin.pipeuseregistrationreport.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import jakarta.validation.constraints.*;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+
+@Schema(description = "管理后台 - 管道使用登记新增/修改 Request VO")
+@Data
+public class PipeUseRegistrationReportSaveReqVO {
+
+    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "20216")
+    private String id;
+
+    @Schema(description = "任务单号", example = "29512")
+    private String taskOrderId;
+
+    @Schema(description = "模板ID", example = "2466")
+    private String templateId;
+
+    @Schema(description = "报表编号")
+    private String reportNo;
+
+    @Schema(description = "审核状态", example = "1")
+    private Integer status;
+
+    @Schema(description = "备注", example = "随便")
+    private String remark;
+
+    @Schema(description = "报告名称", example = "赵六")
+    private String reportName;
+
+    @Schema(description = "审核人", example = "6705")
+    private String approvalId;
+
+    @Schema(description = "审核时间")
+    private LocalDateTime approvalTime;
+
+    @Schema(description = "审核人名称", example = "张三")
+    private String approvalName;
+
+    @Schema(description = "提交人", example = "531")
+    private String submitId;
+
+    @Schema(description = "提交时间")
+    private LocalDateTime submitTime;
+
+    @Schema(description = "提交人名称", example = "芋艿")
+    private String submitName;
+
+    @Schema(description = "工程号")
+    private String projectNo;
+
+    @Schema(description = "使用单位名称", example = "王五")
+    private String unitName;
+
+    @Schema(description = "使用登记证编号")
+    private String certificateNo;
+
+    @Schema(description = "部门ID", example = "6736")
+    private String deptId;
+
+}

+ 97 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/dal/dataobject/pipeuseregistrationreport/PipeUseRegistrationReportDO.java

@@ -0,0 +1,97 @@
+package cn.start.tz.module.pressure2.dal.dataobject.pipeuseregistrationreport;
+
+import lombok.*;
+import java.util.*;
+import java.time.LocalDateTime;
+import java.time.LocalDateTime;
+import java.time.LocalDateTime;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.*;
+import cn.start.tz.framework.mybatis.core.dataobject.BaseDO;
+
+/**
+ * 管道使用登记 DO
+ *
+ * @author 特种管理员
+ */
+@TableName("pressure2_pipe_use_registration_report")
+@KeySequence("pressure2_pipe_use_registration_report_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class PipeUseRegistrationReportDO extends BaseDO {
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.ASSIGN_UUID)
+    private String id;
+    /**
+     * 任务单号
+     */
+    private String taskOrderId;
+    /**
+     * 模板ID
+     */
+    private String templateId;
+    /**
+     * 报表编号
+     */
+    private String reportNo;
+    /**
+     * 审核状态
+     */
+    private Integer status;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 报告名称
+     */
+    private String reportName;
+    /**
+     * 审核人
+     */
+    private String approvalId;
+    /**
+     * 审核时间
+     */
+    private LocalDateTime approvalTime;
+    /**
+     * 审核人名称
+     */
+    private String approvalName;
+    /**
+     * 提交人
+     */
+    private String submitId;
+    /**
+     * 提交时间
+     */
+    private LocalDateTime submitTime;
+    /**
+     * 提交人名称
+     */
+    private String submitName;
+    /**
+     * 工程号
+     */
+    private String projectNo;
+    /**
+     * 使用单位名称
+     */
+    private String unitName;
+    /**
+     * 使用登记证编号
+     */
+    private String certificateNo;
+    /**
+     * 部门ID
+     */
+    private String deptId;
+
+}

+ 56 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/dal/mysql/pipeuseregistrationreport/PipeUseRegistrationReportMapper.java

@@ -0,0 +1,56 @@
+package cn.start.tz.module.pressure2.dal.mysql.pipeuseregistrationreport;
+
+import java.util.*;
+
+import cn.start.tz.framework.common.pojo.PageResult;
+import cn.start.tz.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.start.tz.framework.mybatis.core.mapper.BaseMapperX;
+import cn.start.tz.framework.mybatis.core.query.MPJLambdaWrapperX;
+import cn.start.tz.module.pressure2.controller.admin.boilertaskorder.vo.BoilerTaskOrderPageReqVO;
+import cn.start.tz.module.pressure2.controller.admin.pipetaskorder.vo.PipeOrderItemPageRespVO;
+import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitem.PipeTaskOrderItemDO;
+import cn.start.tz.module.pressure2.dal.dataobject.pipeuseregistrationreport.PipeUseRegistrationReportDO;
+import org.apache.ibatis.annotations.Mapper;
+import cn.start.tz.module.pressure2.controller.admin.pipeuseregistrationreport.vo.*;
+
+/**
+ * 管道使用登记 Mapper
+ *
+ * @author 特种管理员
+ */
+@Mapper
+public interface PipeUseRegistrationReportMapper extends BaseMapperX<PipeUseRegistrationReportDO> {
+
+    default PageResult<PipeUseRegistrationReportDO> selectPage(PipeUseRegistrationReportPageReqVO reqVO) {
+        return selectPage(reqVO, new LambdaQueryWrapperX<PipeUseRegistrationReportDO>()
+                .likeIfPresent(PipeUseRegistrationReportDO::getTaskOrderId, reqVO.getTaskOrderId())
+                .eqIfPresent(PipeUseRegistrationReportDO::getTemplateId, reqVO.getTemplateId())
+                .betweenIfPresent(PipeUseRegistrationReportDO::getCreateTime, reqVO.getCreateTime())
+                .likeIfPresent(PipeUseRegistrationReportDO::getReportNo, reqVO.getReportNo())
+                .inIfPresent(PipeUseRegistrationReportDO::getStatus, reqVO.getStatus())
+                .likeIfPresent(PipeUseRegistrationReportDO::getRemark, reqVO.getRemark())
+                .likeIfPresent(PipeUseRegistrationReportDO::getReportName, reqVO.getReportName())
+                .eqIfPresent(PipeUseRegistrationReportDO::getApprovalId, reqVO.getApprovalId())
+                .betweenIfPresent(PipeUseRegistrationReportDO::getApprovalTime, reqVO.getApprovalTime())
+                .likeIfPresent(PipeUseRegistrationReportDO::getApprovalName, reqVO.getApprovalName())
+                .eqIfPresent(PipeUseRegistrationReportDO::getSubmitId, reqVO.getSubmitId())
+                .betweenIfPresent(PipeUseRegistrationReportDO::getSubmitTime, reqVO.getSubmitTime())
+                .likeIfPresent(PipeUseRegistrationReportDO::getSubmitName, reqVO.getSubmitName())
+                .likeIfPresent(PipeUseRegistrationReportDO::getProjectNo, reqVO.getProjectNo())
+                .likeIfPresent(PipeUseRegistrationReportDO::getUnitName, reqVO.getUnitName())
+                .likeIfPresent(PipeUseRegistrationReportDO::getCertificateNo, reqVO.getCertificateNo())
+                .eqIfPresent(PipeUseRegistrationReportDO::getDeptId, reqVO.getDeptId())
+                .and(reqVO.getHasCertificateNo() != null, wrapper -> {
+                    if ("1".equals(reqVO.getHasCertificateNo())) {
+                        wrapper.isNotNull(PipeUseRegistrationReportDO::getCertificateNo)
+                               .ne(PipeUseRegistrationReportDO::getCertificateNo, "");
+                    } else if ("0".equals(reqVO.getHasCertificateNo())) {
+                        wrapper.and(w -> w.isNull(PipeUseRegistrationReportDO::getCertificateNo)
+                                         .or()
+                                         .eq(PipeUseRegistrationReportDO::getCertificateNo, ""));
+                    }
+                })
+                .orderByDesc(PipeUseRegistrationReportDO::getId));
+    }
+
+}

+ 5 - 5
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/pipe/QC12016_202401JRecordOFData.java

@@ -138,15 +138,15 @@ public class QC12016_202401JRecordOFData implements IDynamicOFData {
                         //获取约检管线
                         List<PipeTaskOrderItemDetailDO> detailDOS = pipeTaskOrderItemDetailMapper.selectList(PipeTaskOrderItemDetailDO::getOrderId, itemReportDO.getOrderId());
                         if (!detailDOS.isEmpty()){
-                            //获取任意一条管线
-//                            EquipPipeDetailDO detailDO = equipPipeDetailMapper.selectById(detailDOS.get(0).getEquipDetailId());
-//                            if (detailDO != null){
-//                                result.put("pipeName1",detailDO.getPipeName());
-//                            }
 
                             //调整成多条默认"见一览表"
                             if (detailDOS.size() > 1) {
                                 result.put("pipeName1", "见一览表");
+                            }else{
+                                EquipPipeDetailDO detailDO = equipPipeDetailMapper.selectById(detailDOS.get(0).getEquipDetailId());
+                                if (detailDO != null){
+                                    result.put("pipeName1",detailDO.getPipeName());
+                                }
                             }
                         }
                     }

+ 9 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipetaskorderitemreport/PipeTaskOrderItemReportServiceImpl.java

@@ -37,6 +37,7 @@ import cn.start.tz.module.pressure2.service.externalOA.vo.ExternalOACommentRes;
 import cn.start.tz.module.pressure2.service.externalOA.vo.ExternalOARes;
 import cn.start.tz.module.pressure2.service.pipetaskorder.PipeTaskOrderService;
 import cn.start.tz.module.pressure2.service.pipetaskorderissuereport.PipeTaskOrderIssueReportService;
+import cn.start.tz.module.pressure2.service.pipeuseregistrationreport.PipeUseRegistrationReportService;
 import cn.start.tz.module.pressure2.service.pushtaskorder.PushTaskOrderService;
 import cn.start.tz.module.pressure2.service.synchronization.SynchronizationService;
 import cn.start.tz.module.pressure2.service.taskordernontaxapply.TaskOrderNonTaxApplyService;
@@ -93,6 +94,9 @@ public class PipeTaskOrderItemReportServiceImpl extends ServiceImpl<PipeTaskOrde
     @Resource
     private PipeTaskOrderInputMapper pipeTaskOrderInputMapper;
 
+    @Resource
+    private PipeUseRegistrationReportService pipeUseRegistrationReportService;
+
     @Override
     public String createPipeTaskOrderItemReport(PipeTaskOrderItemReportSaveReqVO createReqVO) {
         // 插入
@@ -840,6 +844,11 @@ public class PipeTaskOrderItemReportServiceImpl extends ServiceImpl<PipeTaskOrde
             updateBySubReport.set(PipeTaskOrderItemReportDO::getRatifyTime, updateObj.getRatifyTime());
             taskOrderItemReportMapper.update(updateBySubReport);
 
+            //定检需要生成使用登记表
+            if (EquipmentCheckTypeEnum.PERIODICAL_SURVEY.getType().equals(pipeTaskOrderDO.getCheckType())) {
+                pipeUseRegistrationReportService.generatePipeUseRegistrationReport(pipeTaskOrderDO.getId());
+            }
+
         }
 
     }

+ 61 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipeuseregistrationreport/PipeUseRegistrationReportService.java

@@ -0,0 +1,61 @@
+package cn.start.tz.module.pressure2.service.pipeuseregistrationreport;
+
+import java.util.*;
+import jakarta.validation.*;
+import cn.start.tz.module.pressure2.controller.admin.pipeuseregistrationreport.vo.*;
+import cn.start.tz.module.pressure2.dal.dataobject.pipeuseregistrationreport.PipeUseRegistrationReportDO;
+import cn.start.tz.framework.common.pojo.PageResult;
+import cn.start.tz.framework.common.pojo.PageParam;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * 管道使用登记 Service 接口
+ *
+ * @author 特种管理员
+ */
+public interface PipeUseRegistrationReportService extends IService<PipeUseRegistrationReportDO>  {
+
+    /**
+     * 创建管道使用登记
+     *
+     * @param createReqVO 创建信息
+     * @return 编号
+     */
+    String createPipeUseRegistrationReport(@Valid PipeUseRegistrationReportSaveReqVO createReqVO);
+
+    /**
+     * 更新管道使用登记
+     *
+     * @param updateReqVO 更新信息
+     */
+    void updatePipeUseRegistrationReport(@Valid PipeUseRegistrationReportSaveReqVO updateReqVO);
+
+    /**
+     * 删除管道使用登记
+     *
+     * @param id 编号
+     */
+    void deletePipeUseRegistrationReport(String id);
+
+    /**
+     * 获得管道使用登记
+     *
+     * @param id 编号
+     * @return 管道使用登记
+     */
+    PipeUseRegistrationReportDO getPipeUseRegistrationReport(String id);
+
+    /**
+     * 获得管道使用登记分页
+     *
+     * @param pageReqVO 分页查询
+     * @return 管道使用登记分页
+     */
+    PageResult<PipeUseRegistrationReportRespVO> getPipeUseRegistrationReportPage(PipeUseRegistrationReportPageReqVO pageReqVO);
+
+    void generatePipeUseRegistrationReport(String orderId);
+
+    void auditPipeUseRegistrationReport(PipeUseRegistrationReportAuditReqVO auditReqVO);
+
+    void approvePipeUseRegistrationReport(PipeUseRegistrationReportAuditReqVO auditReqVO);
+}

+ 273 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipeuseregistrationreport/PipeUseRegistrationReportServiceImpl.java

@@ -0,0 +1,273 @@
+package cn.start.tz.module.pressure2.service.pipeuseregistrationreport;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.start.tz.framework.common.exception.ErrorCode;
+import cn.start.tz.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.start.tz.framework.security.core.service.SecurityFrameworkService;
+import cn.start.tz.module.bpm.api.task.dto.BpmUserGroupDTO;
+import cn.start.tz.module.member.api.user.MemberUserApi;
+import cn.start.tz.module.member.api.user.dto.MemberUserRespDTO;
+import cn.start.tz.module.pressure2.constant.TemplateIdConstants;
+import cn.start.tz.module.pressure2.controller.admin.dynamictbins.vo.CreateInstantiateWithRuleVO;
+import cn.start.tz.module.pressure2.controller.admin.pipetaskorder.vo.PipeOrderItemPageRespVO;
+import cn.start.tz.module.pressure2.dal.dataobject.boilerconnecttbservice.BoilerConnectTbServiceDO;
+import cn.start.tz.module.pressure2.dal.dataobject.dynamictb.DynamicTbDO;
+import cn.start.tz.module.pressure2.dal.dataobject.equippipe.EquipPipeDO;
+import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorder.PipeTaskOrderDO;
+import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitem.PipeTaskOrderItemDO;
+import cn.start.tz.module.pressure2.dal.mysql.boilerconnecttbservice.BoilerConnectTbServiceMapper;
+import cn.start.tz.module.pressure2.dal.mysql.dynamictb.DynamicTbMapper;
+import cn.start.tz.module.pressure2.dal.mysql.equippipe.EquipPipeMapper;
+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.dynamictbins.DynamicTbInsService;
+import cn.start.tz.module.system.api.dept.DeptApi;
+import cn.start.tz.module.system.api.dept.dto.DeptRespDTO;
+import cn.start.tz.module.system.api.user.AdminUserApi;
+import cn.start.tz.module.system.api.user.dto.AdminUserRespDTO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import jakarta.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.transaction.annotation.Transactional;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+import java.time.LocalDateTime;
+import java.util.*;
+import cn.start.tz.module.pressure2.controller.admin.pipeuseregistrationreport.vo.*;
+import cn.start.tz.module.pressure2.dal.dataobject.pipeuseregistrationreport.PipeUseRegistrationReportDO;
+import cn.start.tz.framework.common.pojo.PageResult;
+import cn.start.tz.framework.common.pojo.PageParam;
+import cn.start.tz.framework.common.util.object.BeanUtils;
+
+import cn.start.tz.module.pressure2.dal.mysql.pipeuseregistrationreport.PipeUseRegistrationReportMapper;
+
+import static cn.start.tz.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.start.tz.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
+import static cn.start.tz.module.pressure2.enums.ErrorCodeConstants.*;
+
+/**
+ * 管道使用登记 Service 实现类
+ *
+ * @author 特种管理员
+ */
+@Service
+@Validated
+public class PipeUseRegistrationReportServiceImpl extends ServiceImpl<PipeUseRegistrationReportMapper, PipeUseRegistrationReportDO> implements PipeUseRegistrationReportService {
+
+    @Resource
+    private PipeUseRegistrationReportMapper pipeUseRegistrationReportMapper;
+
+    @Resource
+    private PipeTaskOrderMapper pipeTaskOrderMapper;
+
+    @Resource
+    private PipeTaskOrderItemMapper pipeTaskOrderItemMapper;
+
+    @Resource
+    private PipeTaskOrderItemReportMapper pipeTaskOrderItemReportMapper;
+
+    @Resource
+    private EquipPipeMapper equipPipeMapper;
+
+    @Resource
+    private DynamicTbMapper dynamicTbMapper;
+
+    @Resource
+    private DeptApi deptApi;
+
+    @Resource
+    private AdminUserApi adminUserApi;
+
+    @Resource
+    private DynamicTbInsService dynamicTbInsService;
+
+    @Resource
+    private BoilerConnectTbServiceMapper boilerConnectTbServiceMapper;
+
+    @Resource
+    private SecurityFrameworkService securityFrameworkService;
+
+    @Override
+    public String createPipeUseRegistrationReport(PipeUseRegistrationReportSaveReqVO createReqVO) {
+
+        // 插入
+        PipeUseRegistrationReportDO pipeUseRegistrationReport = BeanUtils.toBean(createReqVO, PipeUseRegistrationReportDO.class);
+        pipeUseRegistrationReportMapper.insert(pipeUseRegistrationReport);
+        // 返回
+        return pipeUseRegistrationReport.getId();
+    }
+
+    @Override
+    public void updatePipeUseRegistrationReport(PipeUseRegistrationReportSaveReqVO updateReqVO) {
+        // 校验存在
+        validatePipeUseRegistrationReportExists(updateReqVO.getId());
+        // 更新
+        PipeUseRegistrationReportDO updateObj = BeanUtils.toBean(updateReqVO, PipeUseRegistrationReportDO.class);
+        pipeUseRegistrationReportMapper.updateById(updateObj);
+    }
+
+    @Override
+    public void deletePipeUseRegistrationReport(String id) {
+        // 校验存在
+        validatePipeUseRegistrationReportExists(id);
+        // 删除
+        pipeUseRegistrationReportMapper.deleteById(id);
+    }
+
+    private void validatePipeUseRegistrationReportExists(String id) {
+        if (pipeUseRegistrationReportMapper.selectById(id) == null) {
+            throw exception(PIPE_USE_REGISTRATION_REPORT_NOT_EXISTS);
+        }
+    }
+
+    @Override
+    public PipeUseRegistrationReportDO getPipeUseRegistrationReport(String id) {
+        return pipeUseRegistrationReportMapper.selectById(id);
+    }
+
+    @Override
+    public PageResult<PipeUseRegistrationReportRespVO> getPipeUseRegistrationReportPage(PipeUseRegistrationReportPageReqVO pageReqVO) {
+
+        PageResult<PipeUseRegistrationReportDO> pageResult = pipeUseRegistrationReportMapper.selectPage(pageReqVO);
+        PageResult<PipeUseRegistrationReportRespVO> result = BeanUtils.toBean(pageResult, PipeUseRegistrationReportRespVO.class);
+
+        List<String> deptIds = result.getList().stream().map(PipeUseRegistrationReportRespVO::getDeptId)
+                .filter(Objects::nonNull).toList();
+        List<DeptRespDTO> deptRespDTOS = new ArrayList<>();
+        if (!deptIds.isEmpty()){
+            deptRespDTOS = deptApi.getDeptList(deptIds).getCheckedData();
+        }
+        List<DeptRespDTO> finalDepts = deptRespDTOS;
+        result.getList().forEach(item -> {
+
+            if (CollUtil.isNotEmpty(finalDepts)) {
+                List<DeptRespDTO> list = finalDepts.stream().filter(dept -> dept.getId().equals(item.getDeptId())).toList();
+                if (CollUtil.isNotEmpty(list)) {
+                    item.setDeptName(list.get(0).getName());
+                }
+            }
+
+        });
+
+        return result;
+    }
+
+    @Override
+    @Transactional
+    public void generatePipeUseRegistrationReport(String orderId) {
+
+        String templateId = TemplateIdConstants.G_D_S_Y_D_J_B;
+        PipeTaskOrderDO taskOrderDO = pipeTaskOrderMapper.selectById(orderId);
+        if (taskOrderDO == null){
+            throw exception(new ErrorCode(500, "管道任务单不存在"));
+        }
+        List<PipeTaskOrderItemDO> taskOrderItemDOList = pipeTaskOrderItemMapper.selectList(PipeTaskOrderItemDO::getOrderId, orderId);
+        if (taskOrderItemDOList.isEmpty()){
+            throw exception(new ErrorCode(500, "管道检验设备不存在"));
+        }
+        DynamicTbDO dynamicTbDO = dynamicTbMapper.selectById(templateId);
+        if (dynamicTbDO == null){
+            throw exception(new ErrorCode(500, "管道使用登记表模板不存在"));
+        }
+
+        taskOrderItemDOList.forEach(taskOrderItemDO -> {
+
+            EquipPipeDO equipPipeDO = equipPipeMapper.selectById(taskOrderItemDO.getEquipId());
+            if (equipPipeDO != null){
+
+                //清除掉旧的使用登记表
+                List<PipeUseRegistrationReportDO> oldList = pipeUseRegistrationReportMapper.selectList(new LambdaQueryWrapperX<PipeUseRegistrationReportDO>()
+                        .eq(PipeUseRegistrationReportDO::getProjectNo, equipPipeDO.getProjectNo()));
+                pipeUseRegistrationReportMapper.deleteByIds(oldList);
+
+                PipeUseRegistrationReportDO useReportDO =  new PipeUseRegistrationReportDO();
+                useReportDO.setTaskOrderId(orderId);
+                useReportDO.setTemplateId(dynamicTbDO.getId());
+                useReportDO.setReportName(dynamicTbDO.getTbName());
+
+                useReportDO.setProjectNo(equipPipeDO.getProjectNo());
+                useReportDO.setUnitName(equipPipeDO.getUnitName());
+                useReportDO.setCertificateNo(equipPipeDO.getCertificateNo());
+
+                useReportDO.setReportNo(taskOrderItemDO.getReportNo());
+                useReportDO.setDeptId(taskOrderDO.getDeptId());
+
+                pipeUseRegistrationReportMapper.insert(useReportDO);
+
+                //生成报表
+                CreateInstantiateWithRuleVO ruleVO = new CreateInstantiateWithRuleVO();
+                ruleVO.setTemplateId(dynamicTbDO.getId());
+                ruleVO.setRefId(useReportDO.getId());
+                ruleVO.setReportType(1);
+                com.alibaba.fastjson2.JSONObject params = new com.alibaba.fastjson2.JSONObject();
+                params.put("equipMainType","pipe");
+                ruleVO.setParams(params);
+                //获取tbCode的服务方法名
+                BoilerConnectTbServiceDO tbServiceDO = boilerConnectTbServiceMapper.selectOne(BoilerConnectTbServiceDO::getTbId,dynamicTbDO.getId());
+                if (tbServiceDO != null){
+                    ruleVO.setServiceName(tbServiceDO.getInitServiceName());
+                    dynamicTbInsService.createInstantiateWithRule(ruleVO);
+                }else{
+                    ruleVO.setServiceName("");
+                    dynamicTbInsService.createInstantiateWithRule(ruleVO);
+                }
+
+            }
+
+        });
+
+    }
+
+    @Override
+    public void auditPipeUseRegistrationReport(PipeUseRegistrationReportAuditReqVO auditReqVO) {
+
+        PipeUseRegistrationReportDO useReportDO = pipeUseRegistrationReportMapper.selectById(auditReqVO.getId());
+        if (useReportDO == null){
+            throw exception(new ErrorCode(500, "管道使用登记表记录不存在"));
+        }
+
+        String userId = getLoginUserId();
+        AdminUserRespDTO userRespDTO = adminUserApi.getUser(userId).getCheckedData();
+
+        useReportDO.setStatus(100);
+        useReportDO.setSubmitId(userId);
+        if (userRespDTO != null){
+            useReportDO.setSubmitName(userRespDTO.getNickname());
+        }
+        useReportDO.setSubmitTime(LocalDateTime.now());
+
+        pipeUseRegistrationReportMapper.updateById(useReportDO);
+
+    }
+
+    @Override
+    public void approvePipeUseRegistrationReport(PipeUseRegistrationReportAuditReqVO auditReqVO) {
+
+        String userId = getLoginUserId();
+        
+        PipeUseRegistrationReportDO useReportDO = pipeUseRegistrationReportMapper.selectById(auditReqVO.getId());
+        if (useReportDO == null){
+            throw exception(new ErrorCode(500, "管道使用登记表记录不存在"));
+        }
+        
+        if (!securityFrameworkService.hasRole("registrationAuditor")) {
+            throw exception(new ErrorCode(403, "仅登记表审核人角色可以审核"));
+        }
+
+        AdminUserRespDTO userRespDTO = adminUserApi.getUser(userId).getCheckedData();
+
+        useReportDO.setStatus(auditReqVO.getStatus());
+        useReportDO.setApprovalId(userId);
+        if (userRespDTO != null){
+            useReportDO.setApprovalName(userRespDTO.getNickname());
+        }
+        useReportDO.setApprovalTime(LocalDateTime.now());
+
+        pipeUseRegistrationReportMapper.updateById(useReportDO);
+
+    }
+
+}

+ 12 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/resources/mapper/pipeuseregistrationreport/PipeUseRegistrationReportMapper.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.start.tz.module.pressure2.dal.mysql.pipeuseregistrationreport.PipeUseRegistrationReportMapper">
+
+    <!--
+        一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
+        无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
+        代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
+        文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
+     -->
+
+</mapper>