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

86 lines
3.7 KiB
XML
Raw Normal View History

<?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">
2026-04-09 18:39:27 +08:00
<!-- 分页查询关联表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,
2026-04-20 08:00:59 +08:00
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
2026-04-09 18:39:27 +08:00
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>
2026-04-09 18:39:27 +08:00
<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>
2026-04-21 10:30:09 +08:00
<!-- 平铺查询:每行一条关联记录,含 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>