| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199 | 
							- package model
 
- import (
 
- 	"fmt"
 
- 	"strconv"
 
- 	pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
 
- )
 
- const (
 
- 	FieldName = "day_age"
 
- )
 
- type DataWarningItems struct {
 
- 	Id          int64                 `json:"id"`
 
- 	PastureId   int64                 `json:"pastureId"`
 
- 	UserId      int64                 `json:"userId"`
 
- 	WarningId   int64                 `json:"warningId"`
 
- 	GroupId     int32                 `json:"groupId"`
 
- 	FieldName   string                `json:"fieldName"`
 
- 	FieldDesc   string                `json:"fieldDesc"`
 
- 	Operator    string                `json:"operator"`
 
- 	Value       string                `json:"value"`
 
- 	IsCondition pasturePb.IsShow_Kind `json:"isCondition"`
 
- 	IsShow      pasturePb.IsShow_Kind `json:"isShow"`
 
- 	CreatedAt   int64                 `json:"createdAt"`
 
- 	UpdatedAt   int64                 `json:"updatedAt"`
 
- }
 
- func (d *DataWarningItems) TableName() string {
 
- 	return "data_warning_items"
 
- }
 
- var DefaultDataWarningItemsMap = map[pasturePb.DataWarningType_Kind][]*pasturePb.WarningDataSet{
 
- 	pasturePb.DataWarningType_Sale_Standard: {
 
- 		{
 
- 			GroupId:   1,
 
- 			FieldName: "admission_age",
 
- 			FieldDesc: "在群天数",
 
- 			Operator:  ">=",
 
- 			Value:     "100",
 
- 			IsShow:    pasturePb.IsShow_Ok,
 
- 		},
 
- 		{
 
- 			GroupId:   1,
 
- 			FieldName: "current_weight",
 
- 			FieldDesc: "体重",
 
- 			Operator:  ">=",
 
- 			Value:     "700",
 
- 			IsShow:    pasturePb.IsShow_Ok,
 
- 		},
 
- 	},
 
- 	pasturePb.DataWarningType_UnPregnant_Mating_Time: {
 
- 		{
 
- 			GroupId:   1,
 
- 			FieldName: "mating_times",
 
- 			FieldDesc: "配次",
 
- 			Operator:  ">",
 
- 			Value:     "2",
 
- 			IsShow:    pasturePb.IsShow_Ok,
 
- 		},
 
- 	},
 
- 	pasturePb.DataWarningType_Abortion_Time: {
 
- 		{
 
- 			GroupId:   1,
 
- 			FieldName: "abortion_times",
 
- 			FieldDesc: "流产次数",
 
- 			Operator:  ">",
 
- 			Value:     "3",
 
- 			IsShow:    pasturePb.IsShow_Ok,
 
- 		},
 
- 	},
 
- 	pasturePb.DataWarningType_Over_Age_UnPaired_Young: {
 
- 		{
 
- 			GroupId:   1,
 
- 			FieldName: "day_age",
 
- 			FieldDesc: "月龄",
 
- 			Operator:  ">=",
 
- 			Value:     "150",
 
- 			IsShow:    pasturePb.IsShow_Ok,
 
- 		},
 
- 	},
 
- 	pasturePb.DataWarningType_Over_Age_UnPregnant_Young: {
 
- 		{
 
- 			GroupId:   1,
 
- 			FieldName: "day_age",
 
- 			FieldDesc: "月龄",
 
- 			Operator:  ">=",
 
- 			Value:     "660",
 
- 			IsShow:    pasturePb.IsShow_Ok,
 
- 		},
 
- 		{
 
- 			GroupId:   2,
 
- 			FieldName: "cow_type",
 
- 			FieldDesc: "牛只类型",
 
- 			Operator:  "=",
 
- 			Value:     fmt.Sprintf("%d", pasturePb.CowType_Fattening_Calf),
 
- 			IsShow:    pasturePb.IsShow_Ok,
 
- 		},
 
- 		{
 
- 			GroupId:   2,
 
- 			FieldName: "cow_type",
 
- 			FieldDesc: "牛只类型",
 
- 			Operator:  "=",
 
- 			Value:     fmt.Sprintf("%d", pasturePb.CowType_Reserve_Calf),
 
- 			IsShow:    pasturePb.IsShow_Ok,
 
- 		},
 
- 		{
 
- 			GroupId:   3,
 
- 			FieldName: "is_pregnant",
 
- 			FieldDesc: "是否怀孕",
 
- 			Operator:  "=",
 
- 			Value:     fmt.Sprintf("%d", pasturePb.IsShow_No),
 
- 			IsShow:    pasturePb.IsShow_Ok,
 
- 		},
 
- 	},
 
- 	pasturePb.DataWarningType_Over_Month_UnSale: {
 
- 		{
 
- 			GroupId:   1,
 
- 			FieldName: "day_age",
 
- 			FieldDesc: "月龄",
 
- 			Operator:  ">=",
 
- 			Value:     "540",
 
- 			IsShow:    pasturePb.IsShow_Ok,
 
- 		},
 
- 		{
 
- 			GroupId:   2,
 
- 			FieldName: "purpose_kind",
 
- 			FieldDesc: "用途",
 
- 			Operator:  "=",
 
- 			Value:     fmt.Sprintf("%d", pasturePb.Purpose_Fatten),
 
- 			IsShow:    pasturePb.IsShow_Ok,
 
- 		},
 
- 	},
 
- }
 
- func DataWarningItemsInitData(pastureId int64, dataWarning *DataWarning) []*DataWarningItems {
 
- 	dataWarningItems := make([]*DataWarningItems, 0)
 
- 	for _, v := range DefaultDataWarningItemsMap[dataWarning.Kind] {
 
- 		dataWarningItems = append(dataWarningItems, NewDataWarningItems(pastureId, DefaultUserId, dataWarning, v))
 
- 	}
 
- 	return dataWarningItems
 
- }
 
- func NewDataWarningItems(pastureId, userId int64, dataWarning *DataWarning, req *pasturePb.WarningDataSet) *DataWarningItems {
 
- 	if req.FieldName == FieldName {
 
- 		v1, _ := strconv.ParseInt(req.Value, 10, 64)
 
- 		req.Value = fmt.Sprintf("%d", v1*30)
 
- 	}
 
- 	return &DataWarningItems{
 
- 		PastureId: pastureId,
 
- 		UserId:    userId,
 
- 		WarningId: dataWarning.Id,
 
- 		GroupId:   req.GroupId,
 
- 		FieldName: req.FieldName,
 
- 		FieldDesc: req.FieldDesc,
 
- 		Operator:  req.Operator,
 
- 		Value:     req.Value,
 
- 		IsShow:    req.IsShow,
 
- 	}
 
- }
 
- type DataWarningItemsSlice []*DataWarningItems
 
- func (d DataWarningItemsSlice) ToPB(dataWarning []*DataWarning) []*pasturePb.WarningDataSet {
 
- 	res := make([]*pasturePb.WarningDataSet, 0)
 
- 	for _, v := range d {
 
- 		name := ""
 
- 		kind := pasturePb.DataWarningType_Invalid
 
- 		for _, w := range dataWarning {
 
- 			if w.Id == v.WarningId {
 
- 				name = w.Name
 
- 				kind = w.Kind
 
- 			}
 
- 		}
 
- 		if name == "" || v.Id <= 0 || v.IsCondition == pasturePb.IsShow_Ok {
 
- 			continue
 
- 		}
 
- 		if v.FieldName == FieldName {
 
- 			v1, _ := strconv.ParseInt(v.Value, 10, 64)
 
- 			v.Value = fmt.Sprintf("%d", v1/30)
 
- 		}
 
- 		res = append(res, &pasturePb.WarningDataSet{
 
- 			Id:        int32(v.Id),
 
- 			WarningId: int32(v.WarningId),
 
- 			GroupId:   v.GroupId,
 
- 			Name:      name,
 
- 			Kind:      kind,
 
- 			FieldDesc: v.FieldDesc,
 
- 			FieldName: v.FieldName,
 
- 			Operator:  v.Operator,
 
- 			Value:     v.Value,
 
- 			IsShow:    v.IsShow,
 
- 		})
 
- 	}
 
- 	return res
 
- }
 
 
  |