Browse Source

Merge branch 'feature/group_list' of xuyiping/kpt-tmr-group into release/v1.0.2

xuyiping 1 year ago
parent
commit
22aa1d4296
2 changed files with 20 additions and 17 deletions
  1. 1 1
      model/group_pasture.go
  2. 19 16
      module/backend/dashboard_service.go

+ 1 - 1
model/group_pasture.go

@@ -137,7 +137,7 @@ func NewPastureClient(g *GroupPasture) *PastureClient {
 	return &PastureClient{
 		Detail: g,
 		authClient: &http.Client{
-			Timeout: time.Duration(10) * time.Second,
+			Timeout: time.Duration(15) * time.Second,
 		},
 	}
 }

+ 19 - 16
module/backend/dashboard_service.go

@@ -122,8 +122,8 @@ func (s *StoreEntry) PasturePrefExecTimeData(ctx context.Context, req *operation
 	return res, nil
 }
 
-func (s *StoreEntry) PastureSprinkleFeedTime(ctx context.Context, req *operationPb.SprinkleFeedTimeRequest) (map[int64][]*model.SprinkleStatisticsDataList, []*model.GroupPasture, error) {
-	res, pastureList := make(map[int64][]*model.SprinkleStatisticsDataList), make([]*model.GroupPasture, 0)
+func (s *StoreEntry) PastureSprinkleFeedTime(ctx context.Context, req *operationPb.SprinkleFeedTimeRequest) (map[int64][]*model.SprinkleStatisticsDataList, map[int64]*model.GroupPasture, error) {
+	res, pastureList := make(map[int64][]*model.SprinkleStatisticsDataList), make(map[int64]*model.GroupPasture, 0)
 	wg := sync.WaitGroup{}
 	wg.Add(len(req.PastureIds))
 	var muError error
@@ -159,7 +159,7 @@ func (s *StoreEntry) PastureSprinkleFeedTime(ctx context.Context, req *operation
 				muError = multierr.Append(muError, xerr.Custom(response.Msg))
 			}
 			res[groupPasture.Id] = response.Data
-			pastureList = append(pastureList, groupPasture)
+			pastureList[groupPasture.Id] = groupPasture
 		}(pasture)
 	}
 	wg.Wait()
@@ -680,27 +680,30 @@ func (s *StoreEntry) SprinkleFeedTime(ctx context.Context, req *operationPb.Spri
 			TableList: make([]*model.SprinkleFeedTimeTable, 0),
 		},
 	}
-	pastureSprinkleDataList, pastureSlice, err := s.PastureSprinkleFeedTime(ctx, req)
+	pastureSprinkleDataList, pastureList, err := s.PastureSprinkleFeedTime(ctx, req)
 	if err != nil {
 		return nil, xerr.WithStack(err)
 	}
 
-	sort.Slice(pastureSlice, func(i, j int) bool {
-		return pastureSlice[i].PastureId < pastureSlice[j].PastureId
-	})
-
 	tableList := make([]*model.SprinkleFeedTimeTable, 0)
-	infoSprinkleNumber, errorSprinkleNumber := make([]int32, 0), make([]int32, 0)
-	for _, pasture := range pastureSlice {
-		for pastureId, data := range pastureSprinkleDataList {
-			if pastureId != pasture.PastureId {
-				continue
-			}
+	infoSprinkleNumber, errorSprinkleNumber, pastureIds := make([]int32, 0), make([]int32, 0), make([]int, 0)
+
+	for pastureId, _ := range pastureSprinkleDataList {
+		pastureIds = append(pastureIds, int(pastureId))
+	}
+
+	sort.Ints(pastureIds)
+	pastureInfo := &model.GroupPasture{}
+	for _, pastureId := range pastureIds {
+		if pastureData, ok := pastureList[int64(pastureId)]; ok {
+			pastureInfo = pastureData
+		}
 
+		if data, ok := pastureSprinkleDataList[int64(pastureId)]; ok {
 			sprinkleFeedTimeList := make(map[int32]map[int32][]int64, 0)
 			for _, v := range data {
 				tableList = append(tableList, &model.SprinkleFeedTimeTable{
-					PastureName:             pasture.Name,
+					PastureName:             pastureInfo.Name,
 					BarnName:                v.FName,
 					ClassNumber:             fmt.Sprintf("%d", v.Times),
 					RealitySprinkleFeedTime: tool.TimeSub(v.InTime, v.ProcessTime),
@@ -713,7 +716,7 @@ func (s *StoreEntry) SprinkleFeedTime(ctx context.Context, req *operationPb.Spri
 				sprinkleFeedTimeList[v.FBarId][v.Times] = append(sprinkleFeedTimeList[v.FBarId][v.Times], realityTimeUnix.Unix())
 			}
 
-			res.Data.Chart.Title = append(res.Data.Chart.Title, pasture.Name)
+			res.Data.Chart.Title = append(res.Data.Chart.Title, pastureInfo.Name)
 			infoNumber, errNumber := sprinkleExecTimeAnalysis(sprinkleFeedTimeList)
 			infoSprinkleNumber = append(infoSprinkleNumber, infoNumber)
 			errorSprinkleNumber = append(errorSprinkleNumber, errNumber)