wms/nflg-wms-repository/src/main/resources/mapper/QmsQualityInspectorMapper.xml

151 lines
6.5 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.QmsQualityInspectorMapper">
<!--
分页查询:以质检人为主体,每个 user_id 只返回一条记录
使用 DISTINCT ON (qi.user_id) 保证每人唯一
JOIN user_interior/department 获取部门信息
JOIN user AS cu 获取转办人姓名
支持动态过滤:员工工号(userCode)、人员名称模糊(userName)、物料编号(materialNo)
-->
<select id="searchPage" resultType="com.nflg.wms.common.pojo.vo.QmsQualityInspectorVO">
SELECT
qi.id,
qi.user_id,
u.user_code,
u.user_name,
d.id AS dept_id,
d.name AS dept_name,
NULL::bigint AS dept_leader_id,
NULL::varchar AS dept_leader_name,
qi.enable,
qi.inspection_type,
qi.change_user_id,
cu.user_name AS change_user_name,
qi.create_by,
qi.create_time,
qi.update_by,
qi.update_time
FROM (
SELECT DISTINCT ON (user_id) *
FROM qms_quality_inspector
ORDER BY user_id, id DESC
) qi
LEFT JOIN "user" u ON u.id = qi.user_id
LEFT JOIN user_interior ui ON ui.user_id = qi.user_id
LEFT JOIN department d ON d.id = ui.dept_id
LEFT JOIN "user" cu ON cu.id = qi.change_user_id
<where>
<if test="request.userCode != null and request.userCode != ''">
AND u.user_code = #{request.userCode}
</if>
<if test="request.userName != null and request.userName != ''">
AND u.user_name ilike concat('%', #{request.userName}, '%')
</if>
<if test="request.materialNo != null and request.materialNo != ''">
AND EXISTS (
SELECT 1 FROM qms_quality_inspector qi2
LEFT JOIN qms_qc_material m ON m.id = qi2.material_id
WHERE qi2.user_id = qi.user_id
AND m.material_no ilike concat('%', #{request.materialNo}, '%')
)
</if>
</where>
ORDER BY qi.id DESC
</select>
<!-- 按 userId 查询关联物料列表JOIN qms_qc_material 获取物料详情) -->
<select id="getMaterialsByUserId" resultType="com.nflg.wms.common.pojo.vo.QmsQualityInspectorMaterialVO">
SELECT
qi.id,
qi.material_id,
m.material_no,
m.material_category_code,
m.material_category_code_path_name AS material_category_name,
m.material_desc AS material_name,
m.material_specifications,
m.material_texture,
m.is_standard_maintained AS material_status
FROM qms_quality_inspector qi
LEFT JOIN qms_qc_material m ON m.id = qi.material_id
WHERE qi.user_id = #{userId}
AND qi.material_id IS NOT NULL
ORDER BY qi.id ASC
</select>
<!-- 按 userId 查询关联物料列表(支持供应商过滤) -->
<select id="getMaterialsByUserIdWithSupplier" resultType="com.nflg.wms.common.pojo.vo.QmsQualityInspectorMaterialVO">
SELECT
qi.id,
qi.material_id,
m.material_no,
m.material_category_code,
m.material_category_code_path_name AS material_category_name,
m.material_desc AS material_name,
m.material_specifications,
m.material_texture,
m.is_standard_maintained AS material_status
FROM qms_quality_inspector qi
LEFT JOIN qms_qc_material m ON m.id = qi.material_id
LEFT JOIN qms_coa_review cr ON cr.material_id = m.id
LEFT JOIN user_supplier us ON us.id = cr.supplier_id
WHERE qi.user_id = #{userId}
AND qi.material_id IS NOT NULL
<if test="supplierCode != null and supplierCode != ''">
AND us.supplier_code = #{supplierCode}
</if>
<if test="supplierName != null and supplierName != ''">
AND us.supplier_name LIKE CONCAT('%', #{supplierName}, '%')
</if>
GROUP BY qi.id, qi.material_id, m.material_no, m.material_category_code,
m.material_category_code_path_name, m.material_desc,
m.material_specifications, m.material_texture, m.is_standard_maintained
ORDER BY qi.id ASC
</select>
<!-- 按 userId 查询绑定物料列表(支持物料编号/类别/描述过滤) -->
<select id="getMaterialsByUserIdWithFilter" resultType="com.nflg.wms.common.pojo.vo.QmsQualityInspectorMaterialVO">
SELECT
qi.id,
qi.material_id,
m.material_no,
m.drawing_no,
m.material_category_code,
m.material_category_code_path_name AS material_category_name,
m.material_desc AS material_name,
m.material_specifications,
m.material_texture,
m.is_standard_maintained AS material_status
FROM qms_quality_inspector qi
LEFT JOIN qms_qc_material m ON m.id = qi.material_id
WHERE qi.user_id = #{userId}
AND qi.material_id IS NOT NULL
<if test="materialNo != null and materialNo != ''">
AND m.material_no = #{materialNo}
</if>
<if test="materialCategoryCode != null and materialCategoryCode != ''">
AND m.material_category_code = #{materialCategoryCode}
</if>
<if test="materialDesc != null and materialDesc != ''">
AND m.material_desc LIKE CONCAT('%', #{materialDesc}, '%')
</if>
ORDER BY qi.id ASC
</select>
<!-- 按 userId 查询关联物料类别列表JOIN qms_qc_material 取类别名称) -->
<select id="getCategoriesByUserId" resultType="com.nflg.wms.common.pojo.vo.QmsQualityInspectorCategoryVO">
SELECT DISTINCT ON (qi.material_category_code)
qi.id,
qi.material_category_code,
m.material_category_code_path_name AS material_category_name
FROM qms_quality_inspector qi
LEFT JOIN qms_qc_material m ON m.material_category_code = qi.material_category_code
WHERE qi.user_id = #{userId}
AND qi.material_category_code IS NOT NULL
AND qi.material_id IS NULL
ORDER BY qi.material_category_code, qi.id ASC
</select>
</mapper>