data_warning_items.go 5.1 KB

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