数据20250904优化-功率曲线取值修改

This commit is contained in:
2025-09-15 14:21:27 +08:00
parent d807b9117d
commit 2bb78dc020
8 changed files with 138 additions and 80 deletions

View File

@ -12,22 +12,22 @@ public class PowerStatisListVo {
private String statisDate;
/**
* 电网功率-total_apparent_power总交流视在功率
* 电网功率-total_active_power(LOAD
*/
private BigDecimal gridPower;
/**
* 负载功率-total_active_power总交流有功电率
* 负载功率
*/
private BigDecimal loadPower;
/**
* 储能功率-max_discharge_power_capacity最大可放功率
* 储能功率-secondary_total_active_power(METE)
*/
private BigDecimal storagePower;
/**
* 光伏功率-ac_capacitive_reactive_power交流侧容性无功功率
* 光伏功率-total_active_power(METEGT)
*/
private BigDecimal pvPower;

View File

@ -84,4 +84,8 @@ public interface EmsAmmeterDataMapper
// 概率统计-电量指标(按月)
public List<SiteMonitorDataVo> getChargeDataByMonth(@Param("siteId")String siteId, @Param("deviceId")String deviceId,@Param("startDate")Date startDate,@Param("endDate")Date endDate);
// 报表统计-功率曲线
public List<PowerStatisListVo> getPowerDataByHour(DateSearchRequest requestVo);
public List<PowerStatisListVo> getPowerDataByDay(DateSearchRequest requestVo);
public List<PowerStatisListVo> getPowerDataByMonth(DateSearchRequest requestVo);
}

View File

@ -1,9 +1,7 @@
package com.xzzn.ems.mapper;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;
import com.xzzn.ems.domain.EmsPcsData;
import com.xzzn.ems.domain.vo.*;
@ -129,15 +127,4 @@ 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

@ -888,6 +888,9 @@ public class DDSDataProcessServiceImpl extends AbstractBatteryDataProcessor impl
dataMete.setVoltageUnbalanceDegree(StringUtils.getBigDecimal(obj.get("DYBPHD")));
dataMete.setCurrentUnbalanceDegree(StringUtils.getBigDecimal(obj.get("DLBPHD")));
// 储能功率
dataMete.setSecondaryTotalActivePower(StringUtils.getBigDecimal(obj.get("ZYGGL")));
dataMete.setCreateBy("system");
dataMete.setCreateTime(DateUtils.getNowDate());
dataMete.setUpdateBy("system");

View File

@ -1,5 +1,6 @@
package com.xzzn.ems.service.impl;
import com.xzzn.common.enums.SiteEnum;
import com.xzzn.common.utils.DateUtils;
import com.xzzn.ems.domain.EmsAmmeterData;
import com.xzzn.ems.domain.vo.*;
@ -11,6 +12,7 @@ import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Date;
@ -46,6 +48,9 @@ public class EmsStatsReportServiceImpl implements IEmsStatsReportService
@Autowired
private EmsDailyChargeDataMapper emsDailyChargeDataMapper;
private static final BigDecimal DDS_STORAGE_FACTOR = new BigDecimal("0.1");
private static final BigDecimal DDS_PV_FACTOR = new BigDecimal("-0.001");
// 电量指标
@Override
public ElectricDataInfoVo getElectricDataResult(DateSearchRequest requestVo) {
@ -328,23 +333,52 @@ public class EmsStatsReportServiceImpl implements IEmsStatsReportService
if (DateUtils.isSameDay(startDate, endDate)){
endDate = DateUtils.addDays(endDate, 1);
requestVo.setEndDate(endDate);
dataList = emsPcsDataMapper.getPowerDataByHour(requestVo);
dataList = emsAmmeterDataMapper.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);
dataList = emsAmmeterDataMapper.getPowerDataByDay(requestVo);
} else if (DateUtils.differentDaysByMillisecond(endDate, startDate) >= 30){
endDate = DateUtils.addDays(endDate, 1);
requestVo.setEndDate(endDate);
// 开始日期-结束日期大于 1 个月,按月展示数据
dataList = emsPcsDataMapper.getPowerDataByMonth(requestVo);
dataList = emsAmmeterDataMapper.getPowerDataByMonth(requestVo);
}
// 处理数据设置 负荷功率
dealDataPower(requestVo.getSiteId(),dataList);
return dataList;
}
private void dealDataPower(String siteId, List<PowerStatisListVo> dataList) {
DecimalFormat df = new DecimalFormat("0.####");
if (dataList == null || dataList.size() == 0){
return;
}
for (PowerStatisListVo powerStatisListVo : dataList) {
BigDecimal gridPower = powerStatisListVo.getGridPower() == null ? BigDecimal.ZERO : powerStatisListVo.getGridPower();
BigDecimal storagePower = powerStatisListVo.getStoragePower() == null ? BigDecimal.ZERO : powerStatisListVo.getStoragePower();
BigDecimal pvPower = powerStatisListVo.getPvPower() == null ? BigDecimal.ZERO : powerStatisListVo.getPvPower();
BigDecimal loadPower = new BigDecimal(0);
// 电动所:储能功率=储能功率乘0.1;光伏功率=光伏功率*乘-0.001;负荷功率=电网功率+光伏功率-储能功率
if (SiteEnum.DDS.getCode().equals(siteId)){
powerStatisListVo.setStoragePower(storagePower.multiply(DDS_STORAGE_FACTOR).stripTrailingZeros());
powerStatisListVo.setPvPower(pvPower.multiply(DDS_PV_FACTOR).stripTrailingZeros());
loadPower = gridPower.add(powerStatisListVo.getPvPower()).subtract(powerStatisListVo.getStoragePower());
powerStatisListVo.setLoadPower(loadPower);
} else if (SiteEnum.FX.getCode().equals(siteId)){
// 奉贤:负荷功率=电网功率-储能功率;
loadPower = gridPower.subtract(storagePower);
powerStatisListVo.setLoadPower(loadPower);
}
}
}
// 统计入参时间处理
public void dealRequestTime(DateSearchRequest requestVo){