event_calving.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. package model
  2. import pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
  3. type EventCalving struct {
  4. Id int64 `json:"int_64"`
  5. CowId int64 `json:"cow_id"`
  6. EarNumber string `json:"ear_number"`
  7. Lact int32 `json:"lact"`
  8. DayAge int32 `json:"day_age"`
  9. PenId int32 `json:"pen_id"`
  10. CalvingAt int64 `json:"calving_at"`
  11. ChildNumber int8 `json:"child_number"`
  12. BullId int64 `json:"bull_id"`
  13. DaysPregnant int32 `json:"days_pregnant"`
  14. CalvingLevel pasturePb.CalvingLevel_Kind `json:"calving_level"`
  15. StaffMemberId int64 `json:"staff_member_id"`
  16. DystociaReason pasturePb.DystociaReason_Kind `json:"dystocia_reason"`
  17. Remarks string `json:"remarks"`
  18. CreatedAt int64 `json:"created_at"`
  19. UpdatedAt int64 `json:"updated_at"`
  20. }
  21. func (e *EventCalving) TableName() string {
  22. return "event_calving"
  23. }
  24. func NewEventCalving(cow *Cow, req *pasturePb.EventCalving) *EventCalving {
  25. return &EventCalving{
  26. CowId: cow.Id,
  27. EarNumber: cow.EarNumber,
  28. Lact: cow.Lact,
  29. DayAge: cow.GetDayAge(),
  30. PenId: int32(cow.PenId),
  31. CalvingAt: int64(req.CalvingAt),
  32. BullId: cow.LastBullId,
  33. CalvingLevel: req.CalvingLevel,
  34. DystociaReason: req.DystociaReason,
  35. DaysPregnant: cow.GetDaysPregnant(),
  36. ChildNumber: int8(req.ChildNumber),
  37. Remarks: req.Remarks,
  38. StaffMemberId: int64(req.StaffMemberId),
  39. }
  40. }
  41. type EventCalvingList struct {
  42. EventCalving
  43. PenName string `json:"pen_name"`
  44. StaffMemberName string `json:"staff_member_name"`
  45. }
  46. type EventCalvingListSlice []*EventCalvingList
  47. func (e EventCalvingListSlice) ToPB(req []*CalvingCalf) []*pasturePb.LavingList {
  48. var list []*pasturePb.LavingList
  49. for _, item := range e {
  50. CalfItemList := make([]*pasturePb.CalfItem, 0)
  51. for _, v := range req {
  52. if v.CalvingId != item.Id {
  53. continue
  54. }
  55. CalfItemList = append(CalfItemList, &pasturePb.CalfItem{
  56. EarNumber: v.EarNumber,
  57. Sex: v.Sex,
  58. Weight: float32(v.BrithWeight) / 1000,
  59. IsAdoption: v.IsAdoption,
  60. IsLive: v.IsLive,
  61. CreatedAt: int32(v.CreatedAt),
  62. UpdatedAt: int32(v.UpdatedAt),
  63. PenId: v.PenId,
  64. Remarks: v.Remarks,
  65. MotherId: int32(v.MotherId),
  66. Id: int32(v.Id),
  67. })
  68. }
  69. list = append(list, &pasturePb.LavingList{
  70. Id: int32(item.Id),
  71. CowId: int32(item.CowId),
  72. Lact: item.Lact,
  73. PenId: item.PenId,
  74. PenName: item.PenName,
  75. CalvingAt: int32(item.CalvingAt),
  76. ChildNumber: int32(item.ChildNumber),
  77. DaysPregnant: item.DaysPregnant,
  78. StaffMemberId: int32(item.StaffMemberId),
  79. StaffMemberName: item.StaffMemberName,
  80. CalvingLevel: item.CalvingLevel,
  81. Remarks: item.Remarks,
  82. CreatedAt: int32(item.CreatedAt),
  83. UpdatedAt: int32(item.UpdatedAt),
  84. DystociaReason: item.DystociaReason,
  85. CalfItemList: CalfItemList,
  86. })
  87. }
  88. return list
  89. }