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
- }
|