From ae3dd677f3bbbc26d7c41aebc0e6048e2d20593c Mon Sep 17 00:00:00 2001
From: 陶杰 <1378534974@qq.com>
Date: 星期六, 21 十二月 2024 14:58:43 +0800
Subject: [PATCH] 1.花材统计报表:增加父类名称
---
src/main/resources/mapper/payment/DeliveryOrderMapper.xml | 137 ++++++++++++++-------------------------------
1 files changed, 44 insertions(+), 93 deletions(-)
diff --git a/src/main/resources/mapper/payment/DeliveryOrderMapper.xml b/src/main/resources/mapper/payment/DeliveryOrderMapper.xml
index 73e81ed..91e1e49 100644
--- a/src/main/resources/mapper/payment/DeliveryOrderMapper.xml
+++ b/src/main/resources/mapper/payment/DeliveryOrderMapper.xml
@@ -6,7 +6,10 @@
SELECT q.*, o.warehouse_name, o.warehouse_location_code, o.payment_time
FROM t_delivery_order q
join t_order o on q.order_id = o.id
+ left join t_warehouse w on o.warehouse_id=w.id
+ left join t_warehouse_location wl on o.warehouse_location_id=wl.id
WHERE q.deleted = 0 and o.deleted = 0
+-- and w.deleted=0 and wl.deleted=0
and q.supplier_id = #{supplierId}
<if test="condition.orderNo != null and condition.orderNo != ''">
AND q.order_no LIKE concat('%', #{condition.orderNo},'%')
@@ -17,13 +20,20 @@
#{item}
</foreach>
</if>
+<!-- <if test="condition.startDate != null">-->
+<!-- AND q.create_time > #{condition.startDate}-->
+<!-- </if>-->
+<!-- <if test="condition.endDate != null">-->
+<!-- AND q.create_time <= #{condition.endDate}-->
+<!-- </if>-->
<if test="condition.startDate != null">
- AND q.create_time > #{condition.startDate}
+ AND o.payment_time >= #{condition.startDate}
</if>
<if test="condition.endDate != null">
- AND q.create_time <= #{condition.endDate}
+ AND o.payment_time < #{condition.endDate}
</if>
- ORDER BY o.payment_time
+-- ORDER BY o.payment_time
+ order by w.seq,wl.seq asc
</select>
<select id="selectDoStationList" resultType="com.mzl.flower.dto.response.payment.DeliveryOrderStationListDTO">
@@ -130,11 +140,17 @@
AND o.warehouse_location_code LIKE concat('%', #{condition.warehouseLocationCode},'%')
</if>
+<!-- <if test="condition.startDate != null">-->
+<!-- AND q.create_time > #{condition.startDate}-->
+<!-- </if>-->
+<!-- <if test="condition.endDate != null">-->
+<!-- AND q.create_time <= #{condition.endDate}-->
+<!-- </if>-->
<if test="condition.startDate != null">
- AND q.create_time > #{condition.startDate}
+ AND o.payment_time >= #{condition.startDate}
</if>
<if test="condition.endDate != null">
- AND q.create_time <= #{condition.endDate}
+ AND o.payment_time < #{condition.endDate}
</if>
) tt
GROUP BY tt.id, tt.supplierName, tt.supplierTel, tt.stationName
@@ -177,68 +193,37 @@
AND o.warehouse_location_code LIKE concat('%', #{condition.warehouseLocationCode},'%')
</if>
+<!-- <if test="condition.startDate != null">-->
+<!-- AND q.create_time > #{condition.startDate}-->
+<!-- </if>-->
+<!-- <if test="condition.endDate != null">-->
+<!-- AND q.create_time <= #{condition.endDate}-->
+<!-- </if>-->
<if test="condition.startDate != null">
- AND q.create_time > #{condition.startDate}
+ AND o.payment_time >= #{condition.startDate}
</if>
<if test="condition.endDate != null">
- AND q.create_time <= #{condition.endDate}
+ AND o.payment_time < #{condition.endDate}
</if>
ORDER BY q.arrive_time
</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
+ SUM( oi.num ) AS totalNum,
+ SUM(CASE WHEN o.`status` = 'CHECKED' THEN oi.num ELSE 0 END) AS checkedSupplierCount,
+ SUM(CASE WHEN o.`status` = 'PENDING' or o.`status`= 'ARRIVED' THEN oi.num ELSE 0 END) AS uncheckedSupplierCount
+ 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')
+ WHERE o.deleted = 0
+ AND o.`status` IN ( 'PENDING', 'ARRIVED', 'CHECKED' )
<if test="userId !=null and userId !=''">
AND st.user_ids LIKE concat('%', #{userId},'%')
</if>
@@ -250,11 +235,17 @@
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="startDate != null">
- AND o.create_time > #{startDate}
+ AND t.payment_time >= #{startDate}
</if>
<if test="endDate != null">
- AND o.create_time <= #{endDate}
+ AND t.payment_time < #{endDate}
</if>
<if test="statusList != null and statusList.size > 0">
@@ -263,47 +254,7 @@
#{status}
</foreach>
</if>
- GROUP BY s.station_id, st.`name`) uncheckedSupplierCount
- from (
- 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 o.`status` IN ( 'PENDING', 'ARRIVED', '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`
- ) tt
+ GROUP BY s.station_id, st.`name`
</select>
<update id="setDeliveryOrderPending">
--
Gitblit v1.9.3