fix(#22):修复无法获取报表的总览信息错误

This commit is contained in:
ZiHangQin 2023-08-14 13:24:25 +08:00
parent 845bd75348
commit 3f36153968
4 changed files with 41 additions and 17 deletions

View File

@ -11,6 +11,7 @@ import (
"electricity_bill_calc/types" "electricity_bill_calc/types"
"electricity_bill_calc/vo" "electricity_bill_calc/vo"
"log" "log"
"strconv"
"github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2"
"github.com/jinzhu/copier" "github.com/jinzhu/copier"
@ -246,8 +247,26 @@ func getReportSummary(c *fiber.Ctx) error {
reportLog.Error("未找到核算报表的总览信息") reportLog.Error("未找到核算报表的总览信息")
return result.NotFound("未找到核算报表的总览信息。") return result.NotFound("未找到核算报表的总览信息。")
} }
var summaryResponse vo.ParkSummaryResponse summaryResponse := vo.ParkSummaryResponse{
copier.Copy(&summaryResponse, report) ReportId: report.ReportId,
OverallDisplay: vo.ConsumptionDisplay{
AmountStr: strconv.FormatFloat(report.Overall.Amount.InexactFloat64(), 'f', -1, 64),
FeeStr: strconv.FormatFloat(report.Overall.Fee.InexactFloat64(), 'f', -1, 64),
PriceStr: strconv.FormatFloat(report.Overall.Price.InexactFloat64(), 'f', -1, 64),
ProportionStr: strconv.FormatFloat(report.Overall.Proportion.InexactFloat64(), 'f', -1, 64),
},
Area: report.OverallArea,
BasicFee: report.BasicFee,
PooledBasicFeeByAmount: report.AuthorizeLoss.Amount,
PooledBasicFeeByArea: report.BasicPooledPriceArea.Decimal,
AdjustFee: report.AdjustFee,
PooledAdjustFeeByAmount: report.AdjustPooledPriceConsumption.Decimal,
PooledAdjustFeeByArea: report.AdjustPooledPriceArea.Decimal,
Consumption: report.ConsumptionFee.Decimal,
Loss: report.Loss.Decimal,
LossRate: report.LossFee.Decimal,
}
//copier.Copy(&summaryResponse, report)
return result.Success( return result.Success(
"已经获取到核算报表的总览信息。", "已经获取到核算报表的总览信息。",
fiber.Map{"summary": summaryResponse}, fiber.Map{"summary": summaryResponse},

View File

@ -368,11 +368,15 @@ func (cr _CalculateRepository) SaveReportPublics(tx pgx.Tx, ctx context.Context,
return nil return nil
} }
func (cr _CalculateRepository) SaveReportSummary(tx pgx.Tx, summary calculate.Summary) error { func (cr _CalculateRepository) SaveReportSummary(tx pgx.Tx, ctx context.Context, summary calculate.Summary) error {
ctx, cancel := global.TimeoutContext()
defer cancel()
// 构建插入表达式 // 构建插入表达式
insertsql, insertArgs, _ := cr.ds.Insert("report_summary"). 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( Cols(
"report_id", "overall", "critical", "peak", "flat", "valley", "report_id", "overall", "critical", "peak", "flat", "valley",
"loss", "loss_fee", "basic_fee", "basic_pooled_price_consumption", "basic_pooled_price_area", "loss", "loss_fee", "basic_fee", "basic_pooled_price_consumption", "basic_pooled_price_area",
@ -381,16 +385,18 @@ func (cr _CalculateRepository) SaveReportSummary(tx pgx.Tx, summary calculate.Su
"consumption_fee", "authorize_loss", "overall_area", "total_consumption", "consumption_fee", "authorize_loss", "overall_area", "total_consumption",
). ).
Vals(goqu.Vals{ Vals(goqu.Vals{
summary.ReportId, summary.Overall, summary.Critical, summary.Peak, summary.Flat, summary.ReportId, Overall, Critical, Peak, Flat,
summary.Valley, summary.Loss, summary.LossFee, summary.BasicFee, Valley, summary.Loss, summary.LossFee, summary.BasicFee,
summary.BasicPooledPriceConsumption, summary.BasicPooledPriceArea, summary.BasicPooledPriceConsumption, summary.BasicPooledPriceArea,
summary.AdjustFee, summary.AdjustPooledPriceConsumption, summary.AdjustPooledPriceArea, summary.AdjustFee, summary.AdjustPooledPriceConsumption, summary.AdjustPooledPriceArea,
summary.LossDilutedPrice, summary.LossProportion, summary.FinalDilutedOverall, summary.LossDilutedPrice, summary.LossProportion, summary.FinalDilutedOverall,
summary.ConsumptionFee, summary.AuthoizeLoss, summary.OverallArea, summary.TotalConsumption, summary.ConsumptionFee, AuthoizeLoss, summary.OverallArea, summary.TotalConsumption,
}).Prepared(true).ToSQL() }).ToSQL()
if err != nil {
fmt.Println(err)
return err
}
// 执行插入语句 // 执行插入语句
if _, err := tx.Exec(ctx, insertsql, insertArgs...); err != nil { if _, err := tx.Exec(ctx, insertsql, insertArgs...); err != nil {
cr.log.Error("保存报表核算概要失败。") cr.log.Error("保存报表核算概要失败。")
return err return err

View File

@ -11,10 +11,10 @@ import (
) )
// 向数据库保存核算概况结果 // 向数据库保存核算概况结果
func SaveSummary(tx pgx.Tx, summary calculate.Summary) error { func SaveSummary(tx pgx.Tx, ctx context.Context, summary calculate.Summary) error {
// 保存核算概况结果到数据库 // 保存核算概况结果到数据库
err := repository.CalculateRepository.SaveReportSummary(tx, summary) err := repository.CalculateRepository.SaveReportSummary(tx,ctx, summary)
if err != nil { if err != nil {
return err return err
} }

View File

@ -62,7 +62,7 @@ func MainCalculateProcess(rid string) error {
fmt.Println("8", err) fmt.Println("8", err)
return err return err
} }
fmt.Println(parkMetersReports, "看看物业所有表计电量是否为空", tenementReports, summary)
// 计算所有表计的总电量 // 计算所有表计的总电量
parkTotal := TotalConsumptionCalculate(tenementReports, summary) parkTotal := TotalConsumptionCalculate(tenementReports, summary)
@ -73,7 +73,6 @@ func MainCalculateProcess(rid string) error {
return err return err
} }
// 计算所有已经启用的商铺面积总和,仅计算所有未迁出的商户的所有表计对应的商铺面积。 // 计算所有已经启用的商铺面积总和,仅计算所有未迁出的商户的所有表计对应的商铺面积。
_, err = EnabledAreaCalculate(&tenementReports, &summary) _, err = EnabledAreaCalculate(&tenementReports, &summary)
if err != nil { if err != nil {
@ -135,7 +134,7 @@ func MainCalculateProcess(rid string) error {
return err return err
} }
err = SaveSummary(tx, summary) err = SaveSummary(tx, ctx, summary)
if err != nil { if err != nil {
_ = tx.Rollback(ctx) _ = tx.Rollback(ctx)
fmt.Println("19", err) fmt.Println("19", err)