| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 | package modelimport (	"kpt-pasture/util"	"time"	pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow")type EventImmunizationPlan struct {	Id            int64                  `json:"id"`	PastureId     int64                  `json:"pastureId"`	CowId         int64                  `json:"cowId"`	EarNumber     string                 `json:"earNumber"`	Lact          int32                  `json:"lact"`	DayAge        int32                  `json:"dayAge"`	CowType       pasturePb.CowType_Kind `json:"cowType"`	CowKind       pasturePb.CowKind_Kind `json:"cowKind"`	PenId         int32                  `json:"penId"`	PenName       string                 `json:"penName"`	PlanId        int64                  `json:"planId"`	PlanName      string                 `json:"planName"`	PlanDay       int64                  `json:"planDay"`	RealityDay    int64                  `json:"realityDay"`	EndDay        int64                  `json:"endDay"`	Status        pasturePb.IsShow_Kind  `json:"status"`	DrugsId       int64                  `json:"drugsId"`	DrugsName     string                 `json:"drugsName"`	Unit          pasturePb.Unit_Kind    `json:"unit"`	UnitName      string                 `json:"unitName"`	Usage         int32                  `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 (e *EventImmunizationPlan) TableName() string {	return "event_immunization_plan"}func (e *EventImmunizationPlan) EventUpdate(immunizationAt int64, cowInfo *Cow, drugs *Drugs, usage int32, operationUser, currUser *SystemUser, remark string) {	e.OperationId = operationUser.Id	e.OperationName = operationUser.Name	e.MessageId = currUser.Id	e.MessageName = currUser.Name	e.RealityDay = immunizationAt	e.Remarks = remark	e.Lact = cowInfo.Lact	e.DayAge = cowInfo.GetEventDayAge(immunizationAt)	e.EarNumber = cowInfo.EarNumber	e.Status = pasturePb.IsShow_Ok	e.DrugsId = drugs.Id	e.DrugsName = drugs.Name	e.Unit = drugs.Unit	e.UnitName = drugs.UnitName	e.Usage = usage}func NewEventImmunizationPlan(cow *Cow, immunizationPlan *ImmunizationPlan) *EventImmunizationPlan {	todayTime := time.Now().Local()	todayStartTime := util.TimeParseLocalUnix(todayTime.Format(LayoutDate2))	todayEndTime := util.TimeParseLocalEndUnix(todayTime.AddDate(0, 0, 6).Format(LayoutDate2))	return &EventImmunizationPlan{		PastureId: immunizationPlan.PastureId,		CowId:     cow.Id,		EarNumber: cow.EarNumber,		Lact:      cow.Lact,		DayAge:    cow.DayAge,		CowKind:   cow.CowKind,		CowType:   cow.CowType,		PenId:     cow.PenId,		PenName:   cow.PenName,		PlanId:    immunizationPlan.Id,		PlanName:  immunizationPlan.Name,		PlanDay:   todayStartTime,		EndDay:    todayEndTime,		Status:    pasturePb.IsShow_No,	}}func NewCowImmunizationPlanList(cowList []*Cow, immunizationPlan *ImmunizationPlan) []*EventImmunizationPlan {	eventImmunizationPlanList := make([]*EventImmunizationPlan, len(cowList))	for i, cow := range cowList {		eventImmunizationPlanList[i] = NewEventImmunizationPlan(cow, immunizationPlan)	}	return eventImmunizationPlanList}type EventImmunizationPlanSlice []*EventImmunizationPlanfunc (e EventImmunizationPlanSlice) ToPB() []*pasturePb.ImmunizationItems {	res := make([]*pasturePb.ImmunizationItems, len(e))	for i, v := range e {		planDay := ""		if v.PlanDay > 0 {			planDay = time.Unix(v.PlanDay, 0).Local().Format(LayoutDate2)		}		res[i] = &pasturePb.ImmunizationItems{			Id:        int32(v.Id),			CowId:     int32(v.CowId),			EarNumber: v.EarNumber,			Lact:      v.Lact,			PenName:   v.PenName,			DayAge:    v.DayAge,			PlanDay:   planDay,			Status:    v.Status,			PlanName:  v.PlanName,			PlanId:    int32(v.PlanId),		}	}	return res}func (e EventImmunizationPlanSlice) ToPB2() []*pasturePb.ImmunizationItem {	res := make([]*pasturePb.ImmunizationItem, len(e))	for i, v := range e {		res[i] = &pasturePb.ImmunizationItem{			Id:             int32(v.Id),			ImmunizationAt: int32(v.RealityDay),			OperationId:    int32(v.OperationId),			OperationName:  v.OperationName,			Remarks:        v.Remarks,			DrugsId:        int32(v.DrugsId),			DrugsName:      v.DrugsName,			Unit:           v.Unit,			UnitName:       v.UnitName,			Usage:          v.Usage,			PlanId:         int32(v.PlanId),			PlanName:       v.PlanName,			CowId:          int32(v.CowId),			EarNumber:      v.EarNumber,		}	}	return res}
 |