统计报表-收益报表:统一逻辑,电表尖、峰、平、谷差值直接乘以对应类型电价
This commit is contained in:
@ -1,11 +1,13 @@
|
||||
package com.xzzn.ems.mapper;
|
||||
|
||||
import com.xzzn.ems.domain.EmsDailyEnergyData;
|
||||
import com.xzzn.ems.domain.vo.AmmeterRevenueStatisListVo;
|
||||
import com.xzzn.ems.domain.vo.AmmeterStatisListVo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.xzzn.ems.domain.EmsDailyEnergyData;
|
||||
import com.xzzn.ems.domain.vo.AmmeterStatisListVo;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
@ -74,4 +76,6 @@ public interface EmsDailyEnergyDataMapper
|
||||
public BigDecimal getLastTotalRevenue(String siteId);
|
||||
// fx-获取实时总收益和当日实时收益
|
||||
public Map<String, BigDecimal> getRealTimeRevenue(String siteId);
|
||||
|
||||
public List<AmmeterRevenueStatisListVo> getRevenueDataBySiteId(@Param("siteId") String siteId, @Param("startTime") String startTime, @Param("endTime") String endTime);
|
||||
}
|
||||
|
||||
@ -343,22 +343,14 @@ public class EmsStatsReportServiceImpl implements IEmsStatsReportService
|
||||
|
||||
@Override
|
||||
public List<AmmeterRevenueStatisListVo> getAmmeterRevenueDataResult(StatisAmmeterDateRequest requestVo) {
|
||||
String siteId = requestVo.getSiteId();
|
||||
List<AmmeterRevenueStatisListVo> resultList = new ArrayList<>();
|
||||
//查询电表数据
|
||||
List<AmmeterStatisListVo> dataList = this.getAmmeterDataResult(requestVo);
|
||||
if (CollectionUtils.isEmpty(dataList)) {
|
||||
List<AmmeterRevenueStatisListVo> resultList = emsDailyEnergyDataMapper.getRevenueDataBySiteId(requestVo.getSiteId(),requestVo.getStartTime(),requestVo.getEndTime());
|
||||
if (CollectionUtils.isEmpty(resultList)) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
//查询电价配置
|
||||
List<EnergyPriceConfigVo> priceConfigList = emsEnergyPriceConfigMapper.getConfigListByTimeFrame(siteId, requestVo.getStartTime(), requestVo.getEndTime());
|
||||
if (CollectionUtils.isEmpty(priceConfigList)){
|
||||
return Collections.emptyList();
|
||||
}
|
||||
Map<String, List<EnergyPriceConfigVo>> priceConfigMap = priceConfigList.stream().collect(Collectors.groupingBy(EnergyPriceConfigVo::getYearMonth));
|
||||
dataList.forEach(ammeter -> {
|
||||
List<EnergyPriceConfigVo> priceConfigs = priceConfigMap.get(ammeter.getDataTime().substring(0, 7));
|
||||
resultList.add(calculateDailyBill(ammeter, priceConfigs));
|
||||
//计算每天总收益
|
||||
resultList.forEach(ammeterRevenue -> {
|
||||
ammeterRevenue.setActiveTotalPrice(ammeterRevenue.getActivePeakPrice().add(ammeterRevenue.getActiveHighPrice()).add(ammeterRevenue.getActiveFlatPrice()).add(ammeterRevenue.getActiveValleyPrice()));
|
||||
ammeterRevenue.setReActiveTotalPrice(ammeterRevenue.getReActivePeakPrice().add(ammeterRevenue.getReActiveHighPrice()).add(ammeterRevenue.getReActiveFlatPrice()).add(ammeterRevenue.getReActiveValleyPrice()));
|
||||
});
|
||||
|
||||
return resultList;
|
||||
|
||||
Reference in New Issue
Block a user