event_immunization_plan.go 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. package model
  2. import (
  3. "kpt-pasture/util"
  4. "time"
  5. pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
  6. )
  7. type EventImmunizationPlan struct {
  8. Id int64 `json:"id"`
  9. CowId int64 `json:"cowId"`
  10. Lact int32 `json:"lact"`
  11. DayAge int32 `json:"dayAge"`
  12. CowType pasturePb.CowType_Kind `json:"cowType"`
  13. CowKind pasturePb.CowKind_Kind `json:"cowKind"`
  14. PenId int32 `json:"penId"`
  15. PenName string `json:"penName"`
  16. PlanId int64 `json:"planId"`
  17. PlanName string `json:"planName"`
  18. PlanDay int64 `json:"planDay"`
  19. RealityDay int64 `json:"realityDay"`
  20. EndDay int64 `json:"endDay"`
  21. Status pasturePb.IsShow_Kind `json:"status"`
  22. OperationId int64 `json:"operationId"`
  23. OperationName string `json:"operationName"`
  24. DrugsId int64 `json:"drugsId"`
  25. DrugsName string `json:"drugsName"`
  26. Unit pasturePb.Unit_Kind `json:"unit"`
  27. UnitName string `json:"unitName"`
  28. Usage int32 `json:"usage"`
  29. Remarks string `json:"remarks"`
  30. CreateAt int64 `json:"createAt"`
  31. UpdateAt int64 `json:"updateAt"`
  32. }
  33. func (c *EventImmunizationPlan) TableName() string {
  34. return "event_immunization_plan"
  35. }
  36. func NewCowImmunizationPlan(cow *Cow, pen *Pen, immunizationPlan *ImmunizationPlan) *EventImmunizationPlan {
  37. todayTime := time.Now().Format(LayoutDate2)
  38. todayStartTime := util.TimeParseLocalUnix(todayTime)
  39. todayEndTime := util.TimeParseLocalEndUnix(todayTime)
  40. return &EventImmunizationPlan{
  41. CowId: cow.Id,
  42. Lact: cow.Lact,
  43. DayAge: cow.DayAge,
  44. CowKind: cow.CowKind,
  45. CowType: cow.CowType,
  46. PenId: cow.PenId,
  47. PenName: pen.Name,
  48. PlanId: immunizationPlan.Id,
  49. PlanName: immunizationPlan.Name,
  50. PlanDay: todayStartTime,
  51. EndDay: todayEndTime,
  52. Status: pasturePb.IsShow_No,
  53. }
  54. }
  55. func NewCowImmunizationPlanList(cowList []*Cow, penMap map[int32]*Pen, immunizationPlan *ImmunizationPlan) []*EventImmunizationPlan {
  56. cowImmunizationPlanList := make([]*EventImmunizationPlan, len(cowList))
  57. for i, cow := range cowList {
  58. pen := penMap[cow.PenId]
  59. cowImmunizationPlanList[i] = NewCowImmunizationPlan(cow, pen, immunizationPlan)
  60. }
  61. return cowImmunizationPlanList
  62. }
  63. type EventImmunizationPlanSlice []*EventImmunizationPlan
  64. func (I EventImmunizationPlanSlice) ToPB() []*pasturePb.ImmunizationItems {
  65. res := make([]*pasturePb.ImmunizationItems, len(I))
  66. for i, v := range I {
  67. res[i] = &pasturePb.ImmunizationItems{
  68. Id: int32(v.Id),
  69. CowId: int32(v.CowId),
  70. PenId: v.PenId,
  71. Lact: v.Lact,
  72. PenName: v.PenName,
  73. DayAge: v.DayAge,
  74. PlanDay: time.Unix(v.PlanDay, 0).Format(LayoutDate2),
  75. Status: v.Status,
  76. ImmunizationName: v.PlanName,
  77. ImmunizationId: int32(v.PlanId),
  78. Remarks: v.Remarks,
  79. OperatorId: int32(v.OperationId),
  80. OperatorName: v.OperationName,
  81. DrugId: int32(v.DrugsId),
  82. DrugName: v.DrugsName,
  83. Unit: v.Unit,
  84. UnitName: v.UnitName,
  85. Usage: v.Usage,
  86. CreatedAt: int32(v.CreateAt),
  87. UpdatedAt: int32(v.UpdateAt),
  88. }
  89. }
  90. return res
  91. }