电量指标-时间筛选数据

This commit is contained in:
2025-07-05 23:24:13 +08:00
parent f42e8549b1
commit 6a5504434d
10 changed files with 225 additions and 101 deletions

View File

@ -372,10 +372,10 @@
order by tmp.device_id
</select>
<select id="getPcsDataByDate" resultType="com.xzzn.ems.domain.vo.SiteMonitorDataVo">
<select id="getPcsDataByDay" resultType="com.xzzn.ems.domain.vo.SiteMonitorDataVo">
select CONCAT(t.date_month,'/',t.date_day) as ammeterDate,
sum(t.daily_ac_charge_energy) as chargedCap,
sum(t.daily_ac_discharge_energy) as disChargedCap
sum(t.total_ac_charge_energy) as chargedCap,
sum(t.total_ac_discharge_energy) as disChargedCap
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
where p.site_id = #{siteId}
@ -383,15 +383,115 @@
and p.data_update_time &gt;= #{startDate}
</if>
<if test="endDate != null">
and p.data_update_time &lt; DATE_ADD(#{endDate}, INTERVAL 1 DAY)
and p.data_update_time &lt; #{endDate}
</if>
GROUP BY p.site_id,p.device_id,p.date_month,p.date_day
GROUP BY p.site_id,p.device_id,p.date_month,p.date_day
) 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
and latest.date_day = t.date_day
group by ammeterDate
order by ammeterDate desc;
order by ammeterDate desc
</select>
<select id="getStoragePowerList" resultType="com.xzzn.ems.domain.vo.EnergyStoragePowVo">
select t.site_id,
t.total_active_power as pcsTotalActPower,
t.total_reactive_power as pcsTotalReactivePower,
t.create_time as createDate
from ems_pcs_data t
inner join (select site_id,create_time,MIN(device_id) as device_id
from ems_pcs_data
where site_id = #{siteId}
AND create_time &gt;= Date(#{startDate})
AND create_time &lt;= #{endDate}
GROUP BY site_id,create_time
) temp on t.site_id = temp.site_id and t.create_time = temp.create_time and t.device_id = temp.device_id
</select>
<select id="getPcsAveTempList" resultType="com.xzzn.ems.domain.vo.PCSAveTempVo">
select t.site_id,
t.pcs_module_temperature as pcsTemp,
t.create_time as createDate
from ems_pcs_data t
inner join (select site_id,create_time,MIN(device_id) as device_id
from ems_pcs_data
where site_id = #{siteId}
AND create_time &gt;= Date(#{startDate})
AND create_time &lt;= #{endDate}
GROUP BY site_id,create_time
) temp on t.site_id = temp.site_id and t.create_time = temp.create_time and t.device_id = temp.device_id
</select>
<select id="getAveSocList" resultType="com.xzzn.ems.domain.vo.BatteryAveSOCVo">
select t.site_id,
t.battery_pack_soc as batterySOC,
t.create_time as createDate
from ems_battery_cluster t
inner join (select site_id,create_time,MIN(device_id) as device_id
from ems_battery_cluster
where site_id = #{siteId}
AND create_time &gt;= Date(#{startDate})
AND create_time &lt;= #{endDate}
GROUP BY site_id,create_time
) temp on t.site_id = temp.site_id and t.create_time = temp.create_time and t.device_id = temp.device_id
</select>
<select id="getBatteryAveTempList" resultType="com.xzzn.ems.domain.vo.BatteryAveTempVo">
select t.site_id,
t.avg_cell_temp as batteryTemp,
t.create_time as createDate
from ems_battery_cluster t
inner join (select site_id,create_time,MIN(device_id) as device_id
from ems_battery_cluster
where site_id = #{siteId}
AND create_time &gt;= Date(#{startDate})
AND create_time &lt;= #{endDate}
GROUP BY site_id,create_time
) temp on t.site_id = temp.site_id and t.create_time = temp.create_time and t.device_id = temp.device_id
</select>
<select id="getPcsDataByMonth" resultType="com.xzzn.ems.domain.vo.SiteMonitorDataVo">
select t.date_month as ammeterDate,
sum(t.total_ac_charge_energy) as chargedCap,
sum(t.total_ac_discharge_energy) as disChargedCap
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
where p.site_id = #{siteId}
<if test="startDate != null">
and p.data_update_time &gt;= #{startDate}
</if>
<if test="endDate != null">
and p.data_update_time &lt; #{endDate}
</if>
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
group by ammeterDate
order by ammeterDate desc
</select>
<select id="getPcsDataByHour" resultType="com.xzzn.ems.domain.vo.SiteMonitorDataVo">
select latest.dateHour as ammeterDate,
sum(t.total_ac_charge_energy) as chargedCap,
sum(t.total_ac_discharge_energy) as disChargedCap
from ( SELECT p.site_id, p.device_id,DATE_FORMAT(p.data_update_time, '%H') AS dateHour,MAX(p.data_update_time) as max_update_time
FROM ems_pcs_data p
where p.site_id = #{siteId}
<if test="startDate != null">
and p.data_update_time &gt;= #{startDate}
</if>
<if test="endDate != null">
and p.data_update_time &lt; #{endDate}
</if>
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
group by ammeterDate
order by ammeterDate desc
</select>
</mapper>