data_warning_items.go 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. package model
  2. import (
  3. "fmt"
  4. pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
  5. )
  6. type DataWarningItems struct {
  7. Id int64 `json:"id"`
  8. PastureId int64 `json:"pastureId"`
  9. UserId int64 `json:"userId"`
  10. WarningId int64 `json:"warningId"`
  11. GroupId int32 `json:"groupId"`
  12. FieldName string `json:"fieldName"`
  13. FieldDesc string `json:"fieldDesc"`
  14. Operator string `json:"operator"`
  15. Value string `json:"value"`
  16. IsShow pasturePb.IsShow_Kind `json:"isShow"`
  17. CreatedAt int64 `json:"createdAt"`
  18. UpdatedAt int64 `json:"updatedAt"`
  19. }
  20. func (d *DataWarningItems) TableName() string {
  21. return "data_warning_items"
  22. }
  23. var DefaultDataWarningItemsMap = map[pasturePb.DataWarningType_Kind][]*pasturePb.WarningDataSet{
  24. pasturePb.DataWarningType_Sale_Standard: {
  25. {
  26. GroupId: 1,
  27. FieldName: "admission_age",
  28. FieldDesc: "在群天数",
  29. Operator: ">=",
  30. Value: "100",
  31. IsShow: pasturePb.IsShow_Ok,
  32. },
  33. {
  34. GroupId: 1,
  35. FieldName: "current_weight",
  36. FieldDesc: "体重",
  37. Operator: ">=",
  38. Value: "700",
  39. IsShow: pasturePb.IsShow_Ok,
  40. },
  41. },
  42. pasturePb.DataWarningType_UnPregnant_Mating_Time: {
  43. {
  44. GroupId: 1,
  45. FieldName: "mating_times",
  46. FieldDesc: "配次",
  47. Operator: ">",
  48. Value: "2",
  49. IsShow: pasturePb.IsShow_Ok,
  50. },
  51. },
  52. pasturePb.DataWarningType_Abortion_Time: {
  53. {
  54. GroupId: 1,
  55. FieldName: "abortion_times",
  56. FieldDesc: "流产次数",
  57. Operator: ">",
  58. Value: "3",
  59. IsShow: pasturePb.IsShow_Ok,
  60. },
  61. },
  62. pasturePb.DataWarningType_Over_Age_UnPaired_Young: {
  63. {
  64. GroupId: 1,
  65. FieldName: "day_age",
  66. FieldDesc: "月龄",
  67. Operator: ">=",
  68. Value: "150",
  69. IsShow: pasturePb.IsShow_Ok,
  70. },
  71. },
  72. pasturePb.DataWarningType_Over_Age_UnPregnant_Young: {
  73. {
  74. GroupId: 1,
  75. FieldName: "day_age",
  76. FieldDesc: "月龄",
  77. Operator: ">=",
  78. Value: "660",
  79. IsShow: pasturePb.IsShow_Ok,
  80. },
  81. {
  82. GroupId: 2,
  83. FieldName: "cow_type",
  84. FieldDesc: "牛只类型",
  85. Operator: "=",
  86. Value: fmt.Sprintf("%d", pasturePb.CowType_Fattening_Calf),
  87. IsShow: pasturePb.IsShow_Ok,
  88. },
  89. {
  90. GroupId: 2,
  91. FieldName: "cow_type",
  92. FieldDesc: "牛只类型",
  93. Operator: "=",
  94. Value: fmt.Sprintf("%d", pasturePb.CowType_Reserve_Calf),
  95. IsShow: pasturePb.IsShow_Ok,
  96. },
  97. {
  98. GroupId: 3,
  99. FieldName: "is_pregnant",
  100. FieldDesc: "是否怀孕",
  101. Operator: "=",
  102. Value: fmt.Sprintf("%d", pasturePb.IsShow_No),
  103. IsShow: pasturePb.IsShow_Ok,
  104. },
  105. },
  106. pasturePb.DataWarningType_Over_Month_UnSale: {
  107. {
  108. GroupId: 1,
  109. FieldName: "day_age",
  110. FieldDesc: "月龄",
  111. Operator: ">=",
  112. Value: "540",
  113. IsShow: pasturePb.IsShow_Ok,
  114. },
  115. {
  116. GroupId: 2,
  117. FieldName: "purpose_kind",
  118. FieldDesc: "用途",
  119. Operator: "=",
  120. Value: fmt.Sprintf("%d", pasturePb.Purpose_Fatten),
  121. IsShow: pasturePb.IsShow_Ok,
  122. },
  123. },
  124. }
  125. func DataWarningItemsInitData(pastureId int64, dataWarning *DataWarning) []*DataWarningItems {
  126. dataWarningItems := make([]*DataWarningItems, 0)
  127. for _, v := range DefaultDataWarningItemsMap[dataWarning.Kind] {
  128. dataWarningItems = append(dataWarningItems, NewDataWarningItems(pastureId, DefaultUserId, dataWarning, v))
  129. }
  130. return dataWarningItems
  131. }
  132. func NewDataWarningItems(pastureId, userId int64, dataWarning *DataWarning, req *pasturePb.WarningDataSet) *DataWarningItems {
  133. return &DataWarningItems{
  134. PastureId: pastureId,
  135. UserId: userId,
  136. WarningId: dataWarning.Id,
  137. GroupId: req.GroupId,
  138. FieldName: req.FieldName,
  139. FieldDesc: req.FieldDesc,
  140. Operator: req.Operator,
  141. Value: req.Value,
  142. IsShow: req.IsShow,
  143. }
  144. }
  145. type DataWarningItemsSlice []*DataWarningItems
  146. func (d DataWarningItemsSlice) ToPB(dataWarning []*DataWarning) []*pasturePb.WarningDataSet {
  147. res := make([]*pasturePb.WarningDataSet, len(d))
  148. for i, v := range d {
  149. name := ""
  150. kind := pasturePb.DataWarningType_Invalid
  151. for _, w := range dataWarning {
  152. if w.Id == v.WarningId {
  153. name = w.Name
  154. kind = w.Kind
  155. }
  156. }
  157. if name == "" || v.Id <= 0 {
  158. continue
  159. }
  160. res[i] = &pasturePb.WarningDataSet{
  161. Id: int32(v.Id),
  162. WarningId: int32(v.WarningId),
  163. GroupId: v.GroupId,
  164. Name: name,
  165. Kind: kind,
  166. FieldDesc: v.FieldDesc,
  167. FieldName: v.FieldName,
  168. Operator: v.Operator,
  169. Value: v.Value,
  170. IsShow: v.IsShow,
  171. }
  172. }
  173. return res
  174. }