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

250 lines
14 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.QmsQcMaterialMapper">
<!--
分页查询质检物料
支持动态过滤:物料类别编码(materialCategoryCode)、物料编号模糊(materialNo)、物料描述模糊(materialDesc)、物料名称模糊(materialName)
、描述是否变更(materialDescIsUpgrade)、类别全路径名称模糊(materialCategoryCodePathName)、图号模糊(drawingNo)
、图号版本号模糊(drawingNoVer)、材质模糊(materialTexture)、规格模糊(materialSpecifications)
、规则是否已维护(isStandardMaintained)、创建方式(createdType)、创建人模糊(createByName)
、创建时间范围(createTimeStart/createTimeEnd)、修改人模糊(updateByName)、修改时间范围(updateTimeStart/updateTimeEnd)
-->
<select id="searchPage" resultType="com.nflg.wms.common.pojo.vo.QmsQcMaterialVO">
SELECT
id,
material_no,
material_desc,
material_desc_is_upgrade,
material_category_code,
material_category_code_path_name,
drawing_no,
drawing_no_ver,
material_name,
material_texture,
material_specifications,
is_standard_maintained,
created_type,
create_by_name,
create_time,
update_by_name,
update_time
FROM qms_qc_material
<where>
<choose>
<when test="request.materialCategoryCodes != null and !request.materialCategoryCodes.isEmpty()">
AND material_category_code IN
<foreach collection="request.materialCategoryCodes" item="code" open="(" separator="," close=")">
#{code}
</foreach>
</when>
<when test="request.materialCategoryCode != null and request.materialCategoryCode != ''">
AND material_category_code = #{request.materialCategoryCode}
</when>
</choose>
<if test="request.materialNo != null and request.materialNo != ''">
AND material_no ilike concat('%', #{request.materialNo}, '%')
</if>
<if test="request.materialDesc != null and request.materialDesc != ''">
AND material_desc ilike concat('%', #{request.materialDesc}, '%')
</if>
<if test="request.materialName != null and request.materialName != ''">
AND material_name ilike concat('%', #{request.materialName}, '%')
</if>
<if test="request.materialDescIsUpgrade != null">
AND material_desc_is_upgrade = #{request.materialDescIsUpgrade}
</if>
<if test="request.materialCategoryCodePathName != null and request.materialCategoryCodePathName != ''">
AND material_category_code_path_name ilike concat('%', #{request.materialCategoryCodePathName}, '%')
</if>
<if test="request.drawingNo != null and request.drawingNo != ''">
AND drawing_no ilike concat('%', #{request.drawingNo}, '%')
</if>
<if test="request.drawingNoVer != null and request.drawingNoVer != ''">
AND drawing_no_ver ilike concat('%', #{request.drawingNoVer}, '%')
</if>
<if test="request.materialTexture != null and request.materialTexture != ''">
AND material_texture ilike concat('%', #{request.materialTexture}, '%')
</if>
<if test="request.materialSpecifications != null and request.materialSpecifications != ''">
AND material_specifications ilike concat('%', #{request.materialSpecifications}, '%')
</if>
<if test="request.isStandardMaintained != null">
AND is_standard_maintained = #{request.isStandardMaintained}
</if>
<if test="request.createdType != null">
AND created_type = #{request.createdType}
</if>
<if test="request.createByName != null and request.createByName != ''">
AND create_by_name ilike concat('%', #{request.createByName}, '%')
</if>
<if test="request.createTimeStart != null">
AND create_time &gt;= #{request.createTimeStart}::date
</if>
<if test="request.createTimeEnd != null">
AND create_time &lt; (#{request.createTimeEnd}::date + interval '1 day')
</if>
<if test="request.updateByName != null and request.updateByName != ''">
AND update_by_name ilike concat('%', #{request.updateByName}, '%')
</if>
<if test="request.updateTimeStart != null">
AND update_time &gt;= #{request.updateTimeStart}::date
</if>
<if test="request.updateTimeEnd != null">
AND update_time &lt; (#{request.updateTimeEnd}::date + interval '1 day')
</if>
</where>
ORDER BY
<choose>
<when test="request.sortField != null and request.sortField != ''">
<choose>
<when test="request.sortField == 'id'">id</when>
<when test="request.sortField == 'materialNo'">material_no</when>
<when test="request.sortField == 'materialDesc'">material_desc</when>
<when test="request.sortField == 'materialDescIsUpgrade'">material_desc_is_upgrade</when>
<when test="request.sortField == 'materialCategoryCode'">material_category_code</when>
<when test="request.sortField == 'materialCategoryCodePathName'">material_category_code_path_name</when>
<when test="request.sortField == 'drawingNo'">drawing_no</when>
<when test="request.sortField == 'drawingNoVer'">drawing_no_ver</when>
<when test="request.sortField == 'materialName'">material_name</when>
<when test="request.sortField == 'materialTexture'">material_texture</when>
<when test="request.sortField == 'materialSpecifications'">material_specifications</when>
<when test="request.sortField == 'isStandardMaintained'">is_standard_maintained</when>
<when test="request.sortField == 'createdType'">created_type</when>
<when test="request.sortField == 'createByName'">create_by_name</when>
<when test="request.sortField == 'createTime'">create_time</when>
<when test="request.sortField == 'updateByName'">update_by_name</when>
<when test="request.sortField == 'updateTime'">update_time</when>
<otherwise>material_no</otherwise>
</choose>
<choose>
<when test="request.sortOrder != null and request.sortOrder.equalsIgnoreCase('asc')">ASC</when>
<otherwise>DESC</otherwise>
</choose>
</when>
<otherwise>material_no DESC</otherwise>
</choose>
</select>
<!--
查询全部质检物料(不分页,用于导出)
支持动态过滤:物料类别编码(materialCategoryCode)、物料编号模糊(materialNo)、物料描述模糊(materialDesc)、物料名称模糊(materialName)
、描述是否变更(materialDescIsUpgrade)、类别全路径名称模糊(materialCategoryCodePathName)、图号模糊(drawingNo)
、图号版本号模糊(drawingNoVer)、材质模糊(materialTexture)、规格模糊(materialSpecifications)
、规则是否已维护(isStandardMaintained)、创建方式(createdType)、创建人模糊(createByName)
、创建时间范围(createTimeStart/createTimeEnd)、修改人模糊(updateByName)、修改时间范围(updateTimeStart/updateTimeEnd)
-->
<select id="searchAll" resultType="com.nflg.wms.common.pojo.dto.QmsQcMaterialExportDTO">
SELECT
material_no,
material_desc,
material_category_code,
material_category_code_path_name,
drawing_no,
drawing_no_ver,
material_name,
material_texture,
material_specifications,
CASE WHEN is_standard_maintained THEN '是' ELSE '否' END AS is_standard_maintained,
CASE created_type WHEN 0 THEN '人工操作' WHEN 1 THEN '系统同步' ELSE '未知' END AS created_type,
create_by_name,
TO_CHAR(create_time, 'YYYY-MM-DD HH24:MI:SS') AS create_time
FROM qms_qc_material
<where>
<choose>
<when test="request.materialCategoryCodes != null and !request.materialCategoryCodes.isEmpty()">
AND material_category_code IN
<foreach collection="request.materialCategoryCodes" item="code" open="(" separator="," close=")">
#{code}
</foreach>
</when>
<when test="request.materialCategoryCode != null and request.materialCategoryCode != ''">
AND material_category_code = #{request.materialCategoryCode}
</when>
</choose>
<if test="request.materialNo != null and request.materialNo != ''">
AND material_no ilike concat('%', #{request.materialNo}, '%')
</if>
<if test="request.materialDesc != null and request.materialDesc != ''">
AND material_desc ilike concat('%', #{request.materialDesc}, '%')
</if>
<if test="request.materialName != null and request.materialName != ''">
AND material_name ilike concat('%', #{request.materialName}, '%')
</if>
<if test="request.materialDescIsUpgrade != null">
AND material_desc_is_upgrade = #{request.materialDescIsUpgrade}
</if>
<if test="request.materialCategoryCodePathName != null and request.materialCategoryCodePathName != ''">
AND material_category_code_path_name ilike concat('%', #{request.materialCategoryCodePathName}, '%')
</if>
<if test="request.drawingNo != null and request.drawingNo != ''">
AND drawing_no ilike concat('%', #{request.drawingNo}, '%')
</if>
<if test="request.drawingNoVer != null and request.drawingNoVer != ''">
AND drawing_no_ver ilike concat('%', #{request.drawingNoVer}, '%')
</if>
<if test="request.materialTexture != null and request.materialTexture != ''">
AND material_texture ilike concat('%', #{request.materialTexture}, '%')
</if>
<if test="request.materialSpecifications != null and request.materialSpecifications != ''">
AND material_specifications ilike concat('%', #{request.materialSpecifications}, '%')
</if>
<if test="request.isStandardMaintained != null">
AND is_standard_maintained = #{request.isStandardMaintained}
</if>
<if test="request.createdType != null">
AND created_type = #{request.createdType}
</if>
<if test="request.createByName != null and request.createByName != ''">
AND create_by_name ilike concat('%', #{request.createByName}, '%')
</if>
<if test="request.createTimeStart != null">
AND create_time &gt;= #{request.createTimeStart}::date
</if>
<if test="request.createTimeEnd != null">
AND create_time &lt; (#{request.createTimeEnd}::date + interval '1 day')
</if>
<if test="request.updateByName != null and request.updateByName != ''">
AND update_by_name ilike concat('%', #{request.updateByName}, '%')
</if>
<if test="request.updateTimeStart != null">
AND update_time &gt;= #{request.updateTimeStart}::date
</if>
<if test="request.updateTimeEnd != null">
AND update_time &lt; (#{request.updateTimeEnd}::date + interval '1 day')
</if>
</where>
ORDER BY
<choose>
<when test="request.sortField != null and request.sortField != ''">
<choose>
<when test="request.sortField == 'id'">id</when>
<when test="request.sortField == 'materialNo'">material_no</when>
<when test="request.sortField == 'materialDesc'">material_desc</when>
<when test="request.sortField == 'materialDescIsUpgrade'">material_desc_is_upgrade</when>
<when test="request.sortField == 'materialCategoryCode'">material_category_code</when>
<when test="request.sortField == 'materialCategoryCodePathName'">material_category_code_path_name</when>
<when test="request.sortField == 'drawingNo'">drawing_no</when>
<when test="request.sortField == 'drawingNoVer'">drawing_no_ver</when>
<when test="request.sortField == 'materialName'">material_name</when>
<when test="request.sortField == 'materialTexture'">material_texture</when>
<when test="request.sortField == 'materialSpecifications'">material_specifications</when>
<when test="request.sortField == 'isStandardMaintained'">is_standard_maintained</when>
<when test="request.sortField == 'createdType'">created_type</when>
<when test="request.sortField == 'createByName'">create_by_name</when>
<when test="request.sortField == 'createTime'">create_time</when>
<when test="request.sortField == 'updateByName'">update_by_name</when>
<when test="request.sortField == 'updateTime'">update_time</when>
<otherwise>material_no</otherwise>
</choose>
<choose>
<when test="request.sortOrder != null and request.sortOrder.equalsIgnoreCase('asc')">ASC</when>
<otherwise>DESC</otherwise>
</choose>
</when>
<otherwise>material_no DESC</otherwise>
</choose>
</select>
</mapper>