From f7ac54f86129a2d4875c7107a84556849c3d8c2a Mon Sep 17 00:00:00 2001
From: chen.llin <1442464845@qq.comm>
Date: 星期三, 24 十二月 2025 18:16:54 +0800
Subject: [PATCH] 月结-完成字段调整,和部分sql优化
---
src/main/resources/mapper/MonthlySettleMapper.xml | 121 ++++++++++++++++++++--------------------
1 files changed, 60 insertions(+), 61 deletions(-)
diff --git a/src/main/resources/mapper/MonthlySettleMapper.xml b/src/main/resources/mapper/MonthlySettleMapper.xml
index 318d66e..77e8f9f 100644
--- a/src/main/resources/mapper/MonthlySettleMapper.xml
+++ b/src/main/resources/mapper/MonthlySettleMapper.xml
@@ -27,75 +27,74 @@
ORDER BY end_date DESC
</select>
- <!-- 缁熻鏈堢粨鏃堕棿鑼冨洿鍐呯殑璁㈠崟鏁伴噺 -->
- <select id="countOrdersInRange" resultType="int">
- SELECT COUNT(*) FROM man_order
- WHERE status = 1
- AND order_time >= #{startDate}
- AND order_time <= #{endDate}
+ <!-- 缁熻鏈堢粨鏃堕棿鑼冨洿鍐呮湭瀹屾垚鐨勫叆搴撹鍗曟暟閲� -->
+ <select id="countUnfinishedOrdersInRangePakin" resultType="int">
+ SELECT COUNT(1) FROM man_order_log_pakin molpi
+ WHERE molpi.status = 1
+ AND molpi.order_time >= #{startDate}
+ AND molpi.order_time <= #{endDate}
+ AND (molpi.settle IS NULL OR molpi.settle != 6)
+ AND (molpi.monthly_settle_id IS NULL OR molpi.monthly_settle_id = 0)
+ AND EXISTS (
+ SELECT 1 FROM man_order_detl_log_pakin modlpi
+ WHERE modlpi.order_id = molpi.id
+ AND (modlpi.anfme > modlpi.qty OR modlpi.qty IS NULL)
+ )
</select>
- <!-- 缁熻鏈堢粨鏃堕棿鑼冨洿鍐呮湭瀹屾垚鐨勮鍗曟暟閲忥紙鍏ュ簱鍜屽嚭搴擄級 -->
- <select id="countUnfinishedOrdersInRange" resultType="int">
- SELECT COUNT(*) FROM (
- SELECT DISTINCT o.id FROM man_order_log_pakin o
- INNER JOIN man_order_detl_log_pakin od ON o.id = od.order_id
- WHERE o.status = 1
- AND CONVERT(date, o.order_time) >= #{startDate}
- AND o.order_time <= #{endDate}
- AND o.move_status != 2
- AND (od.anfme > od.qty OR od.qty IS NULL)
- AND (o.monthly_settle_id IS NULL OR o.monthly_settle_id = 0)
- UNION
- SELECT DISTINCT o.id FROM man_order_log_pakout o
- INNER JOIN man_order_detl_log_pakout od ON o.id = od.order_id
- WHERE o.status = 1
- AND CONVERT(date, o.order_time) >= #{startDate}
- AND o.order_time <= #{endDate}
- AND o.move_status != 2
- AND (od.anfme > od.qty OR od.qty IS NULL)
- AND (o.monthly_settle_id IS NULL OR o.monthly_settle_id = 0)
- ) t
+ <!-- 缁熻鏈堢粨鏃堕棿鑼冨洿鍐呮湭瀹屾垚鐨勫嚭搴撹鍗曟暟閲� -->
+ <select id="countUnfinishedOrdersInRangePakout" resultType="int">
+ SELECT COUNT(1) FROM man_order_log_pakout molpo
+ WHERE molpo.status = 1
+ AND molpo.order_time >= #{startDate}
+ AND molpo.order_time <= #{endDate}
+ AND (molpo.settle IS NULL OR molpo.settle != 6)
+ AND (molpo.monthly_settle_id IS NULL OR molpo.monthly_settle_id = 0)
+ AND EXISTS (
+ SELECT 1 FROM man_order_detl_log_pakout modlpo
+ WHERE modlpo.order_id = molpo.id
+ AND (modlpo.anfme > modlpo.qty OR modlpo.qty IS NULL)
+ )
</select>
<!-- 缁熻鏈堢粨鏃堕棿鑼冨洿鍐呯殑鐗╂枡鍑哄叆搴撴暟閲忥紙浠庡叆搴撹〃鏌ヨ锛� -->
<select id="statisticsMaterialInOutFromPakin" resultType="com.zy.asrs.entity.result.MaterialInOutRawDTO">
SELECT
- od.matnr,
- od.maktx,
- od.batch,
- od.brand,
- SUM(od.qty) as qty,
- COALESCE(od.pakin_pakout_status, o.pakin_pakout_status) as pakinPakoutStatus
- FROM man_order_log_pakin o
- INNER JOIN man_order_detl_log_pakin od ON o.id = od.order_id
- WHERE o.status = 1
- AND CONVERT(date, o.order_time) >= #{startDate}
- AND o.order_time <= #{endDate}
- AND o.move_status = 2
- AND (o.monthly_settle_id IS NULL OR o.monthly_settle_id = 0)
- AND COALESCE(od.pakin_pakout_status, o.pakin_pakout_status) IN (1, 2)
- GROUP BY od.matnr, od.maktx, od.batch, od.brand, COALESCE(od.pakin_pakout_status, o.pakin_pakout_status)
+ modlpi.matnr,
+ modlpi.maktx,
+ modlpi.batch,
+ modlpi.brand,
+ SUM(modlpi.qty) as qty,
+ COALESCE(modlpi.pakin_pakout_status, molpi.pakin_pakout_status) as pakinPakoutStatus
+ FROM man_order_log_pakin molpi
+ INNER JOIN man_order_detl_log_pakin modlpi ON molpi.id = modlpi.order_id
+ WHERE molpi.status = 1
+ AND molpi.order_time >= #{startDate}
+ AND molpi.order_time <= #{endDate}
+ AND molpi.settle = 6
+ AND (molpi.monthly_settle_id IS NULL OR molpi.monthly_settle_id = 0)
+ AND COALESCE(modlpi.pakin_pakout_status, molpi.pakin_pakout_status) IN (1, 2)
+ GROUP BY modlpi.matnr, modlpi.maktx, modlpi.batch, modlpi.brand, COALESCE(modlpi.pakin_pakout_status, molpi.pakin_pakout_status)
</select>
<!-- 缁熻鏈堢粨鏃堕棿鑼冨洿鍐呯殑鐗╂枡鍑哄叆搴撴暟閲忥紙浠庡嚭搴撹〃鏌ヨ锛� -->
<select id="statisticsMaterialInOutFromPakout" resultType="com.zy.asrs.entity.result.MaterialInOutRawDTO">
SELECT
- od.matnr,
- od.maktx,
- od.batch,
- od.brand,
- SUM(od.qty) as qty,
- COALESCE(od.pakin_pakout_status, o.pakin_pakout_status) as pakinPakoutStatus
- FROM man_order_log_pakout o
- INNER JOIN man_order_detl_log_pakout od ON o.id = od.order_id
- WHERE o.status = 1
- AND CONVERT(date, o.order_time) >= #{startDate}
- AND o.order_time <= #{endDate}
- AND o.move_status = 2
- AND (o.monthly_settle_id IS NULL OR o.monthly_settle_id = 0)
- AND COALESCE(od.pakin_pakout_status, o.pakin_pakout_status) IN (1, 2)
- GROUP BY od.matnr, od.maktx, od.batch, od.brand, COALESCE(od.pakin_pakout_status, o.pakin_pakout_status)
+ modlpo.matnr,
+ modlpo.maktx,
+ modlpo.batch,
+ modlpo.brand,
+ SUM(modlpo.qty) as qty,
+ COALESCE(modlpo.pakin_pakout_status, molpo.pakin_pakout_status) as pakinPakoutStatus
+ FROM man_order_log_pakout molpo
+ INNER JOIN man_order_detl_log_pakout modlpo ON molpo.id = modlpo.order_id
+ WHERE molpo.status = 1
+ AND molpo.order_time >= #{startDate}
+ AND molpo.order_time <= #{endDate}
+ AND molpo.settle = 6
+ AND (molpo.monthly_settle_id IS NULL OR molpo.monthly_settle_id = 0)
+ AND COALESCE(modlpo.pakin_pakout_status, molpo.pakin_pakout_status) IN (1, 2)
+ GROUP BY modlpo.matnr, modlpo.maktx, modlpo.batch, modlpo.brand, COALESCE(modlpo.pakin_pakout_status, molpo.pakin_pakout_status)
</select>
<!-- 鑾峰彇涓婁竴涓湀缁撶殑鐗╂枡鏈熸湯搴撳瓨 -->
@@ -117,9 +116,9 @@
SET monthly_settle_id = #{settleId},
monthly_settle_no = #{settleNo}
WHERE status = 1
- AND CONVERT(date, order_time) >= #{startDate}
+ AND order_time >= #{startDate}
AND order_time <= #{endDate}
- AND move_status = 2
+ AND settle = 6
AND (monthly_settle_id IS NULL OR monthly_settle_id = 0)
</update>
@@ -129,9 +128,9 @@
SET monthly_settle_id = #{settleId},
monthly_settle_no = #{settleNo}
WHERE status = 1
- AND CONVERT(date, order_time) >= #{startDate}
+ AND order_time >= #{startDate}
AND order_time <= #{endDate}
- AND move_status = 2
+ AND settle = 6
AND (monthly_settle_id IS NULL OR monthly_settle_id = 0)
</update>
--
Gitblit v1.9.1