86 lines
3.7 KiB
XML
86 lines
3.7 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.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>
|