forked from free-lancers/electricity_bill_calc_service
		
	fix(#27): 修复用户电量电费详细为空
This commit is contained in:
		| @@ -60,7 +60,7 @@ type TenementCharge struct { | |||||||
| 	LossPooled   decimal.Decimal `json:"loss_pooled"` | 	LossPooled   decimal.Decimal `json:"loss_pooled"` | ||||||
| 	PublicPooled decimal.Decimal `json:"public_pooled"` | 	PublicPooled decimal.Decimal `json:"public_pooled"` | ||||||
| 	FinalCharges decimal.Decimal `json:"final_charges"` | 	FinalCharges decimal.Decimal `json:"final_charges"` | ||||||
| 	Loss         decimal.Decimal `json:"loss"` | 	Loss         model.ConsumptionUnit `json:"loss"` | ||||||
| 	Submeters    []*Meter `json:"submeters"` | 	Submeters    []*Meter `json:"submeters"` | ||||||
| 	Poolings     []*Meter `json:"poolings"` | 	Poolings     []*Meter `json:"poolings"` | ||||||
| } | } | ||||||
|   | |||||||
| @@ -501,57 +501,53 @@ func (cr _CalculateRepository) SaveReportTenement(tx pgx.Tx, report model.Report | |||||||
| 	defer cancel() | 	defer cancel() | ||||||
| 	insertQuery := cr.ds. | 	insertQuery := cr.ds. | ||||||
| 		Insert("report_tenement") | 		Insert("report_tenement") | ||||||
| 	//var values []goqu.Record | 	var rows  []goqu.Record | ||||||
| 	for _, tenement := range tenements { | 	for _, tenement := range tenements { | ||||||
| 		//charge := findTenementCharge(tenementCharges, tenement.Id) | 		tenementCharge := findTenementCharge(tenementCharges, tenement.Id) | ||||||
| 		for _, charge := range tenementCharges { |  | ||||||
| 			tenementStr, _ := json.Marshal(tenement) | 		tenementDetail, _ := json.Marshal(tenement) | ||||||
| 			overallStr, _ := json.Marshal(charge.Overall) | 		overallJSON, _ := json.Marshal(tenementCharge.Overall) | ||||||
| 			criticalStr, _ := json.Marshal(charge.Critical) | 		criticalJSON, _ := json.Marshal(tenementCharge.Critical) | ||||||
| 			peakStr, _ := json.Marshal(charge.Peak) | 		peakJSON, _ := json.Marshal(tenementCharge.Peak) | ||||||
| 			flatStr, _ := json.Marshal(charge.Flat) | 		flatJSON, _ := json.Marshal(tenementCharge.Flat) | ||||||
| 			valleyStr, _ := json.Marshal(charge.Valley) | 		valleyJSON, _ := json.Marshal(tenementCharge.Valley) | ||||||
| 			lossStr, _ := json.Marshal(charge.Loss) | 		lossJSON, _ := json.Marshal(tenementCharge.Loss) | ||||||
| 			meters, _ := json.Marshal(convertToNestedMeters(charge.Submeters)) | 		submetersJSON, _ := json.Marshal(convertToNestedMeters(tenementCharge.Submeters)) | ||||||
| 			pooled, _ := json.Marshal(convertToNestedMeters(charge.Poolings)) | 		poolingsJSON, _ := json.Marshal(convertToNestedMeters(tenementCharge.Poolings)) | ||||||
| 			fmt.Println(report.Id, tenement.Id, "123") |  | ||||||
| 			insertQuery = insertQuery. | 		row := goqu.Record{ | ||||||
| 				Cols( | 			"report_id":         report.Id, | ||||||
| 					"report_id", "tenement_id", "tenement_detail", "calc_period", "overall", "critical", "peak", "flat", "valley", "loss", "basic_fee_pooled", | 			"tenement_id":       tenement.Id, | ||||||
| 					"adjust_fee_pooled", "loss_fee_pooled", "final_charge", "invoice", "meters", "pooled", | 			"tenement_detail":   tenementDetail, | ||||||
| 				). | 			"calc_period":       report.Period, | ||||||
| 				Vals(goqu.Vals{report.Id, | 			"overall":           overallJSON, | ||||||
| 					tenement.Id, | 			"critical":          criticalJSON, | ||||||
| 					tenementStr, | 			"peak":              peakJSON, | ||||||
| 					report.Period, | 			"flat":              flatJSON, | ||||||
| 					overallStr, | 			"valley":            valleyJSON, | ||||||
| 					criticalStr, | 			"loss":              lossJSON, | ||||||
| 					peakStr, | 			"basic_fee_pooled":  tenementCharge.BasicFee, | ||||||
| 					flatStr, | 			"adjust_fee_pooled": tenementCharge.AdjustFee, | ||||||
| 					valleyStr, | 			"loss_fee_pooled":   tenementCharge.LossPooled, | ||||||
| 					lossStr, | 			"final_pooled":      tenementCharge.PublicPooled, | ||||||
| 					charge.BasicFee, | 			"final_charge":      tenementCharge.FinalCharges, | ||||||
| 					charge.AdjustFee, | 			"meters":            submetersJSON, | ||||||
| 					charge.LossPooled, | 			"pooled":            poolingsJSON, | ||||||
| 					charge.PublicPooled, |  | ||||||
| 					charge.FinalCharges, |  | ||||||
| 					meters, |  | ||||||
| 					pooled}) |  | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
|  | 		rows = append(rows, row) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	sql, params, err := insertQuery.Prepared(true).ToSQL() | 	sql, params, err := insertQuery.Rows(rows).Prepared(true).ToSQL() | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		fmt.Println(err) | 		fmt.Println(err) | ||||||
| 	} | 	} | ||||||
| 	fmt.Println("====================================================================", sql) |  | ||||||
| 	_, err = tx.Exec(ctx, sql, params...) | 	_, err = tx.Exec(ctx, sql, params...) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		fmt.Println(err.Error()) | 		fmt.Println(err.Error()) | ||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
| 	fmt.Println("保存成功") |  | ||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -151,9 +151,9 @@ func CalculateLossPooling(report model.ReportIndex, summary calculate.Summary, m | |||||||
|  |  | ||||||
| /// 计算所有商户类型表计的全周期电量。 | /// 计算所有商户类型表计的全周期电量。 | ||||||
|  |  | ||||||
| func CalculateTenementConsumptions(meters MeterMap) (map[string]decimal.Decimal, error) { | func CalculateTenementConsumptions(meters *MeterMap) (map[string]decimal.Decimal, error) { | ||||||
| 	consumptions := make(map[string]decimal.Decimal) | 	consumptions := make(map[string]decimal.Decimal) | ||||||
| 	for _, meter := range meters { | 	for _, meter := range *meters { | ||||||
| 		if meter.Detail.MeterType == model.METER_INSTALLATION_TENEMENT { | 		if meter.Detail.MeterType == model.METER_INSTALLATION_TENEMENT { | ||||||
| 			amount, ok := consumptions[meter.Code] | 			amount, ok := consumptions[meter.Code] | ||||||
| 			if !ok { | 			if !ok { | ||||||
| @@ -163,7 +163,7 @@ func CalculateTenementConsumptions(meters MeterMap) (map[string]decimal.Decimal, | |||||||
| 			consumptions[meter.Code] = amount | 			consumptions[meter.Code] = amount | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 	for _, meter := range meters { | 	for _, meter := range *meters { | ||||||
| 		if meter.Detail.MeterType == model.METER_INSTALLATION_TENEMENT { | 		if meter.Detail.MeterType == model.METER_INSTALLATION_TENEMENT { | ||||||
| 			amount, ok := consumptions[meter.Code] | 			amount, ok := consumptions[meter.Code] | ||||||
| 			if !ok { | 			if !ok { | ||||||
|   | |||||||
| @@ -110,7 +110,7 @@ func MainCalculateProcess(rid string) error { | |||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
| 	// 计算所有商户类型表计的全周期电量,并根据全周期电量计算共用过同一表计的商户的二次分摊比例。 | 	// 计算所有商户类型表计的全周期电量,并根据全周期电量计算共用过同一表计的商户的二次分摊比例。 | ||||||
| 	_, err = CalculateTenementConsumptions(meters) | 	_, err = CalculateTenementConsumptions(&meters) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		fmt.Println("16", err) | 		fmt.Println("16", err) | ||||||
| 		return err | 		return err | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user