收益报表新增一列”实际收益“,价格保留三位小数

This commit is contained in:
zq
2026-01-22 14:30:52 +08:00
parent b4f867f796
commit 04bf9fe1c1
3 changed files with 21 additions and 9 deletions

View File

@ -41,6 +41,9 @@ public class AmmeterRevenueStatisListVo {
/** 组合无功-谷 */
private BigDecimal reActiveValleyPrice = BigDecimal.ZERO;
/** 实际收益 */
private BigDecimal actualRevenue = BigDecimal.ZERO;
public String getDataTime() {
return dataTime;
}
@ -128,4 +131,12 @@ public class AmmeterRevenueStatisListVo {
public void setReActiveValleyPrice(BigDecimal reActiveValleyPrice) {
this.reActiveValleyPrice = reActiveValleyPrice;
}
public BigDecimal getActualRevenue() {
return actualRevenue;
}
public void setActualRevenue(BigDecimal actualRevenue) {
this.actualRevenue = actualRevenue;
}
}

View File

@ -347,10 +347,11 @@ public class EmsStatsReportServiceImpl implements IEmsStatsReportService
if (CollectionUtils.isEmpty(resultList)) {
return Collections.emptyList();
}
//计算每天总收益
//计算每天总收益和当日实际收益(放电总-充电总)
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()));
ammeterRevenue.setActualRevenue(ammeterRevenue.getReActiveFlatPrice().subtract(ammeterRevenue.getActiveTotalPrice()));
});
return resultList;

View File

@ -236,14 +236,14 @@
<select id="getRevenueDataBySiteId" resultType="com.xzzn.ems.domain.vo.AmmeterRevenueStatisListVo">
select
t.data_date as dataTime,
t.peak_charge_diff * pc.peak as activePeakPrice,
t.peak_discharge_diff * pc.peak as reActivePeakPrice,
t.high_charge_diff * pc.high as activeHighPrice,
t.high_discharge_diff * pc.high as reActiveHighPrice,
t.flat_charge_diff * pc.flat as activeFlatPrice,
t.flat_discharge_diff * pc.flat as reActiveFlatPrice,
t.valley_charge_diff * pc.valley as activeValleyPrice,
t.valley_discharge_diff * pc.valley as reActiveValleyPrice
ROUND(t.peak_charge_diff * pc.peak, 3) as activePeakPrice,
ROUND(t.peak_discharge_diff * pc.peak, 3) as reActivePeakPrice,
ROUND(t.high_charge_diff * pc.high, 3) as activeHighPrice,
ROUND(t.high_discharge_diff * pc.high, 3) as reActiveHighPrice,
ROUND(t.flat_charge_diff * pc.flat, 3) as activeFlatPrice,
ROUND(t.flat_discharge_diff * pc.flat, 3) as reActiveFlatPrice,
ROUND(t.valley_charge_diff * pc.valley, 3) as activeValleyPrice,
ROUND(t.valley_discharge_diff * pc.valley, 3) as reActiveValleyPrice
from ems_daily_energy_data t
left join (
select