neck_active_habit.go 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. package model
  2. import (
  3. "fmt"
  4. pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
  5. )
  6. const (
  7. InitChangeFilter = -10000
  8. DefaultChangeFilter = -99
  9. DefaultFilterCorrect = 100
  10. DefaultWeeklyActive = 1500
  11. )
  12. type NeckActiveHabit struct {
  13. Id int64 `json:"id"`
  14. PastureId int64 `json:"pastureId"`
  15. NeckRingNumber string `json:"neckRingNumber"`
  16. ActiveTime string `json:"activeTime"`
  17. Frameid int32 `json:"frameid"`
  18. HeatDate string `json:"heatDate"`
  19. Rumina int32 `json:"rumina"`
  20. Intake int32 `json:"intake"`
  21. Inactive int32 `json:"inactive"`
  22. Gasp int32 `json:"gasp"`
  23. Other int32 `json:"other"`
  24. High int32 `json:"high"`
  25. Active int32 `json:"active"`
  26. FilterHigh int32 `json:"filterHigh"`
  27. FilterRumina int32 `json:"filterRumina"`
  28. FilterChew int32 `json:"filterChew"`
  29. WeekHigh int32 `json:"weekHigh"`
  30. AvgHighHabit int32 `json:"avgHighHabit"`
  31. AvgRuminaHabit int32 `json:"avgRuminaHabit"`
  32. AvgIntakeHabit int32 `json:"avgIntakeHabit"`
  33. AvgChewHabit int32 `json:"avgChewHabit"`
  34. AvgInactiveHabit int32 `json:"avgInactiveHabit"`
  35. AvgOtherHabit int32 `json:"avgOtherHabit"`
  36. ChangeHigh int32 `json:"changeHigh"`
  37. ChangeRumina int32 `json:"changeRumina"`
  38. ChangeChew int32 `json:"changeChew"`
  39. ChangeAdjust int32 `json:"changeAdjust"`
  40. ChangeFilter int32 `json:"changeFilter"`
  41. RuminaFilter int32 `json:"ruminaFilter"`
  42. ChewFilter int32 `json:"chewFilter"`
  43. FilterCorrect int32 `json:"filterCorrect"`
  44. SumRumina int32 `json:"sumRumina"`
  45. SumIntake int32 `json:"sumIntake"`
  46. SumInactive int32 `json:"sumInactive"`
  47. SumAct int32 `json:"sumAct"`
  48. SumMinHigh int32 `json:"sumMinHigh"`
  49. SumMaxHigh int32 `json:"sumMaxHigh"`
  50. SumMinChew int32 `json:"SumMinChew"`
  51. SumRuminaBeforeThreeDay int32 `json:"sumRuminaBeforeThreeDay"`
  52. SumIntakeBeforeThreeDay int32 `json:"sumIntakeBeforeThreeDay"`
  53. Score int32 `json:"score"`
  54. IsMaxTime pasturePb.IsShow_Kind `json:"isMaxTime"`
  55. IsShow pasturePb.IsShow_Kind `json:"isShow"`
  56. RecordCount int32 `json:"recordCount"`
  57. CreatedAt int64 `json:"createdAt"`
  58. UpdatedAt int64 `json:"updatedAt"`
  59. }
  60. func (n *NeckActiveHabit) TableName() string {
  61. return "neck_active_habit"
  62. }
  63. func NewNeckActiveHabit(data *NeckRingOriginalMerge) *NeckActiveHabit {
  64. return &NeckActiveHabit{
  65. PastureId: data.PastureId,
  66. Frameid: data.XframeId,
  67. HeatDate: data.ActiveDate,
  68. NeckRingNumber: data.NeckRingNumber,
  69. Active: data.Active,
  70. Gasp: data.Gasp,
  71. High: data.High,
  72. Inactive: data.Inactive,
  73. Intake: data.Intake,
  74. Other: data.Other,
  75. Rumina: data.Rumina,
  76. WeekHigh: DefaultWeeklyActive,
  77. IsShow: pasturePb.IsShow_No,
  78. IsMaxTime: pasturePb.IsShow_No,
  79. ChangeFilter: InitChangeFilter,
  80. FilterCorrect: DefaultFilterCorrect,
  81. RuminaFilter: InitChangeFilter,
  82. ChewFilter: InitChangeFilter,
  83. ActiveTime: fmt.Sprintf("%s %02d:00:00", data.ActiveDate, data.XframeId*2),
  84. RecordCount: data.RecordCount,
  85. }
  86. }
  87. func (n *NeckActiveHabit) SumAvg() {
  88. n.Rumina = n.Rumina / n.RecordCount * n.RecordCount
  89. n.Inactive = n.Inactive / n.RecordCount * n.RecordCount
  90. n.Active = n.Active / n.RecordCount * n.RecordCount
  91. n.Intake = n.Intake / n.RecordCount * n.RecordCount
  92. n.Other = n.Other / n.RecordCount * n.RecordCount
  93. n.Gasp = n.Gasp / n.RecordCount * n.RecordCount
  94. n.High = n.High / n.RecordCount * n.RecordCount
  95. }
  96. type MaxHabitIdModel struct {
  97. Id int64 `json:"id"`
  98. }