forked from free-lancers/electricity_bill_calc_service
		
	enhance(meter):基本完成表计大部分功能的放置。
This commit is contained in:
		
							
								
								
									
										10
									
								
								model/cunsumption.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								model/cunsumption.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | ||||
| package model | ||||
|  | ||||
| import "github.com/shopspring/decimal" | ||||
|  | ||||
| type ConsumptionUnit struct { | ||||
| 	Amount     decimal.Decimal `json:"amount"` | ||||
| 	Fee        decimal.Decimal `json:"fee"` | ||||
| 	Price      decimal.Decimal `json:"price"` | ||||
| 	Proportion decimal.Decimal `json:"proportion"` | ||||
| } | ||||
							
								
								
									
										78
									
								
								model/meter.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								model/meter.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,78 @@ | ||||
| package model | ||||
|  | ||||
| import ( | ||||
| 	"time" | ||||
|  | ||||
| 	"github.com/shopspring/decimal" | ||||
| ) | ||||
|  | ||||
| type MeterDetail struct { | ||||
| 	Code           string              `json:"code" db:"code"` | ||||
| 	Park           string              `json:"parkId" db:"park_id"` | ||||
| 	Address        *string             `json:"address" db:"address"` | ||||
| 	MeterType      int16               `json:"meterType" db:"meter_type"` | ||||
| 	Building       *string             `json:"building" db:"building"` | ||||
| 	BuildingName   *string             `json:"buildingName" db:"building_name"` | ||||
| 	OnFloor        *string             `json:"onFloor" db:"on_floor"` | ||||
| 	Area           decimal.NullDecimal `json:"area" db:"area"` | ||||
| 	Ratio          decimal.Decimal     `json:"ratio" db:"ratio"` | ||||
| 	Seq            int64               `json:"seq" db:"seq"` | ||||
| 	Enabled        bool                `json:"enabled" db:"enabled"` | ||||
| 	AttachedAt     *time.Time          `json:"attachedAt" db:"attached_at"` | ||||
| 	DetachedAt     *time.Time          `json:"detachedAt" db:"detached_at"` | ||||
| 	CreatedAt      time.Time           `json:"createdAt" db:"created_at"` | ||||
| 	LastModifiedAt time.Time           `json:"lastModifiedAt" db:"last_modified_at"` | ||||
| } | ||||
|  | ||||
| type MeterRelation struct { | ||||
| 	Id            string     `json:"id"` | ||||
| 	Park          string     `json:"parkId" db:"park_id"` | ||||
| 	MasterMeter   string     `json:"masterMeterId" db:"master_meter_id"` | ||||
| 	SlaveMeter    string     `json:"slaveMeterId" db:"slave_meter_id"` | ||||
| 	EstablishedAt time.Time  `json:"establishedAt"` | ||||
| 	SuspendedAt   *time.Time `json:"suspendedAt"` | ||||
| 	RevokeAt      *time.Time `json:"revokeAt"` | ||||
| } | ||||
|  | ||||
| type MeterSynchronization struct { | ||||
| 	Park               string     `json:"parkId" db:"park_id"` | ||||
| 	Meter              string     `json:"meterId" db:"meter_id"` | ||||
| 	ForeignMeter       string     `json:"foreignMeter"` | ||||
| 	SystemType         string     `json:"systemType"` | ||||
| 	SystemIdentity     string     `json:"systemIdentity"` | ||||
| 	Enabled            bool       `json:"enabled"` | ||||
| 	LastSynchronizedAt time.Time  `json:"lastSynchronizedAt" db:"last_synchronized_at"` | ||||
| 	RevokeAt           *time.Time `json:"revokeAt" db:"revoke_at"` | ||||
| } | ||||
|  | ||||
| type SimpleMeterDocument struct { | ||||
| 	Code         string          `json:"code"` | ||||
| 	Seq          int64           `json:"seq"` | ||||
| 	Address      *string         `json:"address"` | ||||
| 	Ratio        decimal.Decimal `json:"ratio"` | ||||
| 	TenementName *string         `json:"tenementName"` | ||||
| } | ||||
|  | ||||
| type NestedMeter struct { | ||||
| 	MeterId             string          `json:"meterId"` | ||||
| 	MeterDetail         MeterDetail     `json:"meterDetail"` | ||||
| 	LastTermReadings    Reading         `json:"lastTermReadings"` | ||||
| 	CurrentTermReadings Reading         `json:"currentTermReadings"` | ||||
| 	Overall             ConsumptionUnit `json:"overall"` | ||||
| 	Critical            ConsumptionUnit `json:"critical"` | ||||
| 	Peak                ConsumptionUnit `json:"peak"` | ||||
| 	Flat                ConsumptionUnit `json:"flat"` | ||||
| 	Valley              ConsumptionUnit `json:"valley"` | ||||
| 	BasicPooled         decimal.Decimal `json:"basicPooled"` | ||||
| 	AdjustPooled        decimal.Decimal `json:"adjustPooled"` | ||||
| 	LossPooled          decimal.Decimal `json:"lossPooled"` | ||||
| 	PublicPooled        decimal.Decimal `json:"publicPooled"` | ||||
| 	FinalTotal          decimal.Decimal `json:"finalTotal"` | ||||
| 	Area                decimal.Decimal `json:"area"` | ||||
| 	Proportion          decimal.Decimal `json:"proportion"` | ||||
| } | ||||
|  | ||||
| type PooledMeterDetailCompound struct { | ||||
| 	MeterDetail | ||||
| 	BindMeters []MeterDetail `json:"bindMeters"` | ||||
| } | ||||
							
								
								
									
										56
									
								
								model/reading.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								model/reading.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,56 @@ | ||||
| package model | ||||
|  | ||||
| import ( | ||||
| 	"time" | ||||
|  | ||||
| 	"github.com/shopspring/decimal" | ||||
| ) | ||||
|  | ||||
| type Reading struct { | ||||
| 	Ratio    decimal.Decimal `json:"ratio"` | ||||
| 	Overall  decimal.Decimal `json:"overall"` | ||||
| 	Critical decimal.Decimal `json:"critical"` | ||||
| 	Peak     decimal.Decimal `json:"peak"` | ||||
| 	Flat     decimal.Decimal `json:"flat"` | ||||
| 	Valley   decimal.Decimal `json:"valley"` | ||||
| } | ||||
|  | ||||
| func NewPVReading(ratio, overall, critical, peak, flat, valley decimal.Decimal) *Reading { | ||||
| 	return &Reading{ | ||||
| 		Ratio:    ratio, | ||||
| 		Overall:  overall, | ||||
| 		Critical: critical, | ||||
| 		Peak:     peak, | ||||
| 		Flat:     flat, | ||||
| 		Valley:   valley, | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func NewUnitaryReading(ratio, overall decimal.Decimal) *Reading { | ||||
| 	return &Reading{ | ||||
| 		Ratio:    ratio, | ||||
| 		Overall:  overall, | ||||
| 		Critical: decimal.Zero, | ||||
| 		Peak:     decimal.Zero, | ||||
| 		Flat:     overall, | ||||
| 		Valley:   decimal.Zero, | ||||
| 	} | ||||
| } | ||||
|  | ||||
| type MeterReading struct { | ||||
| 	ReadAt    time.Time       `json:"readAt"` | ||||
| 	Park      string          `json:"parkId" db:"park_id"` | ||||
| 	Meter     string          `json:"meterId" db:"meter_id"` | ||||
| 	MeterType int16           `json:"meterType"` | ||||
| 	Ratio     decimal.Decimal `json:"ratio"` | ||||
| 	Overall   decimal.Decimal `json:"overall"` | ||||
| 	Critical  decimal.Decimal `json:"critical"` | ||||
| 	Peak      decimal.Decimal `json:"peak"` | ||||
| 	Flat      decimal.Decimal `json:"flat"` | ||||
| 	Valley    decimal.Decimal `json:"valley"` | ||||
| } | ||||
|  | ||||
| type DetailedMeterReading struct { | ||||
| 	Detail  MeterDetail  `json:"detail"` | ||||
| 	Reading MeterReading `json:"reading"` | ||||
| } | ||||
		Reference in New Issue
	
	Block a user