Przeglądaj źródła

优化超季节性的预测日期

xiexiaoyuan 2 lat temu
rodzic
commit
316e39c37e
1 zmienionych plików z 16 dodań i 8 usunięć
  1. 16 8
      models/predict_edb_data_calculate_cjjx.go

+ 16 - 8
models/predict_edb_data_calculate_cjjx.go

@@ -297,14 +297,6 @@ func refreshAllPredictCalculateCjjx(to orm.TxOrmer, edbInfoId, source int, fromE
 				delete(removeDataTimeMap, av) //将待删除的日期给移除
 
 				val := CjjxSub(currentItem.Value, pastValueList)
-				if fromEdbInfo.LatestDate == av {
-					latestValueDecimal, tmpErr := decimal.NewFromString(val)
-					if tmpErr != nil {
-						err = tmpErr
-						return
-					}
-					latestValue, _ = latestValueDecimal.Truncate(4).Float64() //保留4位小数
-				}
 				if existVal, ok := existDataMap[edbCode+av]; !ok {
 					timestamp := currentDate.UnixNano() / 1e6
 					timestampStr := fmt.Sprintf("%d", timestamp)
@@ -357,5 +349,21 @@ func refreshAllPredictCalculateCjjx(to orm.TxOrmer, edbInfoId, source int, fromE
 			return
 		}
 	}
+
+	//确定最终值
+	var finalLast EdbInfoSearchData
+	sql = ` SELECT data_time , value FROM edb_data_predict_calculate_cjjx WHERE edb_info_id=? and data_time<=? ORDER BY data_time DESC `
+	tmpErr := to.Raw(sql, edbInfoId, latestDateStr).QueryRow(&finalLast)
+	if tmpErr != nil {
+		if tmpErr.Error() != utils.ErrNoRow() {
+			err = tmpErr
+		}else{
+			latestDateStr = "0000-00-00"
+		}
+		return
+	}else{
+		latestDateStr = finalLast.DataTime
+		latestValue = finalLast.Value
+	}
 	return
 }