From 129aa4718ca3d61d44fa1ec8051e0da002bcac83 Mon Sep 17 00:00:00 2001
From: longz <longzhaoz@qq.com>
Date: 星期二, 04 八月 2026 17:21:07 +0800
Subject: [PATCH] fix: align large screen valid order count

---
 ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml |   20 +++++++++++---------
 1 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
index 31d28ae..6a5556f 100644
--- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
+++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
@@ -3121,23 +3121,25 @@
 
     <!-- ==================== 大屏预聚合表 t_large_screen_site_stat ==================== -->
 
-    <!-- 任务用: 按月切片聚合, 口径与 getLargeScreenSummary 完全一致(按月边界裁剪) -->
+    <!-- 任务用: 按月切片聚合。订单数为未删除、状态1-5;金额和电量保持已结束且已支付口径。 -->
     <select id="monthSliceAgg" resultType="java.util.Map">
         SELECT charging_order.site_id AS site_id,
                COUNT(DISTINCT charging_order.id) AS order_count,
                COUNT(DISTINCT charging_order.app_user_id) AS user_count,
-               COALESCE(ROUND(SUM(accounting.charging_capacity), 2), 0) AS capacity,
-               COALESCE(ROUND(SUM(accounting.period_electric_price), 2), 0) AS electric_fee,
-               COALESCE(ROUND(SUM(CASE
-                   WHEN charging_order.order_source IN (0, 1) THEN accounting.period_service_price
-                   ELSE accounting.period_service_price * 0.8
-               END), 2), 0) AS service_fee
+               COALESCE(ROUND(SUM(CASE WHEN charging_order.status = 5
+                   AND charging_order.recharge_payment_status = 2 THEN accounting.charging_capacity ELSE 0 END), 2), 0) AS capacity,
+               COALESCE(ROUND(SUM(CASE WHEN charging_order.status = 5
+                   AND charging_order.recharge_payment_status = 2 THEN accounting.period_electric_price ELSE 0 END), 2), 0) AS electric_fee,
+               COALESCE(ROUND(SUM(CASE WHEN charging_order.status = 5
+                   AND charging_order.recharge_payment_status = 2 AND charging_order.order_source IN (0, 1) THEN accounting.period_service_price
+                   WHEN charging_order.status = 5
+                   AND charging_order.recharge_payment_status = 2 THEN accounting.period_service_price * 0.8
+                   ELSE 0 END), 2), 0) AS service_fee
         FROM t_charging_order charging_order
         LEFT JOIN t_charging_order_accounting_strategy accounting
                ON accounting.charging_order_id = charging_order.id
         WHERE charging_order.del_flag = 0
-          AND charging_order.status = 5
-          AND charging_order.recharge_payment_status = 2
+          AND charging_order.status IN (1, 2, 3, 4, 5)
           AND charging_order.create_time &gt;= #{startTime}
           AND charging_order.create_time &lt; #{endTime}
         GROUP BY charging_order.site_id

--
Gitblit v1.7.1