Browse Source

dashboard: accuracy2

Yi 1 year ago
parent
commit
901c1de673
3 changed files with 59 additions and 25 deletions
  1. 18 8
      model/analysis_accuracy.go
  2. 0 1
      model/pasture_data.go
  3. 41 16
      module/backend/dashboard_service.go

+ 18 - 8
model/analysis_accuracy.go

@@ -28,16 +28,26 @@ func (c *AnalysisAccuracy) TableName() string {
 }
 
 type SearchAnalysisAccuracyResponse1 struct {
-	Code int32        `json:"code"`
-	Msg  string       `json:"msg"`
-	Data *PastureTop1 `json:"data"`
+	Code int32                  `json:"code"`
+	Msg  string                 `json:"msg"`
+	Data *AnalysisAccuracyData1 `json:"data"`
 }
 
-type PastureTop1 struct {
-	MixedFodderAccurateRatio    [][]string `json:"mixed_fodder_accurate_ratio"`
-	MixedFodderCorrectRatio     [][]string `json:"mixed_fodder_correct_ratio"`
-	SprinkleFodderAccurateRatio [][]string `json:"sprinkle_fodder_accurate_ratio"`
-	SprinkleFodderCorrectRatio  [][]string `json:"sprinkle_fodder_correct_ratio"`
+type AnalysisAccuracyData1 struct {
+	Table *Table  `json:"table"`
+	Chart *Chart1 `json:"chart"`
+}
+
+type Chart1 struct {
+	MixedFodderAccurateRatio    *PastureTopData1 `json:"mixed_fodder_accurate_ratio"`
+	MixedFodderCorrectRatio     *PastureTopData1 `json:"mixed_fodder_correct_ratio"`
+	SprinkleFodderAccurateRatio *PastureTopData1 `json:"sprinkle_fodder_accurate_ratio"`
+	SprinkleFodderCorrectRatio  *PastureTopData1 `json:"sprinkle_fodder_correct_ratio"`
+}
+
+type PastureTopData1 struct {
+	Title []string  `json:"title"`
+	Ratio []float64 `json:"ratio"`
 }
 
 type SearchAnalysisAccuracyResponse struct {

+ 0 - 1
model/pasture_data.go

@@ -36,7 +36,6 @@ type PastureAnalysisAccuracyResponse struct {
 	Msg  string                       `json:"msg"`
 	Data *PastureAnalysisAccuracyData `json:"data"`
 }
-
 type PastureAnalysisAccuracyData struct {
 	MixedFodderAccurateRatio    []*PastureAnalysisAccuracyDataValue `json:"mixed_fodder_accurate_ratio"`    // 混料准确率
 	MixedFodderCorrectRatio     []*PastureAnalysisAccuracyDataValue `json:"mixed_fodder_correct_ratio"`     // 混料正确率

+ 41 - 16
module/backend/dashboard_service.go

@@ -170,42 +170,67 @@ func (s *StoreEntry) SearchAnalysisAccuracy(ctx context.Context, req *operationP
 	res := &model.SearchAnalysisAccuracyResponse1{
 		Code: http.StatusOK,
 		Msg:  "ok",
-		Data: nil,
+		Data: &model.AnalysisAccuracyData1{
+			Table: &model.Table{
+				TitleList: make([]*model.TableList, 0),
+				DataList:  &model.DataList{},
+			},
+			Chart: nil,
+		},
 	}
 
+	res.Data.Table.TitleList = append(res.Data.Table.TitleList, &model.TableList{
+		Name:  "title",
+		Value: "牧场",
+	})
+
+	pastureAnalysisAccuracy, err := s.PasturePrefAnalysisData(ctx, req)
+	res.Data.Table = s.TitleList(ctx, pastureAnalysisAccuracy)
+
 	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),
+	dashboardTopData1 := &model.Chart1{
+		MixedFodderAccurateRatio: &model.PastureTopData1{
+			Title: make([]string, 0),
+			Ratio: make([]float64, 0),
+		},
+		MixedFodderCorrectRatio: &model.PastureTopData1{
+			Title: make([]string, 0),
+			Ratio: make([]float64, 0),
+		},
+		SprinkleFodderAccurateRatio: &model.PastureTopData1{
+			Title: make([]string, 0),
+			Ratio: make([]float64, 0),
+		},
+		SprinkleFodderCorrectRatio: &model.PastureTopData1{
+			Title: make([]string, 0),
+			Ratio: make([]float64, 0),
+		},
 	}
 
 	for _, v := range dashboardTopData.MixedFodderCorrectRatio {
-		dashboardTopData1.MixedFodderCorrectRatio[0] = append(dashboardTopData1.MixedFodderCorrectRatio[0], v.PastureName)
-		dashboardTopData1.MixedFodderCorrectRatio[1] = append(dashboardTopData1.MixedFodderCorrectRatio[1], fmt.Sprintf("%.2f", v.Ratio))
+		dashboardTopData1.MixedFodderCorrectRatio.Title = append(dashboardTopData1.MixedFodderCorrectRatio.Title, v.PastureName)
+		dashboardTopData1.MixedFodderCorrectRatio.Ratio = append(dashboardTopData1.MixedFodderCorrectRatio.Ratio, 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("%.2f", v.Ratio))
+		dashboardTopData1.MixedFodderAccurateRatio.Title = append(dashboardTopData1.MixedFodderAccurateRatio.Title, v.PastureName)
+		dashboardTopData1.MixedFodderAccurateRatio.Ratio = append(dashboardTopData1.MixedFodderAccurateRatio.Ratio, 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("%.2f", v.Ratio))
+		dashboardTopData1.SprinkleFodderAccurateRatio.Title = append(dashboardTopData1.SprinkleFodderAccurateRatio.Title, v.PastureName)
+		dashboardTopData1.SprinkleFodderAccurateRatio.Ratio = append(dashboardTopData1.SprinkleFodderAccurateRatio.Ratio, 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("%.2f", v.Ratio))
+		dashboardTopData1.SprinkleFodderCorrectRatio.Title = append(dashboardTopData1.SprinkleFodderCorrectRatio.Title, v.PastureName)
+		dashboardTopData1.SprinkleFodderCorrectRatio.Ratio = append(dashboardTopData1.SprinkleFodderCorrectRatio.Ratio, v.Ratio)
 	}
-
-	res.Data = dashboardTopData1
+	res.Data.Chart = dashboardTopData1
 	return res, nil
 }