forked from free-lancers/electricity_bill_calc_service
fix(#27): 未完全修复成功
This commit is contained in:
@@ -14,7 +14,6 @@ import (
|
||||
"github.com/shopspring/decimal"
|
||||
"golang.org/x/sync/errgroup"
|
||||
"log"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/doug-martin/goqu/v9"
|
||||
@@ -337,12 +336,12 @@ func (cr _CalculateRepository) SaveReportPublics(tx pgx.Tx, ctx context.Context,
|
||||
"loss_adjust", "consumption_total", "loss_adjust_total", "final_total",
|
||||
)
|
||||
// 添加值到插入表达式中
|
||||
overall,_ := json.Marshal(meter.Overall)
|
||||
criyical,_ := json.Marshal(meter.Critical)
|
||||
peak,_ := json.Marshal(meter.Peak)
|
||||
flat,_ := json.Marshal(meter.Flat)
|
||||
valley,_ := json.Marshal(meter.Valley)
|
||||
adjustLoss,_ := json.Marshal(meter.AdjustLoss)
|
||||
overall, _ := json.Marshal(meter.Overall)
|
||||
criyical, _ := json.Marshal(meter.Critical)
|
||||
peak, _ := json.Marshal(meter.Peak)
|
||||
flat, _ := json.Marshal(meter.Flat)
|
||||
valley, _ := json.Marshal(meter.Valley)
|
||||
adjustLoss, _ := json.Marshal(meter.AdjustLoss)
|
||||
insertExpr = insertExpr.Vals(goqu.Vals{
|
||||
rid,
|
||||
meter.Code,
|
||||
@@ -370,12 +369,12 @@ func (cr _CalculateRepository) SaveReportPublics(tx pgx.Tx, ctx context.Context,
|
||||
}
|
||||
func (cr _CalculateRepository) SaveReportSummary(tx pgx.Tx, ctx context.Context, summary calculate.Summary) error {
|
||||
// 构建插入表达式
|
||||
Overall,_ := json.Marshal(summary.Overall)
|
||||
Critical,_ := json.Marshal(summary.Critical)
|
||||
Peak,_ := json.Marshal(summary.Peak)
|
||||
Flat,_ := json.Marshal(summary.Flat)
|
||||
Valley,_ := json.Marshal(summary.Valley)
|
||||
AuthoizeLoss,_ := json.Marshal(summary.AuthoizeLoss)
|
||||
Overall, _ := json.Marshal(summary.Overall)
|
||||
Critical, _ := json.Marshal(summary.Critical)
|
||||
Peak, _ := json.Marshal(summary.Peak)
|
||||
Flat, _ := json.Marshal(summary.Flat)
|
||||
Valley, _ := json.Marshal(summary.Valley)
|
||||
AuthoizeLoss, _ := json.Marshal(summary.AuthoizeLoss)
|
||||
insertsql, insertArgs, err := cr.ds.Insert(goqu.T("report_summary")).
|
||||
Cols(
|
||||
"report_id", "overall", "critical", "peak", "flat", "valley",
|
||||
@@ -465,11 +464,11 @@ func (cr _CalculateRepository) SaveReportPoolings(tx pgx.Tx,
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
overall,_ := json.Marshal(meter.Overall)
|
||||
criyical,_ := json.Marshal(meter.Critical)
|
||||
peak,_ := json.Marshal(meter.Peak)
|
||||
flat,_ := json.Marshal(meter.Flat)
|
||||
valley,_ := json.Marshal(meter.Valley)
|
||||
overall, _ := json.Marshal(meter.Overall)
|
||||
criyical, _ := json.Marshal(meter.Critical)
|
||||
peak, _ := json.Marshal(meter.Peak)
|
||||
flat, _ := json.Marshal(meter.Flat)
|
||||
valley, _ := json.Marshal(meter.Valley)
|
||||
|
||||
insertQuery := goqu.Insert("report_pooled_consumption").
|
||||
Cols("report_id", "pooled_meter_id", "overall", "critical", "peak", "flat", "valley", "pooled_area", "diluted").
|
||||
@@ -500,40 +499,59 @@ func (cr _CalculateRepository) SaveReportTenement(tx pgx.Tx, report model.Report
|
||||
cr.log.Info("保存商户报表。")
|
||||
ctx, cancel := global.TimeoutContext()
|
||||
defer cancel()
|
||||
insertQuery := cr.ds.Insert("report_tenement").Prepared(true)
|
||||
values := []goqu.Record{}
|
||||
insertQuery := cr.ds.
|
||||
Insert("report_tenement")
|
||||
//var values []goqu.Record
|
||||
for _, tenement := range tenements {
|
||||
charge := findTenementCharge(tenementCharges, tenement.Id)
|
||||
values = append(values, goqu.Record{
|
||||
"report_id": report.Id,
|
||||
"tenement_id": tenement.Id,
|
||||
"tenement_detail": toJSONString(tenement),
|
||||
"calc_period": report.Period,
|
||||
"overall": toJSONString(charge.Overall),
|
||||
"critical": toJSONString(charge.Critical),
|
||||
"peak": toJSONString(charge.Peak),
|
||||
"flat": toJSONString(charge.Flat),
|
||||
"valley": toJSONString(charge.Valley),
|
||||
"loss": toJSONString(charge.Loss),
|
||||
"basic_fee_pooled": charge.BasicFee,
|
||||
"adjust_fee_pooled": charge.AdjustFee,
|
||||
"loss_fee_pooled": charge.LossPooled,
|
||||
"final_pooled": charge.PublicPooled,
|
||||
"final_charge": charge.FinalCharges,
|
||||
"meters": toJSONString(convertToNestedMeters(charge.Submeters)),
|
||||
"pooled": toJSONString(convertToNestedMeters(charge.Poolings)),
|
||||
})
|
||||
//charge := findTenementCharge(tenementCharges, tenement.Id)
|
||||
for _, charge := range tenementCharges {
|
||||
tenementStr, _ := json.Marshal(tenement)
|
||||
overallStr, _ := json.Marshal(charge.Overall)
|
||||
criticalStr, _ := json.Marshal(charge.Critical)
|
||||
peakStr, _ := json.Marshal(charge.Peak)
|
||||
flatStr, _ := json.Marshal(charge.Flat)
|
||||
valleyStr, _ := json.Marshal(charge.Valley)
|
||||
lossStr, _ := json.Marshal(charge.Loss)
|
||||
meters, _ := json.Marshal(convertToNestedMeters(charge.Submeters))
|
||||
pooled, _ := json.Marshal(convertToNestedMeters(charge.Poolings))
|
||||
fmt.Println(report.Id, tenement.Id, "123")
|
||||
insertQuery = insertQuery.
|
||||
Cols(
|
||||
"report_id", "tenement_id", "tenement_detail", "calc_period", "overall", "critical", "peak", "flat", "valley", "loss", "basic_fee_pooled",
|
||||
"adjust_fee_pooled", "loss_fee_pooled", "final_charge", "invoice", "meters", "pooled",
|
||||
).
|
||||
Vals(goqu.Vals{report.Id,
|
||||
tenement.Id,
|
||||
tenementStr,
|
||||
report.Period,
|
||||
overallStr,
|
||||
criticalStr,
|
||||
peakStr,
|
||||
flatStr,
|
||||
valleyStr,
|
||||
lossStr,
|
||||
charge.BasicFee,
|
||||
charge.AdjustFee,
|
||||
charge.LossPooled,
|
||||
charge.PublicPooled,
|
||||
charge.FinalCharges,
|
||||
meters,
|
||||
pooled})
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
sql, params, err := insertQuery.Rows(values).Prepared(true).ToSQL()
|
||||
if err != nil {
|
||||
log.Println("sql出现问题................................")
|
||||
return err
|
||||
}
|
||||
tx.Exec(ctx, sql, params...)
|
||||
sql, params, err := insertQuery.Prepared(true).ToSQL()
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
fmt.Println("====================================================================", sql)
|
||||
_, err = tx.Exec(ctx, sql, params...)
|
||||
if err != nil {
|
||||
fmt.Println(err.Error())
|
||||
return err
|
||||
}
|
||||
fmt.Println("保存成功")
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -562,8 +580,3 @@ func convertToNestedMeters(meters []*calculate.Meter) []NestedMeter {
|
||||
}
|
||||
return nestedMeters
|
||||
}
|
||||
|
||||
// toJSONString 将对象转换为 JSON 字符串
|
||||
func toJSONString(obj interface{}) string {
|
||||
return `"` + strings.ReplaceAll(fmt.Sprintf("%#v", obj), `"`, `\"`) + `"`
|
||||
}
|
||||
|
||||
@@ -563,15 +563,17 @@ func (rr _ReportRepository) ListTenementInReport(rid string, page uint, keyword
|
||||
Offset(startRow).Limit(config.ServiceSettings.ItemsPageSize)
|
||||
|
||||
var (
|
||||
tenements []*model.ReportTenement = make([]*model.ReportTenement, 0)
|
||||
tenements = make([]*model.ReportTenement, 0)
|
||||
count int64
|
||||
)
|
||||
querySql, queryArgs, _ := reportQuery.Prepared(true).ToSQL()
|
||||
countSql, countArgs, _ := countQuery.Prepared(true).ToSQL()
|
||||
fmt.Println(querySql, rid)
|
||||
if err := pgxscan.Select(ctx, global.DB, &tenements, querySql, queryArgs...); err != nil {
|
||||
rr.log.Error("查询指定核算报表下的商户简要计费信息时出现错误", zap.Error(err))
|
||||
return tenements, 0, err
|
||||
}
|
||||
|
||||
if err := pgxscan.Get(ctx, global.DB, &count, countSql, countArgs...); err != nil {
|
||||
rr.log.Error("查询指定核算报表下的商户简要计费信息总数量时出现错误", zap.Error(err))
|
||||
return tenements, 0, err
|
||||
|
||||
Reference in New Issue
Block a user