设备监控-实时运行页面曲线按照每分钟展示

This commit is contained in:
zq
2026-01-23 19:11:13 +08:00
parent 5eccb35568
commit b3f7ca7a81
6 changed files with 153 additions and 74 deletions

View File

@ -1,7 +1,6 @@
package com.xzzn.ems.domain.vo;
import java.math.BigDecimal;
import java.util.Date;
/**
* 实时运行-有功无功功率数据
@ -31,6 +30,8 @@ public class EnergyStoragePowVo {
private String deviceId;
private String groupTime;
public String getDeviceId() {
return deviceId;
}
@ -67,6 +68,14 @@ public class EnergyStoragePowVo {
this.dateDay = dateDay;
}
public String getGroupTime() {
return groupTime;
}
public void setGroupTime(String groupTime) {
this.groupTime = groupTime;
}
public void setPcsTotalReactivePower(BigDecimal pcsTotalReactivePower) {
this.pcsTotalReactivePower = pcsTotalReactivePower;
}

View File

@ -140,4 +140,6 @@ public interface EmsPcsDataMapper
public List<PcsMaxTempVo> getFXMaxTemp(@Param("siteId")String siteId, @Param("startDate")Date startDate, @Param("endDate")Date endDate);
// 实时运行-dds-pcs最高温度
public List<PcsMaxTempVo> getDDSMaxTemp(@Param("siteId")String siteId, @Param("startDate")Date startDate, @Param("endDate")Date endDate);
List<PcsMaxTempVo> getPcsMaxTemp(@Param("siteId") String siteId, @Param("startDate") Date startDate, @Param("endDate") Date endDate);
}

View File

@ -238,13 +238,13 @@ public class SingleSiteServiceImpl implements ISingleSiteService {
return pcdData;
}).collect(Collectors.toList());
// // 生成时间列表(每分钟一个)
// List<LocalDateTime> targetMinutes = new ArrayList<>(60);
// LocalDateTime startDate = DateUtils.toLocalDateTime(yesterday).truncatedTo(ChronoUnit.DAYS);
// LocalDateTime endDate = DateUtils.toLocalDateTime(today);
// while (startDate.isBefore(endDate)) {
// targetMinutes.add(startDate);
// startDate = startDate.plusMinutes(1); // 递增1分钟
// // 生成时间列表(每5分钟一个)
// List<LocalDateTime> targetMinutes = new ArrayList<>(12);
// LocalDateTime startLocalDate = DateUtils.toLocalDateTime(startDate).truncatedTo(ChronoUnit.DAYS);
// LocalDateTime endLocalDate = DateUtils.toLocalDateTime(endDate).with(LocalDateTime.now().toLocalTime());
// while (startLocalDate.isBefore(endLocalDate)) {
// targetMinutes.add(startLocalDate);
// startLocalDate = startLocalDate.plusMinutes(5); // 递增5分钟
// }
// // 根据时间列表填充数据
// pcsPowerList = fullFillData(pcsPowerList, targetMinutes);
@ -254,6 +254,7 @@ public class SingleSiteServiceImpl implements ISingleSiteService {
return siteMonitorRuningInfoVo;
}
private List<PcsPowerList> fullFillData(List<PcsPowerList> pcsPowerList, List<LocalDateTime> targetMinutes) {
List<PcsPowerList> resultList = new ArrayList<>();
@ -269,7 +270,7 @@ public class SingleSiteServiceImpl implements ISingleSiteService {
// 将数据转Map便于后续根据时间获取
dataMap = powerList.stream().collect(
Collectors.toMap(
data -> data.getCreateDate(),
data -> data.getGroupTime(),
data -> data,
(existing, replacement) -> replacement
));
@ -293,7 +294,8 @@ public class SingleSiteServiceImpl implements ISingleSiteService {
currentData.setDeviceId(deviceId);
}
lastData = currentData;
currentData.setCreateDate(currentDate.substring(11));
// currentData.setCreateDate(currentDate.substring(11));
currentData.setCreateDate(currentData.getCreateDate());
resultPowerList.add(currentData);
}
pcsResultPower.setDeviceId(deviceId);
@ -316,12 +318,12 @@ public class SingleSiteServiceImpl implements ISingleSiteService {
Date startDate = request.getStartDate();
Date endDate = request.getEndDate();
//PCS最高温度list
List<PcsMaxTempVo> pcsMaxTempVos = new ArrayList<>();
if (SiteEnum.FX.getCode().equals(siteId)) {
pcsMaxTempVos = emsPcsDataMapper.getFXMaxTemp(siteId, startDate, endDate);
} else if (SiteEnum.DDS.getCode().equals(siteId)) {
pcsMaxTempVos = emsPcsDataMapper.getDDSMaxTemp(siteId, startDate, endDate);
}
List<PcsMaxTempVo> pcsMaxTempVos = emsPcsDataMapper.getPcsMaxTemp(siteId, startDate, endDate);
// if (SiteEnum.FX.getCode().equals(siteId)) {
// pcsMaxTempVos = emsPcsDataMapper.getFXMaxTemp(siteId, startDate, endDate);
// } else if (SiteEnum.DDS.getCode().equals(siteId)) {
// pcsMaxTempVos = emsPcsDataMapper.getDDSMaxTemp(siteId, startDate, endDate);
// }
// List<PcsMaxTempVo> -> 按pcs的deviceId分组转成List<PcsMaxTempList>
if (!CollectionUtils.isEmpty(pcsMaxTempVos)) {
@ -427,13 +429,18 @@ public class SingleSiteServiceImpl implements ISingleSiteService {
String siteId = request.getSiteId();
Date startDate = request.getStartDate();
Date endDate = request.getEndDate();
//电池平均温度list
//电池平均温度list,优先从电池堆取,电池堆没有的话再从电池簇取
List<BatteryAveTempVo> batteryAveTempList = new ArrayList<>();
if (SiteEnum.FX.getCode().equals(siteId)) {
batteryAveTempList = emsBatteryStackMapper.getBatteryAveTempList(siteId, startDate, endDate);
// 电池堆暂无数据,从电池簇取
if (CollectionUtils.isEmpty(batteryAveTempList)) {
batteryAveTempList = emsBatteryClusterMapper.getBatteryAveTempList(siteId, startDate, endDate);
} else if (SiteEnum.DDS.getCode().equals(siteId)) {
batteryAveTempList = emsBatteryStackMapper.getBatteryAveTempList(siteId, startDate, endDate);
}
// if (SiteEnum.FX.getCode().equals(siteId)) {
// batteryAveTempList = emsBatteryClusterMapper.getBatteryAveTempList(siteId, startDate, endDate);
// } else if (SiteEnum.DDS.getCode().equals(siteId)) {
// batteryAveTempList = emsBatteryStackMapper.getBatteryAveTempList(siteId, startDate, endDate);
// }
siteMonitorRuningInfoVo.setBatteryAveTempList(batteryAveTempList);
// if (!StringUtils.isEmpty(siteId)) {
// // 时间暂定今日+昨日