161 lines
6.4 KiB
XML
161 lines
6.4 KiB
XML
<?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,
|
||
em.enable,
|
||
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>
|
||
<if test="request.enable != null">
|
||
AND em.enable = #{request.enable}
|
||
</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,
|
||
em.enable,
|
||
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,
|
||
em.enable,
|
||
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>
|
||
|
||
<!-- 批量查询有效免检物料(供应商编号+物料编号组合),仅返回审核通过、启用且在有效期内的记录 -->
|
||
<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>
|
||
|
||
</mapper>
|