event_estrus.go 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. package model
  2. import (
  3. pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
  4. )
  5. type EventEstrus struct {
  6. Id int64 `json:"id"`
  7. PastureId int64 `json:"pastureId"`
  8. CowId int64 `json:"cowId"`
  9. NeckRingNumber string `json:"neckRingNumber"`
  10. EarNumber string `json:"earNumber"`
  11. Lact int32 `json:"lact"`
  12. DayAge int32 `json:"dayAge"`
  13. CalvingAge int32 `json:"calvingAge"`
  14. ExposeEstrusType pasturePb.ExposeEstrusType_Kind `json:"exposeEstrusType"`
  15. LastEstrusDay int64 `json:"lastEstrusDay"`
  16. PlanDay int64 `json:"planDay"`
  17. RealityDay int64 `json:"realityDay"`
  18. EndDay int64 `json:"endDay"`
  19. IsMating pasturePb.IsShow_Kind `json:"isMating"`
  20. UnMatingReasonsKind pasturePb.UnMatingReasons_Kind `json:"unMatingReasonsKind"`
  21. UnMatingReasonsName string `json:"unMatingReasonsName"`
  22. Remarks string `json:"remarks"`
  23. IsShow pasturePb.IsShow_Kind `json:"isShow"`
  24. OperationId int64 `json:"operationId"`
  25. OperationName string `json:"operationName"`
  26. MessageId int64 `json:"messageId"`
  27. MessageName string `json:"messageName"`
  28. CreatedAt int64 `json:"createdAt"`
  29. UpdatedAt int64 `json:"updatedAt"`
  30. }
  31. func (e *EventEstrus) TableName() string {
  32. return "event_estrus"
  33. }
  34. func NewEventEstrus(
  35. pastureId int64,
  36. cow *Cow,
  37. exposeEstrusType pasturePb.ExposeEstrusType_Kind,
  38. isShow pasturePb.IsShow_Kind,
  39. isMating pasturePb.IsShow_Kind,
  40. PlanDay int32,
  41. operationUser, currentUser *SystemUser,
  42. ) *EventEstrus {
  43. return &EventEstrus{
  44. PastureId: pastureId,
  45. CowId: cow.Id,
  46. Lact: cow.Lact,
  47. DayAge: cow.DayAge,
  48. CalvingAge: cow.CalvingAge,
  49. NeckRingNumber: cow.NeckRingNumber,
  50. EarNumber: cow.EarNumber,
  51. ExposeEstrusType: exposeEstrusType,
  52. PlanDay: int64(PlanDay),
  53. RealityDay: int64(PlanDay),
  54. IsMating: isMating,
  55. IsShow: isShow,
  56. OperationId: operationUser.Id,
  57. OperationName: operationUser.Name,
  58. MessageId: currentUser.Id,
  59. MessageName: currentUser.Name,
  60. }
  61. }
  62. type EventEstrusSlice []*EventEstrus
  63. func (e EventEstrusSlice) ToPB() []*pasturePb.SearchEventEstrusList {
  64. res := make([]*pasturePb.SearchEventEstrusList, len(e))
  65. for i, v := range e {
  66. res[i] = &pasturePb.SearchEventEstrusList{
  67. Id: int32(v.Id),
  68. CowId: int32(v.CowId),
  69. EarNumber: v.EarNumber,
  70. DayAge: v.DayAge,
  71. Lact: v.Lact,
  72. EstrusAt: int32(v.RealityDay),
  73. IsMating: v.IsMating,
  74. UnMatingReasons: v.UnMatingReasonsName,
  75. OperationName: v.OperationName,
  76. Remarks: v.Remarks,
  77. CreatedAt: int32(v.CreatedAt),
  78. UpdatedAt: int32(v.UpdatedAt),
  79. }
  80. }
  81. return res
  82. }