|
@@ -1,5 +1,11 @@
|
|
|
package model
|
|
|
|
|
|
+import (
|
|
|
+ "kpt-pasture/util"
|
|
|
+
|
|
|
+ pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
|
|
|
+)
|
|
|
+
|
|
|
type PenBehavior struct {
|
|
|
Id int64 `json:"id"`
|
|
|
PastureId int64 `json:"pastureId"`
|
|
@@ -33,6 +39,41 @@ func (p *PenBehavior) TableName() string {
|
|
|
return "pen_behavior"
|
|
|
}
|
|
|
|
|
|
+type PenBehaviorSlice []*PenBehavior
|
|
|
+
|
|
|
+func (p PenBehaviorSlice) ToPB() *pasturePb.BarnBehaviorCurveItem {
|
|
|
+ res := &pasturePb.BarnBehaviorCurveItem{
|
|
|
+ EventTime: &pasturePb.EventTime{
|
|
|
+ FeedTime: make([]string, 0),
|
|
|
+ MilkTime: make([]string, 0),
|
|
|
+ },
|
|
|
+ DateTime: make([]string, 0),
|
|
|
+ Rumina: make([]int32, 0),
|
|
|
+ Intake: make([]int32, 0),
|
|
|
+ Rest: make([]int32, 0),
|
|
|
+ WeekAvgRumina: make([]int32, 0),
|
|
|
+ WeekAvgIntake: make([]int32, 0),
|
|
|
+ WeekAvgReset: make([]int32, 0),
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, v := range p {
|
|
|
+ dateTime := ""
|
|
|
+ if v.ActiveTime != "" {
|
|
|
+ dt, _ := util.TimeParseLocal(LayoutTime, v.ActiveTime)
|
|
|
+ dateTime = dt.Format(LayoutHour)
|
|
|
+ }
|
|
|
+ res.DateTime = append(res.DateTime, dateTime)
|
|
|
+ res.Rumina = append(res.Rumina, v.RuminaStd)
|
|
|
+ res.Intake = append(res.Intake, v.IntakeStd)
|
|
|
+ res.Rest = append(res.Rest, v.RestStd)
|
|
|
+ res.WeekAvgRumina = append(res.WeekAvgRumina, v.WeekRuminaRate)
|
|
|
+ res.WeekAvgIntake = append(res.WeekAvgIntake, v.WeekIntakeRate)
|
|
|
+ res.WeekAvgReset = append(res.WeekAvgReset, v.WeekRestRate)
|
|
|
+ }
|
|
|
+
|
|
|
+ return res
|
|
|
+}
|
|
|
+
|
|
|
type PenBehaviorData struct {
|
|
|
PastureId int64 `json:"pastureId"`
|
|
|
PenId int32 `json:"penId"`
|