Browse Source

区间计算,计算顺序改成正序计算

xyxie 6 months ago
parent
commit
0a5cdd0a86
1 changed files with 20 additions and 15 deletions
  1. 20 15
      services/data/range_analysis/chart_info.go

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

@@ -61,7 +61,7 @@ func GetAutoCalculateDateDataList(currentDate string, dataList []*data_manage.Ed
 		// 根据日期,获取数据
 		for _, vv := range dataList {
 			dataTimeT, _ := time.ParseInLocation(utils.FormatDate, vv.DataTime, time.Local)
-			if dataTimeT.After(calStartTime) && dataTimeT.Before(calEndTime) ||
+			if (dataTimeT.After(calStartTime) && dataTimeT.Before(calEndTime)) ||
 				dataTimeT.Equal(calStartTime) ||
 				dataTimeT.Equal(calEndTime) {
 				newDataList = append(newDataList, vv)
@@ -173,8 +173,8 @@ func HandleDataByCalculateType(originList []*data_manage.ChartRangeAnalysisDateD
 					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
 					}
@@ -196,8 +196,8 @@ func HandleDataByCalculateType(originList []*data_manage.ChartRangeAnalysisDateD
 				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
 				}
@@ -229,8 +229,8 @@ func HandleDataByCalculateType(originList []*data_manage.ChartRangeAnalysisDateD
 					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
 					}
@@ -261,8 +261,8 @@ func HandleDataByCalculateType(originList []*data_manage.ChartRangeAnalysisDateD
 				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
 				}
@@ -655,19 +655,20 @@ func getChartDataByEdbInfo(edbInfoMapping *data_manage.ChartEdbInfoMapping, req
 	edbEndDate := edbEndDateTime.AddDate(0, 0, 1).Format(utils.FormatDate)
 
 	// 获取时间基准指标在时间区间内的值
-	dataListTmp := make([]*data_manage.EdbDataList, 0)
+	dataList := make([]*data_manage.EdbDataList, 0)
 	switch edbInfoMapping.EdbInfoCategoryType {
 	case 0:
-		dataListTmp, err = data_manage.GetEdbDataList(edbInfoMapping.Source, edbInfoMapping.SubSource, edbInfoMapping.EdbInfoId, "", "")
+		dataList, err = data_manage.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 data_manage.SortEdbDataList
+	/*var dataList data_manage.SortEdbDataList
 	dataList = dataListTmp
-	sort.Sort(dataList)
+	ascDataList := dataListTmp
+	sort.Sort(dataList)*/
 	dateList := make([]*data_manage.ChartRangeAnalysisDateDataItem, 0)
 	switch req.DateRangeType {
 	case 0:
@@ -1363,7 +1364,11 @@ func FormatChartEdbInfoMappings(chartInfoId int, mappings []*data_manage.ChartEd
 func GetEdbDateByMoveForward(startDate string, moveForward int, edbDataList []*data_manage.EdbDataList) (date string) {
 	// 根据日期进行排序
 	index := 0
-	for _, v := range edbDataList {
+	// 把正序的指标改成倒序
+	var dataList data_manage.SortEdbDataList
+	dataList = edbDataList
+	sort.Sort(dataList)
+	for _, v := range dataList {
 		if v.DataTime == startDate {
 			index += 1
 			continue