|
@@ -170,14 +170,39 @@ func (s *StoreEntry) NeckRingWarningHealthCowList(ctx context.Context, req *past
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ dayData := make(map[int64]*model.NeckActiveHabit)
|
|
|
if len(cowIds) > 0 {
|
|
|
cowList, _ := s.GetCowInfoByCowIds(ctx, userModel.AppPasture.Id, cowIds)
|
|
|
for _, cow := range cowList {
|
|
|
cowMap[cow.Id] = cow
|
|
|
}
|
|
|
|
|
|
- // 获取牛的牛当前脖环数据
|
|
|
+ neckRingHabitList := make([]*model.NeckActiveHabit, 0)
|
|
|
+ if err = s.DB.Model(new(model.NeckActiveHabit)).
|
|
|
+ Select("rumina,intake,inactive,active,change_rumina,change_high,active_time").
|
|
|
+ Where("pasture_id = ?", userModel.AppPasture.Id).
|
|
|
+ Where("cow_id IN ?", cowIds).
|
|
|
+ Where("heat_date = ?", time.Now().Format(model.LayoutDate2)).
|
|
|
+ Where("is_show = ?", pasturePb.IsShow_Ok).
|
|
|
+ Find(&neckRingHabitList).Error; err != nil {
|
|
|
+ zaplog.Error("GetNeckRingHabitList", zap.Error(err))
|
|
|
+ }
|
|
|
|
|
|
+ if len(neckRingHabitList) > 0 {
|
|
|
+ for _, v := range neckRingHabitList {
|
|
|
+ if _, ok := dayData[v.CowId]; ok {
|
|
|
+ dayData[v.CowId].Active += 120 - v.Active
|
|
|
+ dayData[v.CowId].Inactive += v.Inactive
|
|
|
+ dayData[v.CowId].Intake += v.Intake
|
|
|
+ dayData[v.CowId].Rumina += v.Rumina
|
|
|
+ if dayData[v.CowId].ActiveTime < v.ActiveTime {
|
|
|
+ dayData[v.CowId].ChangeRumina = v.ChangeRumina
|
|
|
+ dayData[v.CowId].ActiveTime = v.ActiveTime
|
|
|
+ dayData[v.CowId].ChangeHigh = v.ChangeHigh
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
return &pasturePb.HealthWarningResponse{
|
|
@@ -192,6 +217,7 @@ func (s *StoreEntry) NeckRingWarningHealthCowList(ctx context.Context, req *past
|
|
|
cowMap,
|
|
|
eventLogMap,
|
|
|
healthStatusMap,
|
|
|
+ dayData,
|
|
|
),
|
|
|
},
|
|
|
}, nil
|