forked from free-lancers/electricity_bill_calc_service
		
	fix(calculate):报表的计算会根据园区的不同选择不同的计算方式。
This commit is contained in:
		| @@ -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), | ||||
|   | ||||
		Reference in New Issue
	
	Block a user