Przeglądaj źródła

Merge branch 'chart/13.8' into debug

# Conflicts:
#	utils/constants.go
Roc 2 lat temu
rodzic
commit
280fb6118e
2 zmienionych plików z 20 dodań i 29 usunięć
  1. 18 29
      services/chart/correlation/chart_info.go
  2. 2 0
      utils/constants.go

+ 18 - 29
services/chart/correlation/chart_info.go

@@ -211,6 +211,10 @@ func GetChartDataByEdbInfo(edbInfoMappingA, edbInfoMappingB *chart_edb_mapping.C
 		}
 	}
 
+	// 计算窗口,不包含第一天
+	startDateTime, _ := time.ParseInLocation(utils.FormatDate, startDate, time.Local)
+	startDate = startDateTime.AddDate(0, 0, 1).Format(utils.FormatDate)
+
 	//// 2023-03-02 时间序列始终以指标B为基准, 始终是A进行平移
 	//baseEdbInfo := edbInfoMappingB
 	//changeEdbInfo := edbInfoMappingA
@@ -230,19 +234,6 @@ func GetChartDataByEdbInfo(edbInfoMappingA, edbInfoMappingB *chart_edb_mapping.C
 		return
 	}
 
-	// 移除多余的一组数据(开始日期的数据不能用作计算)
-	{
-		divDay, tmpErr := utils.GetDaysBetween2Date(utils.FormatDate, endDate, startDate)
-		if tmpErr != nil {
-			err = tmpErr
-			return
-		}
-		lenAData := len(aDataList)
-		if lenAData > divDay {
-			aDataList = aDataList[lenAData-divDay:]
-		}
-	}
-
 	// 获取变频指标所有日期的值, 插值法完善数据
 	bDataList := make([]*edb_data.EdbDataList, 0)
 	switch changeEdbInfo.EdbInfoCategoryType {
@@ -371,6 +362,10 @@ func GetRollingCorrelationChartDataByEdbInfo(edbInfoMappingA, edbInfoMappingB *c
 	xDateTimeValue = make([]string, 0)
 	yData := make([]float64, 0)
 
+	// 计算窗口,不包含第一天
+	startDateTime, _ := time.ParseInLocation(utils.FormatDate, startDate, time.Local)
+	startDate = startDateTime.AddDate(0, 0, 1).Format(utils.FormatDate)
+
 	baseEdbInfo := edbInfoMappingA
 	changeEdbInfo := edbInfoMappingB
 
@@ -386,19 +381,6 @@ func GetRollingCorrelationChartDataByEdbInfo(edbInfoMappingA, edbInfoMappingB *c
 		return
 	}
 
-	// 移除多余的一组数据(开始日期的数据不能用作计算)
-	{
-		divDay, tmpErr := utils.GetDaysBetween2Date(utils.FormatDate, endDate, startDate)
-		if tmpErr != nil {
-			err = tmpErr
-			return
-		}
-		lenAData := len(aDataList)
-		if lenAData > divDay {
-			aDataList = aDataList[lenAData-divDay:]
-		}
-	}
-
 	// 获取变频指标所有日期的值, 插值法完善数据
 	bDataList := make([]*edb_data.EdbDataList, 0)
 	switch changeEdbInfo.EdbInfoCategoryType {
@@ -456,8 +438,15 @@ func GetRollingCorrelationChartDataByEdbInfo(edbInfoMappingA, edbInfoMappingB *c
 			// 取出对应的基准日期的值
 			for i := 0; i < calculateDay; i++ {
 				iDay := currDay.AddDate(0, 0, i).Format(utils.FormatDate)
-				baseCalculateData = append(baseCalculateData, baseDataMap[iDay])
-				yCalculateData = append(yCalculateData, changeDataMap[iDay])
+
+				tmpBaseValue, ok1 := baseDataMap[iDay]
+				tmpChangeValue, ok2 := changeDataMap[iDay]
+				if ok1 && ok2 {
+					baseCalculateData = append(baseCalculateData, tmpBaseValue)
+					yCalculateData = append(yCalculateData, tmpChangeValue)
+				} else {
+					continue
+				}
 			}
 
 			// 公式计算出领先/滞后频度对应点的相关性系数
@@ -466,7 +455,7 @@ func GetRollingCorrelationChartDataByEdbInfo(edbInfoMappingA, edbInfoMappingB *c
 				ratio = utils.CalculateCorrelationByIntArr(baseCalculateData, yCalculateData)
 			}
 			yData = append(yData, ratio)
-			xDateTimeValue = append(xDateTimeValue, currDay.AddDate(0, 0, calculateDay).Format(utils.FormatDate))
+			xDateTimeValue = append(xDateTimeValue, currDay.AddDate(0, 0, calculateDay-1).Format(utils.FormatDate))
 		}
 	}
 

+ 2 - 0
utils/constants.go

@@ -100,6 +100,7 @@ const (
 	DATA_SOURCE_PREDICT_CALCULATE_KSZS                  //预测指标 - 计算指标(扩散指数)->56
 	DATA_SOURCE_BAIINFO                                 //百川盈孚 ->57
 	DATA_SOURCE_STOCK_PLANT                             //存量装置 ->58
+	DATA_SOURCE_CALCULATE_CORRELATION                   //相关性计算->59
 )
 
 const (
@@ -230,6 +231,7 @@ var SystemSourceList = []int{
 	DATA_SOURCE_PREDICT_CALCULATE_NH,         //预测指标 - 计算指标(年化)->55
 	DATA_SOURCE_PREDICT_CALCULATE_KSZS,       //预测指标 - 计算指标(扩散指数)->56
 	DATA_SOURCE_STOCK_PLANT,                  //存量装置 ->58
+	DATA_SOURCE_CALCULATE_CORRELATION,        //相关性计算->59
 }
 
 const (