package crontab import ( "kpt-pasture/model" "time" pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow" "gitee.com/xuyiping_admin/pkg/logger/zaplog" "go.uber.org/zap" ) func (e *Entry) TwentyOnePregnantRate() error { pastureList := e.FindPastureList() for _, pasture := range pastureList { e.TwentyOnePregnantHandle(pasture.Id) } return nil } func (e *Entry) TwentyOnePregnantHandle(pastureId int64) { nowTime := time.Now().Local().Format(model.LayoutDate2) cowList := make([]*model.Cow, 0) if err := e.DB.Model(new(model.Cow)). Where("pasture_id = ?", pastureId). Where("sex = ?", pasturePb.Genders_Female). Find(&cowList).Error; err != nil { zaplog.Error("TwentyOnePregnantHandle", zap.Any("err", err), zap.Any("pastureId", pastureId)) return } everyDayCalvingList := model.NewEveryDayCalvingList(pastureId, nowTime, cowList) if len(everyDayCalvingList) > 0 { if err := e.DB.Model(new(model.CowCalving)). Create(&everyDayCalvingList).Error; err != nil { zaplog.Error("TwentyOnePregnantHandle", zap.Any("err", err), zap.Any("pastureId", pastureId)) return } } }