Jelajahi Sumber

feat(pressure2): 添加统一任务单功能并支持设备代码查询

- 新增统一任务单控制器、服务接口及实现类
- 添加统一任务单数据访问层和MyBatis映射文件
- 在受理单查询中添加设备注册代码模糊匹配功能
- 更新任务订单响应对象,添加检验员列表和计划ID字段
- 修复约检确认日期设置逻辑,添加预约确认日期字段
- 优化任务单分页查询的数据权限和用户信息获取逻辑
xuzhancheng 2 hari lalu
induk
melakukan
c4d2ebbf3b
10 mengubah file dengan 587 tambahan dan 2 penghapusan
  1. 3 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/acceptorder/vo/AcceptOrderPageReqVO.java
  2. 10 1
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/boilertaskorder/vo/BoilerTaskOrderRespVO.java
  3. 40 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/taskorder/TaskOrderController.java
  4. 6 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/dal/mysql/acceptorder/AcceptOrderMapper.java
  5. 20 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/dal/mysql/taskorder/UnifiedTaskOrderMapper.java
  6. 1 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/appointmentconfirmorder/AppointmentConfirmOrderServiceImpl.java
  7. 15 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/taskorder/TaskOrderService.java
  8. 89 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/taskorder/TaskOrderServiceImpl.java
  9. 1 1
      tz-module-pressure2/tz-module-pressure2-biz/src/main/resources/mapper/appointmentconfirmorder/AppointmentConfirmOrderMapper.xml
  10. 402 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/resources/mapper/taskorder/TaskOrderMapper.xml

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

@@ -184,4 +184,7 @@ public class AcceptOrderPageReqVO extends PageParam {
 
     @Schema(description = "设备类型 100容器 200锅炉 300管道")
     private Integer equipMainType;
+
+    @Schema(description = "设备注册代码")
+    private String equipCode;
 }

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

@@ -71,6 +71,9 @@ public class BoilerTaskOrderRespVO {
     @ExcelProperty("检验员")
     private List<AdminUserRespDTO> appoinmentUser;
 
+    @Schema(description = "检验员列表(兼容字段)")
+    private List<AdminUserRespDTO> checkUsers;
+
     @Schema(description = "收费方式")
     @ExcelProperty("收费方式")
     private Integer payWay;
@@ -213,11 +216,14 @@ public class BoilerTaskOrderRespVO {
     private Integer feeNature;
 
     @Schema(description = "设备主类型")
-    private String equipMainType;
+    private Integer equipMainType;
 
     @Schema(description = "审核状态")
     private Integer status;
 
+    @Schema(description = "计划id")
+    private String schedulingId;
+
     /**
      *  审核
      * */
@@ -332,6 +338,9 @@ public class BoilerTaskOrderRespVO {
     @Schema(description = "受理时间")
     private LocalDateTime schedulingTime;
 
+    @Schema(description = "约检确认日期")
+    private LocalDate appointmentConfirmDate;
+
     @Schema(description = "使用登记证编号")
     private String useRegisterNo;
 

+ 40 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/taskorder/TaskOrderController.java

@@ -0,0 +1,40 @@
+package cn.start.tz.module.pressure2.controller.admin.taskorder;
+
+import cn.start.tz.framework.common.pojo.CommonResult;
+import cn.start.tz.framework.common.pojo.PageResult;
+import cn.start.tz.module.pressure2.controller.admin.boilertaskorder.vo.BoilerTaskOrderPageReqVO;
+import cn.start.tz.module.pressure2.controller.admin.boilertaskorder.vo.BoilerTaskOrderRespVO;
+import cn.start.tz.module.pressure2.service.taskorder.TaskOrderService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.annotation.Resource;
+import jakarta.validation.Valid;
+import org.springframework.web.bind.annotation.*;
+
+
+
+import static cn.start.tz.framework.common.pojo.CommonResult.success;
+import static cn.start.tz.framework.web.core.util.WebFrameworkUtils.getLoginUserId;
+
+@Tag(name = "管理后台 - 统一任务单")
+@RestController
+@RequestMapping("/pressure2/task-order")
+public class TaskOrderController {
+
+    @Resource
+    private TaskOrderService taskOrderService;
+
+    @PostMapping("/page")
+    @Operation(summary = "获得统一任务单分页(容器+锅炉+管道)")
+    public CommonResult<PageResult<BoilerTaskOrderRespVO>> postTaskOrderPage(@RequestBody @Valid BoilerTaskOrderPageReqVO pageReqVO) {
+        pageReqVO.setUserId(getLoginUserId());
+        return success(taskOrderService.getTaskOrderPage(pageReqVO));
+    }
+
+    @GetMapping("/page")
+    @Operation(summary = "获得统一任务单分页(容器+锅炉+管道)")
+    public CommonResult<PageResult<BoilerTaskOrderRespVO>> getTaskOrderPage(@Valid BoilerTaskOrderPageReqVO pageReqVO) {
+        pageReqVO.setUserId(getLoginUserId());
+        return success(taskOrderService.getTaskOrderPage(pageReqVO));
+    }
+}

+ 6 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/dal/mysql/acceptorder/AcceptOrderMapper.java

@@ -6,6 +6,7 @@ import cn.start.tz.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.start.tz.module.pressure2.controller.admin.acceptorder.vo.AcceptOrderPageReqVO;
 import cn.start.tz.module.pressure2.controller.app.acceptorder.vo.AcceptOrderAppRespVO;
 import cn.start.tz.module.pressure2.dal.dataobject.acceptorder.AcceptOrderDO;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
@@ -63,6 +64,11 @@ public interface AcceptOrderMapper extends BaseMapperX<AcceptOrderDO> {
                 .inIfPresent(AcceptOrderDO::getId, reqVO.getOrderIds())
                 .inIfPresent(AcceptOrderDO::getProcessInstanceId, reqVO.getProcessInstanceIds())
                 .eqIfPresent(AcceptOrderDO::getEquipMainType, reqVO.getEquipMainType())
+                // 设备注册代码模糊匹配(通过子表关联查询)
+                .apply(StringUtils.isNotBlank(reqVO.getEquipCode()),
+                        "(EXISTS (SELECT 1 FROM pressure2_boiler_accept_order_item bai WHERE bai.order_id = pressure_accept_order.id AND bai.deleted = 0 AND bai.equip_code LIKE CONCAT('%', {0}, '%')) " +
+                        "OR EXISTS (SELECT 1 FROM pressure2_pipe_accept_order_item pai WHERE pai.order_id = pressure_accept_order.id AND pai.deleted = 0 AND pai.equip_code LIKE CONCAT('%', {0}, '%')))",
+                        reqVO.getEquipCode())
                 .orderByDesc(reqVO.getOrderByColumn() != null ? reqVO.getOrderByColumn() : AcceptOrderDO::getCreateTime));
     }
 

+ 20 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/dal/mysql/taskorder/UnifiedTaskOrderMapper.java

@@ -0,0 +1,20 @@
+package cn.start.tz.module.pressure2.dal.mysql.taskorder;
+
+import cn.start.tz.module.pressure2.controller.admin.boilertaskorder.vo.BoilerTaskOrderPageReqVO;
+import cn.start.tz.module.pressure2.controller.admin.boilertaskorder.vo.BoilerTaskOrderRespVO;
+import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorder.BoilerTaskOrderDO;
+import cn.start.tz.framework.mybatis.core.mapper.BaseMapperX;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * 统一任务单 Mapper(支持容器、锅炉、管道全部类型)
+ */
+@Mapper
+public interface UnifiedTaskOrderMapper extends BaseMapperX<BoilerTaskOrderDO> {
+
+    List<BoilerTaskOrderRespVO> selectPage(BoilerTaskOrderPageReqVO reqVO);
+
+    Long selectPageCount(BoilerTaskOrderPageReqVO reqVO);
+}

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

@@ -746,6 +746,7 @@ public class AppointmentConfirmOrderServiceImpl implements AppointmentConfirmOrd
             // 设置已创建受理单标志为true
             updateObj.setCreateAcceptOrder(true);
             updateObj.setStatus(200);
+            updateObj.setConfirmDate(LocalDate.now());
             // 执行更新操作
             appointmentConfirmOrderMapper.updateById(updateObj);
         } else {

+ 15 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/taskorder/TaskOrderService.java

@@ -0,0 +1,15 @@
+package cn.start.tz.module.pressure2.service.taskorder;
+
+import cn.start.tz.framework.common.pojo.PageResult;
+import cn.start.tz.module.pressure2.controller.admin.boilertaskorder.vo.BoilerTaskOrderPageReqVO;
+import cn.start.tz.module.pressure2.controller.admin.boilertaskorder.vo.BoilerTaskOrderRespVO;
+
+/**
+ * 统一任务单 Service 接口
+ *
+ * @author 特种管理员
+ */
+public interface TaskOrderService {
+
+    PageResult<BoilerTaskOrderRespVO> getTaskOrderPage(BoilerTaskOrderPageReqVO pageReqVO);
+}

+ 89 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/taskorder/TaskOrderServiceImpl.java

@@ -0,0 +1,89 @@
+package cn.start.tz.module.pressure2.service.taskorder;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.start.tz.framework.common.pojo.PageResult;
+import cn.start.tz.module.pressure2.controller.admin.boilertaskorder.vo.BoilerTaskOrderPageReqVO;
+import cn.start.tz.module.pressure2.controller.admin.boilertaskorder.vo.BoilerTaskOrderRespVO;
+import cn.start.tz.module.pressure2.dal.dataobject.boilertaskorderuser.BoilerTaskOrderUserDO;
+import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderuser.PipeTaskOrderUserDO;
+import cn.start.tz.module.pressure2.dal.mysql.boilertaskorderuser.BoilerTaskOrderUserMapper;
+import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderuser.PipeTaskOrderUserMapper;
+import cn.start.tz.module.pressure2.dal.mysql.taskorder.UnifiedTaskOrderMapper;
+import cn.start.tz.module.pressure2.util.DeptDataPermissionUtil;
+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 jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * 统一任务单 Service 实现
+ */
+@Service
+public class TaskOrderServiceImpl implements TaskOrderService {
+
+    @Resource
+    private UnifiedTaskOrderMapper unifiedTaskOrderMapper;
+
+    @Resource
+    private BoilerTaskOrderUserMapper boilerTaskOrderUserMapper;
+
+    @Resource
+    private PipeTaskOrderUserMapper pipeTaskOrderUserMapper;
+
+    @Resource
+    private AdminUserApi adminUserApi;
+
+    @Resource
+    private DeptApi deptApi;
+
+    @Override
+    public PageResult<BoilerTaskOrderRespVO> getTaskOrderPage(BoilerTaskOrderPageReqVO pageReqVO) {
+        pageReqVO = DeptDataPermissionUtil.generateDeptDataPermissionReq(pageReqVO);
+
+        List<BoilerTaskOrderRespVO> taskOrderRespVOS = unifiedTaskOrderMapper.selectPage(pageReqVO);
+
+        List<String> userIds = new ArrayList<>(taskOrderRespVOS.stream()
+                .map(BoilerTaskOrderRespVO::getManagerId).filter(Objects::nonNull).toList());
+
+        // 批量查部门名称
+        List<String> deptIds = taskOrderRespVOS.stream()
+                .map(BoilerTaskOrderRespVO::getDeptId)
+                .filter(Objects::nonNull)
+                .distinct()
+                .collect(Collectors.toList());
+        Map<String, DeptRespDTO> deptMap = CollUtil.isNotEmpty(deptIds) ? deptApi.getDeptMap(deptIds) : Collections.emptyMap();
+
+        Map<String, AdminUserRespDTO> userMap = adminUserApi.getUserMap(userIds);
+        taskOrderRespVOS.forEach((item) -> {
+            // 项目负责人
+            item.setManager(userMap.get(item.getManagerId()));
+
+            // 检验员
+            List<BoilerTaskOrderUserDO> boilerUsers = boilerTaskOrderUserMapper.selectList(
+                    BoilerTaskOrderUserDO::getOrderId, item.getId());
+            List<PipeTaskOrderUserDO> pipeUsers = pipeTaskOrderUserMapper.selectList(
+                    PipeTaskOrderUserDO::getOrderId, item.getId());
+            List<String> uIds = new ArrayList<>(boilerUsers.stream().map(BoilerTaskOrderUserDO::getUserId).toList());
+            uIds.addAll(pipeUsers.stream().map(PipeTaskOrderUserDO::getUserId).toList());
+            if (!uIds.isEmpty()) {
+                List<AdminUserRespDTO> checkUsers = adminUserApi.getUserList(uIds).getData();
+                item.setAppoinmentUser(checkUsers);
+                item.setCheckUsers(checkUsers);
+            }
+
+            // 部门名称
+            if (item.getDeptId() != null && deptMap.containsKey(item.getDeptId())) {
+                item.setDeptName(deptMap.get(item.getDeptId()).getName());
+            }
+        });
+
+        Long total = unifiedTaskOrderMapper.selectPageCount(pageReqVO);
+
+        return new PageResult<>(taskOrderRespVOS, total);
+    }
+}

+ 1 - 1
tz-module-pressure2/tz-module-pressure2-biz/src/main/resources/mapper/appointmentconfirmorder/AppointmentConfirmOrderMapper.xml

@@ -113,7 +113,7 @@
                 <if test="reqVO.useUnitName != null and reqVO.useUnitName != ''">AND aco.use_unit_name LIKE CONCAT('%', #{reqVO.useUnitName}, '%')</if>
                 <if test="reqVO.createAcceptOrder != null">AND aco.create_accept_order = #{reqVO.createAcceptOrder}</if>
                 <if test="reqVO.equipCode != null and reqVO.equipCode != ''">
-                    AND (eb.equip_code LIKE CONCAT('%', #{reqVO.equipCode}, '%') OR epd.pipe_reg_code LIKE CONCAT('%', #{reqVO.equipCode}, '%'))
+                    AND (eb.equip_code LIKE CONCAT('%', #{reqVO.equipCode}, '%') OR ep.PROJECT_NO LIKE CONCAT('%', #{reqVO.equipCode}, '%'))
                 </if>
                 <if test="reqVO.contactPhone != null and reqVO.contactPhone != ''">
                     AND (eb.contact_phone = #{reqVO.contactPhone} OR ep.contact_phone = #{reqVO.contactPhone})

+ 402 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/resources/mapper/taskorder/TaskOrderMapper.xml

@@ -0,0 +1,402 @@
+<?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.taskorder.UnifiedTaskOrderMapper">
+
+    <select id="selectPage">
+        select rownum,a.* from (
+            select bto.*, aco.confirm_date AS appointment_confirm_date
+            from PRESSURE_TASK_ORDER bto
+            LEFT JOIN PRESSURE_APPOINTMENT_CONFIRM_ORDER aco ON aco.scheduling_id = bto.scheduling_id AND aco.deleted = 0
+            <where>
+                bto.DELETED = 0
+                <if test="equipMainType != null and equipMainType != ''">
+                    AND bto.EQUIP_MAIN_TYPE = #{equipMainType}
+                </if>
+                <if test="orderNo != null and orderNo != ''">
+                    AND bto.ORDER_NO LIKE CONCAT('%',#{orderNo},'%')
+                </if>
+                <if test="unitName != null and unitName != ''">
+                    AND bto.UNIT_NAME LIKE CONCAT('%',#{unitName},'%')
+                </if>
+                <if test="unitPhone != null and unitPhone != ''">
+                    AND bto.UNIT_PHONE LIKE CONCAT('%',#{unitPhone},'%')
+                </if>
+                <if test="checkType != null and checkType != ''">
+                    AND bto.CHECK_TYPE = #{checkType}
+                </if>
+                <if test="checkDate != null and checkDate.size() >= 2">
+                    AND bto.CHECK_DATE BETWEEN #{checkDate[0]} AND #{checkDate[1]}
+                </if>
+                <if test="contractNo != null and contractNo != ''">
+                    AND bto.CONTRACT_NO LIKE CONCAT('%',#{contractNo},'%')
+                </if>
+                <if test="taskStatus != null and taskStatus != ''">
+                    AND bto.TASK_STATUS = #{taskStatus}
+                </if>
+                <if test="taskStatusList != null and taskStatusList.size() > 0">
+                    AND bto.TASK_STATUS IN
+                    <foreach close=")" collection="taskStatusList" item="item" open="(" separator=",">
+                        #{item}
+                    </foreach>
+                </if>
+                <if test="processInstanceIds != null and processInstanceIds.size() > 0">
+                    AND bto.PROCESS_INSTANCE_ID IN
+                    <foreach close=")" collection="processInstanceIds" item="item" open="(" separator=",">
+                        #{item}
+                    </foreach>
+                </if>
+                <if test="equipCode != null and equipCode != ''">
+                    AND (EXISTS (
+                        SELECT 1 FROM pressure2_boiler_task_order_item boi
+                        WHERE boi.order_id = bto.id AND boi.deleted = 0 AND boi.equip_code LIKE CONCAT('%', #{equipCode}, '%')
+                    ) OR EXISTS (
+                        SELECT 1 FROM pressure2_pipe_task_order_item poi
+                        WHERE poi.order_id = bto.id AND poi.deleted = 0 AND poi.equip_code LIKE CONCAT('%', #{equipCode}, '%')
+                    ))
+                </if>
+                <if test="reportNo != null and reportNo != ''">
+                    AND (EXISTS (
+                        SELECT 1 FROM pressure2_boiler_task_order_item_report bir
+                        INNER JOIN pressure2_boiler_task_order_item boi ON boi.id = bir.order_item_id AND boi.deleted = 0
+                        WHERE bir.deleted = 0 AND bir.report_no LIKE CONCAT('%', #{reportNo}, '%') AND boi.order_id = bto.id
+                    ) OR EXISTS (
+                        SELECT 1 FROM pressure2_pipe_task_order_item_report pir
+                        WHERE pir.deleted = 0 AND pir.report_no LIKE CONCAT('%', #{reportNo}, '%') AND pir.order_id = bto.id
+                    ))
+                </if>
+                <if test="checkUserIds != null and checkUserIds.size() >= 1">
+                    AND bto.ID in (
+                        <choose>
+                            <when test="equipMainType != null and equipMainType == '100'">
+                                select tu.ORDER_ID from PRESSURE_TASK_ORDER_USER tu
+                                where tu.deleted = 0 and tu.USER_ID IN
+                                <foreach close=")" collection="checkUserIds" item="listItem" open="(" separator=",">
+                                    #{listItem}
+                                </foreach>
+                            </when>
+                            <when test="equipMainType != null and equipMainType == '200'">
+                                select tu.ORDER_ID from pressure2_boiler_task_order_user tu
+                                where tu.deleted = 0 and tu.USER_ID IN
+                                <foreach close=")" collection="checkUserIds" item="listItem" open="(" separator=",">
+                                    #{listItem}
+                                </foreach>
+                            </when>
+                            <when test="equipMainType != null and equipMainType == '300'">
+                                select tu.ORDER_ID from pressure2_pipe_task_order_user tu
+                                where tu.deleted = 0 and tu.USER_ID IN
+                                <foreach close=")" collection="checkUserIds" item="listItem" open="(" separator=",">
+                                    #{listItem}
+                                </foreach>
+                            </when>
+                            <otherwise>
+                                select tu.ORDER_ID from (
+                                    select ORDER_ID, USER_ID from PRESSURE_TASK_ORDER_USER where deleted = 0
+                                    union all
+                                    select ORDER_ID, USER_ID from pressure2_boiler_task_order_user where deleted = 0
+                                    union all
+                                    select ORDER_ID, USER_ID from pressure2_pipe_task_order_user where deleted = 0
+                                ) tu
+                                where tu.USER_ID IN
+                                <foreach close=")" collection="checkUserIds" item="listItem" open="(" separator=",">
+                                    #{listItem}
+                                </foreach>
+                            </otherwise>
+                        </choose>
+                    )
+                </if>
+                <if test="inspectorIds != null and inspectorIds.size() >= 1">
+                    AND bto.ID in (
+                        <choose>
+                            <when test="equipMainType != null and equipMainType == '100'">
+                                select tu.ORDER_ID from PRESSURE_TASK_ORDER_USER tu
+                                where tu.deleted = 0 and tu.USER_ID IN
+                                <foreach close=")" collection="inspectorIds" item="listItem" open="(" separator=",">
+                                    #{listItem}
+                                </foreach>
+                            </when>
+                            <when test="equipMainType != null and equipMainType == '200'">
+                                select tu.ORDER_ID from pressure2_boiler_task_order_user tu
+                                where tu.deleted = 0 and tu.USER_ID IN
+                                <foreach close=")" collection="inspectorIds" item="listItem" open="(" separator=",">
+                                    #{listItem}
+                                </foreach>
+                            </when>
+                            <when test="equipMainType != null and equipMainType == '300'">
+                                select tu.ORDER_ID from pressure2_pipe_task_order_user tu
+                                where tu.deleted = 0 and tu.USER_ID IN
+                                <foreach close=")" collection="inspectorIds" item="listItem" open="(" separator=",">
+                                    #{listItem}
+                                </foreach>
+                            </when>
+                            <otherwise>
+                                select tu.ORDER_ID from (
+                                    select ORDER_ID, USER_ID from PRESSURE_TASK_ORDER_USER where deleted = 0
+                                    union all
+                                    select ORDER_ID, USER_ID from pressure2_boiler_task_order_user where deleted = 0
+                                    union all
+                                    select ORDER_ID, USER_ID from pressure2_pipe_task_order_user where deleted = 0
+                                ) tu
+                                where tu.USER_ID IN
+                                <foreach close=")" collection="inspectorIds" item="listItem" open="(" separator=",">
+                                    #{listItem}
+                                </foreach>
+                            </otherwise>
+                        </choose>
+                    )
+                </if>
+                <if test="submitIds != null and submitIds.size() >= 1">
+                    AND bto.SUBMIT_ID IN
+                    <foreach close=")" collection="submitIds" item="listItem" open="(" separator=",">
+                        #{listItem}
+                    </foreach>
+                </if>
+                <if test="deptId != null and deptId != ''">
+                    AND bto.DEPT_ID = #{deptId}
+                </if>
+                <if test="submitTime != null and submitTime.size() >= 2">
+                    AND bto.SUBMIT_TIME BETWEEN #{submitTime[0]} AND #{submitTime[1]}
+                </if>
+                <if test="status != null and status != ''">
+                    AND bto.STATUS = #{status}
+                </if>
+                <if test="permissionUserId != null and permissionUserId != ''">
+                    AND ( bto.MANAGER_ID = #{permissionUserId}
+                    or bto.ID in (
+                        <choose>
+                            <when test="equipMainType != null and equipMainType == '100'">
+                                select tu.ORDER_ID from PRESSURE_TASK_ORDER_USER tu
+                                where tu.deleted = 0 and tu.USER_ID = #{permissionUserId}
+                            </when>
+                            <when test="equipMainType != null and equipMainType == '200'">
+                                select tu.ORDER_ID from pressure2_boiler_task_order_user tu
+                                where tu.deleted = 0 and tu.USER_ID = #{permissionUserId}
+                            </when>
+                            <when test="equipMainType != null and equipMainType == '300'">
+                                select tu.ORDER_ID from pressure2_pipe_task_order_user tu
+                                where tu.deleted = 0 and tu.USER_ID = #{permissionUserId}
+                            </when>
+                            <otherwise>
+                                select tu.ORDER_ID from (
+                                    select ORDER_ID, USER_ID from PRESSURE_TASK_ORDER_USER where deleted = 0
+                                    union all
+                                    select ORDER_ID, USER_ID from pressure2_boiler_task_order_user where deleted = 0
+                                    union all
+                                    select ORDER_ID, USER_ID from pressure2_pipe_task_order_user where deleted = 0
+                                ) tu
+                                where tu.USER_ID = #{permissionUserId}
+                            </otherwise>
+                        </choose>
+                    ) )
+                </if>
+                <if test="permissionDeptIds != null and permissionDeptIds != ''">
+                    AND  ( bto.DEPT_ID in
+                    <foreach close=")" collection="permissionDeptIds" item="listItem" open="(" separator=",">
+                        #{listItem}
+                    </foreach>
+                    )
+                </if>
+                <if test="hasPermission != null and hasPermission == false">
+                    AND 1 = 2
+                </if>
+            </where>
+            order by bto.CREATE_TIME desc
+        ) a
+        OFFSET ${(pageNo - 1) * pageSize} ROWS FETCH NEXT #{pageSize} ROWS ONLY
+    </select>
+
+    <select id="selectPageCount">
+        select count(1) from (
+            select bto.* from PRESSURE_TASK_ORDER bto
+            <where>
+                bto.DELETED = 0
+                <if test="equipMainType != null and equipMainType != ''">
+                    AND bto.EQUIP_MAIN_TYPE = #{equipMainType}
+                </if>
+                <if test="orderNo != null and orderNo != ''">
+                    AND bto.ORDER_NO LIKE CONCAT('%',#{orderNo},'%')
+                </if>
+                <if test="unitName != null and unitName != ''">
+                    AND bto.UNIT_NAME LIKE CONCAT('%',#{unitName},'%')
+                </if>
+                <if test="checkType != null and checkType != ''">
+                    AND bto.CHECK_TYPE = #{checkType}
+                </if>
+                <if test="checkDate != null and checkDate.size() >= 2">
+                    AND bto.CHECK_DATE BETWEEN #{checkDate[0]} AND #{checkDate[1]}
+                </if>
+                <if test="contractNo != null and contractNo != ''">
+                    AND bto.CONTRACT_NO LIKE CONCAT('%',#{contractNo},'%')
+                </if>
+                <if test="taskStatus != null and taskStatus != ''">
+                    AND bto.TASK_STATUS = #{taskStatus}
+                </if>
+                <if test="taskStatusList != null and taskStatusList.size() > 0">
+                    AND bto.TASK_STATUS IN
+                    <foreach close=")" collection="taskStatusList" item="item" open="(" separator=",">
+                        #{item}
+                    </foreach>
+                </if>
+                <if test="processInstanceIds != null and processInstanceIds.size() > 0">
+                    AND bto.PROCESS_INSTANCE_ID IN
+                    <foreach close=")" collection="processInstanceIds" item="item" open="(" separator=",">
+                        #{item}
+                    </foreach>
+                </if>
+                <if test="equipCode != null and equipCode != ''">
+                    AND (EXISTS (
+                        SELECT 1 FROM pressure2_boiler_task_order_item boi
+                        WHERE boi.order_id = bto.id AND boi.deleted = 0 AND boi.equip_code LIKE CONCAT('%', #{equipCode}, '%')
+                    ) OR EXISTS (
+                        SELECT 1 FROM pressure2_pipe_task_order_item poi
+                        WHERE poi.order_id = bto.id AND poi.deleted = 0 AND poi.equip_code LIKE CONCAT('%', #{equipCode}, '%')
+                    ))
+                </if>
+                <if test="reportNo != null and reportNo != ''">
+                    AND (EXISTS (
+                        SELECT 1 FROM pressure2_boiler_task_order_item_report bir
+                        INNER JOIN pressure2_boiler_task_order_item boi ON boi.id = bir.order_item_id AND boi.deleted = 0
+                        WHERE bir.deleted = 0 AND bir.report_no LIKE CONCAT('%', #{reportNo}, '%') AND boi.order_id = bto.id
+                    ) OR EXISTS (
+                        SELECT 1 FROM pressure2_pipe_task_order_item_report pir
+                        WHERE pir.deleted = 0 AND pir.report_no LIKE CONCAT('%', #{reportNo}, '%') AND pir.order_id = bto.id
+                    ))
+                </if>
+                <if test="checkUserIds != null and checkUserIds.size() >= 1">
+                    AND bto.ID in (
+                        <choose>
+                            <when test="equipMainType != null and equipMainType == '100'">
+                                select tu.ORDER_ID from PRESSURE_TASK_ORDER_USER tu
+                                where tu.deleted = 0 and tu.USER_ID IN
+                                <foreach close=")" collection="checkUserIds" item="listItem" open="(" separator=",">
+                                    #{listItem}
+                                </foreach>
+                            </when>
+                            <when test="equipMainType != null and equipMainType == '200'">
+                                select tu.ORDER_ID from pressure2_boiler_task_order_user tu
+                                where tu.deleted = 0 and tu.USER_ID IN
+                                <foreach close=")" collection="checkUserIds" item="listItem" open="(" separator=",">
+                                    #{listItem}
+                                </foreach>
+                            </when>
+                            <when test="equipMainType != null and equipMainType == '300'">
+                                select tu.ORDER_ID from pressure2_pipe_task_order_user tu
+                                where tu.deleted = 0 and tu.USER_ID IN
+                                <foreach close=")" collection="checkUserIds" item="listItem" open="(" separator=",">
+                                    #{listItem}
+                                </foreach>
+                            </when>
+                            <otherwise>
+                                select tu.ORDER_ID from (
+                                    select ORDER_ID, USER_ID from PRESSURE_TASK_ORDER_USER where deleted = 0
+                                    union all
+                                    select ORDER_ID, USER_ID from pressure2_boiler_task_order_user where deleted = 0
+                                    union all
+                                    select ORDER_ID, USER_ID from pressure2_pipe_task_order_user where deleted = 0
+                                ) tu
+                                where tu.USER_ID IN
+                                <foreach close=")" collection="checkUserIds" item="listItem" open="(" separator=",">
+                                    #{listItem}
+                                </foreach>
+                            </otherwise>
+                        </choose>
+                    )
+                </if>
+                <if test="inspectorIds != null and inspectorIds.size() >= 1">
+                    AND bto.ID in (
+                        <choose>
+                            <when test="equipMainType != null and equipMainType == '100'">
+                                select tu.ORDER_ID from PRESSURE_TASK_ORDER_USER tu
+                                where tu.deleted = 0 and tu.USER_ID IN
+                                <foreach close=")" collection="inspectorIds" item="listItem" open="(" separator=",">
+                                    #{listItem}
+                                </foreach>
+                            </when>
+                            <when test="equipMainType != null and equipMainType == '200'">
+                                select tu.ORDER_ID from pressure2_boiler_task_order_user tu
+                                where tu.deleted = 0 and tu.USER_ID IN
+                                <foreach close=")" collection="inspectorIds" item="listItem" open="(" separator=",">
+                                    #{listItem}
+                                </foreach>
+                            </when>
+                            <when test="equipMainType != null and equipMainType == '300'">
+                                select tu.ORDER_ID from pressure2_pipe_task_order_user tu
+                                where tu.deleted = 0 and tu.USER_ID IN
+                                <foreach close=")" collection="inspectorIds" item="listItem" open="(" separator=",">
+                                    #{listItem}
+                                </foreach>
+                            </when>
+                            <otherwise>
+                                select tu.ORDER_ID from (
+                                    select ORDER_ID, USER_ID from PRESSURE_TASK_ORDER_USER where deleted = 0
+                                    union all
+                                    select ORDER_ID, USER_ID from pressure2_boiler_task_order_user where deleted = 0
+                                    union all
+                                    select ORDER_ID, USER_ID from pressure2_pipe_task_order_user where deleted = 0
+                                ) tu
+                                where tu.USER_ID IN
+                                <foreach close=")" collection="inspectorIds" item="listItem" open="(" separator=",">
+                                    #{listItem}
+                                </foreach>
+                            </otherwise>
+                        </choose>
+                    )
+                </if>
+                <if test="submitIds != null and submitIds.size() >= 1">
+                    AND bto.SUBMIT_ID IN
+                    <foreach close=")" collection="submitIds" item="listItem" open="(" separator=",">
+                        #{listItem}
+                    </foreach>
+                </if>
+                <if test="deptId != null and deptId != ''">
+                    AND bto.DEPT_ID = #{deptId}
+                </if>
+                <if test="submitTime != null and submitTime.size() >= 2">
+                    AND bto.SUBMIT_TIME BETWEEN #{submitTime[0]} AND #{submitTime[1]}
+                </if>
+                <if test="status != null and status != ''">
+                    AND bto.STATUS = #{status}
+                </if>
+                <if test="permissionUserId != null and permissionUserId != ''">
+                    AND ( bto.MANAGER_ID = #{permissionUserId}
+                    or bto.ID in (
+                        <choose>
+                            <when test="equipMainType != null and equipMainType == '100'">
+                                select tu.ORDER_ID from PRESSURE_TASK_ORDER_USER tu
+                                where tu.deleted = 0 and tu.USER_ID = #{permissionUserId}
+                            </when>
+                            <when test="equipMainType != null and equipMainType == '200'">
+                                select tu.ORDER_ID from pressure2_boiler_task_order_user tu
+                                where tu.deleted = 0 and tu.USER_ID = #{permissionUserId}
+                            </when>
+                            <when test="equipMainType != null and equipMainType == '300'">
+                                select tu.ORDER_ID from pressure2_pipe_task_order_user tu
+                                where tu.deleted = 0 and tu.USER_ID = #{permissionUserId}
+                            </when>
+                            <otherwise>
+                                select tu.ORDER_ID from (
+                                    select ORDER_ID, USER_ID from PRESSURE_TASK_ORDER_USER where deleted = 0
+                                    union all
+                                    select ORDER_ID, USER_ID from pressure2_boiler_task_order_user where deleted = 0
+                                    union all
+                                    select ORDER_ID, USER_ID from pressure2_pipe_task_order_user where deleted = 0
+                                ) tu
+                                where tu.USER_ID = #{permissionUserId}
+                            </otherwise>
+                        </choose>
+                    ) )
+                </if>
+                <if test="permissionDeptIds != null and permissionDeptIds != ''">
+                    AND  ( bto.DEPT_ID in
+                    <foreach close=")" collection="permissionDeptIds" item="listItem" open="(" separator=",">
+                        #{listItem}
+                    </foreach>
+                    )
+                </if>
+                <if test="hasPermission != null and hasPermission == false">
+                    AND 1 = 2
+                </if>
+            </where>
+        ) a
+    </select>
+
+</mapper>