fix(#27): 修复用户电量电费详细为空

This commit is contained in:
ZiHangQin 2023-08-15 14:13:25 +08:00
parent 7d3fafeb04
commit 2844db1a86
4 changed files with 39 additions and 43 deletions

View File

@ -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"`
} }

View File

@ -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
} }

View File

@ -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 {

View File

@ -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