数据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

@ -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>