From 93331239062a8604411400ea010270d22c1d26b1 Mon Sep 17 00:00:00 2001
From: gongzuming <gongzuming>
Date: 星期二, 22 十月 2024 10:58:02 +0800
Subject: [PATCH] 优化
---
src/main/resources/mapper/payment/DeliveryOrderMapper.xml | 98 ++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 92 insertions(+), 6 deletions(-)
diff --git a/src/main/resources/mapper/payment/DeliveryOrderMapper.xml b/src/main/resources/mapper/payment/DeliveryOrderMapper.xml
index 34f3909..73e81ed 100644
--- a/src/main/resources/mapper/payment/DeliveryOrderMapper.xml
+++ b/src/main/resources/mapper/payment/DeliveryOrderMapper.xml
@@ -188,6 +188,83 @@
</select>
<select id="statisticStationList" resultType="com.mzl.flower.dto.response.flower.StationStatisticDTO">
+ select tt.*,
+ (SELECT
+ SUM( oi.num )
+ FROM
+ t_delivery_order o
+ LEFT JOIN t_delivery_order_item i ON o.id = i.delivery_id
+ LEFT JOIN t_order_item oi ON oi.id = i.order_item_id
+ LEFT JOIN t_supplier_info s ON s.id = o.supplier_id
+ LEFT JOIN t_station st ON st.id = s.station_id
+ LEFT JOIN t_order t ON t.id = i.order_id
+ WHERE o.deleted = 0 AND s.station_id = tt.stationId
+ AND o.`status` IN ( 'CHECKED' )
+ <if test="userId !=null and userId !=''">
+ AND st.user_ids LIKE concat('%', #{userId},'%')
+ </if>
+ <if test="name !=null and name !=''">
+ AND ( s.id LIKE concat('%', #{name},'%') OR
+ s.contact_tel LIKE concat('%', #{name},'%') OR
+ s.`name` LIKE concat('%', #{name},'%') OR
+ st.`name` LIKE concat('%', #{name},'%') OR
+ t.warehouse_location_code LIKE concat('%', #{name},'%')
+ )
+ </if>
+ <if test="startDate != null">
+ AND o.create_time > #{startDate}
+ </if>
+ <if test="endDate != null">
+ AND o.create_time <= #{endDate}
+ </if>
+
+ <if test="statusList != null and statusList.size > 0">
+ AND o.status in
+ <foreach collection="statusList" item="status" open="(" separator="," close=")">
+ #{status}
+ </foreach>
+ </if>
+ GROUP BY s.station_id, st.`name`) checkedSupplierCount,
+ (
+ SELECT
+ s.station_id AS stationId,
+ st.`name`,
+ SUM( oi.num ) AS totalNum
+ FROM
+ t_delivery_order o
+ LEFT JOIN t_delivery_order_item i ON o.id = i.delivery_id
+ LEFT JOIN t_order_item oi ON oi.id = i.order_item_id
+ LEFT JOIN t_supplier_info s ON s.id = o.supplier_id
+ LEFT JOIN t_station st ON st.id = s.station_id
+ LEFT JOIN t_order t ON t.id = i.order_id
+ WHERE o.deleted = 0 AND s.station_id = tt.stationId
+ AND o.`status` IN ( 'PENDING', 'ARRIVED')
+ <if test="userId !=null and userId !=''">
+ AND st.user_ids LIKE concat('%', #{userId},'%')
+ </if>
+ <if test="name !=null and name !=''">
+ AND ( s.id LIKE concat('%', #{name},'%') OR
+ s.contact_tel LIKE concat('%', #{name},'%') OR
+ s.`name` LIKE concat('%', #{name},'%') OR
+ st.`name` LIKE concat('%', #{name},'%') OR
+ t.warehouse_location_code LIKE concat('%', #{name},'%')
+ )
+ </if>
+ <if test="startDate != null">
+ AND o.create_time > #{startDate}
+ </if>
+ <if test="endDate != null">
+ AND o.create_time <= #{endDate}
+ </if>
+
+ <if test="statusList != null and statusList.size > 0">
+ AND o.status in
+ <foreach collection="statusList" item="status" open="(" separator="," close=")">
+ #{status}
+ </foreach>
+ </if>
+ GROUP BY s.station_id, st.`name`) uncheckedSupplierCount
+ from (
SELECT
s.station_id AS stationId,
st.`name`,
@@ -218,10 +295,15 @@
<if test="endDate != null">
AND o.create_time <= #{endDate}
</if>
- GROUP BY
- s.station_id,
- st.`name`;
+ <if test="statusList != null and statusList.size > 0">
+ AND o.status in
+ <foreach collection="statusList" item="status" open="(" separator="," close=")">
+ #{status}
+ </foreach>
+ </if>
+ GROUP BY s.station_id, st.`name`
+ ) tt
</select>
<update id="setDeliveryOrderPending">
@@ -236,9 +318,13 @@
SELECT q.*
FROM t_delivery_order q
WHERE q.deleted = 0
- and q.status in ('PENDING', 'ARRIVED', 'CHECKED')
+ AND q.status in ('PENDING', 'ARRIVED')
AND q.supplier_id = #{supplierId}
- AND q.create_time > #{startDate}
- AND q.create_time <= #{endDate}
+ <if test="startDate != null">
+ AND q.create_time > #{startDate}
+ </if>
+ <if test="endDate != null">
+ AND q.create_time <= #{endDate}
+ </if>
</select>
</mapper>
\ No newline at end of file
--
Gitblit v1.9.3