|
@@ -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)
|