123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- package crontab
- import (
- "fmt"
- "kpt-pasture/model"
- 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) FindAdultAbortionRate(pastureList []*model.AppPastureList, cowType string, startTime, endTime int64) map[int64]string {
- res := make(map[int64]string)
- for _, pasture := range pastureList {
- var count int64
- pref := e.DB.Model(new(model.EventAbortion)).
- Where("pasture_id = ?", pasture.Id).
- Where("abortion_at BETWEEN ? AND ?", startTime, endTime).
- Where("is_append = ?", pasturePb.IsShow_Ok)
- if cowType == "youth" {
- pref.Where("lact = ?", 0)
- }
- if cowType == "adult" {
- pref.Where("lact > ?", 0)
- }
- if err := pref.Count(&count).Error; err != nil {
- zaplog.Error("FindAdultAbortionRate", zap.Any("pasture_id", pasture.Id), zap.Any("err", err))
- }
- res[pasture.Id] = fmt.Sprintf("%d", count)
- }
- return res
- }
- func (e *Entry) FindDepartureNumber(pastureList []*model.AppPastureList, saleKind pasturePb.SalesType_Kind, startTime, endTime int64) map[int64]string {
- res := make(map[int64]string)
- for _, pasture := range pastureList {
- var count int64
- if err := e.DB.Model(new(model.EventSale)).
- Where("pasture_id = ?", pasture.Id).
- Where("departure_at BETWEEN ? AND ?", startTime, endTime).
- Where("sale_kind = ?", saleKind).
- Count(&count).Error; err != nil {
- zaplog.Error("FindAllDieNumber", zap.Any("pasture_id", pasture.Id), zap.Any("err", err))
- }
- res[pasture.Id] = fmt.Sprintf("%d", count)
- }
- return res
- }
- func (e *Entry) FindDiseaseNumber(pastureList []*model.AppPastureList, startTime, endTime int64) map[int64]string {
- res := make(map[int64]string)
- for _, pasture := range pastureList {
- var count int64
- if err := e.DB.Model(new(model.EventCowDisease)).
- Where("pasture_id = ?", pasture.Id).
- Where("disease_at BETWEEN ? AND ?", startTime, endTime).
- Where("diagnosed_result = ?", pasturePb.IsShow_Ok).
- Count(&count).Error; err != nil {
- zaplog.Error("FindDiseaseNumber", zap.Any("pasture_id", pasture.Id), zap.Any("err", err))
- }
- res[pasture.Id] = fmt.Sprintf("%d", count)
- }
- return res
- }
- func (e *Entry) FindCureNumber(pastureList []*model.AppPastureList, startTime, endTime int64) map[int64]string {
- res := make(map[int64]string)
- for _, pasture := range pastureList {
- var count int64
- if err := e.DB.Model(new(model.EventCowDisease)).
- Where("pasture_id = ?", pasture.Id).
- Where("curable_at BETWEEN ? AND ?", startTime, endTime).
- Where("diagnosed_result = ?", pasturePb.IsShow_Ok).
- Count(&count).Error; err != nil {
- zaplog.Error("FindCureNumber", zap.Any("pasture_id", pasture.Id), zap.Any("err", err))
- }
- res[pasture.Id] = fmt.Sprintf("%d", count)
- }
- return res
- }
- func (e *Entry) FindDeathNumber(pastureList []*model.AppPastureList, startTime, endTime int64, isCalf bool) map[int64]string {
- res := make(map[int64]string)
- for _, pasture := range pastureList {
- var count int64
- pref := e.DB.Model(new(model.EventDeath)).
- Where("pasture_id = ?", pasture.Id).
- Where("death_at BETWEEN ? AND ?", startTime, endTime)
- if isCalf {
- pref.Where("day_age <= ?", 60)
- }
- if err := pref.Count(&count).Error; err != nil {
- zaplog.Error("FindAllDieNumber", zap.Any("pasture_id", pasture.Id), zap.Any("err", err))
- }
- res[pasture.Id] = fmt.Sprintf("%d", count)
- }
- return res
- }
|