123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- package model
- import (
- "fmt"
- "kpt-pasture/store/kptstore"
- pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
- )
- type NeckRingEstrus struct {
- Id int64 `json:"id"`
- PastureId int64 `json:"pastureId"`
- CowId int64 `json:"cowId"`
- NeckRingNumber string `json:"neckRingNumber"`
- EarNumber string `json:"earNumber"`
- Lact int32 `json:"lact"`
- ExposeEstrusType pasturePb.ExposeEstrusType_Kind `json:"exposeEstrusType"`
- EstrusStartDate string `json:"estrusStartDate"`
- ActiveDate string `json:"activeDate"`
- LastEstrusDate string `json:"lastEstrusDate"`
- Level pasturePb.EstrusLevel_Kind `json:"level"`
- IsPeak pasturePb.IsShow_Kind `json:"isPeak"`
- DayHigh int32 `json:"dayHigh"`
- MaxHigh int32 `json:"maxHigh"`
- CheckResult pasturePb.CheckResult_Kind `json:"checkResult"`
- Remarks string `json:"remarks"`
- IsShow pasturePb.IsShow_Kind `json:"isShow"`
- CreatedAt int64 `json:"createdAt"`
- UpdatedAt int64 `json:"updatedAt"`
- }
- func (n *NeckRingEstrus) TableName() string {
- return "neck_ring_estrus"
- }
- func NewNeckRingEstrus(
- pastureId int64,
- cow *Cow,
- exposeEstrusType pasturePb.ExposeEstrusType_Kind,
- level pasturePb.EstrusLevel_Kind,
- checkResult pasturePb.CheckResult_Kind,
- isShow pasturePb.IsShow_Kind,
- ) *NeckRingEstrus {
- return &NeckRingEstrus{
- PastureId: pastureId,
- CowId: cow.Id,
- NeckRingNumber: cow.NeckRingNumber,
- EarNumber: cow.EarNumber,
- Lact: cow.Lact,
- ExposeEstrusType: exposeEstrusType,
- Level: level,
- IsShow: isShow,
- CheckResult: checkResult,
- }
- }
- type NeckRingEstrusSlice []*NeckRingEstrus
- func (e NeckRingEstrusSlice) ToPB(
- dB *kptstore.DB,
- getCowInfo func(dB *kptstore.DB, cowId int64) *Cow,
- getCowLastEvent func(DB *kptstore.DB, cowId int64, eventCategoryId pasturePb.EventCategory_Kind) *EventCowLog,
- ) []*pasturePb.EstrusItems {
- res := make([]*pasturePb.EstrusItems, len(e))
- for i, v := range e {
- cowInfo := getCowInfo(dB, v.CowId)
- lastEventLog := getCowLastEvent(dB, v.CowId, pasturePb.EventCategory_Breed)
- planDay, optimumMatingTime := "", ""
- lastBreedEventDetails := ""
- if lastEventLog != nil {
- lastBreedEventDetails = fmt.Sprintf("%s %s", lastEventLog.EventTypeName, lastEventLog.EventDescription)
- }
- res[i] = &pasturePb.EstrusItems{
- Id: int32(v.Id),
- CowId: int32(v.CowId),
- EarNumber: v.EarNumber,
- DayAge: cowInfo.DayAge,
- Lact: v.Lact,
- PenName: cowInfo.PenName,
- Status: v.IsShow,
- CalvingAge: cowInfo.CalvingAge,
- PlanDay: planDay,
- MatingTimes: cowInfo.MatingTimes,
- OptimumMatingStartTime: optimumMatingTime,
- OptimumMatingEndTime: optimumMatingTime,
- LastBreedEventDetails: lastBreedEventDetails,
- }
- }
- return res
- }
|