fix(#10):修复空指针
This commit is contained in:
parent
683907b363
commit
d6829fce27
|
@ -7,6 +7,7 @@ import (
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/shopspring/decimal"
|
"github.com/shopspring/decimal"
|
||||||
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func CollectMeters(tenements []calculate.PrimaryTenementStatistics, poolings []calculate.Meter, publics []calculate.Meter) (MeterMap, error) {
|
func CollectMeters(tenements []calculate.PrimaryTenementStatistics, poolings []calculate.Meter, publics []calculate.Meter) (MeterMap, error) {
|
||||||
|
@ -14,20 +15,27 @@ func CollectMeters(tenements []calculate.PrimaryTenementStatistics, poolings []c
|
||||||
// Collect tenement meters
|
// Collect tenement meters
|
||||||
for _, t := range tenements {
|
for _, t := range tenements {
|
||||||
for _, m := range t.Meters {
|
for _, m := range t.Meters {
|
||||||
|
log.Println("m000000000000000000000000000", m.Code)
|
||||||
|
|
||||||
key := Key{TenementID: t.Tenement.Id, Code: m.Code}
|
key := Key{TenementID: t.Tenement.Id, Code: m.Code}
|
||||||
meters[key] = m
|
meters[key] = m
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Collect poolings
|
// Collect poolings
|
||||||
for _, m := range poolings {
|
for _, m := range poolings {
|
||||||
|
log.Println("m111111111111111111111111", m.Code)
|
||||||
key := Key{TenementID: "", Code: m.Code}
|
key := Key{TenementID: "", Code: m.Code}
|
||||||
meters[key] = m
|
meters[key] = m
|
||||||
}
|
}
|
||||||
|
|
||||||
// Collect publics
|
// Collect publics
|
||||||
for _, m := range publics {
|
for _, m := range publics {
|
||||||
|
log.Println("m222222222222222222222222222", m.Code)
|
||||||
|
|
||||||
key := Key{TenementID: "", Code: m.Code}
|
key := Key{TenementID: "", Code: m.Code}
|
||||||
meters[key] = m
|
meters[key] = m
|
||||||
}
|
}
|
||||||
|
log.Println("m33333333333333333333333333333333333333", meters[Key{Code: "yq00001"}])
|
||||||
return meters, nil
|
return meters, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -178,11 +186,10 @@ func CalculateTenementConsumptions(meters MeterMap) (map[string]decimal.Decimal,
|
||||||
|
|
||||||
// 计算商户表计的公摊分摊
|
// 计算商户表计的公摊分摊
|
||||||
func CalculateTenementPoolings(report model.ReportIndex, summary calculate.Summary, meters MeterMap, meterRelations []model.MeterRelation) error {
|
func CalculateTenementPoolings(report model.ReportIndex, summary calculate.Summary, meters MeterMap, meterRelations []model.MeterRelation) error {
|
||||||
|
|
||||||
switch report.PublicPooled {
|
switch report.PublicPooled {
|
||||||
case model.POOLING_MODE_AREA:
|
case model.POOLING_MODE_AREA:
|
||||||
for _, meter := range meters {
|
for _, meter := range meters {
|
||||||
if meter.Detail.MeterType == model.METER_INSTALLATION_TENEMENT {
|
if meter.Detail.MeterType != model.METER_INSTALLATION_TENEMENT {
|
||||||
var pooleds []struct {
|
var pooleds []struct {
|
||||||
PooledAmount decimal.Decimal
|
PooledAmount decimal.Decimal
|
||||||
ParentAmount decimal.Decimal
|
ParentAmount decimal.Decimal
|
||||||
|
@ -199,7 +206,6 @@ func CalculateTenementPoolings(report model.ReportIndex, summary calculate.Summa
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
// 计算分摊电量和父级表电量
|
// 计算分摊电量和父级表电量
|
||||||
|
|
||||||
pooledAmount := meter.Detail.Area.Decimal.Div(parentMeter.CoveredArea).Mul(parentMeter.Overall.Amount).Mul(meter.SharedPoolingProportion)
|
pooledAmount := meter.Detail.Area.Decimal.Div(parentMeter.CoveredArea).Mul(parentMeter.Overall.Amount).Mul(meter.SharedPoolingProportion)
|
||||||
pooleds = append(pooleds, struct {
|
pooleds = append(pooleds, struct {
|
||||||
PooledAmount decimal.Decimal
|
PooledAmount decimal.Decimal
|
||||||
|
@ -219,7 +225,6 @@ func CalculateTenementPoolings(report model.ReportIndex, summary calculate.Summa
|
||||||
consumptions = consumptions.Add(p.PooledAmount)
|
consumptions = consumptions.Add(p.PooledAmount)
|
||||||
total = total.Add(p.ParentAmount)
|
total = total.Add(p.ParentAmount)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 计算并更新公摊分摊信息
|
// 计算并更新公摊分摊信息
|
||||||
for _, p := range pooleds {
|
for _, p := range pooleds {
|
||||||
poolingAmount := p.PooledAmount
|
poolingAmount := p.PooledAmount
|
||||||
|
|
|
@ -27,9 +27,7 @@ func SaveSummary(tx pgx.Tx, summary calculate.Summary) error {
|
||||||
func SavePublics(tx pgx.Tx, report model.ReportIndex, meters MeterMap) error {
|
func SavePublics(tx pgx.Tx, report model.ReportIndex, meters MeterMap) error {
|
||||||
ctx, cancel := global.TimeoutContext()
|
ctx, cancel := global.TimeoutContext()
|
||||||
defer cancel()
|
defer cancel()
|
||||||
|
|
||||||
var filteredMeters []calculate.Meter
|
var filteredMeters []calculate.Meter
|
||||||
|
|
||||||
for _, m := range meters {
|
for _, m := range meters {
|
||||||
if m.Detail.MeterType == model.METER_INSTALLATION_PARK {
|
if m.Detail.MeterType == model.METER_INSTALLATION_PARK {
|
||||||
filteredMeters = append(filteredMeters, m)
|
filteredMeters = append(filteredMeters, m)
|
||||||
|
|
|
@ -12,9 +12,9 @@ Server:
|
||||||
ReadTimeout: 60
|
ReadTimeout: 60
|
||||||
WriteTimeout: 60
|
WriteTimeout: 60
|
||||||
Redis:
|
Redis:
|
||||||
Host: 127.0.0.1
|
Host: 192.168.88.129
|
||||||
Port: 6379
|
Port: 6379
|
||||||
Password:
|
Password: 123456
|
||||||
DB: 1
|
DB: 1
|
||||||
Service:
|
Service:
|
||||||
MaxSessionLife: 2h
|
MaxSessionLife: 2h
|
||||||
|
|
Loading…
Reference in New Issue
Block a user