Browse Source

区间计算优化

xyxie 6 months ago
parent
commit
893f7fdd09
1 changed files with 16 additions and 15 deletions
  1. 16 15
      services/data/range_analysis/chart_info.go

+ 16 - 15
services/data/range_analysis/chart_info.go

@@ -171,8 +171,8 @@ func HandleDataByCalculateType(originList []*models.ChartRangeAnalysisDateDataIt
 					if len(calDataList) == 0 {
 						continue
 					}
-					baseVal = calDataList[len(calDataList)-1].Value
-					baseDate := calDataList[len(calDataList)-1].DataTime
+					baseVal = calDataList[0].Value
+					baseDate := calDataList[0].DataTime
 					if baseVal == 0 {
 						continue
 					}
@@ -194,8 +194,8 @@ func HandleDataByCalculateType(originList []*models.ChartRangeAnalysisDateDataIt
 				if len(item.DataList) == 0 {
 					break
 				}
-				baseVal := item.DataList[len(item.DataList)-1].Value
-				baseDate := item.DataList[len(item.DataList)-1].DataTime
+				baseVal := item.DataList[0].Value
+				baseDate := item.DataList[0].DataTime
 				if baseVal == 0 {
 					break
 				}
@@ -227,8 +227,8 @@ func HandleDataByCalculateType(originList []*models.ChartRangeAnalysisDateDataIt
 					if len(calDataList) == 0 {
 						continue
 					}
-					baseVal = calDataList[len(calDataList)-1].Value
-					baseDate = calDataList[len(calDataList)-1].DataTime
+					baseVal = calDataList[0].Value
+					baseDate = calDataList[0].DataTime
 					if v.DataTime == baseDate {
 						continue
 					}
@@ -259,8 +259,8 @@ func HandleDataByCalculateType(originList []*models.ChartRangeAnalysisDateDataIt
 				if len(item.DataList) == 0 {
 					break
 				}
-				baseVal := item.DataList[len(item.DataList)-1].Value
-				baseDate := item.DataList[len(item.DataList)-1].DataTime
+				baseVal := item.DataList[0].Value
+				baseDate := item.DataList[0].DataTime
 				if baseVal == 0 {
 					break
 				}
@@ -653,19 +653,16 @@ func getChartDataByEdbInfo(edbInfoMapping *models.ChartEdbInfoMapping, req *mode
 	edbEndDate := edbEndDateTime.AddDate(0, 0, 1).Format(utils.FormatDate)
 
 	// 获取时间基准指标在时间区间内的值
-	dataListTmp := make([]*models.EdbDataList, 0)
+	dataList := make([]*models.EdbDataList, 0)
 	switch edbInfoMapping.EdbInfoCategoryType {
 	case 0:
-		dataListTmp, err = models.GetEdbDataList(edbInfoMapping.Source, edbInfoMapping.SubSource, edbInfoMapping.EdbInfoId, "", "")
+		dataList, err = models.GetEdbDataList(edbInfoMapping.Source, edbInfoMapping.SubSource, edbInfoMapping.EdbInfoId, "", "")
 	case 1:
-		_, dataListTmp, _, _, err, _ = data.GetPredictDataListByPredictEdbInfoId(edbInfoMapping.EdbInfoId, "", "", false)
+		_, dataList, _, _, err, _ = data.GetPredictDataListByPredictEdbInfoId(edbInfoMapping.EdbInfoId, "", "", false)
 	default:
 		err = errors.New("指标base类型异常")
 		return
 	}
-	var dataList models.SortEdbDataList
-	dataList = dataListTmp
-	sort.Sort(dataList)
 
 	dateList := make([]*models.ChartRangeAnalysisDateDataItem, 0)
 	switch req.DateRangeType {
@@ -923,7 +920,11 @@ func ChartInfoRefresh(chartInfoId int, uniqueCode string) (isAsync bool, err err
 func GetEdbDateByMoveForward(startDate string, moveForward int, edbDataList []*models.EdbDataList) (date string) {
 	// 根据日期进行排序
 	index := 0
-	for _, v := range edbDataList {
+	var dataList models.SortEdbDataList
+	dataList = edbDataList
+	sort.Sort(dataList)
+
+	for _, v := range dataList {
 		if v.DataTime == startDate {
 			index += 1
 			continue