cow_indicators_breed.go 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package crontab
  2. import (
  3. "fmt"
  4. "kpt-pasture/model"
  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. // FindCalvingNumber 产犊事件总数
  10. func (e *Entry) FindCalvingNumber(pastureList []*model.AppPastureList, startTime, endTime int64) map[int64]string {
  11. res := make(map[int64]string)
  12. for _, pasture := range pastureList {
  13. var count int64
  14. if err := e.DB.Model(new(model.EventSale)).
  15. Where("pasture_id = ?", pasture.Id).
  16. Where("status = ?", pasturePb.IsShow_Ok).
  17. Where("reality_day BETWEEN ? AND ?", startTime, endTime).
  18. Count(&count).Error; err != nil {
  19. zaplog.Error("FindCalvingNumber", zap.Any("pasture_id", pasture.Id), zap.Any("err", err))
  20. }
  21. res[pasture.Id] = fmt.Sprintf("%d", count)
  22. }
  23. return res
  24. }
  25. // LactationCow 泌乳牛头数 干奶牛头数 后备牛头数
  26. func (e *Entry) LactationCow(pastureList []*model.AppPastureList, milkKind pasturePb.CowMilk_Kind) map[int64]string {
  27. res := make(map[int64]string)
  28. for _, pasture := range pastureList {
  29. var count int64
  30. if err := e.DB.Model(new(model.Cow)).
  31. Where("pasture_id = ?", pasture.Id).
  32. Where("admission_status = ?", pasturePb.AdmissionStatus_Admission).
  33. Where("milk_kind = ?", milkKind).
  34. Count(&count).Error; err != nil {
  35. zaplog.Error("LactationCow", zap.Any("pasture_id", pasture.Id), zap.Any("err", err))
  36. }
  37. res[pasture.Id] = fmt.Sprintf("%d", count)
  38. }
  39. return res
  40. }