20250808优化-充放电逻辑修改
This commit is contained in:
@ -891,4 +891,75 @@
|
||||
and DATE(data_update_time) = #{yestData}
|
||||
order by data_update_time desc limit 1
|
||||
</select>
|
||||
|
||||
<select id="getMonthlyTimeRanges" resultType="com.xzzn.ems.domain.vo.MonthlyTimeRange">
|
||||
SELECT site_id as siteId,
|
||||
DATE_FORMAT(data_update_time, '%Y-%m') AS month,
|
||||
MIN(data_update_time) AS firstDataTime,
|
||||
MAX(data_update_time) AS lastDataTime
|
||||
FROM ems_ammeter_data
|
||||
WHERE (site_id = '021_DDS_01' AND device_id = 'METE')
|
||||
OR (site_id = '021_FXX_01' AND device_id = 'LOAD')
|
||||
GROUP BY site_id, DATE_FORMAT(data_update_time, '%Y-%m')
|
||||
ORDER BY site_id, month
|
||||
</select>
|
||||
|
||||
<select id="batchGetTimePointValues" resultType="com.xzzn.ems.domain.vo.TimePointValue">
|
||||
SELECT site_id as siteId, data_update_time as dataUpdateTime,
|
||||
current_forward_active_total AS totalChargeData,
|
||||
current_reverse_active_total AS totalDischargeData
|
||||
FROM ems_ammeter_data
|
||||
WHERE (site_id, data_update_time) IN
|
||||
<foreach collection="list" item="item" separator="," open="(" close=")">
|
||||
(#{item.siteId}, #{item.dataTime})
|
||||
</foreach>
|
||||
AND ((site_id = '021_DDS_01' AND device_id = 'METE')
|
||||
OR (site_id = '021_FXX_01' AND device_id = 'LOAD'))
|
||||
</select>
|
||||
|
||||
<select id="getChargeDataByHour" resultType="com.xzzn.ems.domain.vo.SiteMonitorDataVo">
|
||||
SELECT hour AS ammeterDate,
|
||||
data_update_time AS dataUpdateTime,
|
||||
current_forward_active_total AS chargedCap,
|
||||
current_reverse_active_total AS disChargedCap
|
||||
FROM (
|
||||
SELECT data_update_time,
|
||||
current_forward_active_total,
|
||||
current_reverse_active_total,
|
||||
DATE_FORMAT(data_update_time, '%H:00') AS hour,
|
||||
ROW_NUMBER() OVER (
|
||||
PARTITION BY DATE_FORMAT(data_update_time, '%H:00')
|
||||
ORDER BY data_update_time DESC
|
||||
) AS rn
|
||||
FROM ems_ammeter_data
|
||||
WHERE site_id = #{siteId}
|
||||
AND device_id = #{deviceId}
|
||||
AND DATE(data_update_time) = #{startDate}
|
||||
) AS hourly_data
|
||||
WHERE rn = 1
|
||||
ORDER BY ammeterDate
|
||||
</select>
|
||||
|
||||
<select id="getChargeDataByMonth" resultType="com.xzzn.ems.domain.vo.SiteMonitorDataVo">
|
||||
SELECT month as ammeterDate,
|
||||
data_update_time AS dataUpdateTime,
|
||||
current_forward_active_total AS chargedCap,
|
||||
current_reverse_active_total AS disChargedCap
|
||||
FROM (
|
||||
SELECT DATE_FORMAT(data_update_time, '%Y-%m') AS month,
|
||||
data_update_time,
|
||||
current_forward_active_total,
|
||||
current_reverse_active_total,
|
||||
ROW_NUMBER() OVER (
|
||||
PARTITION BY DATE_FORMAT(data_update_time, '%Y-%m')
|
||||
ORDER BY data_update_time DESC
|
||||
) AS rn
|
||||
FROM ems_ammeter_data
|
||||
WHERE site_id = #{siteId}
|
||||
AND device_id = #{deviceId}
|
||||
AND data_update_time BETWEEN #{startDate} AND #{endDate}
|
||||
) AS monthly_data
|
||||
WHERE rn = 1
|
||||
ORDER BY ammeterDate
|
||||
</select>
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user