From 47806d9e390ee00e1d29ad1da8c1aa908882a758 Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期二, 11 八月 2026 14:43:59 +0800
Subject: [PATCH] 用河南鹤壁代码覆盖山西长治
---
src/main/resources/mapper/sales/SalesLedgerProductMapper.xml | 78 ++++++++++++++++----------------------
1 files changed, 33 insertions(+), 45 deletions(-)
diff --git a/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml b/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml
index 8787706..23cad89 100644
--- a/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml
+++ b/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml
@@ -30,15 +30,12 @@
pm.model as specification_model,
pm.unit as unit,
CASE
- WHEN (IFNULL(t2.qualitity, 0) - IFNULL(t2.locked_quantity, 0)) >0 THEN 1
+ WHEN (IFNULL(t2.qualitity, 0) - IFNULL(t2.locked_quantity, 0)) >= (IFNULL(T1.quantity, 0) - IFNULL(t3.shipped_quantity, 0)) THEN 1
ELSE 0
END as has_sufficient_stock,
- (IFNULL(T1.quantity, 0) - IFNULL(t3.shipped_quantity, 0) - IFNULL(t5.pending_approval_quantity, 0)) as no_quantity,
- IFNULL(t6.return_quantity, 0) as return_quantity,
- IFNULL(t5.pending_approval_quantity, 0) as pending_approval_quantity,
+ (IFNULL(T1.quantity, 0) - IFNULL(t3.shipped_quantity, 0)) as no_quantity,
CASE
- WHEN IFNULL(t3.shipped_quantity, 0) = 0 AND IFNULL(t5.pending_approval_quantity, 0) = 0 THEN '寰呭彂璐�'
- WHEN IFNULL(t3.shipped_quantity, 0) = 0 AND IFNULL(t5.pending_approval_quantity, 0) > 0 THEN '瀹℃壒涓�'
+ WHEN IFNULL(t3.shipped_quantity, 0) = 0 THEN '寰呭彂璐�'
WHEN (IFNULL(T1.quantity, 0) - IFNULL(t3.shipped_quantity, 0)) > 0 THEN '閮ㄥ垎鍙戣揣'
ELSE '宸插彂璐�'
END as shippingStatus,
@@ -56,17 +53,11 @@
GROUP BY product_model_id
) t2 ON T1.product_model_id = t2.product_model_id
LEFT JOIN (
- SELECT si.sales_ledger_product_id, IFNULL(SUM(spd.quantity), 0) as shipped_quantity
+ SELECT sales_ledger_product_id, IFNULL(SUM(spd.quantity), 0) as shipped_quantity
FROM shipping_info si
- INNER JOIN shipping_product_detail spd ON si.id = spd.shipping_info_id
- WHERE si.status IN ('瀹℃牳閫氳繃', '宸插彂璐�')
- AND EXISTS (
- SELECT 1 FROM stock_out_record sor
- WHERE sor.record_id = si.id
- AND TRIM(sor.record_type) = '13'
- AND sor.approval_status = 1
- )
- GROUP BY si.sales_ledger_product_id
+ LEFT JOIN shipping_product_detail spd ON si.id = spd.shipping_info_id
+ where si.status != '瀹℃牳鎷掔粷'
+ GROUP BY sales_ledger_product_id
) t3 ON t3.sales_ledger_product_id = T1.id
LEFT JOIN (
SELECT rel.sales_ledger_product_id,
@@ -101,25 +92,6 @@
) rel
GROUP BY rel.sales_ledger_product_id
) t4 ON t4.sales_ledger_product_id = T1.id
- LEFT JOIN (
- SELECT si.sales_ledger_product_id, IFNULL(SUM(spd.quantity), 0) as pending_approval_quantity
- FROM shipping_info si
- LEFT JOIN shipping_product_detail spd ON si.id = spd.shipping_info_id
- WHERE si.status IN ('寰呭鏍�', '瀹℃牳涓�')
- OR (si.status = '瀹℃牳閫氳繃' AND NOT EXISTS (
- SELECT 1 FROM stock_out_record sor
- WHERE sor.record_id = si.id
- AND TRIM(sor.record_type) = '13'
- AND sor.approval_status = 1
- ))
- GROUP BY si.sales_ledger_product_id
- ) t5 ON t5.sales_ledger_product_id = T1.id
- LEFT JOIN (
- SELECT prop.sales_ledger_product_id, IFNULL(SUM(prop.return_quantity), 0) AS return_quantity
- FROM purchase_return_order_products prop
- INNER JOIN purchase_return_orders pro ON prop.purchase_return_order_id = pro.id
- GROUP BY prop.sales_ledger_product_id
- ) t6 ON t6.sales_ledger_product_id = T1.id
left join product_model pm ON T1.product_model_id = pm.id
left join product p ON pm.product_id = p.id
<where>
@@ -159,7 +131,7 @@
SUM(slp.tax_inclusive_total_price) AS purchaseAmount,
COUNT(DISTINCT slp.sales_ledger_id) AS purchaseTimes,
<!-- 骞冲潎鍗曚环 = 鎬婚噰璐噾棰�/鎬婚噰璐暟閲忥紝淇濈暀2浣嶅皬鏁帮紝閬垮厤闄�0 -->
- ROUND(IF(SUM(slp.quantity) = 0, 0, SUM(slp.tax_inclusive_total_price) / SUM(slp.quantity)), 2) AS averagePrice,
+ ROUND(IF(SUM(slp.quantity) = 0, 0, SUM(slp.tax_inclusive_total_price) / SUM(slp.quantity)), 6) AS averagePrice,
<!-- 璇ヤ骇鍝佸ぇ绫讳笅鏈�鍚庝竴涓綍鍏ユ棩鏈燂紙鍙栧彴璐︿富琛ㄧ殑entry_date锛� -->
MAX(sl.entry_date) AS entryDate,
COALESCE(NULLIF(SUM(t1.return_quantity), 0), 0) AS return_quantity,
@@ -235,7 +207,7 @@
JOIN product pr ON slp.product_id = pr.id
WHERE
slp.type = 2
- AND pr.parent_id = ( SELECT id FROM product WHERE product_name = '鍘熸潗鏂�' )
+ AND pr.parent_id = ( SELECT id FROM product WHERE product_name = '鍘熸枡' )
GROUP BY
pr.id,
pr.product_name
@@ -246,20 +218,36 @@
<select id="selectProductCountByTypeAndDate" resultType="int">
SELECT IFNULL(COUNT(*), 0)
- FROM sales_ledger_product
+ FROM sales_ledger_product slp
+ LEFT JOIN sales_ledger sl ON sl.id = slp.sales_ledger_id
+ LEFT JOIN purchase_ledger pl ON pl.id = slp.sales_ledger_id
WHERE type = #{type}
- <if test="startDate != null">
- AND register_date >= #{startDate}
- </if>
- <if test="endDate != null">
- AND register_date <= #{endDate}
- </if>
+
+ <choose>
+ <when test="type == 1">
+ <if test="startDate != null">
+ AND sl.entry_date >= #{startDate}
+ </if>
+ <if test="endDate != null">
+ AND sl.entry_date <= #{endDate}
+ </if>
+ </when>
+
+ <when test="type == 2">
+ <if test="startDate != null">
+ AND pl.entry_date >= #{startDate}
+ </if>
+ <if test="endDate != null">
+ AND pl.entry_date <= #{endDate}
+ </if>
+ </when>
+ </choose>
</select>
<select id="selectRawMaterialExpense" resultType="java.math.BigDecimal">
WITH RECURSIVE product_tree AS (SELECT id
FROM product
- WHERE product_name = '鍘熸潗鏂�'
+ WHERE product_name = '鍘熸枡'
UNION ALL
--
Gitblit v1.9.3