统计报表-功率曲线

This commit is contained in:
2025-07-09 22:41:14 +08:00
parent 53f515ad6c
commit 406cc59b25
9 changed files with 213 additions and 14 deletions

View File

@ -475,23 +475,26 @@
<sql id="dataTypeChooseFilter">
<choose>
<when test="dataType == 1">
<when test='dataType == "1"'>
t.total_active_power as activePower
</when>
<when test="dataType == 2">
<when test='dataType == "2"'>
t.total_reactive_power as reactivePower
</when>
<when test="dataType == 3">
<when test='dataType == "3"'>
t.sys_u_current as uCurrent,
t.sys_v_current as vCurrent,
t.sys_w_current as wCurrent
</when>
<otherwise>
0 as activePower
</otherwise>
</choose>
</sql>
<select id="getPcsActivePowerByDay" parameterType="com.xzzn.ems.domain.vo.DateSearchRequest" resultType="com.xzzn.ems.domain.vo.PcsStatisListVo">
select CONCAT(t.date_month,'/',t.date_day) as statisDate,
select DATE(latest.max_update_time) as statisDate,
<include refid="dataTypeChooseFilter"/>
from ( SELECT p.site_id, p.device_id,p.date_month, p.date_day,MAX(p.data_update_time) as max_update_time
FROM ems_pcs_data p
@ -531,4 +534,64 @@
AND latest.max_update_time = t.data_update_time
order by statisDate desc
</select>
<sql id="powerTypeChooseFilter">
<choose>
<when test='dataType == "1"'>
t.total_apparent_power as gridPower
</when>
<when test='dataType == "2"'>
t.total_active_power as loadPower
</when>
<when test='dataType == "3"'>
t.max_discharge_power_capacity as storagePower
</when>
<when test='dataType == "4"'>
t.ac_capacitive_reactive_power as pvPower
</when>
<otherwise>
0 as gridPower
</otherwise>
</choose>
</sql>
<select id="getPowerDataByHour" parameterType="com.xzzn.ems.domain.vo.DateSearchRequest" resultType="com.xzzn.ems.domain.vo.PowerStatisListVo">
select latest.dateHour as statisDate,
<include refid="powerTypeChooseFilter"/>
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 ems_pcs_data p
<include refid="statisCommonFilter"/>
GROUP BY p.site_id,p.device_id,dateHour
) latest inner join ems_pcs_data t ON latest.site_id = t.site_id
AND latest.device_id = t.device_id
AND latest.max_update_time = t.data_update_time
order by statisDate desc
</select>
<select id="getPowerDataByDay" parameterType="com.xzzn.ems.domain.vo.DateSearchRequest" resultType="com.xzzn.ems.domain.vo.PowerStatisListVo">
select latest.dateDay as statisDate,
<include refid="powerTypeChooseFilter"/>
from ( SELECT p.site_id, p.device_id, DATE(p.data_update_time ) AS dateDay,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,dateDay
) latest inner join ems_pcs_data t ON latest.site_id = t.site_id
AND latest.device_id = t.device_id
AND latest.max_update_time = t.data_update_time
order by statisDate desc
</select>
<select id="getPowerDataByMonth" parameterType="com.xzzn.ems.domain.vo.DateSearchRequest" resultType="com.xzzn.ems.domain.vo.PowerStatisListVo">
select DATE_FORMAT(latest.max_update_time, '%Y-%m') as statisDate,
<include refid="powerTypeChooseFilter"/>
from ( SELECT p.site_id, p.device_id,p.date_month,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,p.date_month
) latest inner join ems_pcs_data t ON latest.site_id = t.site_id
AND latest.device_id = t.device_id
AND latest.max_update_time = t.data_update_time
and latest.date_month = t.date_month
order by statisDate desc
</select>
</mapper>