|
@@ -29,9 +29,13 @@ func GetChartPredictEdbInfoDataListByRule1(edbInfoId int, dataValue float64, sta
|
|
|
|
|
|
|
|
|
|
|
|
-func GetChartPredictEdbInfoDataListByRuleTb(edbInfoId int, tbValue float64, startDate, endDate time.Time, frequency string, predictEdbInfoData []*models.EdbDataList, existMap map[string]float64) (newPredictEdbInfoData []*models.EdbDataList, minValue, maxValue float64) {
|
|
|
+func GetChartPredictEdbInfoDataListByRuleTb(edbInfoId int, tbValue float64, startDate, endDate time.Time, frequency string, realPredictEdbInfoData, predictEdbInfoData []*models.EdbDataList, existMap map[string]float64) (newPredictEdbInfoData []*models.EdbDataList, minValue, maxValue float64) {
|
|
|
+ allDataList := make([]*models.EdbDataList, 0)
|
|
|
+ allDataList = append(allDataList, realPredictEdbInfoData...)
|
|
|
+ allDataList = append(allDataList, predictEdbInfoData...)
|
|
|
newPredictEdbInfoData = predictEdbInfoData
|
|
|
- index := len(predictEdbInfoData)
|
|
|
+
|
|
|
+ index := len(allDataList)
|
|
|
|
|
|
dayList := getPredictEdbDayList(startDate, endDate, frequency)
|
|
|
predictEdbInfoData = make([]*models.EdbDataList, 0)
|
|
@@ -113,12 +117,14 @@ func GetChartPredictEdbInfoDataListByRuleTb(edbInfoId int, tbValue float64, star
|
|
|
if calculateStatus {
|
|
|
tmpData.Value = val
|
|
|
newPredictEdbInfoData = append(newPredictEdbInfoData, tmpData)
|
|
|
+ allDataList = append(allDataList, tmpData)
|
|
|
+ existMap[tmpData.DataTime] = val
|
|
|
|
|
|
|
|
|
if val < minValue {
|
|
|
minValue = val
|
|
|
}
|
|
|
- if val < maxValue {
|
|
|
+ if val > maxValue {
|
|
|
maxValue = val
|
|
|
}
|
|
|
}
|
|
@@ -154,9 +160,13 @@ func TbzDiv(a, b float64) (result float64) {
|
|
|
|
|
|
|
|
|
|
|
|
-func GetChartPredictEdbInfoDataListByRuleTc(edbInfoId int, tcValue float64, startDate, endDate time.Time, frequency string, predictEdbInfoData []*models.EdbDataList, existMap map[string]float64) (newPredictEdbInfoData []*models.EdbDataList, minValue, maxValue float64) {
|
|
|
+func GetChartPredictEdbInfoDataListByRuleTc(edbInfoId int, tcValue float64, startDate, endDate time.Time, frequency string, realPredictEdbInfoData, predictEdbInfoData []*models.EdbDataList, existMap map[string]float64) (newPredictEdbInfoData []*models.EdbDataList, minValue, maxValue float64) {
|
|
|
+ allDataList := make([]*models.EdbDataList, 0)
|
|
|
+ allDataList = append(allDataList, realPredictEdbInfoData...)
|
|
|
+ allDataList = append(allDataList, predictEdbInfoData...)
|
|
|
newPredictEdbInfoData = predictEdbInfoData
|
|
|
- index := len(predictEdbInfoData)
|
|
|
+
|
|
|
+ index := len(allDataList)
|
|
|
|
|
|
dayList := getPredictEdbDayList(startDate, endDate, frequency)
|
|
|
predictEdbInfoData = make([]*models.EdbDataList, 0)
|
|
@@ -238,12 +248,14 @@ func GetChartPredictEdbInfoDataListByRuleTc(edbInfoId int, tcValue float64, star
|
|
|
if calculateStatus {
|
|
|
tmpData.Value = val
|
|
|
newPredictEdbInfoData = append(newPredictEdbInfoData, tmpData)
|
|
|
+ allDataList = append(allDataList, tmpData)
|
|
|
+ existMap[tmpData.DataTime] = val
|
|
|
|
|
|
|
|
|
if val < minValue {
|
|
|
minValue = val
|
|
|
}
|
|
|
- if val < maxValue {
|
|
|
+ if val > maxValue {
|
|
|
maxValue = val
|
|
|
}
|
|
|
}
|
|
@@ -273,32 +285,38 @@ func TczDiv(a, b float64) (result float64) {
|
|
|
|
|
|
|
|
|
|
|
|
-func GetChartPredictEdbInfoDataListByRuleHb(edbInfoId int, hbValue float64, startDate, endDate time.Time, frequency string, predictEdbInfoData []*models.EdbDataList, existMap map[string]float64) (newPredictEdbInfoData []*models.EdbDataList, minValue, maxValue float64) {
|
|
|
+func GetChartPredictEdbInfoDataListByRuleHb(edbInfoId int, hbValue float64, startDate, endDate time.Time, frequency string, realPredictEdbInfoData, predictEdbInfoData []*models.EdbDataList, existMap map[string]float64) (newPredictEdbInfoData []*models.EdbDataList, minValue, maxValue float64) {
|
|
|
+ allDataList := make([]*models.EdbDataList, 0)
|
|
|
+ allDataList = append(allDataList, realPredictEdbInfoData...)
|
|
|
+ allDataList = append(allDataList, predictEdbInfoData...)
|
|
|
newPredictEdbInfoData = predictEdbInfoData
|
|
|
- index := len(predictEdbInfoData)
|
|
|
+
|
|
|
+ index := len(allDataList)
|
|
|
|
|
|
dayList := getPredictEdbDayList(startDate, endDate, frequency)
|
|
|
for k, currentDate := range dayList {
|
|
|
tmpK := index + k - 1
|
|
|
|
|
|
|
|
|
- val := HbzDiv(newPredictEdbInfoData[tmpK].Value, hbValue)
|
|
|
+ val := HbzDiv(allDataList[tmpK].Value, hbValue)
|
|
|
|
|
|
currentDateStr := currentDate.Format(utils.FormatDate)
|
|
|
- newPredictEdbInfoData = append(newPredictEdbInfoData, &models.EdbDataList{
|
|
|
+ tmpData := &models.EdbDataList{
|
|
|
EdbDataId: edbInfoId + 10000000000 + index + k,
|
|
|
EdbInfoId: edbInfoId,
|
|
|
DataTime: currentDateStr,
|
|
|
Value: val,
|
|
|
DataTimestamp: (currentDate.UnixNano() / 1e6) + 1000,
|
|
|
- })
|
|
|
+ }
|
|
|
+ newPredictEdbInfoData = append(newPredictEdbInfoData, tmpData)
|
|
|
+ allDataList = append(allDataList, tmpData)
|
|
|
existMap[currentDateStr] = val
|
|
|
|
|
|
|
|
|
if val < minValue {
|
|
|
minValue = val
|
|
|
}
|
|
|
- if val < maxValue {
|
|
|
+ if val > maxValue {
|
|
|
maxValue = val
|
|
|
}
|
|
|
}
|
|
@@ -333,32 +351,38 @@ func HbzDiv(a, b float64) (result float64) {
|
|
|
|
|
|
|
|
|
|
|
|
-func GetChartPredictEdbInfoDataListByRuleHc(edbInfoId int, hcValue float64, startDate, endDate time.Time, frequency string, predictEdbInfoData []*models.EdbDataList, existMap map[string]float64) (newPredictEdbInfoData []*models.EdbDataList, minValue, maxValue float64) {
|
|
|
+func GetChartPredictEdbInfoDataListByRuleHc(edbInfoId int, hcValue float64, startDate, endDate time.Time, frequency string, realPredictEdbInfoData, predictEdbInfoData []*models.EdbDataList, existMap map[string]float64) (newPredictEdbInfoData []*models.EdbDataList, minValue, maxValue float64) {
|
|
|
+ allDataList := make([]*models.EdbDataList, 0)
|
|
|
+ allDataList = append(allDataList, realPredictEdbInfoData...)
|
|
|
+ allDataList = append(allDataList, predictEdbInfoData...)
|
|
|
newPredictEdbInfoData = predictEdbInfoData
|
|
|
- index := len(predictEdbInfoData)
|
|
|
+
|
|
|
+ index := len(allDataList)
|
|
|
|
|
|
dayList := getPredictEdbDayList(startDate, endDate, frequency)
|
|
|
for k, currentDate := range dayList {
|
|
|
tmpK := index + k - 1
|
|
|
|
|
|
|
|
|
- val := HczDiv(newPredictEdbInfoData[tmpK].Value, hcValue)
|
|
|
+ val := HczDiv(allDataList[tmpK].Value, hcValue)
|
|
|
|
|
|
currentDateStr := currentDate.Format(utils.FormatDate)
|
|
|
- newPredictEdbInfoData = append(newPredictEdbInfoData, &models.EdbDataList{
|
|
|
+ tmpData := &models.EdbDataList{
|
|
|
EdbDataId: edbInfoId + 10000000000 + index + k,
|
|
|
EdbInfoId: edbInfoId,
|
|
|
DataTime: currentDateStr,
|
|
|
Value: val,
|
|
|
DataTimestamp: (currentDate.UnixNano() / 1e6) + 1000,
|
|
|
- })
|
|
|
+ }
|
|
|
+ newPredictEdbInfoData = append(newPredictEdbInfoData, tmpData)
|
|
|
+ allDataList = append(allDataList, tmpData)
|
|
|
existMap[currentDateStr] = val
|
|
|
|
|
|
|
|
|
if val < minValue {
|
|
|
minValue = val
|
|
|
}
|
|
|
- if val < maxValue {
|
|
|
+ if val > maxValue {
|
|
|
maxValue = val
|
|
|
}
|
|
|
}
|
|
@@ -391,7 +415,6 @@ func GetChartPredictEdbInfoDataListByRuleNMoveMeanValue(edbInfoId int, nValue in
|
|
|
allDataList := make([]*models.EdbDataList, 0)
|
|
|
allDataList = append(allDataList, realPredictEdbInfoData...)
|
|
|
allDataList = append(allDataList, predictEdbInfoData...)
|
|
|
-
|
|
|
newPredictEdbInfoData = predictEdbInfoData
|
|
|
|
|
|
lenAllData := len(allDataList)
|
|
@@ -436,7 +459,7 @@ func GetChartPredictEdbInfoDataListByRuleNMoveMeanValue(edbInfoId int, nValue in
|
|
|
if val < minValue {
|
|
|
minValue = val
|
|
|
}
|
|
|
- if val < maxValue {
|
|
|
+ if val > maxValue {
|
|
|
maxValue = val
|
|
|
}
|
|
|
}
|
|
@@ -458,7 +481,6 @@ func GetChartPredictEdbInfoDataListByRuleNLinearRegression(edbInfoId int, nValue
|
|
|
allDataList := make([]*models.EdbDataList, 0)
|
|
|
allDataList = append(allDataList, realPredictEdbInfoData...)
|
|
|
allDataList = append(allDataList, predictEdbInfoData...)
|
|
|
-
|
|
|
newPredictEdbInfoData = predictEdbInfoData
|
|
|
|
|
|
lenAllData := len(allDataList)
|
|
@@ -466,7 +488,7 @@ func GetChartPredictEdbInfoDataListByRuleNLinearRegression(edbInfoId int, nValue
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- if nValue <= 0 {
|
|
|
+ if nValue <= 1 {
|
|
|
return
|
|
|
}
|
|
|
|
|
@@ -510,7 +532,7 @@ func GetChartPredictEdbInfoDataListByRuleNLinearRegression(edbInfoId int, nValue
|
|
|
if val < minValue {
|
|
|
minValue = val
|
|
|
}
|
|
|
- if val < maxValue {
|
|
|
+ if val > maxValue {
|
|
|
maxValue = val
|
|
|
}
|
|
|
}
|
|
@@ -526,7 +548,7 @@ type Coordinate struct {
|
|
|
}
|
|
|
|
|
|
func getLinearResult(s []Coordinate) (gradient, intercept float64) {
|
|
|
- if len(s) == 0 {
|
|
|
+ if len(s) <= 1 {
|
|
|
return
|
|
|
}
|
|
|
|