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

86 lines
3.7 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.QmsSupplierSqeMapMapper">
<!-- 分页查询关联表JOIN 供应商/user/user_interior/position动态过滤 -->
<select id="searchMap" resultType="com.nflg.wms.common.pojo.vo.QmsSupplierSqeMapVO">
SELECT
qssm.supplier_id,
us.supplier_code,
us.supplier_name,
STRING_AGG(DISTINCT u.user_name, ',' ORDER BY u.user_name) AS user_name,
BOOL_AND(qssm.enable) AS enable,
MAX(qssm.create_time) AS create_time,
MAX(qssm.create_by) AS create_by,
MAX(qssm.update_time) AS update_time,
MAX(qssm.update_by) AS update_by
FROM qms_supplier_sqe_map qssm
LEFT JOIN user_supplier us ON us.id = qssm.supplier_id
LEFT JOIN "user" u ON u.id = qssm.user_id
<where>
<if test="request.supplierCode != null and request.supplierCode != ''">
AND us.supplier_code ilike concat('%', #{request.supplierCode}, '%')
</if>
<if test="request.supplierName != null and request.supplierName != ''">
AND us.supplier_name ilike concat('%', #{request.supplierName}, '%')
</if>
<if test="request.userName != null and request.userName != ''">
AND u.user_name ilike concat('%', #{request.userName}, '%')
</if>
</where>
GROUP BY qssm.supplier_id, us.supplier_code, us.supplier_name
ORDER BY qssm.supplier_id DESC
</select>
<!-- 平铺查询:每行一条关联记录,含 userId/userName供 Service 聚合为 List -->
<select id="searchMapFlat" resultType="com.nflg.wms.common.pojo.vo.QmsSupplierSqeMapFlatVO">
SELECT
qssm.supplier_id,
us.supplier_code,
us.supplier_name,
qssm.user_id,
u.user_name,
qssm.enable,
qssm.create_time,
qssm.create_by,
qssm.update_time,
qssm.update_by
FROM qms_supplier_sqe_map qssm
LEFT JOIN user_supplier us ON us.id = qssm.supplier_id
LEFT JOIN "user" u ON u.id = qssm.user_id
<where>
<if test="request.supplierCode != null and request.supplierCode != ''">
AND us.supplier_code ilike concat('%', #{request.supplierCode}, '%')
</if>
<if test="request.supplierName != null and request.supplierName != ''">
AND us.supplier_name ilike concat('%', #{request.supplierName}, '%')
</if>
<if test="request.userName != null and request.userName != ''">
AND u.user_name ilike concat('%', #{request.userName}, '%')
</if>
</where>
ORDER BY qssm.supplier_id DESC, qssm.user_id ASC
</select>
<!-- 按 userId 查询关联的供应商列表(支持供应商过滤) -->
<select id="getSuppliersByUserId" resultType="com.nflg.wms.common.pojo.vo.QmsUserSupplierVO">
SELECT
qssm.id,
qssm.supplier_id,
us.supplier_code,
us.supplier_name,
qssm.enable
FROM qms_supplier_sqe_map qssm
LEFT JOIN user_supplier us ON us.id = qssm.supplier_id
WHERE qssm.user_id = #{userId}
<if test="supplierCode != null and supplierCode != ''">
AND us.supplier_code = #{supplierCode}
</if>
<if test="supplierName != null and supplierName != ''">
AND us.supplier_name ilike concat('%', #{supplierName}, '%')
</if>
ORDER BY qssm.id ASC
</select>
</mapper>