Просмотр исходного кода

fix:预测指标的结束日期逻辑

Roc 10 месяцев назад
Родитель
Сommit
9b858327e1
2 измененных файлов с 14 добавлено и 6 удалено
  1. 6 6
      models/edb_info.go
  2. 8 0
      models/predict_edb_data_base.go

+ 6 - 6
models/edb_info.go

@@ -564,14 +564,14 @@ func GetChartPredictEdbInfoDataListByConfList(predictEdbConfList []*PredictEdbCo
 	//预测规则,1:最新,2:固定值,3:同比,4:同差,5:环比,6:环差,7:N期移动均值,8:N期段线性外推值
 
 	for _, predictEdbConf := range predictEdbConfList {
-		dataEndTime := endDate
-		if predictEdbConf.EndDate.Before(dataEndTime) {
-			dataEndTime = predictEdbConf.EndDate
-		}
-
+		//dataEndTime := endDate
+		//if predictEdbConf.EndDate.Before(dataEndTime) {
+		//	dataEndTime = predictEdbConf.EndDate
+		//}
+		endDate = predictEdbConf.EndDate
 		var tmpMinValue, tmpMaxValue float64 // 当前预测结果中的最大/最小值
 
-		dayList := getPredictEdbDayList(startDate, dataEndTime, frequency, dataDateType)
+		dayList := getPredictEdbDayList(startDate, endDate, frequency, dataDateType)
 		if len(dayList) <= 0 { // 如果未来没有日期的话,那么就退出当前循环,进入下一个循环
 			continue
 		}

+ 8 - 0
models/predict_edb_data_base.go

@@ -408,6 +408,14 @@ func (obj PredictStandardBase) refresh(to orm.TxOrmer, edbInfo *EdbInfo, predict
 			//校验待删除日期数据里面是否存在该元素,如果存在的话,那么移除该日期
 			delete(removeDataTimeMap, currDateStr)
 
+			// 格式化库中的指标数据,并保留4位小数
+			existValDec, tmpErr := decimal.NewFromString(existVal)
+			if tmpErr != nil {
+				err = tmpErr
+				return
+			}
+			existVal = existValDec.Round(4).String()
+
 			if existVal != saveValue {
 				sql := ` UPDATE %s SET value=?,modify_time=NOW() WHERE edb_info_id=? AND data_time=? `
 				sql = fmt.Sprintf(sql, dataTableName)