Преглед на файлове

statistic: 代码优化

Yi преди 1 година
родител
ревизия
854e1df363
променени са 3 файла, в които са добавени 139 реда и са изтрити 110 реда
  1. 130 0
      model/formula_estimate.go
  2. 1 0
      module/backend/pasture_sync_service.go
  3. 8 110
      module/backend/statistic_service.go

+ 130 - 0
model/formula_estimate.go

@@ -1,5 +1,10 @@
 package model
 
+import (
+	"fmt"
+	operationPb "kpt-tmr-group/proto/go/backend/operation"
+)
+
 type PastureCommonRequest struct {
 	Name       string      `json:"name"`
 	Page       int32       `json:"page,omitempty"`
@@ -95,6 +100,23 @@ type FeedStatisticsParams struct {
 	Times     string `json:"times"`
 }
 
+func NewFeedStatisticsParams(pastureId int64, req *operationPb.SearchFeedStatisticsRequest) *FeedStatisticsParams {
+	times := ""
+	if req.ClassNumber > 0 {
+		times = fmt.Sprintf("%d", req.ClassNumber)
+	}
+	return &FeedStatisticsParams{
+		PastureId: fmt.Sprintf("%d", pastureId),
+		StartTime: req.StartTime,
+		StopTime:  req.EndTime,
+		Date:      req.StartTime,
+		FeedTName: req.FormulaTemplate,
+		BarName:   req.BarnName,
+		CowClass:  req.CattleCategoryName,
+		Times:     times,
+	}
+}
+
 // FeedChartParams 饲喂效率-图形统计
 type FeedChartParams struct {
 	ParamMaps interface{} `json:"parammaps"`
@@ -127,6 +149,31 @@ type MixFeedStatisticsParams struct {
 	Error       bool   `json:"error,omitempty"`
 }
 
+func NewMixFeedStatisticsParams(pastureId int64, req *operationPb.MixFeedStatisticsRequest) *MixFeedStatisticsParams {
+	times := ""
+	if req.ClassNumber > 0 {
+		times = fmt.Sprintf("%d", req.ClassNumber)
+	}
+	return &MixFeedStatisticsParams{
+		PastureId:   fmt.Sprintf("%d", pastureId),
+		StartTime:   req.StartTime,
+		StopTime:    req.StartTime,
+		TmrTName:    req.EquipmentName,
+		ProjName:    req.TrainNumber,
+		Times:       times,
+		ButtonType:  req.ButtonType,
+		TempletName: req.FormulationName,
+		Isuse:       req.IsUse,
+		Hlwc1:       req.Hlwc1,
+		Hlwc2:       req.Hlwc2,
+		Hlzq1:       req.Hlzq1,
+		Hlzq2:       req.Hlzq2,
+		Hlzql1:      req.Hlzql1,
+		Hlzql2:      req.Hlzql2,
+		Error:       req.IsError,
+	}
+}
+
 // SprinkleStatisticsParams 准确性分析-撒料统计
 type SprinkleStatisticsParams struct {
 	PastureId   string `json:"pastureid"`
@@ -148,6 +195,32 @@ type SprinkleStatisticsParams struct {
 	Error       bool   `json:"error,omitempty"`
 }
 
+func NewSprinkleStatisticsParams(pastureId int64, req *operationPb.SprinkleStatisticsRequest) *SprinkleStatisticsParams {
+	times := ""
+	if req.ClassNumber > 0 {
+		times = fmt.Sprintf("%d", req.ClassNumber)
+	}
+	return &SprinkleStatisticsParams{
+		PastureId:   fmt.Sprintf("%d", pastureId),
+		StartTime:   req.StartTime,
+		StopTime:    req.StartTime,
+		TmrTName:    req.EquipmentName,
+		ProjName:    req.TrainNumber,
+		Times:       times,
+		ButtonType:  req.ButtonType,
+		TempletName: req.FormulationName,
+		Isuse:       req.IsUse,
+		Fname:       req.BarnName,
+		Slwc1:       req.Slwc1,
+		Slwc2:       req.Slwc2,
+		Slzq2:       req.Slzq2,
+		Slzq1:       req.Slzq1,
+		Slzql1:      req.Slzql1,
+		Slzql2:      req.Slzql2,
+		Error:       req.IsError,
+	}
+}
+
 // ProcessAnalysisParams 过程分析
 type ProcessAnalysisParams struct {
 	PastureId   string   `json:"pastureid"`
@@ -168,6 +241,27 @@ type ProcessAnalysisParams struct {
 	Error       string   `json:"error,omitempty"`
 }
 
+func NewProcessAnalysisParams(pastureId int64, req *operationPb.ProcessAnalysisRequest) *ProcessAnalysisParams {
+	return &ProcessAnalysisParams{
+		PastureId:   fmt.Sprintf("%d", pastureId),
+		StartTime:   req.StartTime,
+		StopTime:    req.StartTime,
+		TmrTName:    req.TmrName,
+		IsCompleted: "",
+		LpPlanType:  fmt.Sprintf("%d", req.PlanType),
+		FClassId:    req.MixFeedType,
+		Hlzq1:       req.Hlzq1,
+		Hlzq2:       req.Hlzq2,
+		Hlwc1:       req.Hlwc1,
+		Hlwc2:       req.Hlwc2,
+		Slwc1:       req.Slwc1,
+		Slwc2:       req.Slwc2,
+		Slzq2:       req.Slzq2,
+		Slzq1:       req.Slzq1,
+		Error:       req.ErrorRange,
+	}
+}
+
 // AccuracyAggParams 准确性分析-汇总统计
 type AccuracyAggParams struct {
 	PastureId string `json:"pastureid"`
@@ -194,6 +288,33 @@ type AccuracyAggParams struct {
 	Error     bool   `json:"error,omitempty"`
 }
 
+func NewAccuracyAggParams(pastureId int64, req *operationPb.AccuracyAggStatisticsRequest) *AccuracyAggParams {
+	return &AccuracyAggParams{
+		PastureId: fmt.Sprintf("%d", pastureId),
+		StartTime: req.StartTime,
+		StopTime:  req.EndTime,
+		FName:     req.Fname,
+		Sort:      req.Sort,
+		Status:    req.Status,
+		Times:     req.Times,
+		Genre:     req.Genre,
+		IsDate:    req.Isdate,
+		Hlwc1:     req.Hlwc1,
+		Hlwc2:     req.Hlwc2,
+		Hlzq1:     req.Hlzq1,
+		Hlzq2:     req.Hlzq2,
+		Hlzql1:    req.Hlzql1,
+		Hlzql2:    req.Hlzql2,
+		Slwc1:     req.Slwc1,
+		Slwc2:     req.Slwc2,
+		Slzq1:     req.Slzq1,
+		Slzq2:     req.Slzq2,
+		Slzql1:    req.Slzql1,
+		Slzql2:    req.Slzql2,
+		Error:     req.IsError,
+	}
+}
+
 // TrainNumberParams 班次
 type TrainNumberParams struct {
 	PastureId string `json:"pastureid"`
@@ -255,3 +376,12 @@ type MixedSprinkleDetailRequest struct {
 	PId       string `json:"pid"`
 	FClassId  string `json:"fclassid"`
 }
+
+func NewMixedSprinkleDetailRequest(pastureId int64, req *operationPb.ProcessMixedSprinkleDetailRequest) *MixedSprinkleDetailRequest {
+	return &MixedSprinkleDetailRequest{
+		PastureId: fmt.Sprintf("%d", pastureId),
+		FClassId:  req.FclassId,
+		PId:       req.Pid,
+		Id:        req.Id,
+	}
+}

+ 1 - 0
module/backend/pasture_sync_service.go

@@ -192,6 +192,7 @@ func (s *StoreEntry) FeedSyncData(ctx context.Context, req *operationPb.FeedForm
 		ok           bool
 		groupPasture *model.GroupPasture
 	)
+
 	for _, pastureDetail := range groupPastureList {
 		if pastureDetail.Id != int64(req.PastureId) {
 			continue

+ 8 - 110
module/backend/statistic_service.go

@@ -307,7 +307,7 @@ func (s *StoreEntry) UserMaterialsStatisticsExcelExport(ctx context.Context, req
 	}
 
 	excelValuesKeys := make([]int, 0)
-	for k, _ := range excelValuesList {
+	for k := range excelValuesList {
 		excelValuesKeys = append(excelValuesKeys, k)
 	}
 	sort.Ints(excelValuesKeys)
@@ -378,11 +378,6 @@ func (s *StoreEntry) SearchFeedStatistics(ctx context.Context, req *operationPb.
 		}
 	}
 
-	times := ""
-	if req.ClassNumber > 0 {
-		times = fmt.Sprintf("%d", req.ClassNumber)
-	}
-
 	wg := sync.WaitGroup{}
 	wg.Add(len(req.PastureId))
 	for _, v := range req.PastureId {
@@ -405,16 +400,7 @@ func (s *StoreEntry) SearchFeedStatistics(ctx context.Context, req *operationPb.
 				Offset:     req.Pagination.PageOffset,
 				PageCount:  req.Pagination.PageSize,
 				ReturnType: "Map",
-				ParamMaps: &model.FeedStatisticsParams{
-					PastureId: fmt.Sprintf("%d", pastureID),
-					StartTime: req.StartTime,
-					StopTime:  req.EndTime,
-					Date:      req.StartTime,
-					FeedTName: req.FormulaTemplate,
-					BarName:   req.BarnName,
-					CowClass:  req.CattleCategoryName,
-					Times:     times,
-				},
+				ParamMaps:  model.NewFeedStatisticsParams(int64(pastureID), req),
 			}
 			response := &model.PastureCommonResponse{
 				Data: &model.PastureCommonData{},
@@ -587,31 +573,9 @@ func (s *StoreEntry) SearchAccuracyAggStatistics(ctx context.Context, req *opera
 	}
 
 	body := &model.FeedChartParams{
-		ParamMaps: &model.AccuracyAggParams{
-			PastureId: fmt.Sprintf("%d", pastureId),
-			StartTime: req.StartTime,
-			StopTime:  req.EndTime,
-			FName:     req.Fname,
-			Sort:      req.Sort,
-			Status:    req.Status,
-			Times:     req.Times,
-			Genre:     req.Genre,
-			IsDate:    req.Isdate,
-			Hlwc1:     req.Hlwc1,
-			Hlwc2:     req.Hlwc2,
-			Hlzq1:     req.Hlzq1,
-			Hlzq2:     req.Hlzq2,
-			Hlzql1:    req.Hlzql1,
-			Hlzql2:    req.Hlzql2,
-			Slwc1:     req.Slwc1,
-			Slwc2:     req.Slwc2,
-			Slzq1:     req.Slzq1,
-			Slzq2:     req.Slzq2,
-			Slzql1:    req.Slzql1,
-			Slzql2:    req.Slzql2,
-			Error:     req.IsError,
-		},
+		ParamMaps: model.NewAccuracyAggParams(int64(pastureId), req),
 	}
+
 	response := &model.PastureCommonResponse{Data: &model.PastureCommonData{}}
 	if _, err = s.PastureHttpClient(ctx, model.UrlSummary, int64(req.PastureId), body, response); err != nil {
 		return nil, xerr.WithStack(err)
@@ -630,35 +594,13 @@ func (s *StoreEntry) SearchMixFeedStatistics(ctx context.Context, req *operation
 		pastureId = int32(groupPasture.PastureId)
 	}
 
-	times := ""
-	if req.ClassNumber > 0 {
-		times = fmt.Sprintf("%d", req.ClassNumber)
-	}
-
 	body := &model.PastureCommonRequest{
 		Name:       req.ApiName,
 		Page:       req.Pagination.Page,
 		Offset:     req.Pagination.PageOffset,
 		PageCount:  req.Pagination.PageSize,
 		ReturnType: "Map",
-		ParamMaps: &model.MixFeedStatisticsParams{
-			PastureId:   fmt.Sprintf("%d", pastureId),
-			StartTime:   req.StartTime,
-			StopTime:    req.StartTime,
-			TmrTName:    req.EquipmentName,
-			ProjName:    req.TrainNumber,
-			Times:       times,
-			ButtonType:  req.ButtonType,
-			TempletName: req.FormulationName,
-			Isuse:       req.IsUse,
-			Hlwc1:       req.Hlwc1,
-			Hlwc2:       req.Hlwc2,
-			Hlzq1:       req.Hlzq1,
-			Hlzq2:       req.Hlzq2,
-			Hlzql1:      req.Hlzql1,
-			Hlzql2:      req.Hlzql2,
-			Error:       req.IsError,
-		},
+		ParamMaps:  model.NewMixFeedStatisticsParams(int64(pastureId), req),
 	}
 	response := &model.PastureCommonResponse{Data: &model.PastureCommonData{}}
 	if _, err = s.PastureHttpClient(ctx, model.UrlDataByName, int64(req.PastureId), body, response); err != nil {
@@ -678,35 +620,13 @@ func (s *StoreEntry) SearchSprinkleStatistics(ctx context.Context, req *operatio
 		pastureId = int32(groupPasture.PastureId)
 	}
 
-	times := ""
-	if req.ClassNumber > 0 {
-		times = fmt.Sprintf("%d", req.ClassNumber)
-	}
 	body := &model.PastureCommonRequest{
 		Name:       req.ApiName,
 		Page:       req.Pagination.Page,
 		Offset:     req.Pagination.PageOffset,
 		PageCount:  req.Pagination.PageSize,
 		ReturnType: "Map",
-		ParamMaps: &model.SprinkleStatisticsParams{
-			PastureId:   fmt.Sprintf("%d", pastureId),
-			StartTime:   req.StartTime,
-			StopTime:    req.StartTime,
-			TmrTName:    req.EquipmentName,
-			ProjName:    req.TrainNumber,
-			Times:       times,
-			ButtonType:  req.ButtonType,
-			TempletName: req.FormulationName,
-			Isuse:       req.IsUse,
-			Fname:       req.BarnName,
-			Slwc1:       req.Slwc1,
-			Slwc2:       req.Slwc2,
-			Slzq2:       req.Slzq2,
-			Slzq1:       req.Slzq1,
-			Slzql1:      req.Slzql1,
-			Slzql2:      req.Slzql2,
-			Error:       req.IsError,
-		},
+		ParamMaps:  model.NewSprinkleStatisticsParams(int64(pastureId), req),
 	}
 	response := &model.PastureCommonResponse{Data: &model.PastureCommonData{}}
 	if _, err := s.PastureHttpClient(ctx, model.UrlDataByName, int64(req.PastureId), body, response); err != nil {
@@ -732,24 +652,7 @@ func (s *StoreEntry) SearchProcessAnalysis(ctx context.Context, req *operationPb
 		Offset:     req.Pagination.PageOffset,
 		PageCount:  req.Pagination.PageSize,
 		ReturnType: "Map",
-		ParamMaps: &model.ProcessAnalysisParams{
-			PastureId:   fmt.Sprintf("%d", pastureId),
-			StartTime:   req.StartTime,
-			StopTime:    req.StartTime,
-			TmrTName:    req.TmrName,
-			IsCompleted: "",
-			LpPlanType:  fmt.Sprintf("%d", req.PlanType),
-			FClassId:    req.MixFeedType,
-			Hlzq1:       req.Hlzq1,
-			Hlzq2:       req.Hlzq2,
-			Hlwc1:       req.Hlwc1,
-			Hlwc2:       req.Hlwc2,
-			Slwc1:       req.Slwc1,
-			Slwc2:       req.Slwc2,
-			Slzq2:       req.Slzq2,
-			Slzq1:       req.Slzq1,
-			Error:       req.ErrorRange,
-		},
+		ParamMaps:  model.NewProcessAnalysisParams(int64(pastureId), req),
 	}
 	response := &model.PastureCommonResponse{Data: &model.PastureCommonData{}}
 	if _, err = s.PastureHttpClient(ctx, model.UrlProcess, int64(req.PastureId), body, response); err != nil {
@@ -777,12 +680,7 @@ func (s *StoreEntry) AnalysisMixedSprinkleDetail(ctx context.Context, req *opera
 		Offset:     req.Pagination.PageOffset,
 		PageCount:  req.Pagination.PageSize,
 		ReturnType: "Map",
-		ParamMaps: &model.MixedSprinkleDetailRequest{
-			PastureId: fmt.Sprintf("%d", pastureId),
-			FClassId:  req.FclassId,
-			PId:       req.Pid,
-			Id:        req.Id,
-		},
+		ParamMaps:  model.NewMixedSprinkleDetailRequest(int64(pastureId), req),
 	}
 	response := &model.PastureCommonResponse{Data: &model.PastureCommonData{}}