| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 | 
							- package model
 
- import (
 
- 	"time"
 
- 	pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
 
- )
 
- type EventCowSameTime struct {
 
- 	Id            int64                       `json:"id"`
 
- 	PastureId     int64                       `json:"pastureId"`
 
- 	CowId         int64                       `json:"cowId"`
 
- 	EarNumber     string                      `json:"earNumber"`
 
- 	CowType       pasturePb.CowType_Kind      `json:"cowType"`
 
- 	PenId         int32                       `json:"penId"`
 
- 	PenName       string                      `json:"penName"`
 
- 	Lact          int32                       `json:"lact"`
 
- 	SameTimeId    int64                       `json:"sameTimeId"`
 
- 	SameTimeName  string                      `json:"sameTimeName"`
 
- 	SameTimeType  pasturePb.SameTimeType_Kind `json:"sameTimeType"`
 
- 	PlanDay       int64                       `json:"planDay"`
 
- 	EndDay        int64                       `json:"endDay"`
 
- 	RealityDay    int64                       `json:"realityDay"`
 
- 	Status        pasturePb.IsShow_Kind       `json:"status"`
 
- 	DrugsId       int64                       `json:"drugsId"`
 
- 	Unit          pasturePb.Unit_Kind         `json:"unit"`
 
- 	Usage         float32                     `json:"usage"`
 
- 	Remarks       string                      `json:"remarks"`
 
- 	OperationId   int64                       `json:"operationId"`
 
- 	OperationName string                      `json:"operationName"`
 
- 	MessageId     int64                       `json:"messageId"`
 
- 	MessageName   string                      `json:"messageName"`
 
- 	CreatedAt     int64                       `json:"createdAt"`
 
- 	UpdatedAt     int64                       `json:"updatedAt"`
 
- }
 
- func (s *EventCowSameTime) TableName() string {
 
- 	return "event_cow_same_time"
 
- }
 
- func (s *EventCowSameTime) EventUpdate(drugs *Drugs, usage float32, remarks string, currentUser, operationUser *SystemUser) {
 
- 	s.Status = pasturePb.IsShow_Ok
 
- 	s.DrugsId = drugs.Id
 
- 	s.Unit = drugs.Unit
 
- 	s.Usage = usage
 
- 	s.Remarks = remarks
 
- 	s.OperationId = operationUser.Id
 
- 	s.OperationName = operationUser.Name
 
- 	s.MessageId = currentUser.Id
 
- 	s.MessageName = currentUser.Name
 
- }
 
- func NewEventCowSameTime(pastureId int64, cow *Cow, planTime int64, sameTime *SameTime, sameTimeType pasturePb.SameTimeType_Kind) *EventCowSameTime {
 
- 	return &EventCowSameTime{
 
- 		PastureId:    pastureId,
 
- 		CowId:        cow.Id,
 
- 		EarNumber:    cow.EarNumber,
 
- 		Lact:         cow.Lact,
 
- 		CowType:      cow.CowType,
 
- 		PenId:        cow.PenId,
 
- 		SameTimeId:   sameTime.Id,
 
- 		SameTimeName: sameTime.Name,
 
- 		SameTimeType: sameTimeType,
 
- 		Status:       pasturePb.IsShow_No,
 
- 		PlanDay:      planTime,
 
- 		EndDay:       planTime,
 
- 	}
 
- }
 
- func NewEventCowSameTimeList(pastureId int64, cowList []*Cow, sameTime *SameTime, planTime int64, sameTimeType pasturePb.SameTimeType_Kind) []*EventCowSameTime {
 
- 	res := make([]*EventCowSameTime, len(cowList))
 
- 	for i, cow := range cowList {
 
- 		res[i] = NewEventCowSameTime(pastureId, cow, planTime, sameTime, sameTimeType)
 
- 	}
 
- 	return res
 
- }
 
- type SameTimeItemBody struct {
 
- 	Id              int64                       `json:"id"`
 
- 	CowId           int64                       `json:"cowId"`
 
- 	EarNumber       string                      `json:"earNumber"`
 
- 	BreedStatus     pasturePb.BreedStatus_Kind  `json:"breedStatus"`
 
- 	BreedStatusName string                      `json:"breedStatusName"`
 
- 	CowType         pasturePb.CowType_Kind      `json:"cowType"`
 
- 	CowTypeName     string                      `json:"cowTypeName"`
 
- 	PenId           int32                       `json:"penId"`
 
- 	PenName         string                      `json:"penName"`
 
- 	Lact            int32                       `json:"lact"`
 
- 	CalvingAge      int32                       `json:"calvingAge"`
 
- 	AbortionAge     int32                       `json:"abortionAge"`
 
- 	DayAge          int32                       `json:"dayAge"`
 
- 	Status          pasturePb.IsShow_Kind       `json:"status"`
 
- 	SameTimeType    pasturePb.SameTimeType_Kind `json:"sameTimeType"`
 
- 	LastCalvingAt   int64                       `json:"lastCalvingAt"`
 
- 	LastAbortionAt  int64                       `json:"lastAbortionAt"`
 
- 	MatingTimes     int32                       `json:"matingTimes"`
 
- 	SameTimeName    string                      `json:"sameTimeName"`
 
- 	PlanDay         int64                       `json:"planDay"`
 
- }
 
- type SameTimeBodySlice []*SameTimeItemBody
 
- func (s SameTimeBodySlice) ToPB(
 
- 	breedStatusMap map[pasturePb.BreedStatus_Kind]string,
 
- 	penMap map[int32]*Pen,
 
- 	sameTimeTypeMap map[pasturePb.SameTimeType_Kind]string,
 
- ) []*pasturePb.SameTimeItems {
 
- 	res := make([]*pasturePb.SameTimeItems, len(s))
 
- 	for i, v := range s {
 
- 		calvingAtFormat, abortionAtFormat, playDayAtFormat := "", "", ""
 
- 		if v.LastCalvingAt > 0 {
 
- 			calvingAtFormat = time.Unix(v.LastCalvingAt, 0).Format(LayoutDate2)
 
- 		}
 
- 		if v.LastAbortionAt > 0 {
 
- 			abortionAtFormat = time.Unix(v.LastAbortionAt, 0).Format(LayoutDate2)
 
- 		}
 
- 		if v.PlanDay > 0 {
 
- 			playDayAtFormat = time.Unix(v.PlanDay, 0).Format(LayoutDate2)
 
- 		}
 
- 		res[i] = &pasturePb.SameTimeItems{
 
- 			Id:               int32(v.Id),
 
- 			CowId:            int32(v.CowId),
 
- 			EarNumber:        v.EarNumber,
 
- 			BreedStatus:      v.BreedStatus,
 
- 			BreedStatusName:  breedStatusMap[v.BreedStatus],
 
- 			PenName:          v.PenName,
 
- 			PenId:            v.PenId,
 
- 			Lact:             v.Lact,
 
- 			CalvingAge:       v.CalvingAge,
 
- 			AbortionAge:      v.AbortionAge,
 
- 			DayAge:           v.DayAge,
 
- 			Status:           v.Status,
 
- 			SameTimeTypeName: sameTimeTypeMap[v.SameTimeType],
 
- 			CalvingAtFormat:  calvingAtFormat,
 
- 			AbortionAtFormat: abortionAtFormat,
 
- 			MatingTimes:      v.MatingTimes,
 
- 			SameTimeName:     v.SameTimeName,
 
- 			PlanDay:          playDayAtFormat,
 
- 		}
 
- 	}
 
- 	return res
 
- }
 
- type EventCowSameTimeSlice []*EventCowSameTime
 
- func (s EventCowSameTimeSlice) ToPB(sameTimeTypeMap map[pasturePb.SameTimeType_Kind]string) []*pasturePb.EventSameTime {
 
- 	res := make([]*pasturePb.EventSameTime, len(s))
 
- 	for i, v := range s {
 
- 		res[i] = &pasturePb.EventSameTime{
 
- 			CowId:            int32(v.CowId),
 
- 			PenId:            v.PenId,
 
- 			DrugsId:          int32(v.DrugsId),
 
- 			Usage:            v.Usage,
 
- 			Lact:             v.Lact,
 
- 			SameTimeId:       int32(v.SameTimeId),
 
- 			SameTimeType:     v.SameTimeType,
 
- 			SameTimeTypeName: sameTimeTypeMap[v.SameTimeType],
 
- 		}
 
- 	}
 
- 	return res
 
- }
 
 
  |