event_enter.go 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. package model
  2. import (
  3. "math"
  4. "time"
  5. pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
  6. )
  7. type EventEnter struct {
  8. Id int64 `json:"id"`
  9. EarNumber string `json:"ear_number"`
  10. CowId int64 `json:"cow_id"`
  11. Sex pasturePb.Genders_Kind `json:"sex"`
  12. BirthAt int64 `json:"birth_at"`
  13. CowSourceId pasturePb.CowSource_Kind `json:"cow_source_id"`
  14. OldEarNumber string `json:"old_ear_number"`
  15. CowTypeId pasturePb.CowType_Kind `json:"cow_type_id"`
  16. BreedStatusId pasturePb.BreedStatus_Kind `json:"breed_status_id"`
  17. Lact int32 `json:"lact"`
  18. DayAge int32 `json:"day_age"`
  19. PenId int32 `json:"pen_id"`
  20. CowKindId pasturePb.CowKind_Kind `json:"cow_kind_id"`
  21. Status pasturePb.CowStatus_Kind `json:"status"`
  22. FatherId int64 `json:"father_id"`
  23. MotherId int64 `json:"mother_id"`
  24. MatingAt int64 `json:"mating_at"`
  25. PregnancyCheckAt int64 `json:"pregnancy_check_at"`
  26. DryMilkAt int64 `json:"dry_milk_at"`
  27. WeaningAt int64 `json:"weaning_at"`
  28. EstrusAt int64 `json:"estrus_at"`
  29. EnterAt int64 `json:"enter_at"`
  30. Remarks string `json:"remarks"`
  31. Weight int64 `json:"weight"`
  32. Price int64 `json:"price"`
  33. OperationId int64 `json:"operation_id"`
  34. StaffMemberId int64 `json:"staff_member_id"`
  35. CreatedAt int64 `json:"created_at"`
  36. UpdatedAt int64 `json:"updated_at"`
  37. }
  38. func (e *EventEnter) TableName() string {
  39. return "event_enter"
  40. }
  41. func NewEventEnter(cowId, operationId int64, req *pasturePb.SearchEnterData) *EventEnter {
  42. return &EventEnter{
  43. EarNumber: req.EarNumber,
  44. CowId: cowId,
  45. Sex: req.Sex,
  46. BirthAt: int64(req.BirthAt),
  47. CowSourceId: req.CowSourceId,
  48. CowTypeId: req.CowTypeId,
  49. BreedStatusId: req.BreedStatusId,
  50. Lact: req.Lact,
  51. DayAge: int32(math.Floor(float64(int32(time.Now().Unix())-req.BirthAt) / 86400)),
  52. PenId: req.PenId,
  53. CowKindId: req.CowKindId,
  54. Status: 1,
  55. FatherId: int64(req.FatherId),
  56. MotherId: int64(req.MotherId),
  57. MatingAt: int64(req.MatingAt),
  58. PregnancyCheckAt: int64(req.PregnancyCheckAt),
  59. DryMilkAt: int64(req.DryMilkAt),
  60. WeaningAt: int64(req.WeaningAt),
  61. EstrusAt: int64(req.EstrusAt),
  62. EnterAt: int64(req.EnterAt),
  63. Remarks: req.Remarks,
  64. Weight: int64(req.Weight * 100),
  65. Price: int64(req.Price * 100),
  66. StaffMemberId: int64(req.StaffMemberId),
  67. OperationId: operationId,
  68. }
  69. }
  70. type EventEnterSlice []*EventEnter
  71. func (e EventEnterSlice) ToPB() []*pasturePb.SearchEnterData {
  72. res := make([]*pasturePb.SearchEnterData, len(e))
  73. for i, d := range e {
  74. res[i] = &pasturePb.SearchEnterData{
  75. Id: int32(d.Id),
  76. EarNumber: d.EarNumber,
  77. CowId: int32(d.CowId),
  78. Sex: d.Sex,
  79. BirthAt: int32(d.BirthAt),
  80. CowSourceId: d.CowSourceId,
  81. CowTypeId: d.CowTypeId,
  82. BreedStatusId: d.BreedStatusId,
  83. Lact: d.Lact,
  84. PenId: d.PenId,
  85. CowKindId: d.CowKindId,
  86. FatherId: int32(d.FatherId),
  87. MotherId: int32(d.MotherId),
  88. MatingAt: int32(d.MatingAt),
  89. PregnancyCheckAt: int32(d.PregnancyCheckAt),
  90. DryMilkAt: int32(d.DryMilkAt),
  91. WeaningAt: int32(d.WeaningAt),
  92. EstrusAt: int32(d.EstrusAt),
  93. EnterAt: int32(d.EnterAt),
  94. Weight: float32(d.Weight) / 100,
  95. Price: float32(d.Price) / 100,
  96. Remarks: d.Remarks,
  97. CreatedAt: int32(d.CreatedAt),
  98. UpdatedAt: int32(d.UpdatedAt),
  99. }
  100. }
  101. return res
  102. }