From 9e097fb25f494424ad79800c78b635fc94175f37 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期四, 13 八月 2026 13:53:20 +0800
Subject: [PATCH] feat(stock): 添加库存查询按型号过滤功能
---
src/main/resources/mapper/sales/SalesLedgerMapper.xml | 49 ++++++++++++++++++++++++-------------------------
1 files changed, 24 insertions(+), 25 deletions(-)
diff --git a/src/main/resources/mapper/sales/SalesLedgerMapper.xml b/src/main/resources/mapper/sales/SalesLedgerMapper.xml
index 735a232..90e87ee 100644
--- a/src/main/resources/mapper/sales/SalesLedgerMapper.xml
+++ b/src/main/resources/mapper/sales/SalesLedgerMapper.xml
@@ -50,44 +50,39 @@
T1.entry_date,
T1.salesman,
T1.customer_id,
+ T1.approval_status,
T1.customer_name,
T1.entry_person,
T1.remarks,
T1.attachment_materials,
T1.tenant_id,
T1.contract_amount,
- T1.contract_amount as noInvoiceAmountTotal,
+ T1.contract_amount AS noInvoiceAmountTotal,
T1.execution_date,
T2.nick_name AS entry_person_name,
T1.payment_method,
T1.delivery_date,
DATEDIFF(T1.delivery_date, CURDATE()) AS delivery_days_diff,
- CASE
- WHEN shipping_status_counts.total_count = 0 THEN false
- WHEN shipping_status_counts.unshipped_count = 0 THEN true
- ELSE false
- END AS is_fh,
- CASE
- WHEN EXISTS (
- SELECT 1
- FROM product_order po2
- INNER JOIN product_work_order wo2 ON wo2.product_order_id = po2.id
- INNER JOIN production_product_main pm2 ON pm2.work_order_id = wo2.id
- WHERE po2.sales_ledger_id = T1.id
- LIMIT 1
- ) THEN true
- ELSE false
- END AS has_production_record
+ IFNULL(shipping_status_counts.is_all_shipped, FALSE) AS is_fh,
+ IFNULL(production_exists.has_production, FALSE) AS has_production_record
FROM sales_ledger T1
LEFT JOIN sys_user T2 ON T1.entry_person = T2.user_id
LEFT JOIN (
SELECT sales_ledger_id,
- COUNT(*) as total_count,
- SUM(CASE WHEN status != '宸插彂璐�' THEN 1 ELSE 0 END) as unshipped_count
+ CASE
+ WHEN SUM(CASE WHEN status != '宸插彂璐�' THEN 1 ELSE 0 END) = 0 THEN TRUE
+ ELSE FALSE
+ END AS is_all_shipped
FROM shipping_info
GROUP BY sales_ledger_id
) shipping_status_counts ON T1.id = shipping_status_counts.sales_ledger_id
-
+ LEFT JOIN (
+ SELECT DISTINCT po.sales_ledger_id,
+ TRUE AS has_production
+ FROM product_order po
+ INNER JOIN product_work_order wo ON wo.product_order_id = po.id
+ INNER JOIN production_product_main pm ON pm.work_order_id = wo.id
+ ) production_exists ON T1.id = production_exists.sales_ledger_id
<where>
<if test="salesLedgerDto.customerName != null and salesLedgerDto.customerName != '' ">
AND T1.customer_name LIKE CONCAT('%',#{salesLedgerDto.customerName},'%')
@@ -123,11 +118,15 @@
FROM sales_ledger
GROUP BY customer_name
</select>
- <select id="listSalesLedgerAndShipped" resultType="com.ruoyi.sales.dto.SalesLedgerDto">
- select distinct sl.id as 'disId', sl.* from
- sales_ledger sl
- left join sales_ledger_product slp on sl.id = slp.sales_ledger_id
- left join shipping_info si on slp.id = si.sales_ledger_product_id
+ <select id="listSalesLedgerAndShipped" resultType="com.ruoyi.sales.dto.AfterSalesLedgerDto">
+ select
+ si.*,sl.sales_contract_no,sl.customer_contract_no,
+ sl.project_name,sl.entry_date,sl.salesman,sl.customer_id,sl.customer_name,
+ sl.entry_person,sl.remarks,sl.attachment_materials,sl.tenant_id,
+ sl.contract_amount,sl.execution_date,sl.payment_method,sl.delivery_date
+ from shipping_info si
+ left join sales_ledger_product slp on slp.id = si.sales_ledger_product_id
+ left join sales_ledger sl on sl.id = slp.sales_ledger_id
where si.status = '宸插彂璐�'
<if test="ew.customerName != null and ew.customerName != '' ">
and sl.customer_name like concat('%',#{ew.customerName},'%')
--
Gitblit v1.9.3