数据20250904优化-单站监控首页点位数据展示

This commit is contained in:
2025-09-16 00:31:58 +08:00
parent 2bb78dc020
commit cb39131871
15 changed files with 457 additions and 20 deletions

View File

@ -984,7 +984,7 @@
<select id="getPowerDataByHour" parameterType="com.xzzn.ems.domain.vo.DateSearchRequest" resultType="com.xzzn.ems.domain.vo.PowerStatisListVo">
select latest.dateHour as statisDate,
<include refid="powerFilter"/>
from ( SELECT p.site_id, p.device_id,DATE_FORMAT(p.data_update_time, '%H')+1 AS dateHour,MAX(p.data_update_time) as max_update_time
from ( SELECT p.site_id, p.device_id,DATE_FORMAT(p.data_update_time, '%H:00') AS dateHour,MAX(p.data_update_time) as max_update_time
FROM ems_ammeter_data p
<include refid="commonFilter"/>
GROUP BY p.site_id,p.device_id,dateHour

View File

@ -374,4 +374,53 @@
AND latest.max_update_time = t.update_time
ORDER BY statisDate
</select>
<sql id="statisCommonFilter">
WHERE p.site_id = #{siteId}
<if test="startDate != null">
AND p.update_time &gt;= #{startDate}
</if>
<if test="endDate != null">
AND p.update_time &lt; #{endDate}
</if>
</sql>
<select id="getAvgTempByHour" parameterType="com.xzzn.ems.domain.vo.DateSearchRequest" resultType="java.util.Map">
SELECT latest.statisDate, avg(t.avg_cell_temp) as avgTemp
FROM ( SELECT p.site_id, p.device_id, DATE_FORMAT( p.update_time, '%H:00') AS statisDate, MAX(p.update_time) AS max_update_time
FROM ems_battery_cluster p
<include refid="statisCommonFilter"/>
GROUP BY p.site_id, p.device_id, statisDate
) latest INNER JOIN ems_battery_cluster t ON latest.site_id = t.site_id
AND latest.device_id = t.device_id
AND latest.max_update_time = t.update_time
GROUP BY statisDate
ORDER BY statisDate
</select>
<select id="getAvgTempByDay" parameterType="com.xzzn.ems.domain.vo.DateSearchRequest" resultType="java.util.Map">
SELECT latest.statisDate, avg(t.avg_cell_temp) as avgTemp
FROM ( SELECT p.site_id, p.device_id, DATE( p.update_time) AS statisDate, MAX(p.update_time) AS max_update_time
FROM ems_battery_cluster p
<include refid="statisCommonFilter"/>
GROUP BY p.site_id, p.device_id, statisDate
) latest INNER JOIN ems_battery_cluster t ON latest.site_id = t.site_id
AND latest.device_id = t.device_id
AND latest.max_update_time = t.update_time
GROUP BY statisDate
ORDER BY statisDate
</select>
<select id="getAvgTempByMonth" parameterType="com.xzzn.ems.domain.vo.DateSearchRequest" resultType="java.util.Map">
SELECT latest.statisDate, avg(t.avg_cell_temp) as avgTemp
FROM ( SELECT p.site_id, p.device_id, DATE_FORMAT(p.update_time, '%Y-%m') AS statisDate, MAX(p.update_time) AS max_update_time
FROM ems_battery_cluster p
<include refid="statisCommonFilter"/>
GROUP BY p.site_id, p.device_id, statisDate
) latest INNER JOIN ems_battery_cluster t ON latest.site_id = t.site_id
AND latest.device_id = t.device_id
AND latest.max_update_time = t.update_time
GROUP BY statisDate
ORDER BY statisDate
</select>
</mapper>

View File

@ -391,7 +391,7 @@
select latest.dateHour as statisDate,
t.device_id as deviceId,
<include refid="dataTypeChooseFilter"/>
from ( SELECT p.site_id, p.device_id,DATE_FORMAT(p.update_time, '%H')+1 AS dateHour,MAX(p.update_time) as max_update_time
from ( SELECT p.site_id, p.device_id,DATE_FORMAT(p.update_time, '%H:00') AS dateHour,MAX(p.update_time) as max_update_time
FROM ems_battery_stack p
<include refid="statisCommonFilter"/>
GROUP BY p.site_id,p.device_id,dateHour
@ -443,4 +443,52 @@
and t.create_time = latest.max_time
where t.site_id = #{siteId}
</select>
<select id="getStackPointByHour" parameterType="com.xzzn.ems.domain.vo.DateSearchRequest" resultType="com.xzzn.ems.domain.vo.StackPointVo">
select latest.dateHour as statisDate,
avg(t.stack_soc) as avgSoc,
avg(t.stack_soh) as avgSoh,
avg(t.avg_temperature) as avgTemp
from ( SELECT p.site_id, p.device_id, DATE_FORMAT(p.update_time, '%H:00') AS dateHour,MAX(p.update_time) as max_update_time
FROM ems_battery_stack p
<include refid="statisCommonFilter"/>
GROUP BY p.site_id,p.device_id,dateHour
) latest inner join ems_battery_stack t ON latest.site_id = t.site_id
AND latest.device_id = t.device_id
AND latest.max_update_time = t.update_time
GROUP BY latest.dateHour
ORDER BY statisDate
</select>
<select id="getStackPointByDay" parameterType="com.xzzn.ems.domain.vo.DateSearchRequest" resultType="com.xzzn.ems.domain.vo.StackPointVo">
select latest.dateDay as statisDate,
avg(t.stack_soc) as avgSoc,
avg(t.stack_soh) as avgSoh,
avg(t.avg_temperature) as avgTemp
from ( SELECT p.site_id, p.device_id, DATE(p.update_time) AS dateDay,MAX(p.update_time) as max_update_time
FROM ems_battery_stack p
<include refid="statisCommonFilter"/>
GROUP BY p.site_id,p.device_id,dateDay
) latest inner join ems_battery_stack t ON latest.site_id = t.site_id
AND latest.device_id = t.device_id
AND latest.max_update_time = t.update_time
GROUP BY latest.dateDay
ORDER BY statisDate
</select>
<select id="getStackPointByMonth" parameterType="com.xzzn.ems.domain.vo.DateSearchRequest" resultType="com.xzzn.ems.domain.vo.StackPointVo">
select latest.dateMonth as statisDate,
avg(t.stack_soc) as avgSoc,
avg(t.stack_soh) as avgSoh,
avg(t.avg_temperature) as avgTemp
from ( SELECT p.site_id, p.device_id, DATE_FORMAT(p.update_time, '%Y-%m') AS dateMonth,MAX(p.update_time) as max_update_time
FROM ems_battery_stack p
<include refid="statisCommonFilter"/>
GROUP BY p.site_id,p.device_id,dateMonth
) latest inner join ems_battery_stack t ON latest.site_id = t.site_id
AND latest.device_id = t.device_id
AND latest.max_update_time = t.update_time
GROUP BY latest.dateMonth
ORDER BY statisDate
</select>
</mapper>

View File

@ -456,7 +456,7 @@
select latest.dateHour as ammeterDate,
sum(t.daily_ac_charge_energy) as chargedCap,
sum(t.daily_ac_discharge_energy) as disChargedCap
from ( SELECT p.site_id, p.device_id,DATE_FORMAT(p.data_update_time, '%H')+1 AS dateHour,MAX(p.data_update_time) as max_update_time
from ( SELECT p.site_id, p.device_id,DATE_FORMAT(p.data_update_time, '%H:00') AS dateHour,MAX(p.data_update_time) as max_update_time
FROM ems_pcs_data p
<include refid="commonFilter"/>
GROUP BY p.site_id,p.device_id,dateHour
@ -530,7 +530,7 @@
select latest.dateHour as statisDate,
t.device_id as deviceId,
<include refid="dataTypeChooseFilter"/>
from ( SELECT p.site_id, p.device_id,DATE_FORMAT(p.data_update_time, '%H')+1 AS dateHour,MAX(p.data_update_time) as max_update_time
from ( SELECT p.site_id, p.device_id,DATE_FORMAT(p.data_update_time, '%H:00') AS dateHour,MAX(p.data_update_time) as max_update_time
FROM ems_pcs_data p
<include refid="statisCommonFilter"/>
GROUP BY p.site_id,p.device_id,dateHour