统计报表-功率曲线

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

@ -23,7 +23,7 @@ public class DateSearchRequest {
private String deviceId;
private int dataType;
private String dataType;
public Date getStartDate() {
return startDate;
@ -57,11 +57,11 @@ public class DateSearchRequest {
this.deviceId = deviceId;
}
public int getDataType() {
public String getDataType() {
return dataType;
}
public void setDataType(int dataType) {
public void setDataType(String dataType) {
this.dataType = dataType;
}
}

View File

@ -0,0 +1,73 @@
package com.xzzn.ems.domain.vo;
import java.math.BigDecimal;
/**
* 数据统计-功率曲线
*/
public class PowerStatisListVo {
/**
* 数据日期
*/
private String statisDate;
/**
* 电网功率-total_apparent_power总交流视在功率
*/
private BigDecimal gridPower;
/**
* 负载功率-total_active_power总交流有功电率
*/
private BigDecimal loadPower;
/**
* 储能功率-max_discharge_power_capacity最大可放功率
*/
private BigDecimal storagePower;
/**
* 光伏功率-ac_capacitive_reactive_power交流侧容性无功功率
*/
private BigDecimal pvPower;
public String getStatisDate() {
return statisDate;
}
public void setStatisDate(String statisDate) {
this.statisDate = statisDate;
}
public BigDecimal getGridPower() {
return gridPower;
}
public void setGridPower(BigDecimal gridPower) {
this.gridPower = gridPower;
}
public BigDecimal getLoadPower() {
return loadPower;
}
public void setLoadPower(BigDecimal loadPower) {
this.loadPower = loadPower;
}
public BigDecimal getStoragePower() {
return storagePower;
}
public void setStoragePower(BigDecimal storagePower) {
this.storagePower = storagePower;
}
public BigDecimal getPvPower() {
return pvPower;
}
public void setPvPower(BigDecimal pvPower) {
this.pvPower = pvPower;
}
}

View File

@ -142,4 +142,15 @@ public interface EmsPcsDataMapper
public List<PcsStatisListVo> getPcsActivePowerByHour(DateSearchRequest requestVo);
public List<PcsStatisListVo> getPcsActivePowerByMonth(DateSearchRequest requestVo);
/**
* 获取pcs功率曲线数据
* @param requestVo
* @return
*/
public List<PowerStatisListVo> getPowerDataByHour(DateSearchRequest requestVo);
public List<PowerStatisListVo> getPowerDataByDay(DateSearchRequest requestVo);
public List<PowerStatisListVo> getPowerDataByMonth(DateSearchRequest requestVo);
}

View File

@ -25,4 +25,6 @@ public interface IEmsStatsReportService
public List<Map<String,Object>> getLoadNameList(String siteId);
public List<AmmeterStatisListVo> getAmmeterDataResult(StatisAmmeterDateRequest requestVo);
public List<PowerStatisListVo> getPowerDataList(DateSearchRequest requestVo);
}

View File

@ -165,10 +165,12 @@ public class EmsStatsReportServiceImpl implements IEmsStatsReportService
return dataList;
}
@Override
public List<Map<String, Object>> getLoadNameList(String siteId) {
return emsDevicesSettingMapper.getLoadNameList(siteId);
}
@Override
public List<AmmeterStatisListVo> getAmmeterDataResult(StatisAmmeterDateRequest requestVo){
List<AmmeterStatisListVo> dataList = new ArrayList();
// 时间不传默认当天
@ -228,6 +230,36 @@ public class EmsStatsReportServiceImpl implements IEmsStatsReportService
totalVo.setReActiveValleyKwh(totalVo.getReActiveValleyKwh().add(ammeterStatisListVo.getReActiveValleyKwh()));
}
@Override
public List<PowerStatisListVo> getPowerDataList(DateSearchRequest requestVo) {
List<PowerStatisListVo> dataList = new ArrayList<>();
// 默认时间-7天
dealRequestTime(requestVo);
Date startDate = requestVo.getStartDate();
Date endDate = requestVo.getEndDate();
// 开始日期和结束日期同一天,展示 0-24 小时数据
if (DateUtils.isSameDay(startDate, endDate)){
endDate = DateUtils.addDays(endDate, 1);
requestVo.setEndDate(endDate);
dataList = emsPcsDataMapper.getPowerDataByHour(requestVo);
} else if (DateUtils.differentDaysByMillisecond(endDate, startDate) >= 1
&& DateUtils.differentDaysByMillisecond(endDate, startDate) < 30){
endDate = DateUtils.addDays(endDate, 1);
requestVo.setEndDate(endDate);
// 开始日期-结束日期大于 1 天小于30 天,按天展示数据
dataList = emsPcsDataMapper.getPowerDataByDay(requestVo);
} else if (DateUtils.differentDaysByMillisecond(endDate, startDate) >= 30){
endDate = DateUtils.addDays(endDate, 1);
requestVo.setEndDate(endDate);
// 开始日期-结束日期大于 1 个月,按月展示数据
dataList = emsPcsDataMapper.getPowerDataByMonth(requestVo);
}
return dataList;
}
// 统计入参时间处理
public void dealRequestTime(DateSearchRequest requestVo){