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 | 140 +++++++++++-----------------------------------
1 files changed, 33 insertions(+), 107 deletions(-)
diff --git a/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml b/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml
index 9e6839f..23cad89 100644
--- a/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml
+++ b/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml
@@ -30,17 +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(t3.shipped_quantity, 0) as shipped_quantity,
- IFNULL(t6.return_quantity, 0) as return_quantity,
- IFNULL(t4.approved_stock_in_num, 0) as approved_stock_in_num,
- 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,
@@ -58,60 +53,11 @@
GROUP BY product_model_id
) t2 ON T1.product_model_id = t2.product_model_id
LEFT JOIN (
- SELECT
- slp.id AS sales_ledger_product_id,
- IFNULL(SUM(so.total_sale_out_num), 0) AS shipped_quantity
- FROM sales_ledger_product slp
- LEFT JOIN (
- SELECT
- pl.id AS purchase_ledger_id,
- sir.product_model_id,
- SUM(spd.quantity) AS total_sale_out_num
- FROM shipping_product_detail spd
- INNER JOIN shipping_info si
- 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 IN (0, 1, 3)
- INNER JOIN stock_inventory inv
- ON inv.id = spd.stock_inventory_id
- INNER JOIN stock_in_record sir
- ON sir.product_model_id = inv.product_model_id
- AND (
- (sir.batch_no IS NOT NULL AND sir.batch_no = inv.batch_no)
- OR (sir.batch_no IS NULL AND inv.batch_no IS NULL)
- )
- AND sir.approval_status = 1
- AND sir.record_type IN ('7', '10')
- LEFT JOIN quality_inspect qi
- ON sir.record_type = '10'
- AND sir.record_id = qi.id
- LEFT JOIN purchase_ledger pl
- ON pl.id = IF(sir.record_type = '7', sir.record_id, qi.purchase_ledger_id)
- WHERE si.status IN ('瀹℃牳閫氳繃', '宸插彂璐�')
- AND pl.id IS NOT NULL
- GROUP BY pl.id, sir.product_model_id
- ) so ON so.purchase_ledger_id = slp.sales_ledger_id
- AND so.product_model_id = slp.product_model_id
- WHERE slp.type = 2
- GROUP BY slp.id
-
- UNION ALL
-
- -- 閿�鍞彴璐�(type=1): shipping_info 鐩存帴鎸� sales_ledger_product_id,鍙粺璁″嚭搴撳鏍搁�氳繃(approval_status=1)鐨勫彂璐ч噺,涓� t5 鐨� pending 閫昏緫浜掕ˉ
- SELECT
- si.sales_ledger_product_id AS 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
- INNER JOIN stock_out_record sor
- ON sor.record_id = si.id
- AND TRIM(sor.record_type) = '13'
- AND sor.approval_status = 1
- WHERE si.status IN ('瀹℃牳閫氳繃', '宸插彂璐�')
- AND si.sales_ledger_product_id IS NOT NULL
- 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,
@@ -146,42 +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
- LEFT JOIN purchase_return_orders pro
- ON pro.id = prop.purchase_return_order_id
- GROUP BY prop.sales_ledger_product_id
-
- UNION ALL
-
- SELECT
- si.sales_ledger_product_id,
- IFNULL(SUM(rsp.num), 0) AS return_quantity
- FROM return_sale_product rsp
- INNER JOIN return_management rm ON rm.id = rsp.return_management_id
- INNER JOIN shipping_info si ON si.id = rm.shipping_id
- INNER JOIN stock_in_record sir ON sir.record_id = rsp.id
- AND TRIM(sir.record_type) IN ('14','15')
- AND sir.approval_status = 1
- WHERE si.sales_ledger_product_id IS NOT NULL
- GROUP BY si.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>
@@ -221,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,
@@ -297,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
@@ -308,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