milk_original.go 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. package model
  2. import pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
  3. type MilkOriginal struct {
  4. Id int64 `json:"id"`
  5. PastureId int64 `json:"pastureId"`
  6. CowId int64 `json:"cowId"`
  7. EarNumber string `json:"earNumber"`
  8. EleEarNumber string `json:"eleEarNumber"`
  9. PenId int32 `json:"penId"`
  10. PenName string `json:"penName"`
  11. MilkHallBrand string `json:"milkHallBrand"`
  12. MilkDate string `json:"milkDate"`
  13. MilkWeight float64 `json:"milkWeight"`
  14. StartTime string `json:"startTime"`
  15. InitialTime string `json:"initialTime"`
  16. AttachTime string `json:"attachTime"`
  17. AttachAdjustTime string `json:"attachAdjustTime"`
  18. DetachedTime string `json:"detachedTime"`
  19. EndTime string `json:"endTime"`
  20. DetachedAddress int64 `json:"detachedAddress"`
  21. Conductivity int32 `json:"conductivity"`
  22. CowActivity int32 `json:"cowActivity"`
  23. Source int8 `json:"source"`
  24. MilkHallNumber string `json:"milkHallNumber"`
  25. Shifts int32 `json:"shifts"`
  26. Load int32 `json:"load"`
  27. Nattach int32 `json:"nattach"`
  28. RecognitionTime string `json:"recognitionTime"`
  29. IsYieldLow int8 `json:"isYieldLow"`
  30. PeakFlow float64 `json:"peakFlow"`
  31. AvgFlow float64 `json:"avgFlow"`
  32. Duration float64 `json:"duration"`
  33. PeakFlowTime int32 `json:"peakFlowTime"`
  34. LowFlowTime int32 `json:"lowFlowTime"`
  35. YieldPercentage int32 `json:"yieldPercentage"`
  36. ActualMilkTime string `json:"actualMilkTime"`
  37. KickOffs bool `json:"kickOffs"`
  38. Blocks int8 `json:"blocks"`
  39. Slips int8 `json:"slips"`
  40. ManualDetach int8 `json:"manualDetach"`
  41. TakeOffFlow float64 `json:"takeOffFlow"`
  42. LowMilkFlowPc int64 `json:"lowMilkFlowPc"`
  43. Flow0to15 int64 `json:"flow0To15"`
  44. Flow15to30 int64 `json:"flow15To30"`
  45. Flow30to60 int64 `json:"flow30To60"`
  46. Flow60to120 int64 `json:"flow60To120"`
  47. IsIdentify pasturePb.IsShow_Kind `json:"isIdentify"`
  48. CreatedAt int64 `json:"createdAt"`
  49. UpdatedAt int64 `json:"updatedAt"`
  50. }
  51. func (m *MilkOriginal) TableName() string {
  52. return "milk_original"
  53. }
  54. func (m *MilkOriginal) UpdateCowInfo(cow *Cow) {
  55. m.CowId = cow.Id
  56. m.PenId = cow.PenId
  57. m.PenName = cow.PenName
  58. }
  59. func NewAFIMilkOriginal(pastureId int64, milkHallNumber string, req *AFIMilkHallOriginal) *MilkOriginal {
  60. return &MilkOriginal{
  61. PastureId: pastureId,
  62. MilkHallBrand: AFI,
  63. CowId: 0,
  64. EarNumber: req.AnimalID,
  65. EleEarNumber: req.AnimalID,
  66. PenId: 0,
  67. PenName: "",
  68. MilkDate: req.SessionDate,
  69. MilkWeight: 0, // req.Yield,
  70. StartTime: "",
  71. InitialTime: "",
  72. AttachTime: "",
  73. AttachAdjustTime: "",
  74. DetachedTime: "",
  75. EndTime: "",
  76. DetachedAddress: req.StallNumber,
  77. Conductivity: req.Amt1,
  78. CowActivity: 0,
  79. Source: 0,
  80. MilkHallNumber: milkHallNumber,
  81. Shifts: req.SessionNumber,
  82. Load: 0,
  83. Nattach: req.TotalAttachments,
  84. RecognitionTime: "",
  85. IsYieldLow: 0,
  86. PeakFlow: float64(req.PeakFlowRate) / 1000,
  87. PeakFlowTime: req.PeakFlowRate,
  88. AvgFlow: 0,
  89. Duration: float64(req.MilkingTime) / 60,
  90. LowFlowTime: req.LowFlowRateTime,
  91. YieldPercentage: 0,
  92. ActualMilkTime: "",
  93. KickOffs: req.HasKickoffs,
  94. Blocks: 0,
  95. Slips: 0,
  96. ManualDetach: 0,
  97. TakeOffFlow: float64(req.RemovalFlowRate) / 1000,
  98. LowMilkFlowPc: 0,
  99. Flow0to15: req.FlowRate0To15,
  100. Flow15to30: req.FlowRate15To30,
  101. Flow30to60: req.FlowRate30To60,
  102. Flow60to120: req.FlowRate60To120,
  103. }
  104. }
  105. func NewGEAMilkOriginal(
  106. pastureId int64, milkHallBrand, milkHallNumber string, detachTime, earNumber, milkDate, attachTime, recognitionTime string, milkWeight float64, detacherAddress int64,
  107. duration, peakFlow float64, conductivity int32, eId string, f0t15, f15t30, f30t60, f60t120 int64, manualDetach int8,
  108. ) *MilkOriginal {
  109. return &MilkOriginal{
  110. PastureId: pastureId,
  111. CowId: 0,
  112. EarNumber: earNumber,
  113. EleEarNumber: eId,
  114. PenId: 0,
  115. PenName: "",
  116. MilkHallBrand: milkHallBrand,
  117. MilkDate: milkDate,
  118. MilkWeight: milkWeight,
  119. StartTime: "",
  120. InitialTime: "",
  121. AttachTime: attachTime,
  122. AttachAdjustTime: "",
  123. DetachedTime: detachTime,
  124. EndTime: "",
  125. DetachedAddress: detacherAddress,
  126. Conductivity: conductivity,
  127. CowActivity: 0,
  128. Source: 0,
  129. MilkHallNumber: milkHallNumber,
  130. Shifts: 0,
  131. Load: 0,
  132. Nattach: 0,
  133. RecognitionTime: recognitionTime,
  134. IsYieldLow: 0,
  135. PeakFlow: peakFlow,
  136. AvgFlow: 0,
  137. Duration: duration,
  138. PeakFlowTime: 0,
  139. LowFlowTime: 0,
  140. YieldPercentage: 0,
  141. ActualMilkTime: "",
  142. KickOffs: false,
  143. Blocks: 0,
  144. Slips: 0,
  145. ManualDetach: manualDetach,
  146. TakeOffFlow: 0,
  147. LowMilkFlowPc: 0,
  148. Flow0to15: f0t15,
  149. Flow15to30: f15t30,
  150. Flow30to60: f30t60,
  151. Flow60to120: f60t120,
  152. }
  153. }
  154. type MinMilkOriginalRecords struct {
  155. MilkDate string
  156. Shifts string
  157. DetachedAddress string
  158. CowId int64
  159. MinId int64
  160. Count int64
  161. MinAttachTime string
  162. }
  163. type BaseRecords struct {
  164. Id int64
  165. AttachAdjust string
  166. DetachedAddress int32
  167. Shifts int32
  168. EarNumber string
  169. MilkDate string
  170. RecognitionTime string
  171. CowId int64
  172. }
  173. type UpdateLoadRecord struct {
  174. Id int64
  175. Load int32
  176. }