twenty_one_pregnant_rate.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. package crontab
  2. import (
  3. "kpt-pasture/model"
  4. "time"
  5. pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
  6. "gitee.com/xuyiping_admin/pkg/logger/zaplog"
  7. "go.uber.org/zap"
  8. )
  9. func (e *Entry) TwentyOnePregnantRate() error {
  10. pastureList := e.FindPastureList()
  11. for _, pasture := range pastureList {
  12. e.TwentyOnePregnantHandle(pasture.Id)
  13. }
  14. return nil
  15. }
  16. func (e *Entry) TwentyOnePregnantHandle(pastureId int64) {
  17. nowTime := time.Now().Local().Format(model.LayoutDate2)
  18. cowList := make([]*model.Cow, 0)
  19. if err := e.DB.Model(new(model.Cow)).
  20. Where("pasture_id = ?", pastureId).
  21. Where("sex = ?", pasturePb.Genders_Female).
  22. Find(&cowList).Error; err != nil {
  23. zaplog.Error("TwentyOnePregnantHandle", zap.Any("err", err), zap.Any("pastureId", pastureId))
  24. return
  25. }
  26. everyDayCalvingList := model.NewEveryDayCalvingList(pastureId, nowTime, cowList)
  27. if len(everyDayCalvingList) > 0 {
  28. if err := e.DB.Model(new(model.CowCalving)).
  29. Create(&everyDayCalvingList).Error; err != nil {
  30. zaplog.Error("TwentyOnePregnantHandle", zap.Any("err", err), zap.Any("pastureId", pastureId))
  31. return
  32. }
  33. }
  34. }