fix(calculate):报表的计算会根据园区的不同选择不同的计算方式。
This commit is contained in:
parent
e1463de00d
commit
ac70adf92a
|
@ -91,36 +91,70 @@ func (_CalculateService) ComprehensivelyCalculateReport(reportId string) (err er
|
|||
}
|
||||
|
||||
// 计算户表总电费和公共总电费以及相应的摊薄
|
||||
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.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.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.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.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),
|
||||
)
|
||||
if reportIndex.SubmeterType == model.CUSTOMER_METER_NON_PV {
|
||||
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.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.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.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.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),
|
||||
)
|
||||
}
|
||||
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) {
|
||||
summary.PublicConsumptionProportion = decimal.NewNullDecimal(
|
||||
summary.PublicConsumption.Decimal.Div(summary.Overall).RoundBank(15),
|
||||
|
|
Loading…
Reference in New Issue
Block a user