forked from free-lancers/electricity_bill_calc_service
		
	enhance(model):调整物业附加费、公示报表部分的数据结构模型,以及数据库迁移脚本。
This commit is contained in:
		
										
											Binary file not shown.
										
									
								
							| @@ -190,6 +190,7 @@ func batchImport04kVMeterArchive(c *gin.Context) { | ||||
| 	mergedMeters := lo.Map(records, func(meter model.Meter04KV, index int) model.Meter04KV { | ||||
| 		meter.ParkId = requestParkId | ||||
| 		meter.Enabled = true | ||||
| 		meter.WillDilute = false | ||||
| 		return meter | ||||
| 	}) | ||||
| 	errs = service.Meter04kVService.DuplicateMeterCodeValidate(mergedMeters) | ||||
|   | ||||
| @@ -14,7 +14,6 @@ var meter04kVExcelRecognizers = []*ColumnRecognizer{ | ||||
| 	{Pattern: []string{"倍率"}, Tag: "ratio", MatchIndex: -1, MustFill: true}, | ||||
| 	{Pattern: []string{"序号"}, Tag: "seq", MatchIndex: -1, MustFill: true}, | ||||
| 	{Pattern: []string{"公用设备"}, Tag: "public", MatchIndex: -1, MustFill: true}, | ||||
| 	{Pattern: []string{"摊薄"}, Tag: "dilute", MatchIndex: -1, MustFill: true}, | ||||
| } | ||||
|  | ||||
| func NewMeterArchiveExcelAnalyzer(file io.Reader) (*ExcelAnalyzer[model.Meter04KV], error) { | ||||
|   | ||||
							
								
								
									
										15
									
								
								migration/20220921143001_maintenance.down.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								migration/20220921143001_maintenance.down.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | ||||
| alter table meter_04kv | ||||
|     add column dilute boolean not null default false; | ||||
|  | ||||
| alter table end_user_detail | ||||
|     add column dilute boolean not null default false, | ||||
|     add column maintenance_fee_diluted numeric(18,8), | ||||
|     add column public_consumption_diluted numeric(18,8); | ||||
|  | ||||
| alter table maintenance_fee | ||||
|     drop column period; | ||||
|  | ||||
| alter table report_summary | ||||
|     drop column authorize_loss, | ||||
|     drop column authorize_loss_fee, | ||||
|     drop column authorize_loss_proportion; | ||||
							
								
								
									
										37
									
								
								migration/20220921143001_maintenance.up.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								migration/20220921143001_maintenance.up.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,37 @@ | ||||
| alter table meter_04kv | ||||
|     drop column dilute; | ||||
|  | ||||
| alter table end_user_detail | ||||
|     drop column dilute, | ||||
|     drop column maintenance_fee_diluted, | ||||
|     drop column public_consumption_diluted; | ||||
|  | ||||
| alter table maintenance_fee | ||||
|     add column period varchar(10) not null; | ||||
|  | ||||
| alter table report_summary | ||||
|     drop column customer_consumption, | ||||
|     drop column customer_consumption_fee, | ||||
|     drop column customer_consumption_critical, | ||||
|     drop column customer_consumption_critical_fee, | ||||
|     drop column customer_consumption_peak, | ||||
|     drop column customer_consumption_peak_fee, | ||||
|     drop column customer_consumption_flat, | ||||
|     drop column customer_consumption_flat_fee, | ||||
|     drop column customer_consumption_valley, | ||||
|     drop column customer_consumption_valley_fee, | ||||
|     drop column public_consumption, | ||||
|     drop column public_consumption_fee, | ||||
|     drop column public_consumption_critical, | ||||
|     drop column public_consumption_critical_fee, | ||||
|     drop column public_consumption_peak, | ||||
|     drop column public_consumption_peak_fee, | ||||
|     drop column public_consumption_flat, | ||||
|     drop column public_consumption_flat_fee, | ||||
|     drop column public_consumption_valley, | ||||
|     drop column public_consumption_valley_fee, | ||||
|     drop column public_consumption_proportion, | ||||
|     drop column diluteds, | ||||
|     add column authorize_loss numeric(14,2), | ||||
|     add column authorize_loss_fee numeric(16,2), | ||||
|     add column authorize_loss_proportion numeric(16,15); | ||||
| @@ -22,7 +22,6 @@ type EndUserDetail struct { | ||||
| 	ContactName           *string             `json:"contactName"` | ||||
| 	ContactPhone          *string             `json:"contactPhone"` | ||||
| 	IsPublicMeter         bool                `bun:"public_meter,notnull" json:"isPublicMeter"` | ||||
| 	WillDilute               bool                `bun:"dilute,notnull" json:"willDilute"` | ||||
| 	LastPeriodOverall     decimal.Decimal     `bun:"type:numeric,notnull" json:"lastPeriodOverall"` | ||||
| 	LastPeriodCritical    decimal.Decimal     `bun:"type:numeric,notnull" json:"lastPeriodCritical"` | ||||
| 	LastPeriodPeak        decimal.Decimal     `bun:"type:numeric,notnull" json:"lastPeriodPeak"` | ||||
| @@ -53,8 +52,6 @@ type EndUserDetail struct { | ||||
| 	AdjustFeeDiluted      decimal.NullDecimal `bun:"type:numeric" json:"adjustFeeDiluted"` | ||||
| 	LossDiluted           decimal.NullDecimal `bun:"type:numeric" json:"lossDiluted"` | ||||
| 	LossFeeDiluted        decimal.NullDecimal `bun:"type:numeric" json:"lossFeeDiluted"` | ||||
| 	MaintenanceFeeDiluted    decimal.NullDecimal `bun:"type:numeric" json:"maintenanceFeeDiluted"` | ||||
| 	PublicConsumptionDiluted decimal.NullDecimal `bun:"type:numeric" json:"publicConsumptionDiluted"` | ||||
| 	FinalDiluted          decimal.NullDecimal `bun:"type:numeric" json:"finalDiluted"` | ||||
| 	FinalCharge           decimal.NullDecimal `bun:"type:numeric" json:"finalCharge"` | ||||
| 	Initialize            bool                `bun:"-" json:"-"` | ||||
|   | ||||
| @@ -15,6 +15,7 @@ type MaintenanceFee struct { | ||||
| 	Id                 string          `bun:",pk,notnull" json:"id"` | ||||
| 	ParkId             string          `bun:",notnull" json:"parkId"` | ||||
| 	Name               string          `bun:",notnull" json:"name"` | ||||
| 	Period             string          `bun:",notnull" json:"period"` | ||||
| 	Fee                decimal.Decimal `bun:"type:numeric,notnull" json:"fee"` | ||||
| 	Memo               *string         `bun:"type:text" json:"memo"` | ||||
| 	Enabled            bool            `bun:",notnull" json:"enabled"` | ||||
|   | ||||
| @@ -66,6 +66,8 @@ type LossPart struct { | ||||
| 	Price                   decimal.Decimal `json:"price"` | ||||
| 	ConsumptionFee          decimal.Decimal `json:"consumptionFee"` | ||||
| 	Proportion              decimal.Decimal `json:"proportion"` | ||||
| 	AuthorizeQuantity       decimal.Decimal `json:"authorizeQuantity"` | ||||
| 	AuthorizeConsumptionFee decimal.Decimal `json:"authorizeConsumptionFee"` | ||||
| } | ||||
|  | ||||
| type OtherShouldCollectionPart struct { | ||||
| @@ -89,8 +91,8 @@ type EndUserSummary struct { | ||||
| 	Address       *string             `json:"address"` | ||||
| 	MeterId       string              `json:"meterId"` | ||||
| 	IsPublicMeter bool                `json:"isPublicMeter"` | ||||
| 	Diluted       bool                `json:"willDilute"` | ||||
| 	Overall       decimal.Decimal     `json:"overall"` | ||||
| 	OverallPrice  decimal.Decimal     `json:"overallPrice"` | ||||
| 	OverallFee    decimal.Decimal     `json:"overallFee"` | ||||
| 	Critical      decimal.NullDecimal `json:"critical"` | ||||
| 	CriticalFee   decimal.NullDecimal `json:"criticalFee"` | ||||
| @@ -98,7 +100,8 @@ type EndUserSummary struct { | ||||
| 	PeakFee       decimal.NullDecimal `json:"peakFee"` | ||||
| 	Valley        decimal.NullDecimal `json:"valley"` | ||||
| 	ValleyFee     decimal.NullDecimal `json:"valleyFee"` | ||||
| 	Maintenance   decimal.Decimal     `json:"maintenance"` | ||||
| 	Loss          decimal.Decimal     `json:"loss"` | ||||
| 	LossFee       decimal.Decimal     `json:"lossFee"` | ||||
| } | ||||
|  | ||||
| type Publicity struct { | ||||
| @@ -108,7 +111,6 @@ type Publicity struct { | ||||
| 	Paid                     PaidPart                  `json:"paid"` | ||||
| 	EndUser                  ConsumptionOverallPart    `json:"endUserSum"` | ||||
| 	Loss                     LossPart                  `json:"loss"` | ||||
| 	DilutedConsumptionOverall ConsumptionOverallPart    `json:"diluted"` | ||||
| 	PublicConsumptionOverall ConsumptionOverallPart    `json:"public"` | ||||
| 	OtherCollections         OtherShouldCollectionPart `json:"others"` | ||||
| 	Maintenance              MaintenancePart           `json:"maintenance"` | ||||
|   | ||||
| @@ -29,6 +29,9 @@ type ReportSummary struct { | ||||
| 	Loss                          decimal.NullDecimal `bun:"type:numeric" json:"loss"` | ||||
| 	LossFee                       decimal.NullDecimal `bun:"type:numeric" json:"lossFee"` | ||||
| 	LossProportion                decimal.NullDecimal `bun:"type:numeric" json:"lossProportion"` | ||||
| 	AuthorizeLoss                 decimal.NullDecimal `bun:"type:numeric" json:"authorizeLoss"` | ||||
| 	AuthorizeLossFee              decimal.NullDecimal `bun:"type:numeric" json:"authorizeLossFee"` | ||||
| 	AuthorizeLossProportion       decimal.NullDecimal `bun:"type:numeric" json:"authorizeLossProportion"` | ||||
| 	BasicFee                      decimal.Decimal     `bun:"type:numeric,notnull" json:"basicFee"` | ||||
| 	BasicDilutedPrice             decimal.NullDecimal `bun:"type:numeric" json:"basicDilutedPrice"` | ||||
| 	AdjustFee                     decimal.Decimal     `bun:"type:numeric,notnull" json:"adjustFee"` | ||||
| @@ -40,7 +43,6 @@ type ReportSummary struct { | ||||
| 	FinalDilutedOverall           decimal.NullDecimal `bun:"type:numeric" json:"finalDilutedOverall"` | ||||
| 	Customers                     Consumptions        `bun:"type:jsonb" json:"customers"` | ||||
| 	Publics                       Consumptions        `bun:"type:jsonb" json:"publics"` | ||||
| 	Diluteds                      Consumptions        `bun:"type:jsonb" json:"diluteds"` | ||||
| } | ||||
|  | ||||
| type Consumptions struct { | ||||
|   | ||||
| @@ -43,7 +43,6 @@ func (_CalculateService) ComprehensivelyCalculateReport(reportId string) (err er | ||||
| 	// 计算终端用户信息与概览中的合计 | ||||
| 	report.Summary.Customers = model.NewConsumptions() | ||||
| 	report.Summary.Publics = model.NewConsumptions() | ||||
| 	report.Summary.Diluteds = model.NewConsumptions() | ||||
| 	for _, eu := range report.EndUsers { | ||||
| 		eu.OverallFee = decimal.NewNullDecimal( | ||||
| 			eu.Overall.Decimal.Mul(report.Summary.OverallPrice.Decimal).RoundBank(2), | ||||
| @@ -66,13 +65,6 @@ func (_CalculateService) ComprehensivelyCalculateReport(reportId string) (err er | ||||
| 			report.Summary.Publics.Peak.Decimal = report.Summary.Publics.Peak.Decimal.Add(eu.Peak.Decimal) | ||||
| 			report.Summary.Publics.Flat.Decimal = report.Summary.Publics.Flat.Decimal.Add(eu.Flat.Decimal) | ||||
| 			report.Summary.Publics.Valley.Decimal = report.Summary.Publics.Valley.Decimal.Add(eu.Valley.Decimal) | ||||
| 			if eu.WillDilute { | ||||
| 				report.Summary.Diluteds.Consumption.Decimal = report.Summary.Diluteds.Consumption.Decimal.Add(eu.Overall.Decimal) | ||||
| 				report.Summary.Diluteds.Critical.Decimal = report.Summary.Diluteds.Critical.Decimal.Add(eu.Critical.Decimal) | ||||
| 				report.Summary.Diluteds.Peak.Decimal = report.Summary.Diluteds.Peak.Decimal.Add(eu.Peak.Decimal) | ||||
| 				report.Summary.Diluteds.Flat.Decimal = report.Summary.Diluteds.Flat.Decimal.Add(eu.Flat.Decimal) | ||||
| 				report.Summary.Diluteds.Valley.Decimal = report.Summary.Diluteds.Valley.Decimal.Add(eu.Valley.Decimal) | ||||
| 			} | ||||
| 		} else { | ||||
| 			report.Summary.Customers.Consumption.Decimal = report.Summary.Customers.Consumption.Decimal.Add(eu.Overall.Decimal) | ||||
| 			report.Summary.Customers.Critical.Decimal = report.Summary.Customers.Critical.Decimal.Add(eu.Critical.Decimal) | ||||
| @@ -116,22 +108,6 @@ func (_CalculateService) ComprehensivelyCalculateReport(reportId string) (err er | ||||
| 		report.Summary.Publics.ValleyFee = decimal.NewNullDecimal( | ||||
| 			report.Summary.Publics.Valley.Decimal.Mul(report.Summary.OverallPrice.Decimal).RoundBank(2), | ||||
| 		) | ||||
| 		// 计算摊薄总计部分 | ||||
| 		report.Summary.Diluteds.ConsumptionFee = decimal.NewNullDecimal( | ||||
| 			report.Summary.Diluteds.Consumption.Decimal.Mul(report.Summary.OverallPrice.Decimal).RoundBank(2), | ||||
| 		) | ||||
| 		report.Summary.Diluteds.CriticalFee = decimal.NewNullDecimal( | ||||
| 			report.Summary.Diluteds.Critical.Decimal.Mul(report.Summary.OverallPrice.Decimal).RoundBank(2), | ||||
| 		) | ||||
| 		report.Summary.Diluteds.PeakFee = decimal.NewNullDecimal( | ||||
| 			report.Summary.Diluteds.Peak.Decimal.Mul(report.Summary.OverallPrice.Decimal).RoundBank(2), | ||||
| 		) | ||||
| 		report.Summary.Diluteds.FlatFee = decimal.NewNullDecimal( | ||||
| 			report.Summary.Diluteds.Flat.Decimal.Mul(report.Summary.OverallPrice.Decimal).RoundBank(2), | ||||
| 		) | ||||
| 		report.Summary.Diluteds.ValleyFee = decimal.NewNullDecimal( | ||||
| 			report.Summary.Diluteds.Valley.Decimal.Mul(report.Summary.OverallPrice.Decimal).RoundBank(2), | ||||
| 		) | ||||
| 	} | ||||
| 	if report.SubmeterType == model.CUSTOMER_METER_PV { | ||||
| 		// 计算终端用户部分 | ||||
| @@ -166,22 +142,6 @@ func (_CalculateService) ComprehensivelyCalculateReport(reportId string) (err er | ||||
| 		report.Summary.Publics.ValleyFee = decimal.NewNullDecimal( | ||||
| 			report.Summary.Publics.Valley.Decimal.Mul(report.Summary.ValleyPrice.Decimal).RoundBank(2), | ||||
| 		) | ||||
| 		// 计算摊薄部分 | ||||
| 		report.Summary.Diluteds.ConsumptionFee = decimal.NewNullDecimal( | ||||
| 			report.Summary.Diluteds.Consumption.Decimal.Mul(report.Summary.OverallPrice.Decimal).RoundBank(2), | ||||
| 		) | ||||
| 		report.Summary.Diluteds.CriticalFee = decimal.NewNullDecimal( | ||||
| 			report.Summary.Diluteds.Critical.Decimal.Mul(report.Summary.CriticalPrice.Decimal).RoundBank(2), | ||||
| 		) | ||||
| 		report.Summary.Diluteds.PeakFee = decimal.NewNullDecimal( | ||||
| 			report.Summary.Diluteds.Peak.Decimal.Mul(report.Summary.PeakPrice.Decimal).RoundBank(2), | ||||
| 		) | ||||
| 		report.Summary.Diluteds.FlatFee = decimal.NewNullDecimal( | ||||
| 			report.Summary.Diluteds.Flat.Decimal.Mul(report.Summary.FlatPrice.Decimal).RoundBank(2), | ||||
| 		) | ||||
| 		report.Summary.Diluteds.ValleyFee = decimal.NewNullDecimal( | ||||
| 			report.Summary.Diluteds.Valley.Decimal.Mul(report.Summary.ValleyPrice.Decimal).RoundBank(2), | ||||
| 		) | ||||
| 	} | ||||
| 	if report.Summary.Overall.Abs().GreaterThan(decimal.Zero) { | ||||
| 		report.Summary.Customers.Proportion = decimal.NewNullDecimal( | ||||
| @@ -190,9 +150,6 @@ func (_CalculateService) ComprehensivelyCalculateReport(reportId string) (err er | ||||
| 		report.Summary.Publics.Proportion = decimal.NewNullDecimal( | ||||
| 			report.Summary.Publics.Consumption.Decimal.Div(report.Summary.Overall).RoundBank(15), | ||||
| 		) | ||||
| 		report.Summary.Diluteds.Proportion = decimal.NewNullDecimal( | ||||
| 			report.Summary.Diluteds.Consumption.Decimal.Div(report.Summary.Overall).RoundBank(15), | ||||
| 		) | ||||
| 	} | ||||
|  | ||||
| 	// 计算线损 | ||||
| @@ -206,10 +163,21 @@ func (_CalculateService) ComprehensivelyCalculateReport(reportId string) (err er | ||||
| 		report.Summary.LossProportion = decimal.NewNullDecimal( | ||||
| 			report.Summary.Loss.Decimal.Div(report.Summary.Overall).RoundBank(15), | ||||
| 		) | ||||
| 		if report.Summary.LossProportion.Decimal.GreaterThan(decimal.NewFromFloat(0.1)) { | ||||
| 			report.Summary.AuthorizeLoss = decimal.NewNullDecimal( | ||||
| 				report.Summary.Overall.Mul(decimal.NewFromFloat(0.1)).RoundBank(8), | ||||
| 			) | ||||
| 			report.Summary.AuthorizeLossFee = decimal.NewNullDecimal( | ||||
| 				report.Summary.AuthorizeLoss.Decimal.Mul(report.Summary.OverallPrice.Decimal).RoundBank(8), | ||||
| 			) | ||||
| 		} else { | ||||
| 			report.Summary.AuthorizeLoss = report.Summary.Loss | ||||
| 			report.Summary.AuthorizeLossFee = report.Summary.LossFee | ||||
| 		} | ||||
| 	} | ||||
| 	if report.Summary.Customers.Consumption.Decimal.Abs().GreaterThan(decimal.Zero) { | ||||
| 		report.Summary.LossDilutedPrice = decimal.NewNullDecimal( | ||||
| 			report.Summary.LossFee.Decimal.Div(report.Summary.Customers.Consumption.Decimal).RoundBank(8), | ||||
| 			report.Summary.AuthorizeLossFee.Decimal.Div(report.Summary.Customers.Consumption.Decimal).RoundBank(8), | ||||
| 		) | ||||
| 	} | ||||
|  | ||||
| @@ -224,11 +192,6 @@ func (_CalculateService) ComprehensivelyCalculateReport(reportId string) (err er | ||||
| 		report.Summary.MaintenanceDilutedPrice = decimal.NewNullDecimal( | ||||
| 			maintenanceFeeTotal.Div(report.Summary.Customers.Consumption.Decimal).RoundBank(8), | ||||
| 		) | ||||
| 		// ! 这里需要注意的是,在原始设计中PublicConsumptionDilutedPrice就是表示公共摊薄价格, | ||||
| 		// ! 而不是所有公共设施合计数据,所以要使用Diluteds部分数据。 | ||||
| 		report.Summary.PublicConsumptionDilutedPrice = decimal.NewNullDecimal( | ||||
| 			report.Summary.Diluteds.ConsumptionFee.Decimal.Div(report.Summary.Customers.Consumption.Decimal).RoundBank(8), | ||||
| 		) | ||||
| 	} | ||||
|  | ||||
| 	// 计算摊薄总计 | ||||
| @@ -236,21 +199,11 @@ func (_CalculateService) ComprehensivelyCalculateReport(reportId string) (err er | ||||
| 	report.Summary.FinalDilutedOverall = decimal.NewNullDecimal( | ||||
| 		report.Summary.BasicFee. | ||||
| 			Add(report.Summary.AdjustFee). | ||||
| 			Add(report.Summary.Diluteds.ConsumptionFee.Decimal). | ||||
| 			Add(maintenanceFeeTotal). | ||||
| 			Add(report.Summary.LossFee.Decimal), | ||||
| 			Add(report.Summary.AuthorizeLossFee.Decimal), | ||||
| 	) | ||||
|  | ||||
| 	// 计算终端用户的全部摊薄内容 | ||||
| 	for _, eu := range report.EndUsers { | ||||
| 		if eu.IsPublicMeter && eu.WillDilute { | ||||
| 			// 计算需要摊薄的公共表计的摊薄内容 | ||||
| 			if report.Summary.Diluteds.Consumption.Decimal.Abs().GreaterThan(decimal.Zero) { | ||||
| 				eu.OverallProportion = eu.Overall.Decimal.Div(report.Summary.Diluteds.Consumption.Decimal).RoundBank(15) | ||||
| 			} else { | ||||
| 				eu.OverallProportion = decimal.Zero | ||||
| 			} | ||||
| 		} else { | ||||
| 		// 计算户表表计的摊薄内容 | ||||
| 		if report.Summary.Customers.Consumption.Decimal.Abs().GreaterThan(decimal.Zero) { | ||||
| 			eu.OverallProportion = eu.Overall.Decimal.Div(report.Summary.Customers.Consumption.Decimal).RoundBank(15) | ||||
| @@ -264,30 +217,21 @@ func (_CalculateService) ComprehensivelyCalculateReport(reportId string) (err er | ||||
| 			eu.Overall.Decimal.Mul(report.Summary.AdjustDilutedPrice.Decimal).RoundBank(2), | ||||
| 		) | ||||
| 		eu.LossDiluted = decimal.NewNullDecimal( | ||||
| 				report.Summary.Loss.Decimal.Mul(eu.OverallProportion).RoundBank(8), | ||||
| 			report.Summary.AuthorizeLoss.Decimal.Mul(eu.OverallProportion).RoundBank(8), | ||||
| 		) | ||||
| 		eu.LossFeeDiluted = decimal.NewNullDecimal( | ||||
| 			eu.Overall.Decimal.Mul(report.Summary.LossDilutedPrice.Decimal).RoundBank(8), | ||||
| 		) | ||||
| 			eu.MaintenanceFeeDiluted = decimal.NewNullDecimal( | ||||
| 				eu.Overall.Decimal.Mul(report.Summary.MaintenanceDilutedPrice.Decimal).RoundBank(8), | ||||
| 			) | ||||
| 			eu.PublicConsumptionDiluted = decimal.NewNullDecimal( | ||||
| 				eu.Overall.Decimal.Mul(report.Summary.PublicConsumptionDilutedPrice.Decimal).RoundBank(8), | ||||
| 			) | ||||
| 		eu.FinalDiluted = decimal.NewNullDecimal( | ||||
| 			eu.BasicFeeDiluted.Decimal. | ||||
| 				Add(eu.AdjustFeeDiluted.Decimal). | ||||
| 				Add(eu.LossFeeDiluted.Decimal). | ||||
| 					Add(eu.MaintenanceFeeDiluted.Decimal). | ||||
| 					Add(eu.PublicConsumptionDiluted.Decimal). | ||||
| 				RoundBank(2), | ||||
| 		) | ||||
| 		eu.FinalCharge = decimal.NewNullDecimal( | ||||
| 			eu.OverallFee.Decimal.Add(eu.FinalDiluted.Decimal).RoundBank(2), | ||||
| 		) | ||||
| 	} | ||||
| 	} | ||||
|  | ||||
| 	// 向数据库保存报表概况以及终端用户摊薄结果 | ||||
| 	tx, err := global.DB.BeginTx(ctx, &sql.TxOptions{}) | ||||
|   | ||||
| @@ -158,12 +158,8 @@ func (g _GodModeService) resetSingleEndUserRecord(tx *bun.Tx, ctx *context.Conte | ||||
| 	record.LossDiluted.Valid = false | ||||
| 	record.LossFeeDiluted = decimal.NewNullDecimal(decimal.Zero) | ||||
| 	record.LossFeeDiluted.Valid = false | ||||
| 	record.MaintenanceFeeDiluted = decimal.NewNullDecimal(decimal.Zero) | ||||
| 	record.MaintenanceFeeDiluted.Valid = false | ||||
| 	record.FinalDiluted = decimal.NewNullDecimal(decimal.Zero) | ||||
| 	record.FinalDiluted.Valid = false | ||||
| 	record.PublicConsumptionDiluted = decimal.NewNullDecimal(decimal.Zero) | ||||
| 	record.PublicConsumptionDiluted.Valid = false | ||||
| 	record.FinalCharge = decimal.NewNullDecimal(decimal.Zero) | ||||
| 	record.FinalCharge.Valid = false | ||||
|  | ||||
| @@ -250,7 +246,6 @@ func (g _GodModeService) resynchronizeEndUserArchives(tx *bun.Tx, ctx *context.C | ||||
| 			record.ContactPhone = meter.ContactPhone | ||||
| 			record.Seq = meter.Seq | ||||
| 			record.IsPublicMeter = meter.IsPublicMeter | ||||
| 			record.WillDilute = meter.WillDilute | ||||
| 			success, err := g.resetSingleEndUserRecord( | ||||
| 				tx, ctx, *record, | ||||
| 				"customer_name", | ||||
| @@ -277,7 +272,6 @@ func (g _GodModeService) resynchronizeEndUserArchives(tx *bun.Tx, ctx *context.C | ||||
| 				ContactName:        meter.ContactName, | ||||
| 				ContactPhone:       meter.ContactPhone, | ||||
| 				IsPublicMeter:      meter.IsPublicMeter, | ||||
| 				WillDilute:         meter.WillDilute, | ||||
| 				LastPeriodOverall:  decimal.Zero, | ||||
| 				LastPeriodCritical: decimal.Zero, | ||||
| 				LastPeriodPeak:     decimal.Zero, | ||||
|   | ||||
| @@ -240,7 +240,6 @@ func (_ReportService) InitializeNewReport(parkId string, period time.Time) (stri | ||||
| 			ContactName:        customer.ContactName, | ||||
| 			ContactPhone:       customer.ContactPhone, | ||||
| 			IsPublicMeter:      customer.IsPublicMeter, | ||||
| 			WillDilute:         customer.WillDilute, | ||||
| 			LastPeriodOverall:  decimal.Zero, | ||||
| 			LastPeriodCritical: decimal.Zero, | ||||
| 			LastPeriodPeak:     decimal.Zero, | ||||
| @@ -656,6 +655,8 @@ func (_ReportService) AssembleReportPublicity(reportId string) (*model.Publicity | ||||
| 		Price:                   report.Summary.OverallPrice.Decimal, | ||||
| 		ConsumptionFee:          report.Summary.LossFee.Decimal, | ||||
| 		Proportion:              report.Summary.LossProportion.Decimal, | ||||
| 		AuthorizeQuantity:       report.Summary.AuthorizeLoss.Decimal, | ||||
| 		AuthorizeConsumptionFee: report.Summary.AuthorizeLossFee.Decimal, | ||||
| 	} | ||||
| 	publicSummary := model.ConsumptionOverallPart{ | ||||
| 		Overall:        report.Summary.Publics.Consumption.Decimal, | ||||
| @@ -676,25 +677,6 @@ func (_ReportService) AssembleReportPublicity(reportId string) (*model.Publicity | ||||
| 		ValleyFee:      report.Summary.Publics.ValleyFee, | ||||
| 		Proportion:     report.Summary.Publics.Proportion.Decimal, | ||||
| 	} | ||||
| 	dilutedSummary := model.ConsumptionOverallPart{ | ||||
| 		Overall:        report.Summary.Diluteds.Consumption.Decimal, | ||||
| 		OverallPrice:   report.Summary.OverallPrice.Decimal, | ||||
| 		ConsumptionFee: report.Summary.Diluteds.ConsumptionFee.Decimal, | ||||
| 		OverallFee:     report.Summary.Diluteds.ConsumptionFee.Decimal, | ||||
| 		Critical:       report.Summary.Diluteds.Critical, | ||||
| 		CriticalPrice:  report.Summary.CriticalPrice, | ||||
| 		CriticalFee:    report.Summary.Diluteds.CriticalFee, | ||||
| 		Peak:           report.Summary.Diluteds.Peak, | ||||
| 		PeakPrice:      report.Summary.PeakPrice, | ||||
| 		PeakFee:        report.Summary.Diluteds.PeakFee, | ||||
| 		Flat:           report.Summary.Diluteds.Flat, | ||||
| 		FlatPrice:      report.Summary.FlatPrice, | ||||
| 		FlatFee:        report.Summary.Diluteds.FlatFee, | ||||
| 		Valley:         report.Summary.Diluteds.Valley, | ||||
| 		ValleyPrice:    report.Summary.ValleyPrice, | ||||
| 		ValleyFee:      report.Summary.Diluteds.ValleyFee, | ||||
| 		Proportion:     report.Summary.Diluteds.Proportion.Decimal, | ||||
| 	} | ||||
| 	otherCollection := model.OtherShouldCollectionPart{ | ||||
| 		MaintenanceFee: report.Summary.MaintenanceOverall, | ||||
| 		BasicFees:      report.Summary.BasicFee.Add(report.Summary.AdjustFee), | ||||
| @@ -730,8 +712,8 @@ func (_ReportService) AssembleReportPublicity(reportId string) (*model.Publicity | ||||
| 				Address:       elem.Address, | ||||
| 				MeterId:       elem.MeterId, | ||||
| 				IsPublicMeter: elem.IsPublicMeter, | ||||
| 				Diluted:       elem.WillDilute, | ||||
| 				Overall:       elem.Overall.Decimal, | ||||
| 				OverallPrice:  report.Summary.OverallPrice.Decimal, | ||||
| 				OverallFee:    elem.OverallFee.Decimal, | ||||
| 				Critical:      elem.Critical, | ||||
| 				CriticalFee:   elem.CriticalFee, | ||||
| @@ -739,7 +721,8 @@ func (_ReportService) AssembleReportPublicity(reportId string) (*model.Publicity | ||||
| 				PeakFee:       elem.PeakFee, | ||||
| 				Valley:        elem.Valley, | ||||
| 				ValleyFee:     elem.ValleyFee, | ||||
| 				Maintenance:   elem.FinalDiluted.Decimal, | ||||
| 				Loss:          elem.LossDiluted.Decimal, | ||||
| 				LossFee:       elem.LossFeeDiluted.Decimal, | ||||
| 			} | ||||
| 		}, | ||||
| 	) | ||||
| @@ -752,7 +735,6 @@ func (_ReportService) AssembleReportPublicity(reportId string) (*model.Publicity | ||||
| 		EndUser:                  endUserSummary, | ||||
| 		Loss:                     lossPart, | ||||
| 		PublicConsumptionOverall: publicSummary, | ||||
| 		DilutedConsumptionOverall: dilutedSummary, | ||||
| 		OtherCollections:         otherCollection, | ||||
| 		Maintenance:              maintenanceFees, | ||||
| 		EndUserDetails:           endUsers, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user