From d7d4ae6cfb28adf7ef92f44332ff492f0cc7069c Mon Sep 17 00:00:00 2001
From: longz <longzhaoz@qq.com>
Date: 星期五, 07 八月 2026 15:44:41 +0800
Subject: [PATCH] feat: 完善大屏与光储监控接口
---
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml | 53 +++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 43 insertions(+), 10 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 b7148c7..934b64d 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
@@ -3444,16 +3444,25 @@
SELECT COUNT(*) FROM t_large_screen_user_site
</select>
- <!-- 任务用: 按日切片聚合, 口径与 getLargeScreenChargingPower 一致(无 status 过滤) -->
+ <!-- 任务用: 按日切片聚合,功率保持原口径;收入与月度切片一致。 -->
<select id="daySliceAgg" resultType="java.util.Map">
- SELECT site_id AS site_id,
+ SELECT charging_order.site_id AS site_id,
COUNT(1) AS order_count,
- COALESCE(SUM(IFNULL(power, 0)), 0) AS total_power
- FROM t_charging_order
- WHERE del_flag = 0
- AND create_time >= #{startTime}
- AND create_time < #{endTime}
- GROUP BY site_id
+ COALESCE(SUM(IFNULL(charging_order.power, 0)), 0) AS total_power,
+ 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.create_time >= #{startTime}
+ AND charging_order.create_time < #{endTime}
+ GROUP BY charging_order.site_id
</select>
<!-- 任务用: 注册用户总数 -->
@@ -3499,13 +3508,13 @@
</if>
</select>
- <!-- 接口用: 近 N 月收入趋势(M 行按 period 分组, period 为 yyyy-MM 字典序可比) -->
+ <!-- 接口用: 近 N 日收入趋势(D 行按 period 分组, period 为 yyyy-MM-dd 字典序可比) -->
<select id="incomeTrendFromStat" resultType="com.ruoyi.order.dto.SixChargingDto">
SELECT period AS month,
COALESCE(SUM(electric_fee), 0) AS electrovalence,
COALESCE(SUM(service_fee), 0) AS service_charge
FROM t_large_screen_site_stat
- WHERE stat_type = 'M'
+ WHERE stat_type = 'D'
AND period >= #{sixBefore}
<if test="siteIds != null and siteIds.size() > 0">
AND site_id IN
@@ -3516,6 +3525,30 @@
GROUP BY period
</select>
+ <!-- 接口用: 最近七日收入,直接查询确保历史日切片升级后也能立即显示正确金额。 -->
+ <select id="incomeTrendFromOrders" resultType="com.ruoyi.order.dto.SixChargingDto">
+ SELECT DATE_FORMAT(charging_order.create_time, '%Y-%m-%d') AS month,
+ COALESCE(ROUND(SUM(accounting.period_electric_price), 2), 0) AS electrovalence,
+ 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_charge
+ 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.create_time >= #{startTime}
+ AND charging_order.create_time < #{endTime}
+ <if test="siteIds != null and siteIds.size() > 0">
+ AND charging_order.site_id IN
+ <foreach collection="siteIds" item="siteId" open="(" separator="," close=")">
+ #{siteId}
+ </foreach>
+ </if>
+ GROUP BY DATE_FORMAT(charging_order.create_time, '%Y-%m-%d')
+ ORDER BY month
+ </select>
+
<!-- 接口用: 日功率曲线(D 行按 period 分组, period 为 yyyy-MM-dd 字典序可比) -->
<select id="powerFromStat" resultType="java.util.Map">
SELECT period AS day,
--
Gitblit v1.7.1