fix(calculate):报表的计算会根据园区的不同选择不同的计算方式。

This commit is contained in:
徐涛 2022-09-09 12:28:40 +08:00
parent e1463de00d
commit ac70adf92a

View File

@ -91,36 +91,70 @@ func (_CalculateService) ComprehensivelyCalculateReport(reportId string) (err er
} }
// 计算户表总电费和公共总电费以及相应的摊薄 // 计算户表总电费和公共总电费以及相应的摊薄
summary.CustomerConsumptionFee = decimal.NewNullDecimal( if reportIndex.SubmeterType == model.CUSTOMER_METER_NON_PV {
summary.CustomerConsumption.Decimal.Mul(summary.OverallPrice.Decimal).RoundBank(2), summary.CustomerConsumptionFee = decimal.NewNullDecimal(
) summary.CustomerConsumption.Decimal.Mul(summary.OverallPrice.Decimal).RoundBank(2),
summary.CustomerConsumptionCriticalFee = decimal.NewNullDecimal( )
summary.CustomerConsumptionCritical.Decimal.Mul(summary.OverallPrice.Decimal).RoundBank(2), summary.CustomerConsumptionCriticalFee = decimal.NewNullDecimal(
) summary.CustomerConsumptionCritical.Decimal.Mul(summary.OverallPrice.Decimal).RoundBank(2),
summary.CustomerConsumptionPeakFee = decimal.NewNullDecimal( )
summary.CustomerConsumptionPeak.Decimal.Mul(summary.OverallPrice.Decimal).RoundBank(2), summary.CustomerConsumptionPeakFee = decimal.NewNullDecimal(
) summary.CustomerConsumptionPeak.Decimal.Mul(summary.OverallPrice.Decimal).RoundBank(2),
summary.CustomerConsumptionFlatFee = decimal.NewNullDecimal( )
summary.CustomerConsumptionFlat.Decimal.Mul(summary.OverallPrice.Decimal).RoundBank(2), summary.CustomerConsumptionFlatFee = decimal.NewNullDecimal(
) summary.CustomerConsumptionFlat.Decimal.Mul(summary.OverallPrice.Decimal).RoundBank(2),
summary.CustomerConsumptionValleyFee = decimal.NewNullDecimal( )
summary.CustomerConsumptionValley.Decimal.Mul(summary.OverallPrice.Decimal).RoundBank(2), summary.CustomerConsumptionValleyFee = decimal.NewNullDecimal(
) summary.CustomerConsumptionValley.Decimal.Mul(summary.OverallPrice.Decimal).RoundBank(2),
summary.PublicConsumptionFee = decimal.NewNullDecimal( )
summary.PublicConsumption.Decimal.Mul(summary.OverallPrice.Decimal).RoundBank(2), summary.PublicConsumptionFee = decimal.NewNullDecimal(
) summary.PublicConsumption.Decimal.Mul(summary.OverallPrice.Decimal).RoundBank(2),
summary.PublicConsumptionCriticalFee = decimal.NewNullDecimal( )
summary.PublicConsumptionCritical.Decimal.Mul(summary.OverallPrice.Decimal).RoundBank(2), summary.PublicConsumptionCriticalFee = decimal.NewNullDecimal(
) summary.PublicConsumptionCritical.Decimal.Mul(summary.OverallPrice.Decimal).RoundBank(2),
summary.PublicConsumptionPeakFee = decimal.NewNullDecimal( )
summary.PublicConsumptionPeak.Decimal.Mul(summary.OverallPrice.Decimal).RoundBank(2), summary.PublicConsumptionPeakFee = decimal.NewNullDecimal(
) summary.PublicConsumptionPeak.Decimal.Mul(summary.OverallPrice.Decimal).RoundBank(2),
summary.PublicConsumptionFlatFee = decimal.NewNullDecimal( )
summary.PublicConsumptionFlat.Decimal.Mul(summary.OverallPrice.Decimal).RoundBank(2), summary.PublicConsumptionFlatFee = decimal.NewNullDecimal(
) summary.PublicConsumptionFlat.Decimal.Mul(summary.OverallPrice.Decimal).RoundBank(2),
summary.PublicConsumptionValleyFee = decimal.NewNullDecimal( )
summary.PublicConsumptionValley.Decimal.Mul(summary.OverallPrice.Decimal).RoundBank(2), summary.PublicConsumptionValleyFee = decimal.NewNullDecimal(
) summary.PublicConsumptionValley.Decimal.Mul(summary.OverallPrice.Decimal).RoundBank(2),
)
}
if reportIndex.SubmeterType == model.CUSTOMER_METER_PV {
summary.CustomerConsumptionFee = decimal.NewNullDecimal(
summary.CustomerConsumption.Decimal.Mul(summary.OverallPrice.Decimal).RoundBank(2),
)
summary.CustomerConsumptionCriticalFee = decimal.NewNullDecimal(
summary.CustomerConsumptionCritical.Decimal.Mul(summary.CriticalPrice.Decimal).RoundBank(2),
)
summary.CustomerConsumptionPeakFee = decimal.NewNullDecimal(
summary.CustomerConsumptionPeak.Decimal.Mul(summary.PeakPrice.Decimal).RoundBank(2),
)
summary.CustomerConsumptionFlatFee = decimal.NewNullDecimal(
summary.CustomerConsumptionFlat.Decimal.Mul(summary.FlatPrice.Decimal).RoundBank(2),
)
summary.CustomerConsumptionValleyFee = decimal.NewNullDecimal(
summary.CustomerConsumptionValley.Decimal.Mul(summary.ValleyPrice.Decimal).RoundBank(2),
)
summary.PublicConsumptionFee = decimal.NewNullDecimal(
summary.PublicConsumption.Decimal.Mul(summary.OverallPrice.Decimal).RoundBank(2),
)
summary.PublicConsumptionCriticalFee = decimal.NewNullDecimal(
summary.PublicConsumptionCritical.Decimal.Mul(summary.CriticalPrice.Decimal).RoundBank(2),
)
summary.PublicConsumptionPeakFee = decimal.NewNullDecimal(
summary.PublicConsumptionPeak.Decimal.Mul(summary.PeakPrice.Decimal).RoundBank(2),
)
summary.PublicConsumptionFlatFee = decimal.NewNullDecimal(
summary.PublicConsumptionFlat.Decimal.Mul(summary.FlatPrice.Decimal).RoundBank(2),
)
summary.PublicConsumptionValleyFee = decimal.NewNullDecimal(
summary.PublicConsumptionValley.Decimal.Mul(summary.ValleyPrice.Decimal).RoundBank(2),
)
}
if summary.Overall.Abs().GreaterThan(decimal.Zero) { if summary.Overall.Abs().GreaterThan(decimal.Zero) {
summary.PublicConsumptionProportion = decimal.NewNullDecimal( summary.PublicConsumptionProportion = decimal.NewNullDecimal(
summary.PublicConsumption.Decimal.Div(summary.Overall).RoundBank(15), summary.PublicConsumption.Decimal.Div(summary.Overall).RoundBank(15),