Przeglądaj źródła

fix:开始日期也要调整

Roc 1 rok temu
rodzic
commit
0eef6bf164
1 zmienionych plików z 27 dodań i 1 usunięć
  1. 27 1
      models/edb_data_calculate_nhcc.go

+ 27 - 1
models/edb_data_calculate_nhcc.go

@@ -782,6 +782,29 @@ func getNhccData(to orm.TxOrmer, existItemA, existItemB *EdbInfoCalculateMapping
 		err = errors.New(errMsg)
 		return
 	}
+	// 拟合残差计算的开始日期判断
+	{
+		startAData := aDataList[0]
+		tmpStartDate, tmpErr := time.ParseInLocation(utils.FormatDate, startAData.DataTime, time.Local)
+		if tmpErr != nil {
+			err = tmpErr
+			return
+		}
+		// 如果A指标的最新数据日期晚于拟合残差的结束日期,那么就用A指标的最新数据日期
+		if tmpStartDate.After(newNhccDate.StartDate) {
+			newNhccDate.StartDate = tmpStartDate
+		}
+		startBData := bDataList[0]
+		tmpStartDate, tmpErr = time.ParseInLocation(utils.FormatDate, startBData.DataTime, time.Local)
+		if tmpErr != nil {
+			err = tmpErr
+			return
+		}
+		// 如果B指标的最新数据日期晚于拟合残差的结束日期,那么就用A指标的最新数据日期
+		if tmpStartDate.After(newNhccDate.StartDate) {
+			newNhccDate.StartDate = tmpStartDate
+		}
+	}
 	// 拟合残差计算的结束日期判断
 	{
 		endAData := aDataList[len(aDataList)-1]
@@ -832,12 +855,15 @@ func handleNhccData(dataList []*EdbInfoSearchData, moveDay int) (newDataList []E
 		newDate := currDate.AddDate(0, 0, moveDay)
 		newDateMap[newDate] = value
 	}
+
+	// 开始平移天数
 	minDate = minDate.AddDate(0, 0, moveDay)
 	maxDate = maxDate.AddDate(0, 0, moveDay)
 
-	// 开始平移天数
+	// 计算最早日期与最晚日期之间的相差天数
 	dayNum := utils.GetTimeSubDay(minDate, maxDate)
 
+	// 将最早日期与最晚日期之间不存在的日期进行数据补全(按前一期数据补充)
 	for i := 0; i <= dayNum; i++ {
 		currDate := minDate.AddDate(0, 0, i)
 		tmpValue, ok := newDateMap[currDate]