From d8c86797adaef6c416efae16586f350ae77bde4b Mon Sep 17 00:00:00 2001
From: 吴羡 <16976746+Xian-TT3@user.noreply.gitee.com>
Date: 星期六, 12 九月 2026 12:43:08 +0800
Subject: [PATCH] feat: 库存入库/出库字段全链路、采购台账申请提交时间、储罐租客信息、油库储罐模块

---
 src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml |   50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 50 insertions(+), 0 deletions(-)

diff --git a/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml b/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml
index 60d6f4a..fd78a05 100644
--- a/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml
+++ b/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml
@@ -39,6 +39,16 @@
                 pl.approval_status,
                 pl.payment_method,
                 pl.remarks,
+                pl.purchase_category,
+                pl.pickup_method,
+                pl.purchase_oil_product,
+                pl.logistics_method,
+                pl.oil_depot_name,
+                pl.customer_name,
+                pl.best_arrival_date,
+                pl.purchase_quantity,
+                pl.purchase_order_status,
+                pl.application_submit_time,
                 CASE
                     WHEN IFNULL(ls.total_product_count, 0) = 0 THEN '寰呭叆搴�'
                     WHEN IFNULL(ls.full_product_count, 0) &gt;= IFNULL(ls.total_product_count, 0) THEN '瀹屽叏鍏ュ簱'
@@ -139,6 +149,46 @@
         ORDER BY result.entry_date DESC
     </select>
 
+    <select id="selectReturnablePurchaseLedgerList" resultType="com.ruoyi.purchase.pojo.PurchaseLedger">
+        SELECT DISTINCT pl.*
+        FROM purchase_ledger pl
+        WHERE 1 = 1
+        <if test="c.purchaseContractNumber != null and c.purchaseContractNumber != ''">
+            AND pl.purchase_contract_number LIKE CONCAT('%', #{c.purchaseContractNumber}, '%')
+        </if>
+        <if test="c.supplierId != null">
+            AND pl.supplier_id = #{c.supplierId}
+        </if>
+        <if test="c.approvalStatus != null">
+            AND pl.approval_status = #{c.approvalStatus}
+        </if>
+        AND EXISTS (
+            SELECT 1
+            FROM stock_in_record sir
+            LEFT JOIN quality_inspect qi
+                ON sir.record_type = '10'
+               AND sir.record_id = qi.id
+            LEFT JOIN sales_ledger_product slp
+                ON slp.sales_ledger_id = pl.id
+               AND slp.product_model_id = sir.product_model_id
+               AND slp.type = 2
+            LEFT JOIN (
+                SELECT stock_in_record_id, SUM(return_quantity) AS total_return_num
+                FROM purchase_return_order_products
+                GROUP BY stock_in_record_id
+            ) rs ON rs.stock_in_record_id = sir.id
+            WHERE sir.approval_status = 1
+              AND sir.record_type IN ('7','10')
+              AND (
+                  (sir.record_type = '7' AND sir.record_id = pl.id)
+                  OR (sir.record_type = '10' AND qi.purchase_ledger_id = pl.id)
+              )
+              AND slp.id IS NOT NULL
+              AND GREATEST(sir.stock_in_num - COALESCE(rs.total_return_num, 0), 0) > 0
+        )
+        ORDER BY pl.entry_date DESC
+    </select>
+
     <select id="selectTotalPurchaseAmount" resultType="java.math.BigDecimal">
         SELECT IFNULL(SUM(contract_amount), 0)
         FROM purchase_ledger

--
Gitblit v1.9.3