|
|
@@ -414,25 +414,36 @@ func (n NeckActiveHabitSlice) ToPBApp() *pasturePb.CowNeckRingAppData {
|
|
|
return res
|
|
|
}
|
|
|
|
|
|
-func (n NeckActiveHabitSlice) ToOriginalDataList(curveName string) []int32 {
|
|
|
- originalDateList := make([]int32, 0)
|
|
|
+func (n NeckActiveHabitSlice) ToOriginalDataList(curveName string, dateTimeList []string) []int32 {
|
|
|
+ originalDataList := make([]int32, 0)
|
|
|
+ dateTimeMap := make(map[string]*NeckActiveHabit)
|
|
|
for _, v := range n {
|
|
|
- switch curveName {
|
|
|
- case "active": // 活动量
|
|
|
- originalDateList = append(originalDateList, v.High)
|
|
|
- case "rumina": // 反刍
|
|
|
- originalDateList = append(originalDateList, v.Rumina)
|
|
|
- case "intake": // 采食
|
|
|
- originalDateList = append(originalDateList, v.Intake)
|
|
|
- case "inactive": // 休息
|
|
|
- originalDateList = append(originalDateList, v.Inactive)
|
|
|
- case "chew": // 咀嚼
|
|
|
- originalDateList = append(originalDateList, v.Rumina+v.Intake)
|
|
|
- case "immobility": // 静止
|
|
|
- originalDateList = append(originalDateList, 120-v.Active)
|
|
|
+ dateTime := fmt.Sprintf("%s %02d", v.HeatDate, util.ExpectedFrameIDs[v.Frameid]*2+1)
|
|
|
+ dateTimeMap[dateTime] = v
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, v := range dateTimeList {
|
|
|
+ if originalData, ok := dateTimeMap[v]; ok {
|
|
|
+ switch curveName {
|
|
|
+ case "active": // 活动量
|
|
|
+ originalDataList = append(originalDataList, originalData.High)
|
|
|
+ case "rumina": // 反刍
|
|
|
+ originalDataList = append(originalDataList, originalData.Rumina)
|
|
|
+ case "intake": // 采食
|
|
|
+ originalDataList = append(originalDataList, originalData.Intake)
|
|
|
+ case "inactive": // 休息
|
|
|
+ originalDataList = append(originalDataList, originalData.Inactive)
|
|
|
+ case "chew": // 咀嚼
|
|
|
+ originalDataList = append(originalDataList, originalData.Rumina+originalData.Intake)
|
|
|
+ case "immobility": // 静止
|
|
|
+ originalDataList = append(originalDataList, 120-originalData.Active)
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ originalDataList = append(originalDataList, 0)
|
|
|
}
|
|
|
}
|
|
|
- return originalDateList
|
|
|
+
|
|
|
+ return originalDataList
|
|
|
}
|
|
|
|
|
|
type MaxHabitIdModel struct {
|