12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- 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, departureType pasturePb.DepartureType_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.EventDeparture)).
- Where("pasture_id = ?", pasture.Id).
- Where("departure_at BETWEEN ? AND ?", startTime, endTime).
- Where("departure_type = ?", departureType).
- 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) FindCalfDieNumber(pastureList []*model.AppPastureList, departureType pasturePb.DepartureType_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.EventDeparture)).
- Where("pasture_id = ?", pasture.Id).
- Where("departure_at BETWEEN ? AND ?", startTime, endTime).
- Where("departure_type = ?", departureType).
- Where("day_age <= ?", 60).
- 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
- }
|