liyong
2026-04-28 6d95aca9fae0c748c32ec7697971012097cf9504
feat(sales): 更新销售报价单查询逻辑以支持客户名称合并

- 修改 SalesQuotationMapper.xml 中的 listPage 查询
- 添加对客户私有池表的左连接以获取客户名称
- 使用 CASE 语句处理不同类型的客户名称映射
- 优化字段选择避免使用通配符
- 添加 COALESCE 函数处理客户名称合并逻辑
已修改1个文件
32 ■■■■■ 文件已修改
src/main/resources/mapper/sales/SalesQuotationMapper.xml 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/sales/SalesQuotationMapper.xml
@@ -4,10 +4,37 @@
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.sales.mapper.SalesQuotationMapper">
    <select id="listPage" resultType="com.ruoyi.sales.dto.SalesQuotationDto">
        SELECT t1.*,
               t2.approve_user_ids
        SELECT t1.id,
        t1.quotation_no,
        COALESCE(merged_customer.customer_name, t1.customer) AS customer,
        t1.salesperson,
        t1.quotation_date,
        t1.valid_date,
        t1.payment_method,
        t1.delivery_period,
        t1.status,
        t1.total_amount,
        t1.remark,
        t1.create_time,
        t1.update_time,
        t1.create_user,
        t1.update_user,
        t1.tenant_id,
        t1.dept_id,
        t2.approve_user_ids
        FROM sales_quotation t1
        LEFT JOIN approve_process t2 ON t1.quotation_no = t2.approve_reason and t2.approve_type = 6
        LEFT JOIN (
        SELECT cpp.id, cpp.type, cpp.customer_id,
        CASE
        WHEN cpp.type = 0 THEN cp.customer_name
        WHEN cpp.type = 1 THEN c.customer_name
        ELSE NULL
        END AS customer_name
        FROM customer_private_pool cpp
        LEFT JOIN customer_private cp ON cpp.type = 0 AND cpp.customer_id = cp.id
        LEFT JOIN customer c ON cpp.type = 1 AND cpp.customer_id = c.id
        ) merged_customer ON t1.customer = merged_customer.id
        WHERE 1=1
        <if test="salesQuotationDto.quotationNo != null and salesQuotationDto.quotationNo != '' ">
            AND t1.quotation_no LIKE CONCAT('%',#{salesQuotationDto.quotationNo},'%')
@@ -19,4 +46,5 @@
            AND t1.status = #{salesQuotationDto.status}
        </if>
    </select>
</mapper>