|
@@ -75,7 +75,6 @@ func (s *StoreEntry) PasturePrefAnalysisData(ctx context.Context, req *operation
|
|
|
}
|
|
|
|
|
|
func (s *StoreEntry) PasturePrefExecTimeData(ctx context.Context, req *operationPb.SearchAnalysisAccuracyRequest) (map[string]*model.ExecTimeData, error) {
|
|
|
-
|
|
|
res := make(map[string]*model.ExecTimeData, 0)
|
|
|
wg := sync.WaitGroup{}
|
|
|
wg.Add(len(req.PastureIds))
|
|
@@ -167,7 +166,50 @@ func (s *StoreEntry) PastureSprinkleFeedTime(ctx context.Context, req *operation
|
|
|
return res, nil
|
|
|
}
|
|
|
|
|
|
-func (s *StoreEntry) SearchAnalysisAccuracy(ctx context.Context, req *operationPb.SearchAnalysisAccuracyRequest) (*model.SearchAnalysisAccuracyResponse, error) {
|
|
|
+func (s *StoreEntry) SearchAnalysisAccuracy(ctx context.Context, req *operationPb.SearchAnalysisAccuracyRequest) (*model.SearchAnalysisAccuracyResponse1, error) {
|
|
|
+ res := &model.SearchAnalysisAccuracyResponse1{
|
|
|
+ Code: http.StatusOK,
|
|
|
+ Msg: "ok",
|
|
|
+ Data: nil,
|
|
|
+ }
|
|
|
+
|
|
|
+ dashboardTopData, err := s.DashboardTopPasture(ctx, req)
|
|
|
+ if err != nil {
|
|
|
+ return nil, xerr.WithStack(err)
|
|
|
+ }
|
|
|
+
|
|
|
+ dashboardTopData1 := &model.PastureTop1{
|
|
|
+ MixedFodderAccurateRatio: make([][]string, 2),
|
|
|
+ MixedFodderCorrectRatio: make([][]string, 2),
|
|
|
+ SprinkleFodderAccurateRatio: make([][]string, 2),
|
|
|
+ SprinkleFodderCorrectRatio: make([][]string, 2),
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, v := range dashboardTopData.MixedFodderCorrectRatio {
|
|
|
+ dashboardTopData1.MixedFodderCorrectRatio[0] = append(dashboardTopData1.MixedFodderCorrectRatio[0], v.PastureName)
|
|
|
+ dashboardTopData1.MixedFodderCorrectRatio[1] = append(dashboardTopData1.MixedFodderCorrectRatio[1], fmt.Sprintf("%f%", v.Ratio))
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, v := range dashboardTopData.MixedFodderAccurateRatio {
|
|
|
+ dashboardTopData1.MixedFodderAccurateRatio[0] = append(dashboardTopData1.MixedFodderAccurateRatio[0], v.PastureName)
|
|
|
+ dashboardTopData1.MixedFodderAccurateRatio[1] = append(dashboardTopData1.MixedFodderAccurateRatio[1], fmt.Sprintf("%f%", v.Ratio))
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, v := range dashboardTopData.SprinkleFodderAccurateRatio {
|
|
|
+ dashboardTopData1.SprinkleFodderAccurateRatio[0] = append(dashboardTopData1.SprinkleFodderAccurateRatio[0], v.PastureName)
|
|
|
+ dashboardTopData1.SprinkleFodderAccurateRatio[1] = append(dashboardTopData1.SprinkleFodderAccurateRatio[1], fmt.Sprintf("%f%", v.Ratio))
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, v := range dashboardTopData.SprinkleFodderCorrectRatio {
|
|
|
+ dashboardTopData1.SprinkleFodderCorrectRatio[0] = append(dashboardTopData1.SprinkleFodderCorrectRatio[0], v.PastureName)
|
|
|
+ dashboardTopData1.SprinkleFodderCorrectRatio[1] = append(dashboardTopData1.SprinkleFodderCorrectRatio[1], fmt.Sprintf("%f%", v.Ratio))
|
|
|
+ }
|
|
|
+
|
|
|
+ res.Data = dashboardTopData1
|
|
|
+ return res, nil
|
|
|
+}
|
|
|
+
|
|
|
+func (s *StoreEntry) SearchAnalysisAccuracyOld(ctx context.Context, req *operationPb.SearchAnalysisAccuracyRequest) (*model.SearchAnalysisAccuracyResponse, error) {
|
|
|
res := &model.SearchAnalysisAccuracyResponse{
|
|
|
Code: http.StatusOK,
|
|
|
Msg: "ok",
|
|
@@ -300,17 +342,26 @@ func (s *StoreEntry) SearchAnalysisAccuracy(ctx context.Context, req *operationP
|
|
|
|
|
|
// TopPasture 牧场排名
|
|
|
func (s *StoreEntry) TopPasture(ctx context.Context, req *operationPb.SearchAnalysisAccuracyRequest) (*model.GetPastureTopResponse, error) {
|
|
|
+ res := &model.GetPastureTopResponse{
|
|
|
+ Code: http.StatusOK,
|
|
|
+ Msg: "ok",
|
|
|
+ Data: nil,
|
|
|
+ }
|
|
|
+ dashboardTopData, err := s.DashboardTopPasture(ctx, req)
|
|
|
+ if err != nil {
|
|
|
+ return nil, xerr.WithStack(err)
|
|
|
+ }
|
|
|
+ res.Data = dashboardTopData
|
|
|
+ return res, nil
|
|
|
+}
|
|
|
+
|
|
|
+func (s *StoreEntry) DashboardTopPasture(ctx context.Context, req *operationPb.SearchAnalysisAccuracyRequest) (*model.PastureTop, error) {
|
|
|
dashboardTopData := &model.PastureTop{
|
|
|
MixedFodderAccurateRatio: make([]*model.PastureTopData, 0),
|
|
|
MixedFodderCorrectRatio: make([]*model.PastureTopData, 0),
|
|
|
SprinkleFodderAccurateRatio: make([]*model.PastureTopData, 0),
|
|
|
SprinkleFodderCorrectRatio: make([]*model.PastureTopData, 0),
|
|
|
}
|
|
|
- res := &model.GetPastureTopResponse{
|
|
|
- Code: http.StatusOK,
|
|
|
- Msg: "ok",
|
|
|
- Data: nil,
|
|
|
- }
|
|
|
analysisAccuracy, err := s.PasturePrefAnalysisData(ctx, req)
|
|
|
if err != nil {
|
|
|
return nil, xerr.WithStack(err)
|
|
@@ -385,9 +436,7 @@ func (s *StoreEntry) TopPasture(ctx context.Context, req *operationPb.SearchAnal
|
|
|
dashboardTopData.SprinkleFodderCorrectRatio = dashboardTopRand(req, dashboardTopData.SprinkleFodderCorrectRatio)
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- res.Data = dashboardTopData
|
|
|
- return res, nil
|
|
|
+ return dashboardTopData, nil
|
|
|
}
|
|
|
|
|
|
func (s *StoreEntry) TitleList(ctx context.Context, pastureAnalysisList map[int64]*model.PastureAnalysisAccuracyData) *model.Table {
|