|
@@ -69,7 +69,6 @@ func (s *StoreEntry) PasturePrefAnalysisData(ctx context.Context, req *operation
|
|
|
return
|
|
|
}
|
|
|
res[groupPasture.Id] = response.Data
|
|
|
-
|
|
|
}(pastureId)
|
|
|
}
|
|
|
wg.Wait()
|
|
@@ -277,25 +276,25 @@ func (s *StoreEntry) SearchAnalysisAccuracy(ctx context.Context, req *operationP
|
|
|
dashboardTopData1.MixedFodderAccurateRatio.MaxValue = fmt.Sprintf("%.2f", pastureDayTimeRatioList[operationPb.DashboardTopType_MIXED_ACCURATE][len(pastureDayTimeRatioList[operationPb.DashboardTopType_MIXED_ACCURATE])-1].Ratio)
|
|
|
dashboardTopData1.MixedFodderAccurateRatio.MinValue = fmt.Sprintf("%.2f", pastureDayTimeRatioList[operationPb.DashboardTopType_MIXED_ACCURATE][0].Ratio)
|
|
|
dashboardTopData1.MixedFodderAccurateRatio.MiddleValue = fmt.Sprintf("%.2f", getPastureDayTimeRatioMiddleValue(pastureDayTimeRatioList[operationPb.DashboardTopType_MIXED_ACCURATE]))
|
|
|
- dashboardTopData1.MixedFodderAccurateRatio.TopOneName = pastureDayTimeRatioList[operationPb.DashboardTopType_MIXED_ACCURATE][0].PastureName
|
|
|
+ dashboardTopData1.MixedFodderAccurateRatio.TopOneName = pastureDayTimeRatioList[operationPb.DashboardTopType_MIXED_ACCURATE][len(pastureDayTimeRatioList[operationPb.DashboardTopType_MIXED_ACCURATE])-1].PastureName
|
|
|
|
|
|
// 混料正确率
|
|
|
dashboardTopData1.MixedFodderCorrectRatio.MaxValue = fmt.Sprintf("%.2f", pastureDayTimeRatioList[operationPb.DashboardTopType_MIXED_CORRECT][len(pastureDayTimeRatioList[operationPb.DashboardTopType_MIXED_CORRECT])-1].Ratio)
|
|
|
dashboardTopData1.MixedFodderCorrectRatio.MinValue = fmt.Sprintf("%.2f", pastureDayTimeRatioList[operationPb.DashboardTopType_MIXED_CORRECT][0].Ratio)
|
|
|
dashboardTopData1.MixedFodderCorrectRatio.MiddleValue = fmt.Sprintf("%.2f", getPastureDayTimeRatioMiddleValue(pastureDayTimeRatioList[operationPb.DashboardTopType_MIXED_CORRECT]))
|
|
|
- dashboardTopData1.MixedFodderCorrectRatio.TopOneName = pastureDayTimeRatioList[operationPb.DashboardTopType_MIXED_CORRECT][0].PastureName
|
|
|
+ dashboardTopData1.MixedFodderCorrectRatio.TopOneName = pastureDayTimeRatioList[operationPb.DashboardTopType_MIXED_CORRECT][len(pastureDayTimeRatioList[operationPb.DashboardTopType_MIXED_CORRECT])-1].PastureName
|
|
|
|
|
|
// 散料准确率
|
|
|
dashboardTopData1.SprinkleFodderAccurateRatio.MaxValue = fmt.Sprintf("%.2f", pastureDayTimeRatioList[operationPb.DashboardTopType_SPRINKLE_ACCURATE][len(pastureDayTimeRatioList[operationPb.DashboardTopType_SPRINKLE_ACCURATE])-1].Ratio)
|
|
|
dashboardTopData1.SprinkleFodderAccurateRatio.MinValue = fmt.Sprintf("%.2f", pastureDayTimeRatioList[operationPb.DashboardTopType_SPRINKLE_ACCURATE][0].Ratio)
|
|
|
dashboardTopData1.SprinkleFodderAccurateRatio.MiddleValue = fmt.Sprintf("%.2f", getPastureDayTimeRatioMiddleValue(pastureDayTimeRatioList[operationPb.DashboardTopType_SPRINKLE_ACCURATE]))
|
|
|
- dashboardTopData1.SprinkleFodderAccurateRatio.TopOneName = pastureDayTimeRatioList[operationPb.DashboardTopType_SPRINKLE_ACCURATE][0].PastureName
|
|
|
+ dashboardTopData1.SprinkleFodderAccurateRatio.TopOneName = pastureDayTimeRatioList[operationPb.DashboardTopType_SPRINKLE_ACCURATE][len(pastureDayTimeRatioList[operationPb.DashboardTopType_SPRINKLE_ACCURATE])-1].PastureName
|
|
|
|
|
|
// 散料正确率
|
|
|
dashboardTopData1.SprinkleFodderCorrectRatio.MaxValue = fmt.Sprintf("%.2f", pastureDayTimeRatioList[operationPb.DashboardTopType_Sprinkle_CORRECT][len(pastureDayTimeRatioList[operationPb.DashboardTopType_Sprinkle_CORRECT])-1].Ratio)
|
|
|
dashboardTopData1.SprinkleFodderCorrectRatio.MinValue = fmt.Sprintf("%.2f", pastureDayTimeRatioList[operationPb.DashboardTopType_Sprinkle_CORRECT][0].Ratio)
|
|
|
dashboardTopData1.SprinkleFodderCorrectRatio.MiddleValue = fmt.Sprintf("%.2f", getPastureDayTimeRatioMiddleValue(pastureDayTimeRatioList[operationPb.DashboardTopType_Sprinkle_CORRECT]))
|
|
|
- dashboardTopData1.SprinkleFodderCorrectRatio.TopOneName = pastureDayTimeRatioList[operationPb.DashboardTopType_Sprinkle_CORRECT][0].PastureName
|
|
|
+ dashboardTopData1.SprinkleFodderCorrectRatio.TopOneName = pastureDayTimeRatioList[operationPb.DashboardTopType_Sprinkle_CORRECT][len(pastureDayTimeRatioList[operationPb.DashboardTopType_Sprinkle_CORRECT])-1].PastureName
|
|
|
|
|
|
res.Data.Chart = dashboardTopData1
|
|
|
return res, nil
|
|
@@ -355,13 +354,12 @@ func (s *StoreEntry) DashboardTopPasture(ctx context.Context, req *operationPb.S
|
|
|
dashboardTopData.MixedFodderCorrectRatio = append(dashboardTopData.MixedFodderCorrectRatio, &model.PastureTopData{
|
|
|
PastureId: pastureId,
|
|
|
PastureName: groupPasture.Name,
|
|
|
- Ratio: tool.Decimal(allMaRatio / float64(len(data.MixedFodderCorrectRatio))),
|
|
|
+ Ratio: tool.Decimal(allMcRatio / float64(len(data.MixedFodderCorrectRatio))),
|
|
|
})
|
|
|
|
|
|
for _, v := range data.SprinkleFodderAccurateRatio {
|
|
|
allSaRatio += v.Ratio
|
|
|
}
|
|
|
-
|
|
|
dashboardTopData.SprinkleFodderAccurateRatio = append(dashboardTopData.SprinkleFodderAccurateRatio, &model.PastureTopData{
|
|
|
PastureId: pastureId,
|
|
|
PastureName: groupPasture.Name,
|
|
@@ -371,13 +369,11 @@ func (s *StoreEntry) DashboardTopPasture(ctx context.Context, req *operationPb.S
|
|
|
for _, v := range data.SprinkleFodderCorrectRatio {
|
|
|
allScRatio += v.Ratio
|
|
|
}
|
|
|
-
|
|
|
dashboardTopData.SprinkleFodderCorrectRatio = append(dashboardTopData.SprinkleFodderCorrectRatio, &model.PastureTopData{
|
|
|
PastureId: pastureId,
|
|
|
PastureName: groupPasture.Name,
|
|
|
Ratio: tool.Decimal(allScRatio / float64(len(data.SprinkleFodderCorrectRatio))),
|
|
|
})
|
|
|
-
|
|
|
}
|
|
|
|
|
|
sort.Slice(dashboardTopData.MixedFodderAccurateRatio, func(i, j int) bool {
|