统计报表-功率曲线按照分钟展示数据
This commit is contained in:
@ -136,6 +136,8 @@ public interface EmsPcsDataMapper
|
|||||||
|
|
||||||
public List<PcsStatisListVo> getPcsActivePowerByMonth(DateSearchRequest requestVo);
|
public List<PcsStatisListVo> getPcsActivePowerByMonth(DateSearchRequest requestVo);
|
||||||
|
|
||||||
|
public List<PcsStatisListVo> getPcsActivePowerByMinutes(DateSearchRequest requestVo);
|
||||||
|
|
||||||
// 实时运行-fx-pcs最高温度
|
// 实时运行-fx-pcs最高温度
|
||||||
public List<PcsMaxTempVo> getFXMaxTemp(@Param("siteId")String siteId, @Param("startDate")Date startDate, @Param("endDate")Date endDate);
|
public List<PcsMaxTempVo> getFXMaxTemp(@Param("siteId")String siteId, @Param("startDate")Date startDate, @Param("endDate")Date endDate);
|
||||||
// 实时运行-dds-pcs最高温度
|
// 实时运行-dds-pcs最高温度
|
||||||
|
|||||||
@ -183,11 +183,17 @@ public class EmsStatsReportServiceImpl implements IEmsStatsReportService
|
|||||||
Date startDate = requestVo.getStartDate();
|
Date startDate = requestVo.getStartDate();
|
||||||
Date endDate = requestVo.getEndDate();
|
Date endDate = requestVo.getEndDate();
|
||||||
|
|
||||||
// 开始日期和结束日期同一天,展示 0-24 小时数据
|
// // 开始日期和结束日期同一天,展示 0-24 小时数据
|
||||||
|
// if (DateUtils.isSameDay(startDate, endDate)){
|
||||||
|
// endDate = DateUtils.addDays(endDate, 1);
|
||||||
|
// requestVo.setEndDate(endDate);
|
||||||
|
// dataList = emsPcsDataMapper.getPcsActivePowerByHour(requestVo);
|
||||||
|
// }
|
||||||
|
// 开始日期和结束日期同一天,展示5分钟一组数据点
|
||||||
if (DateUtils.isSameDay(startDate, endDate)){
|
if (DateUtils.isSameDay(startDate, endDate)){
|
||||||
endDate = DateUtils.addDays(endDate, 1);
|
endDate = DateUtils.addDays(endDate, 1);
|
||||||
requestVo.setEndDate(endDate);
|
requestVo.setEndDate(endDate);
|
||||||
dataList = emsPcsDataMapper.getPcsActivePowerByHour(requestVo);
|
dataList = emsPcsDataMapper.getPcsActivePowerByMinutes(requestVo);
|
||||||
} else if (DateUtils.differentDaysByMillisecond(endDate, startDate) >= 1
|
} else if (DateUtils.differentDaysByMillisecond(endDate, startDate) >= 1
|
||||||
&& DateUtils.differentDaysByMillisecond(endDate, startDate) < 30){
|
&& DateUtils.differentDaysByMillisecond(endDate, startDate) < 30){
|
||||||
endDate = DateUtils.addDays(endDate, 1);
|
endDate = DateUtils.addDays(endDate, 1);
|
||||||
@ -452,42 +458,44 @@ public class EmsStatsReportServiceImpl implements IEmsStatsReportService
|
|||||||
Date endDate = requestVo.getEndDate();
|
Date endDate = requestVo.getEndDate();
|
||||||
if (startDate == null || endDate == null) {
|
if (startDate == null || endDate == null) {
|
||||||
// 默认按分钟展示-前一个小时数据
|
// 默认按分钟展示-前一个小时数据
|
||||||
LocalDateTime oneHourAgo = LocalDateTime.now().minusHours(1).truncatedTo(ChronoUnit.MINUTES);;
|
LocalDateTime oneHourAgo = LocalDateTime.now().minusHours(1).truncatedTo(ChronoUnit.MINUTES);
|
||||||
startDate = DateUtils.toDate(oneHourAgo);
|
startDate = DateUtils.toDate(oneHourAgo);
|
||||||
requestVo.setStartDate(startDate);
|
requestVo.setStartDate(startDate);
|
||||||
requestVo.setEndDate(DateUtils.getNowDate());
|
requestVo.setEndDate(DateUtils.getNowDate());
|
||||||
dataList = emsAmmeterDataMapper.getPowerDataByMinutes(requestVo);
|
// dataList = emsAmmeterDataMapper.getPowerDataByMinutes(requestVo);
|
||||||
// 生成目标时间点列表(每分钟一个)
|
// // 生成目标时间点列表(每分钟一个)
|
||||||
List<LocalDateTime> targetMinutes = new ArrayList<>(60);
|
// List<LocalDateTime> targetMinutes = new ArrayList<>(60);
|
||||||
LocalDateTime current = oneHourAgo;
|
// LocalDateTime current = oneHourAgo;
|
||||||
|
//
|
||||||
for (int i = 0; i < 60; i++) {
|
// for (int i = 0; i < 60; i++) {
|
||||||
targetMinutes.add(current); // 添加当前分钟
|
// targetMinutes.add(current); // 添加当前分钟
|
||||||
current = current.plusMinutes(1); // 递增1分钟
|
// current = current.plusMinutes(1); // 递增1分钟
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
// 填充数据
|
// // 填充数据
|
||||||
if (dataList != null && dataList.size() >= 0){
|
// if (dataList != null && dataList.size() >= 0){
|
||||||
dataList = fillEveryMinutesData(dataList,targetMinutes);
|
// dataList = fillEveryMinutesData(dataList,targetMinutes);
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
// 开始日期和结束日期同一天,展示 0-24 小时数据
|
// 开始日期和结束日期同一天,展示 0-24 小时数据
|
||||||
else if (DateUtils.isSameDay(startDate, endDate)){
|
else if (DateUtils.isSameDay(startDate, endDate)){
|
||||||
endDate = DateUtils.addDays(endDate, 1);
|
endDate = DateUtils.addDays(endDate, 1);
|
||||||
requestVo.setEndDate(endDate);
|
requestVo.setEndDate(endDate);
|
||||||
dataList = emsAmmeterDataMapper.getPowerDataByHour(requestVo);
|
// dataList = emsAmmeterDataMapper.getPowerDataByHour(requestVo);
|
||||||
} else if (DateUtils.differentDaysByMillisecond(endDate, startDate) >= 1
|
} else if (DateUtils.differentDaysByMillisecond(endDate, startDate) >= 1
|
||||||
&& DateUtils.differentDaysByMillisecond(endDate, startDate) < 30){
|
&& DateUtils.differentDaysByMillisecond(endDate, startDate) < 30){
|
||||||
endDate = DateUtils.addDays(endDate, 1);
|
endDate = DateUtils.addDays(endDate, 1);
|
||||||
requestVo.setEndDate(endDate);
|
requestVo.setEndDate(endDate);
|
||||||
// 开始日期-结束日期大于 1 天,小于30 天,按天展示数据
|
// 开始日期-结束日期大于 1 天,小于30 天,按天展示数据
|
||||||
dataList = emsAmmeterDataMapper.getPowerDataByDay(requestVo);
|
// dataList = emsAmmeterDataMapper.getPowerDataByDay(requestVo);
|
||||||
} else if (DateUtils.differentDaysByMillisecond(endDate, startDate) >= 30){
|
} else if (DateUtils.differentDaysByMillisecond(endDate, startDate) >= 30){
|
||||||
endDate = DateUtils.addDays(endDate, 1);
|
endDate = DateUtils.addDays(endDate, 1);
|
||||||
requestVo.setEndDate(endDate);
|
requestVo.setEndDate(endDate);
|
||||||
// 开始日期-结束日期大于 1 个月,按月展示数据
|
// 开始日期-结束日期大于 1 个月,按月展示数据
|
||||||
dataList = emsAmmeterDataMapper.getPowerDataByMonth(requestVo);
|
// dataList = emsAmmeterDataMapper.getPowerDataByMonth(requestVo);
|
||||||
}
|
}
|
||||||
|
// 都按照5分钟一个数据点展示数据
|
||||||
|
dataList = emsAmmeterDataMapper.getPowerDataByMinute(requestVo);
|
||||||
|
|
||||||
// 负荷功率
|
// 负荷功率
|
||||||
dealDataPower(requestVo.getSiteId(),dataList);
|
dealDataPower(requestVo.getSiteId(),dataList);
|
||||||
|
|||||||
@ -1145,10 +1145,9 @@
|
|||||||
WITH ranked AS (
|
WITH ranked AS (
|
||||||
SELECT
|
SELECT
|
||||||
*,
|
*,
|
||||||
DATE_FORMAT(
|
DATE_FORMAT(DATE_ADD(DATE_FORMAT(p.data_update_time, '%Y-%m-%d %H:00:00'), INTERVAL CEIL(MINUTE(p.data_update_time) / 5) * 5 MINUTE)
|
||||||
DATE_ADD(DATE_FORMAT(p.update_time, '%Y-%m-%d %H:00:00'), INTERVAL FLOOR(MINUTE(p.update_time) / 5) * 5 MINUTE)
|
, '%Y-%m-%d %H:%i:%s') AS statisDate,
|
||||||
, '%Y-%m-%d %H:%i:%s') AS statisDate,
|
ROW_NUMBER() OVER (PARTITION BY p.device_id, date_format(p.data_update_time, '%Y-%m-%d %H:00:00'), CEIL(MINUTE(p.data_update_time) / 5) ORDER BY p.data_update_time DESC) as rn
|
||||||
ROW_NUMBER() OVER (PARTITION BY p.device_id, date_format(p.data_update_time, '%Y-%m-%d %H:00:00'), FLOOR(MINUTE(p.data_update_time) / 5) ORDER BY p.data_update_time) as rn
|
|
||||||
FROM
|
FROM
|
||||||
ems_ammeter_data p
|
ems_ammeter_data p
|
||||||
<include refid="commonFilter"/>
|
<include refid="commonFilter"/>
|
||||||
@ -1159,6 +1158,7 @@
|
|||||||
<include refid="powerFilter"/>
|
<include refid="powerFilter"/>
|
||||||
FROM
|
FROM
|
||||||
ranked as t
|
ranked as t
|
||||||
|
where t.rn = 1
|
||||||
GROUP BY t.site_id, t.statisDate
|
GROUP BY t.site_id, t.statisDate
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
@ -433,8 +433,9 @@
|
|||||||
WITH ranked AS (
|
WITH ranked AS (
|
||||||
SELECT
|
SELECT
|
||||||
*,
|
*,
|
||||||
date_format(p.update_time, '%Y-%m-%d %H:00:00') + INTERVAL FLOOR(MINUTE(p.update_time) / 5) * 5 MINUTE AS group_time,
|
DATE_FORMAT(DATE_ADD(DATE_FORMAT(p.update_time, '%Y-%m-%d %H:00:00'), INTERVAL CEIL(MINUTE(p.update_time) / 5) * 5 MINUTE)
|
||||||
ROW_NUMBER() OVER (PARTITION BY p.device_id, date_format(p.update_time, '%Y-%m-%d %H:00:00'), FLOOR(MINUTE(p.update_time) / 5) ORDER BY p.update_time) as rn
|
, '%Y-%m-%d %H:%i:%s') AS group_time,
|
||||||
|
ROW_NUMBER() OVER (PARTITION BY p.device_id, date_format(p.update_time, '%Y-%m-%d %H:00:00'), CEIL(MINUTE(p.update_time) / 5) ORDER BY p.data_update_time DESC) as rn
|
||||||
FROM
|
FROM
|
||||||
ems_battery_cluster p
|
ems_battery_cluster p
|
||||||
<include refid="statisCommonFilter"/>
|
<include refid="statisCommonFilter"/>
|
||||||
|
|||||||
@ -513,8 +513,9 @@
|
|||||||
WITH ranked AS (
|
WITH ranked AS (
|
||||||
SELECT
|
SELECT
|
||||||
*,
|
*,
|
||||||
date_format(p.update_time, '%Y-%m-%d %H:00:00') + INTERVAL FLOOR(MINUTE(p.update_time) / 5) * 5 MINUTE AS group_time,
|
DATE_FORMAT(DATE_ADD(DATE_FORMAT(p.update_time, '%Y-%m-%d %H:00:00'), INTERVAL CEIL(MINUTE(p.update_time) / 5) * 5 MINUTE)
|
||||||
ROW_NUMBER() OVER (PARTITION BY p.device_id, date_format(p.update_time, '%Y-%m-%d %H:00:00'), FLOOR(MINUTE(p.update_time) / 5) ORDER BY p.update_time) as rn
|
, '%Y-%m-%d %H:%i:%s') AS group_time,
|
||||||
|
ROW_NUMBER() OVER (PARTITION BY p.device_id, date_format(p.update_time, '%Y-%m-%d %H:00:00'), CEIL(MINUTE(p.update_time) / 5) ORDER BY p.data_update_time DESC) as rn
|
||||||
FROM
|
FROM
|
||||||
ems_battery_stack p
|
ems_battery_stack p
|
||||||
<include refid="statisCommonFilter"/>
|
<include refid="statisCommonFilter"/>
|
||||||
|
|||||||
@ -599,6 +599,26 @@
|
|||||||
order by statisDate desc
|
order by statisDate desc
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="getPcsActivePowerByMinutes" parameterType="com.xzzn.ems.domain.vo.DateSearchRequest" resultType="com.xzzn.ems.domain.vo.PcsStatisListVo">
|
||||||
|
WITH ranked AS (
|
||||||
|
SELECT
|
||||||
|
*,
|
||||||
|
DATE_FORMAT(DATE_ADD(DATE_FORMAT(p.data_update_time, '%Y-%m-%d %H:00:00'), INTERVAL CEIL(MINUTE(p.data_update_time) / 5) * 5 MINUTE)
|
||||||
|
, '%Y-%m-%d %H:%i:%s') AS statisDate,
|
||||||
|
ROW_NUMBER() OVER (PARTITION BY p.device_id, date_format(p.data_update_time, '%Y-%m-%d %H:00:00'), CEIL(MINUTE(p.data_update_time) / 5) ORDER BY p.data_update_time DESC) as rn
|
||||||
|
FROM
|
||||||
|
ems_pcs_data p
|
||||||
|
<include refid="statisCommonFilter"/>
|
||||||
|
)
|
||||||
|
select
|
||||||
|
t.device_id as deviceId,
|
||||||
|
t.statisDate,
|
||||||
|
<include refid="dataTypeChooseFilter"/>
|
||||||
|
FROM
|
||||||
|
ranked as t
|
||||||
|
where t.rn = 1
|
||||||
|
</select>
|
||||||
|
|
||||||
<select id="getFXMaxTemp" parameterType="com.xzzn.ems.domain.vo.DateSearchRequest" resultType="com.xzzn.ems.domain.vo.PcsMaxTempVo">
|
<select id="getFXMaxTemp" parameterType="com.xzzn.ems.domain.vo.DateSearchRequest" resultType="com.xzzn.ems.domain.vo.PcsMaxTempVo">
|
||||||
SELECT t.site_id,t.device_id as deviceId,
|
SELECT t.site_id,t.device_id as deviceId,
|
||||||
GREATEST(
|
GREATEST(
|
||||||
|
|||||||
Reference in New Issue
Block a user