|  | @@ -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"`
 |