fix(#10):修复创建报表错误,但查出列出园区bug

This commit is contained in:
2023-08-09 10:48:33 +08:00
parent 00cf35ec2a
commit dd6becc994
7 changed files with 61 additions and 30 deletions

View File

@@ -32,18 +32,26 @@ var CalculateRepository = _CalculateRepository{
ds: goqu.Dialect("postgres"),
}
//更新当前报表的核算状态
// 更新当前报表的核算状态
func (cr _CalculateRepository) UpdateReportCalculateStatus(rid string, status string,
message string) (bool, error) {
ctx, cancel := global.TimeoutContext()
defer cancel()
var atio int
var err error
log.Println("11111111111", status)
currentTime := time.Now()
if status == "success" {
atio = 0
} else {
atio = 1
}
updateResultSql, updateResultArgs, _ := cr.ds.
Update(goqu.T("report_task")).
Set(goqu.Record{
"status": status,
"status": int16(atio),
"last_modified_at": currentTime,
"message": message,
}).Where(goqu.I("id").Eq(rid)).
@@ -124,7 +132,7 @@ func (cr _CalculateRepository) GetAllPoolingMeterRelations(pid string, revokedAf
var meterRelation []model.MeterRelation
err := pgxscan.Select(ctx, global.DB, meterRelation, relationsSql, relationsArgs...)
err := pgxscan.Select(ctx, global.DB, &meterRelation, relationsSql, relationsArgs...)
if err != nil {
cr.log.Error("获取当前园区中所有公摊表计与商户表计之间的关联关系,包括已经解除的出错", zap.Error(err))
return nil, err
@@ -152,7 +160,7 @@ func (cr _CalculateRepository) GetAllTenementMeterRelations(pid string, associat
var tenementMeter []model.TenementMeter
err := pgxscan.Select(ctx, global.DB, tenementMeter, relationsQuerySql, relationsQueryArgs...)
err := pgxscan.Select(ctx, global.DB, &tenementMeter, relationsQuerySql, relationsQueryArgs...)
if err != nil {
cr.log.Error("获取当前园区中所有的商户与表计的关联关系,包括已经解除的", zap.Error(err))
return nil, err
@@ -178,13 +186,13 @@ func (cr _CalculateRepository) GetMeterReadings(rid string, meterType int16) ([]
goqu.I("r.id").Eq(rid),
goqu.I("mr.meter_type").Eq(meterType),
// TODO2023.08.02 此方法出错优先查看是否这里出问题
goqu.I("mr.read_at::date <@ r.period"),
goqu.L("mr.read_at < lower(r.period)"),
).
Order(goqu.I("mr.read_at").Asc()).Select(goqu.I("mr.*")).ToSQL()
var readings []model.MeterReading
err := pgxscan.Select(ctx, global.DB, readings, readingsQuerySql, readingsQueryArgs...)
err := pgxscan.Select(ctx, global.DB, &readings, readingsQuerySql, readingsQueryArgs...)
if err != nil {
cr.log.Error("获取指定报表中所有涉及到的指定类型表计在核算时间段内的所有读数数据出错", zap.Error(err))
return nil, err
@@ -199,7 +207,8 @@ func (cr _CalculateRepository) GetLastPeriodReadings(rid string, meterType int16
ctx, cancel := global.TimeoutContext()
defer cancel()
readingsSql, readingsArgs, _ := cr.ds.From(goqu.T("meter_reading").As("mr")).
readingsSql, readingsArgs, _ := cr.ds.
From(goqu.T("meter_reading").As("mr")).
Select(
goqu.MAX("mr.read_at").As("read_at"),
goqu.I("mr.park_id"),
@@ -219,7 +228,7 @@ func (cr _CalculateRepository) GetLastPeriodReadings(rid string, meterType int16
Where(
goqu.I("r.id").Eq(rid),
goqu.I("mr.meter_type").Eq(meterType),
goqu.I(" mr.read_at::date <= lower(r.period)"),
goqu.L(" read_at <= lower(r.period)"),
).
GroupBy(
goqu.I("mr.park_id"),
@@ -235,11 +244,12 @@ func (cr _CalculateRepository) GetLastPeriodReadings(rid string, meterType int16
).ToSQL()
var readings []model.MeterReading
err := pgxscan.Select(ctx, global.DB, readings, readingsSql, readingsArgs...)
err := pgxscan.Select(ctx, global.DB, &readings, readingsSql, readingsArgs...)
if err != nil {
cr.log.Error("获取指定报表中所有涉及到的表计在核算起始日期前的最后一次读数出错", zap.Error(err))
return nil, err
}
fmt.Println(";;;;;;;;;;;;;;;;;;", readings)
return readings, nil
}
@@ -266,11 +276,11 @@ func (cr _CalculateRepository) GetAllTenements(rid string) ([]model.Tenement, er
).
Where(
goqu.I("r.id").Eq(rid),
goqu.I("t.moved_in_at <= upper(r.period)"),
goqu.L("t.moved_in_at <= upper(r.period)"),
).ToSQL()
fmt.Println(tenementQuerySql)
var tenements []model.Tenement
err := pgxscan.Select(ctx, global.DB, tenements, tenementQuerySql, tenementQueryArgs...)
err := pgxscan.Select(ctx, global.DB, &tenements, tenementQuerySql, tenementQueryArgs...)
if err != nil {
cr.log.Error("取得指定报表所涉及的所有商户信息出错", zap.Error(err))
return nil, err