|
|
@@ -451,6 +451,19 @@ func (s *StoreEntry) BehaviorCurveGroupComparison(ctx context.Context, req *past
|
|
|
return nil, xerr.Customf(messageId)
|
|
|
}
|
|
|
|
|
|
+ // 行为曲线数据
|
|
|
+ neckActiveHabitList := make([]*model.NeckActiveHabit, 0)
|
|
|
+ if err = s.DB.Table(new(model.NeckActiveHabit).TableName()).
|
|
|
+ Where("neck_ring_number = ?", cowInfo.NeckRingNumber).
|
|
|
+ Where("pasture_id = ?", userModel.AppPasture.Id).
|
|
|
+ Where("is_show = ?", pasturePb.IsShow_Ok).
|
|
|
+ Where("cow_id > ?", 0).
|
|
|
+ Where("heat_date IN (?)", dayRange).
|
|
|
+ Order("heat_date, frameid").
|
|
|
+ Find(&neckActiveHabitList).Error; err != nil {
|
|
|
+ return nil, xerr.WithStack(err)
|
|
|
+ }
|
|
|
+
|
|
|
dataTimeList := make([]string, 0)
|
|
|
for _, v := range dayRange {
|
|
|
for i := 0; i <= 23; i++ {
|
|
|
@@ -460,15 +473,16 @@ func (s *StoreEntry) BehaviorCurveGroupComparison(ctx context.Context, req *past
|
|
|
dataTimeList = append(dataTimeList, fmt.Sprintf("%s %02d", v, i))
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+ originalDataList := model.NeckActiveHabitSlice(neckActiveHabitList).ToOriginalDataList(req.CurveName)
|
|
|
q1, q3 := s.CowIQR(cowInfo, req.CurveName, dayRange, dataTimeList)
|
|
|
return &pasturePb.BehaviorCurveGroupComparisonResponse{
|
|
|
Code: http.StatusOK,
|
|
|
Msg: "ok",
|
|
|
Data: &pasturePb.CowNeckRingGroupComparisonData{
|
|
|
- IQR1: q1,
|
|
|
- IQR3: q3,
|
|
|
- DateTime: dataTimeList,
|
|
|
+ DateTime: dataTimeList,
|
|
|
+ OriginalDataList: originalDataList,
|
|
|
+ IQR1: q1,
|
|
|
+ IQR3: q3,
|
|
|
},
|
|
|
}, nil
|
|
|
}
|