|
@@ -26,9 +26,13 @@ func GetChartPredictEdbInfoDataListByRule1(edbInfoId int, dataValue float64, sta
|
|
|
|
|
|
|
|
|
|
|
|
-func GetChartPredictEdbInfoDataListByRuleTb(edbInfoId int, tbValue float64, startDate, endDate time.Time, frequency string, predictEdbInfoData []*EdbInfoSearchData, existMap map[string]float64) (newPredictEdbInfoData []*EdbInfoSearchData, minValue, maxValue float64) {
|
|
|
+func GetChartPredictEdbInfoDataListByRuleTb(edbInfoId int, tbValue float64, startDate, endDate time.Time, frequency string, realPredictEdbInfoData, predictEdbInfoData []*EdbInfoSearchData, existMap map[string]float64) (newPredictEdbInfoData []*EdbInfoSearchData, minValue, maxValue float64) {
|
|
|
+ allDataList := make([]*EdbInfoSearchData, 0)
|
|
|
+ allDataList = append(allDataList, realPredictEdbInfoData...)
|
|
|
+ allDataList = append(allDataList, predictEdbInfoData...)
|
|
|
newPredictEdbInfoData = predictEdbInfoData
|
|
|
- index := len(predictEdbInfoData)
|
|
|
+
|
|
|
+ index := len(allDataList)
|
|
|
|
|
|
dayList := getPredictEdbDayList(startDate, endDate, frequency)
|
|
|
predictEdbInfoData = make([]*EdbInfoSearchData, 0)
|
|
@@ -108,12 +112,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
|
|
|
}
|
|
|
}
|
|
@@ -149,9 +155,13 @@ func PredictTbzDiv(a, b float64) (result float64) {
|
|
|
|
|
|
|
|
|
|
|
|
-func GetChartPredictEdbInfoDataListByRuleTc(edbInfoId int, tcValue float64, startDate, endDate time.Time, frequency string, predictEdbInfoData []*EdbInfoSearchData, existMap map[string]float64) (newPredictEdbInfoData []*EdbInfoSearchData, minValue, maxValue float64) {
|
|
|
+func GetChartPredictEdbInfoDataListByRuleTc(edbInfoId int, tcValue float64, startDate, endDate time.Time, frequency string, realPredictEdbInfoData, predictEdbInfoData []*EdbInfoSearchData, existMap map[string]float64) (newPredictEdbInfoData []*EdbInfoSearchData, minValue, maxValue float64) {
|
|
|
+ allDataList := make([]*EdbInfoSearchData, 0)
|
|
|
+ allDataList = append(allDataList, realPredictEdbInfoData...)
|
|
|
+ allDataList = append(allDataList, predictEdbInfoData...)
|
|
|
newPredictEdbInfoData = predictEdbInfoData
|
|
|
- index := len(predictEdbInfoData)
|
|
|
+
|
|
|
+ index := len(allDataList)
|
|
|
|
|
|
dayList := getPredictEdbDayList(startDate, endDate, frequency)
|
|
|
predictEdbInfoData = make([]*EdbInfoSearchData, 0)
|
|
@@ -231,12 +241,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
|
|
|
}
|
|
|
}
|
|
@@ -266,30 +278,36 @@ func PredictTczDiv(a, b float64) (result float64) {
|
|
|
|
|
|
|
|
|
|
|
|
-func GetChartPredictEdbInfoDataListByRuleHb(edbInfoId int, hbValue float64, startDate, endDate time.Time, frequency string, predictEdbInfoData []*EdbInfoSearchData, existMap map[string]float64) (newPredictEdbInfoData []*EdbInfoSearchData, minValue, maxValue float64) {
|
|
|
+func GetChartPredictEdbInfoDataListByRuleHb(edbInfoId int, hbValue float64, startDate, endDate time.Time, frequency string, realPredictEdbInfoData, predictEdbInfoData []*EdbInfoSearchData, existMap map[string]float64) (newPredictEdbInfoData []*EdbInfoSearchData, minValue, maxValue float64) {
|
|
|
+ allDataList := make([]*EdbInfoSearchData, 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 := PredictHbzDiv(newPredictEdbInfoData[tmpK].Value, hbValue)
|
|
|
+ val := PredictHbzDiv(allDataList[tmpK].Value, hbValue)
|
|
|
|
|
|
currentDateStr := currentDate.Format(utils.FormatDate)
|
|
|
- newPredictEdbInfoData = append(newPredictEdbInfoData, &EdbInfoSearchData{
|
|
|
+ tmpData := &EdbInfoSearchData{
|
|
|
EdbDataId: edbInfoId + 10000000000 + index + k,
|
|
|
DataTime: currentDateStr,
|
|
|
Value: val,
|
|
|
- })
|
|
|
+ }
|
|
|
+ newPredictEdbInfoData = append(newPredictEdbInfoData, tmpData)
|
|
|
+ allDataList = append(allDataList, tmpData)
|
|
|
existMap[currentDateStr] = val
|
|
|
|
|
|
|
|
|
if val < minValue {
|
|
|
minValue = val
|
|
|
}
|
|
|
- if val < maxValue {
|
|
|
+ if val > maxValue {
|
|
|
maxValue = val
|
|
|
}
|
|
|
}
|
|
@@ -324,30 +342,36 @@ func PredictHbzDiv(a, b float64) (result float64) {
|
|
|
|
|
|
|
|
|
|
|
|
-func GetChartPredictEdbInfoDataListByRuleHc(edbInfoId int, hcValue float64, startDate, endDate time.Time, frequency string, predictEdbInfoData []*EdbInfoSearchData, existMap map[string]float64) (newPredictEdbInfoData []*EdbInfoSearchData, minValue, maxValue float64) {
|
|
|
+func GetChartPredictEdbInfoDataListByRuleHc(edbInfoId int, hcValue float64, startDate, endDate time.Time, frequency string, realPredictEdbInfoData, predictEdbInfoData []*EdbInfoSearchData, existMap map[string]float64) (newPredictEdbInfoData []*EdbInfoSearchData, minValue, maxValue float64) {
|
|
|
+ allDataList := make([]*EdbInfoSearchData, 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 := PredictHczDiv(newPredictEdbInfoData[tmpK].Value, hcValue)
|
|
|
+ val := PredictHczDiv(allDataList[tmpK].Value, hcValue)
|
|
|
|
|
|
currentDateStr := currentDate.Format(utils.FormatDate)
|
|
|
- newPredictEdbInfoData = append(newPredictEdbInfoData, &EdbInfoSearchData{
|
|
|
+ tmpData := &EdbInfoSearchData{
|
|
|
EdbDataId: edbInfoId + 10000000000 + index + k,
|
|
|
DataTime: currentDateStr,
|
|
|
Value: val,
|
|
|
- })
|
|
|
+ }
|
|
|
+ newPredictEdbInfoData = append(newPredictEdbInfoData, tmpData)
|
|
|
+ allDataList = append(allDataList, tmpData)
|
|
|
existMap[currentDateStr] = val
|
|
|
|
|
|
|
|
|
if val < minValue {
|
|
|
minValue = val
|
|
|
}
|
|
|
- if val < maxValue {
|
|
|
+ if val > maxValue {
|
|
|
maxValue = val
|
|
|
}
|
|
|
}
|
|
@@ -380,7 +404,6 @@ func GetChartPredictEdbInfoDataListByRuleNMoveMeanValue(edbInfoId int, nValue in
|
|
|
allDataList := make([]*EdbInfoSearchData, 0)
|
|
|
allDataList = append(allDataList, realPredictEdbInfoData...)
|
|
|
allDataList = append(allDataList, predictEdbInfoData...)
|
|
|
-
|
|
|
newPredictEdbInfoData = predictEdbInfoData
|
|
|
|
|
|
lenAllData := len(allDataList)
|
|
@@ -423,7 +446,7 @@ func GetChartPredictEdbInfoDataListByRuleNMoveMeanValue(edbInfoId int, nValue in
|
|
|
if val < minValue {
|
|
|
minValue = val
|
|
|
}
|
|
|
- if val < maxValue {
|
|
|
+ if val > maxValue {
|
|
|
maxValue = val
|
|
|
}
|
|
|
}
|
|
@@ -445,7 +468,6 @@ func GetChartPredictEdbInfoDataListByRuleNLinearRegression(edbInfoId int, nValue
|
|
|
allDataList := make([]*EdbInfoSearchData, 0)
|
|
|
allDataList = append(allDataList, realPredictEdbInfoData...)
|
|
|
allDataList = append(allDataList, predictEdbInfoData...)
|
|
|
-
|
|
|
newPredictEdbInfoData = predictEdbInfoData
|
|
|
|
|
|
lenAllData := len(allDataList)
|
|
@@ -453,7 +475,7 @@ func GetChartPredictEdbInfoDataListByRuleNLinearRegression(edbInfoId int, nValue
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- if nValue <= 0 {
|
|
|
+ if nValue <= 1 {
|
|
|
return
|
|
|
}
|
|
|
|
|
@@ -495,7 +517,7 @@ func GetChartPredictEdbInfoDataListByRuleNLinearRegression(edbInfoId int, nValue
|
|
|
if val < minValue {
|
|
|
minValue = val
|
|
|
}
|
|
|
- if val < maxValue {
|
|
|
+ if val > maxValue {
|
|
|
maxValue = val
|
|
|
}
|
|
|
}
|
|
@@ -511,7 +533,7 @@ type Coordinate struct {
|
|
|
}
|
|
|
|
|
|
func getLinearResult(s []Coordinate) (gradient, intercept float64) {
|
|
|
- if len(s) == 0 {
|
|
|
+ if len(s) <= 1 {
|
|
|
return
|
|
|
}
|
|
|
|