From 44ceeeee9cd3f76b0f3a2135421407b73dea9bb0 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期五, 28 八月 2026 11:41:58 +0800
Subject: [PATCH] fix(sales): 修复销售台账发货状态查询逻辑

---
 src/main/resources/mapper/sales/SalesLedgerMapper.xml |   52 +++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 51 insertions(+), 1 deletions(-)

diff --git a/src/main/resources/mapper/sales/SalesLedgerMapper.xml b/src/main/resources/mapper/sales/SalesLedgerMapper.xml
index 84e1673..f1c3f7b 100644
--- a/src/main/resources/mapper/sales/SalesLedgerMapper.xml
+++ b/src/main/resources/mapper/sales/SalesLedgerMapper.xml
@@ -42,7 +42,7 @@
         </where>
     </select>
 
-    <select id="selectSalesLedgerListPage" resultType="com.ruoyi.sales.pojo.SalesLedger">
+    <select id="selectSalesLedgerListPage" resultType="com.ruoyi.sales.vo.SalesLedgerVo">
         SELECT T1.id,
         T1.sales_contract_no,
         T1.customer_contract_no,
@@ -56,6 +56,8 @@
         T1.attachment_materials,
         T1.tenant_id,
         T1.contract_amount,
+        T1.contract_type,
+        T1.net_contract_amount,
         T1.contract_amount AS noInvoiceAmountTotal,
         T1.execution_date,
         T2.nick_name AS entry_person_name,
@@ -121,5 +123,53 @@
         </if>
         order by sl.execution_date desc
     </select>
+    <select id="selectPurchaseReportVoPage" resultType="com.ruoyi.purchase.vo.PurchaseReportVo">
+        select sl.sales_contract_no customerContractNo,
+               c.customer_name,
+               sl.project_name,
+               sl.contract_amount contractAmount,
+               pl.contract_amount purchaseAmount,
+               sl.contract_amount-pl.contract_amount balance,
+               (sl.contract_amount-pl.contract_amount)/sl.contract_amount balanceRatio
+        from sales_ledger sl
+        left join purchase_ledger pl on sl.id = pl.sales_ledger_id
+        left join customer c on sl.customer_id = c.id
+        <where>
+            <if test="customerName != null and customerName != '' ">
+                and c.customer_name like concat('%',#{customerName},'%')
+            </if>
+        </where>
+        order by sl.entry_date desc
+    </select>
+
+    <select id="listFrameworkOrders" resultType="com.ruoyi.sales.vo.FrameworkOrderVo">
+        select sl.*, IFNULL(shipped.shipped_quantity, 0) AS shippedQuantity
+        from sales_ledger sl
+        left join (
+            select slp.sales_ledger_id, SUM(spd.quantity) AS shipped_quantity
+            from sales_ledger_product slp
+            inner join shipping_info si on slp.id = si.sales_ledger_product_id and si.status IN ('瀹℃牳閫氳繃', '宸插彂璐�')
+            inner join shipping_product_detail spd on si.id = spd.shipping_info_id
+            inner join stock_out_record sor on sor.record_id = si.id
+                and TRIM(sor.record_type) = '13'
+                and sor.approval_status = 1
+            group by slp.sales_ledger_id
+        ) shipped on sl.id = shipped.sales_ledger_id
+        where sl.parent_contract_id = #{parentContractId}
+          and sl.contract_type = 3
+        order by sl.execution_date desc
+    </select>
+
+    <select id="sumShippedByParentContract" resultType="java.math.BigDecimal">
+        select IFNULL(SUM(spd.quantity), 0)
+        from sales_ledger slo
+        inner join sales_ledger_product slp on slo.id = slp.sales_ledger_id
+        inner join shipping_info si on slp.id = si.sales_ledger_product_id and si.status IN ('瀹℃牳閫氳繃', '宸插彂璐�')
+        inner join shipping_product_detail spd on si.id = spd.shipping_info_id
+        inner join stock_out_record sor on sor.record_id = si.id
+            and TRIM(sor.record_type) = '13'
+            and sor.approval_status = 1
+        where slo.parent_contract_id = #{parentContractId}
+    </select>
 
 </mapper>

--
Gitblit v1.9.3