2026-04-11 09:12:47 +08:00
|
|
|
|
<?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">
|
|
|
|
|
|
|
|
|
|
|
|
<!--
|
2026-04-20 17:01:53 +08:00
|
|
|
|
分页查询:以质检人为主体,每个 user_id 只返回一条记录(主表一人一条)
|
2026-04-11 09:12:47 +08:00
|
|
|
|
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
|
2026-04-20 17:01:53 +08:00
|
|
|
|
FROM qms_quality_inspector qi
|
2026-04-11 09:12:47 +08:00
|
|
|
|
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 (
|
2026-04-20 17:01:53 +08:00
|
|
|
|
SELECT 1
|
|
|
|
|
|
FROM qms_inspector_material_item imi
|
|
|
|
|
|
LEFT JOIN qms_qc_material m ON m.id = imi.material_id
|
|
|
|
|
|
WHERE imi.inspector_id = qi.id
|
2026-04-11 09:12:47 +08:00
|
|
|
|
AND m.material_no ilike concat('%', #{request.materialNo}, '%')
|
|
|
|
|
|
)
|
|
|
|
|
|
</if>
|
2026-04-28 08:07:39 +08:00
|
|
|
|
<if test="request.inspectionType != null">
|
|
|
|
|
|
AND qi.inspection_type = #{request.inspectionType}
|
|
|
|
|
|
</if>
|
2026-04-11 09:12:47 +08:00
|
|
|
|
</where>
|
|
|
|
|
|
ORDER BY qi.id DESC
|
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- 按 userId 查询关联物料列表(JOIN qms_qc_material 获取物料详情) -->
|
|
|
|
|
|
<select id="getMaterialsByUserId" resultType="com.nflg.wms.common.pojo.vo.QmsQualityInspectorMaterialVO">
|
|
|
|
|
|
SELECT
|
2026-04-20 17:01:53 +08:00
|
|
|
|
imi.id,
|
|
|
|
|
|
imi.material_id,
|
2026-04-11 09:12:47 +08:00
|
|
|
|
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
|
2026-04-20 17:01:53 +08:00
|
|
|
|
FROM qms_inspector_material_item imi
|
|
|
|
|
|
LEFT JOIN qms_qc_material m ON m.id = imi.material_id
|
|
|
|
|
|
WHERE imi.inspector_id = (
|
|
|
|
|
|
SELECT id FROM qms_quality_inspector WHERE user_id = #{userId} LIMIT 1
|
|
|
|
|
|
)
|
|
|
|
|
|
ORDER BY imi.id ASC
|
2026-04-11 09:12:47 +08:00
|
|
|
|
</select>
|
|
|
|
|
|
|
2026-04-17 09:31:48 +08:00
|
|
|
|
<!-- 按 userId 查询关联物料列表(支持供应商过滤) -->
|
|
|
|
|
|
<select id="getMaterialsByUserIdWithSupplier" resultType="com.nflg.wms.common.pojo.vo.QmsQualityInspectorMaterialVO">
|
|
|
|
|
|
SELECT
|
2026-04-20 17:01:53 +08:00
|
|
|
|
imi.id,
|
|
|
|
|
|
imi.material_id,
|
2026-04-17 09:31:48 +08:00
|
|
|
|
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
|
2026-04-20 17:01:53 +08:00
|
|
|
|
FROM qms_inspector_material_item imi
|
|
|
|
|
|
LEFT JOIN qms_qc_material m ON m.id = imi.material_id
|
2026-04-17 09:31:48 +08:00
|
|
|
|
LEFT JOIN qms_coa_review cr ON cr.material_id = m.id
|
|
|
|
|
|
LEFT JOIN user_supplier us ON us.id = cr.supplier_id
|
2026-04-20 17:01:53 +08:00
|
|
|
|
WHERE imi.inspector_id = (
|
|
|
|
|
|
SELECT id FROM qms_quality_inspector WHERE user_id = #{userId} LIMIT 1
|
|
|
|
|
|
)
|
2026-04-17 09:31:48 +08:00
|
|
|
|
<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>
|
2026-04-20 17:01:53 +08:00
|
|
|
|
GROUP BY imi.id, imi.material_id, m.material_no, m.material_category_code,
|
2026-04-17 09:31:48 +08:00
|
|
|
|
m.material_category_code_path_name, m.material_desc,
|
|
|
|
|
|
m.material_specifications, m.material_texture, m.is_standard_maintained
|
2026-04-20 17:01:53 +08:00
|
|
|
|
ORDER BY imi.id ASC
|
2026-04-17 09:31:48 +08:00
|
|
|
|
</select>
|
|
|
|
|
|
|
2026-06-10 09:35:49 +08:00
|
|
|
|
<!--
|
|
|
|
|
|
按 userId 查询绑定物料列表(支持物料编号/类别/描述过滤),合并两个来源:
|
|
|
|
|
|
1) qms_inspector_material_item:直接绑定的物料
|
|
|
|
|
|
2) qms_inspector_material_category_item:绑定的物料类别及其所有子孙类别下展开的物料
|
|
|
|
|
|
(类别项存 material_category_id;经 ltree 的后代匹配 descendant.parent_tree <@ mc.parent_tree
|
|
|
|
|
|
取出该类别自身及全部子孙类别,再用 category_code 匹配
|
|
|
|
|
|
qms_qc_material.material_category_code 展开为物料)
|
|
|
|
|
|
-->
|
2026-04-17 09:31:48 +08:00
|
|
|
|
<select id="getMaterialsByUserIdWithFilter" resultType="com.nflg.wms.common.pojo.vo.QmsQualityInspectorMaterialVO">
|
|
|
|
|
|
SELECT
|
2026-06-10 09:35:49 +08:00
|
|
|
|
m.id,
|
2026-04-20 17:01:53 +08:00
|
|
|
|
imi.material_id,
|
2026-04-17 09:31:48 +08:00
|
|
|
|
m.material_no,
|
2026-04-17 10:14:23 +08:00
|
|
|
|
m.drawing_no,
|
2026-04-17 11:07:20 +08:00
|
|
|
|
m.drawing_no_ver,
|
2026-04-17 09:31:48 +08:00
|
|
|
|
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
|
2026-04-20 17:01:53 +08:00
|
|
|
|
FROM qms_inspector_material_item imi
|
|
|
|
|
|
LEFT JOIN qms_qc_material m ON m.id = imi.material_id
|
|
|
|
|
|
WHERE imi.inspector_id = (
|
|
|
|
|
|
SELECT id FROM qms_quality_inspector WHERE user_id = #{userId} LIMIT 1
|
|
|
|
|
|
)
|
2026-04-17 09:31:48 +08:00
|
|
|
|
<if test="materialNo != null and materialNo != ''">
|
|
|
|
|
|
AND m.material_no = #{materialNo}
|
|
|
|
|
|
</if>
|
|
|
|
|
|
<if test="materialCategoryCode != null and materialCategoryCode != ''">
|
2026-06-10 09:35:49 +08:00
|
|
|
|
AND m.material_category_code LIKE CONCAT(#{materialCategoryCode}, '%')
|
2026-04-17 09:31:48 +08:00
|
|
|
|
</if>
|
|
|
|
|
|
<if test="materialDesc != null and materialDesc != ''">
|
|
|
|
|
|
AND m.material_desc LIKE CONCAT('%', #{materialDesc}, '%')
|
|
|
|
|
|
</if>
|
2026-06-10 09:35:49 +08:00
|
|
|
|
UNION ALL
|
|
|
|
|
|
SELECT
|
|
|
|
|
|
m.id,
|
|
|
|
|
|
m.id AS material_id,
|
|
|
|
|
|
m.material_no,
|
|
|
|
|
|
m.drawing_no,
|
|
|
|
|
|
m.drawing_no_ver,
|
|
|
|
|
|
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_inspector_material_category_item imci
|
|
|
|
|
|
JOIN qms_qc_material_category mc ON mc.id = imci.material_category_id
|
|
|
|
|
|
JOIN qms_qc_material_category descendant ON descendant.parent_tree <@ mc.parent_tree
|
|
|
|
|
|
JOIN qms_qc_material m ON m.material_category_code = descendant.category_code
|
|
|
|
|
|
WHERE imci.inspector_id = (
|
|
|
|
|
|
SELECT id FROM qms_quality_inspector WHERE user_id = #{userId} LIMIT 1
|
|
|
|
|
|
)
|
|
|
|
|
|
<if test="materialNo != null and materialNo != ''">
|
|
|
|
|
|
AND m.material_no = #{materialNo}
|
|
|
|
|
|
</if>
|
|
|
|
|
|
<if test="materialCategoryCode != null and materialCategoryCode != ''">
|
|
|
|
|
|
AND m.material_category_code LIKE CONCAT(#{materialCategoryCode}, '%')
|
|
|
|
|
|
</if>
|
|
|
|
|
|
<if test="materialDesc != null and materialDesc != ''">
|
|
|
|
|
|
AND m.material_desc LIKE CONCAT('%', #{materialDesc}, '%')
|
|
|
|
|
|
</if>
|
|
|
|
|
|
ORDER BY material_id ASC
|
2026-04-17 09:31:48 +08:00
|
|
|
|
</select>
|
|
|
|
|
|
|
2026-04-20 17:01:53 +08:00
|
|
|
|
<!-- 按 userId 查询关联物料类别列表(JOIN qms_qc_material_category 取类别信息) -->
|
2026-04-11 09:12:47 +08:00
|
|
|
|
<select id="getCategoriesByUserId" resultType="com.nflg.wms.common.pojo.vo.QmsQualityInspectorCategoryVO">
|
2026-04-20 17:01:53 +08:00
|
|
|
|
SELECT
|
|
|
|
|
|
imci.id,
|
2026-04-21 10:02:43 +08:00
|
|
|
|
imci.material_category_id,
|
2026-04-20 17:01:53 +08:00
|
|
|
|
mc.category_code AS material_category_code,
|
|
|
|
|
|
mc.category_name AS material_category_name
|
|
|
|
|
|
FROM qms_inspector_material_category_item imci
|
|
|
|
|
|
LEFT JOIN qms_qc_material_category mc ON mc.id = imci.material_category_id
|
|
|
|
|
|
WHERE imci.inspector_id = (
|
|
|
|
|
|
SELECT id FROM qms_quality_inspector WHERE user_id = #{userId} LIMIT 1
|
|
|
|
|
|
)
|
|
|
|
|
|
ORDER BY imci.id ASC
|
2026-04-11 09:12:47 +08:00
|
|
|
|
</select>
|
|
|
|
|
|
|
2026-04-21 10:02:43 +08:00
|
|
|
|
<!-- 按 inspectorId 直接查询关联物料列表 -->
|
|
|
|
|
|
<select id="getMaterialsByInspectorId" resultType="com.nflg.wms.common.pojo.vo.QmsQualityInspectorMaterialVO">
|
|
|
|
|
|
SELECT
|
|
|
|
|
|
imi.id,
|
|
|
|
|
|
imi.material_id,
|
|
|
|
|
|
m.material_no,
|
|
|
|
|
|
m.drawing_no,
|
|
|
|
|
|
m.drawing_no_ver,
|
|
|
|
|
|
m.material_category_code,
|
|
|
|
|
|
m.material_category_code_path_name AS material_category_name,
|
|
|
|
|
|
m.material_name,
|
|
|
|
|
|
m.material_specifications,
|
|
|
|
|
|
m.material_texture,
|
|
|
|
|
|
m.is_standard_maintained AS material_status
|
|
|
|
|
|
FROM qms_inspector_material_item imi
|
|
|
|
|
|
LEFT JOIN qms_qc_material m ON m.id = imi.material_id
|
|
|
|
|
|
WHERE imi.inspector_id = #{inspectorId}
|
|
|
|
|
|
ORDER BY imi.id ASC
|
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- 按 inspectorId 直接查询关联物料类别列表(通过 material_category_id JOIN qms_qc_material_category) -->
|
|
|
|
|
|
<select id="getCategoriesByInspectorId" resultType="com.nflg.wms.common.pojo.vo.QmsQualityInspectorCategoryVO">
|
|
|
|
|
|
SELECT
|
|
|
|
|
|
imci.id,
|
|
|
|
|
|
imci.material_category_id,
|
|
|
|
|
|
mc.category_code AS material_category_code,
|
|
|
|
|
|
mc.category_name AS material_category_name
|
|
|
|
|
|
FROM qms_inspector_material_category_item imci
|
|
|
|
|
|
LEFT JOIN qms_qc_material_category mc ON mc.id = imci.material_category_id
|
|
|
|
|
|
WHERE imci.inspector_id = #{inspectorId}
|
|
|
|
|
|
ORDER BY imci.id ASC
|
|
|
|
|
|
</select>
|
|
|
|
|
|
|
2026-04-11 09:12:47 +08:00
|
|
|
|
</mapper>
|