2026-04-11 15:58:31 +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.QmsExemptMaterialMapper">
|
|
|
|
|
|
|
|
|
|
|
|
<!-- 分页查询免检物料列表,JOIN 供应商表和质检物料表 -->
|
|
|
|
|
|
<select id="search" resultType="com.nflg.wms.common.pojo.vo.QmsExemptMaterialVO">
|
|
|
|
|
|
SELECT
|
|
|
|
|
|
em.id,
|
|
|
|
|
|
em.supplier_id,
|
|
|
|
|
|
us.supplier_code,
|
|
|
|
|
|
us.supplier_name,
|
|
|
|
|
|
em.material_no,
|
|
|
|
|
|
qm.material_desc,
|
|
|
|
|
|
em.audit_status,
|
2026-04-15 15:09:20 +08:00
|
|
|
|
em.enable,
|
2026-04-11 15:58:31 +08:00
|
|
|
|
em.exempt_mode,
|
|
|
|
|
|
em.valid_start_date,
|
|
|
|
|
|
em.valid_end_date,
|
|
|
|
|
|
em.reject_reason,
|
|
|
|
|
|
CASE
|
|
|
|
|
|
WHEN em.exempt_mode = 0 THEN 1
|
|
|
|
|
|
WHEN em.exempt_mode = 1 AND em.valid_end_date IS NOT NULL AND em.valid_end_date >= NOW() THEN 1
|
|
|
|
|
|
ELSE 0
|
|
|
|
|
|
END AS valid_status,
|
|
|
|
|
|
em.auditor_name,
|
|
|
|
|
|
em.audit_time,
|
|
|
|
|
|
em.create_by_name,
|
|
|
|
|
|
em.create_time,
|
|
|
|
|
|
em.update_by_name,
|
|
|
|
|
|
em.update_time
|
|
|
|
|
|
FROM qms_exempt_material em
|
|
|
|
|
|
LEFT JOIN user_supplier us ON us.id = em.supplier_id
|
|
|
|
|
|
LEFT JOIN qms_qc_material qm ON qm.material_no = em.material_no
|
|
|
|
|
|
<where>
|
|
|
|
|
|
<if test="request.supplier != null and request.supplier != ''">
|
|
|
|
|
|
AND (us.supplier_code ILIKE CONCAT('%', #{request.supplier}, '%')
|
|
|
|
|
|
OR us.supplier_name ILIKE CONCAT('%', #{request.supplier}, '%'))
|
|
|
|
|
|
</if>
|
|
|
|
|
|
<if test="request.materialNo != null and request.materialNo != ''">
|
|
|
|
|
|
AND em.material_no ILIKE CONCAT('%', #{request.materialNo}, '%')
|
|
|
|
|
|
</if>
|
|
|
|
|
|
<if test="request.exemptMode != null">
|
|
|
|
|
|
AND em.exempt_mode = #{request.exemptMode}
|
|
|
|
|
|
</if>
|
|
|
|
|
|
<if test="request.auditStatus != null">
|
|
|
|
|
|
AND em.audit_status = #{request.auditStatus}
|
|
|
|
|
|
</if>
|
2026-04-15 15:09:20 +08:00
|
|
|
|
<if test="request.enable != null">
|
|
|
|
|
|
AND em.enable = #{request.enable}
|
2026-04-11 15:58:31 +08:00
|
|
|
|
</if>
|
|
|
|
|
|
<if test="request.validStartDateBegin != null">
|
|
|
|
|
|
AND em.valid_start_date >= #{request.validStartDateBegin}
|
|
|
|
|
|
</if>
|
|
|
|
|
|
<if test="request.validStartDateEnd != null">
|
|
|
|
|
|
AND em.valid_start_date <= #{request.validStartDateEnd}
|
|
|
|
|
|
</if>
|
|
|
|
|
|
<if test="request.validEndDateBegin != null">
|
|
|
|
|
|
AND em.valid_end_date >= #{request.validEndDateBegin}
|
|
|
|
|
|
</if>
|
|
|
|
|
|
<if test="request.validEndDateEnd != null">
|
|
|
|
|
|
AND em.valid_end_date <= #{request.validEndDateEnd}
|
|
|
|
|
|
</if>
|
|
|
|
|
|
<if test="request.validStatus != null and request.validStatus == 1">
|
|
|
|
|
|
AND (em.exempt_mode = 0 OR (em.exempt_mode = 1 AND em.valid_end_date IS NOT NULL AND em.valid_end_date >= NOW()))
|
|
|
|
|
|
</if>
|
|
|
|
|
|
<if test="request.validStatus != null and request.validStatus == 0">
|
|
|
|
|
|
AND em.exempt_mode = 1 AND (em.valid_end_date IS NULL OR em.valid_end_date < NOW())
|
|
|
|
|
|
</if>
|
|
|
|
|
|
</where>
|
|
|
|
|
|
ORDER BY em.create_time DESC
|
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- 按供应商查询关联的免检物料明细 -->
|
|
|
|
|
|
<select id="detailBySupplier" resultType="com.nflg.wms.common.pojo.vo.QmsExemptMaterialVO">
|
|
|
|
|
|
SELECT
|
|
|
|
|
|
em.id,
|
|
|
|
|
|
em.supplier_id,
|
|
|
|
|
|
us.supplier_code,
|
|
|
|
|
|
us.supplier_name,
|
|
|
|
|
|
em.material_no,
|
|
|
|
|
|
qm.material_desc,
|
|
|
|
|
|
em.audit_status,
|
2026-04-15 15:09:20 +08:00
|
|
|
|
em.enable,
|
2026-04-11 15:58:31 +08:00
|
|
|
|
em.exempt_mode,
|
|
|
|
|
|
em.valid_start_date,
|
|
|
|
|
|
em.valid_end_date,
|
|
|
|
|
|
CASE
|
|
|
|
|
|
WHEN em.exempt_mode = 0 THEN 1
|
|
|
|
|
|
WHEN em.exempt_mode = 1 AND em.valid_end_date IS NOT NULL AND em.valid_end_date >= NOW() THEN 1
|
|
|
|
|
|
ELSE 0
|
|
|
|
|
|
END AS valid_status,
|
|
|
|
|
|
em.auditor_name,
|
|
|
|
|
|
em.audit_time,
|
|
|
|
|
|
em.create_by_name,
|
|
|
|
|
|
em.create_time,
|
|
|
|
|
|
em.update_by_name,
|
|
|
|
|
|
em.update_time
|
|
|
|
|
|
FROM qms_exempt_material em
|
|
|
|
|
|
LEFT JOIN user_supplier us ON us.id = em.supplier_id
|
|
|
|
|
|
LEFT JOIN qms_qc_material qm ON qm.material_no = em.material_no
|
|
|
|
|
|
WHERE em.supplier_id = #{supplierId}
|
|
|
|
|
|
ORDER BY em.create_time DESC
|
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- 按物料查询关联的供应商免检明细 -->
|
|
|
|
|
|
<select id="detailByMaterial" resultType="com.nflg.wms.common.pojo.vo.QmsExemptMaterialVO">
|
|
|
|
|
|
SELECT
|
|
|
|
|
|
em.id,
|
|
|
|
|
|
em.supplier_id,
|
|
|
|
|
|
us.supplier_code,
|
|
|
|
|
|
us.supplier_name,
|
|
|
|
|
|
em.material_no,
|
|
|
|
|
|
qm.material_desc,
|
|
|
|
|
|
em.audit_status,
|
2026-04-15 15:09:20 +08:00
|
|
|
|
em.enable,
|
2026-04-11 15:58:31 +08:00
|
|
|
|
em.exempt_mode,
|
|
|
|
|
|
em.valid_start_date,
|
|
|
|
|
|
em.valid_end_date,
|
|
|
|
|
|
CASE
|
|
|
|
|
|
WHEN em.exempt_mode = 0 THEN 1
|
|
|
|
|
|
WHEN em.exempt_mode = 1 AND em.valid_end_date IS NOT NULL AND em.valid_end_date >= NOW() THEN 1
|
|
|
|
|
|
ELSE 0
|
|
|
|
|
|
END AS valid_status,
|
|
|
|
|
|
em.auditor_name,
|
|
|
|
|
|
em.audit_time,
|
|
|
|
|
|
em.create_by_name,
|
|
|
|
|
|
em.create_time,
|
|
|
|
|
|
em.update_by_name,
|
|
|
|
|
|
em.update_time
|
|
|
|
|
|
FROM qms_exempt_material em
|
|
|
|
|
|
LEFT JOIN user_supplier us ON us.id = em.supplier_id
|
|
|
|
|
|
LEFT JOIN qms_qc_material qm ON qm.material_no = em.material_no
|
|
|
|
|
|
WHERE em.material_no = #{materialNo}
|
|
|
|
|
|
ORDER BY em.create_time DESC
|
|
|
|
|
|
</select>
|
|
|
|
|
|
|
2026-04-29 09:59:00 +08:00
|
|
|
|
<!-- 批量查询有效免检物料(供应商编号+物料编号组合),仅返回审核通过、启用且在有效期内的记录 -->
|
|
|
|
|
|
<select id="batchCheckExempt" resultType="com.nflg.wms.common.pojo.vo.ExemptMaterialCheckVO">
|
|
|
|
|
|
SELECT
|
|
|
|
|
|
us.supplier_code AS supplierCode,
|
|
|
|
|
|
em.material_no AS materialNo
|
|
|
|
|
|
FROM qms_exempt_material em
|
|
|
|
|
|
INNER JOIN user_supplier us ON us.id = em.supplier_id
|
|
|
|
|
|
WHERE em.audit_status = 1
|
|
|
|
|
|
AND em.enable = true
|
|
|
|
|
|
AND (
|
|
|
|
|
|
em.exempt_mode = 0
|
|
|
|
|
|
OR (em.exempt_mode = 1 AND em.valid_end_date IS NOT NULL AND em.valid_end_date >= NOW())
|
|
|
|
|
|
)
|
|
|
|
|
|
AND us.supplier_code IN
|
|
|
|
|
|
<foreach collection="supplierCodes" item="code" open="(" separator="," close=")">
|
|
|
|
|
|
#{code}
|
|
|
|
|
|
</foreach>
|
|
|
|
|
|
AND em.material_no IN
|
|
|
|
|
|
<foreach collection="materialNos" item="no" open="(" separator="," close=")">
|
|
|
|
|
|
#{no}
|
|
|
|
|
|
</foreach>
|
|
|
|
|
|
</select>
|
|
|
|
|
|
|
2026-04-11 15:58:31 +08:00
|
|
|
|
</mapper>
|