feat(sales): 更新销售报价单查询逻辑以支持客户名称合并
- 修改 SalesQuotationMapper.xml 中的 listPage 查询
- 添加对客户私有池表的左连接以获取客户名称
- 使用 CASE 语句处理不同类型的客户名称映射
- 优化字段选择避免使用通配符
- 添加 COALESCE 函数处理客户名称合并逻辑
| | |
| | | "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},'%') |
| | |
| | | AND t1.status = #{salesQuotationDto.status} |
| | | </if> |
| | | </select> |
| | | |
| | | </mapper> |