wms/nflg-wms-repository/src/main/resources/mapper/QmsPdiInspectionResultsMapp...

106 lines
5.1 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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="com.nflg.wms.repository.mapper.QmsPdiInspectionResultsMapper">
<!-- 分页查询:以任务单为主体,关联规则表取机型、版本等 -->
<select id="search" resultType="com.nflg.wms.common.pojo.vo.QmsPdiInspectionResultsPageVO">
SELECT DISTINCT
t.id AS taskId,
r.model_no AS machineNo,
t.order_no AS orderNo,
t.device_no AS deviceNo,
t.task_no AS taskNo,
r.inspection_version AS inspectionVersion,
t.submission_time AS submissionTime,
t.required_completion_time AS requiredCompletionTime,
t.inspection_enable AS inspectionEnable,
CASE
WHEN ua.user_name IS NOT NULL AND ui.user_name IS NOT NULL AND ua.user_name != ui.user_name
THEN ua.user_name || '' || ui.user_name
ELSE COALESCE(ua.user_name, ui.user_name)
END AS currentHandlerName,
t.overdue
FROM qms_pdi_task_record t
LEFT JOIN qms_pdi_detection_rules r ON r.id = t.detection_rules_id
LEFT JOIN "user" ui ON ui.id = r.inspector_id
LEFT JOIN "user" ua ON ua.id = t.assistant_id
<where>
<!-- 权限过滤:只能看自己是帮办人或质检负责人的任务单 -->
<if test="request.userId != null">
AND (t.assistant_id = #{request.userId} OR r.inspector_id = #{request.userId})
</if>
<!-- 关键字模糊匹配:机型编号、订单编号、机台编号、任务单号 -->
<if test="request.key != null and request.key != ''">
AND (
r.model_no ILIKE CONCAT('%', #{request.key}, '%')
OR t.order_no ILIKE CONCAT('%', #{request.key}, '%')
OR t.device_no ILIKE CONCAT('%', #{request.key}, '%')
OR t.task_no ILIKE CONCAT('%', #{request.key}, '%')
)
</if>
<!-- 任务状态筛选 -->
<if test="request.inspectionEnable != null and request.inspectionEnable != 9">
AND t.inspection_enable = #{request.inspectionEnable}
</if>
<if test="request.inspectionEnable != null and request.inspectionEnable == 9">
AND t.overdue = true
</if>
</where>
ORDER BY t.id DESC
</select>
<!-- 平板:检查任务列表分页查询(仅 taskStatus 筛选) -->
<select id="searchTaskList" resultType="com.nflg.wms.common.pojo.vo.QmsPdiInspectionResultsPageVO">
SELECT DISTINCT
t.id AS taskId,
r.model_no AS machineNo,
t.order_no AS orderNo,
t.device_no AS deviceNo,
t.task_no AS taskNo,
r.inspection_version AS inspectionVersion,
t.submission_time AS submissionTime,
t.required_completion_time AS requiredCompletionTime,
t.inspection_enable AS inspectionEnable,
CASE
WHEN ua.user_name IS NOT NULL AND ui.user_name IS NOT NULL AND ua.user_name != ui.user_name
THEN ua.user_name || '' || ui.user_name
ELSE COALESCE(ua.user_name, ui.user_name)
END AS currentHandlerName,
t.overdue
FROM qms_pdi_task_record t
LEFT JOIN qms_pdi_detection_rules r ON r.id = t.detection_rules_id
LEFT JOIN "user" ui ON ui.id = r.inspector_id
LEFT JOIN "user" ua ON ua.id = t.assistant_id
<where>
<if test="request.userId != null">
AND (t.assistant_id = #{request.userId} OR r.inspector_id = #{request.userId})
</if>
<if test="request.taskStatus != null and request.taskStatus != 9">
AND t.inspection_enable = #{request.taskStatus}
</if>
<if test="request.taskStatus != null and request.taskStatus == 9">
AND t.overdue = true
</if>
</where>
ORDER BY t.id DESC
</select>
<!-- 平板:统计各状态数量(不受筛选条件影响,只受权限过滤) -->
<select id="countByStatus" resultType="map">
SELECT
COUNT(CASE WHEN t.inspection_enable = 0 THEN 1 END) AS "pendingCount",
COUNT(CASE WHEN t.inspection_enable = 1 THEN 1 END) AS "inProgressCount",
COUNT(CASE WHEN t.overdue = true THEN 1 END) AS "overdueCount",
COUNT(CASE WHEN t.inspection_enable = 2 THEN 1 END) AS "completedCount",
COUNT(CASE WHEN t.inspection_enable = 3 THEN 1 END) AS "pendingTransferCount"
FROM qms_pdi_task_record t
LEFT JOIN qms_pdi_detection_rules r ON r.id = t.detection_rules_id
<where>
<if test="userId != null">
AND (t.assistant_id = #{userId} OR r.inspector_id = #{userId})
</if>
</where>
</select>
</mapper>