|
@@ -1029,7 +1029,7 @@ func GetChartPredictEdbInfoDataListByRuleTbzscz(edbInfoId int, tbEndValue float6
|
|
|
preDate := lastDayTime.AddDate(-1, 0, 0)
|
|
|
preDateStr := preDate.Format(utils.FormatDate)
|
|
|
if preValue, ok := existMap[preDateStr]; ok { //上一年同期找到
|
|
|
- lastTb = decimal.NewFromFloat(lastData.Value).Div(decimal.NewFromFloat(preValue))
|
|
|
+ lastTb = (decimal.NewFromFloat(lastData.Value)).Sub(decimal.NewFromFloat(preValue)).Div(decimal.NewFromFloat(preValue))
|
|
|
} else {
|
|
|
switch frequency {
|
|
|
case "月度":
|
|
@@ -1039,12 +1039,12 @@ func GetChartPredictEdbInfoDataListByRuleTbzscz(edbInfoId int, tbEndValue float6
|
|
|
for i := 0; i <= 35; i++ {
|
|
|
nextDateDayStr := nextDateDay.Format(utils.FormatDate)
|
|
|
if preValue, ok := existMap[nextDateDayStr]; ok { //上一年同期->下一个月找到
|
|
|
- lastTb = decimal.NewFromFloat(lastData.Value).Div(decimal.NewFromFloat(preValue))
|
|
|
+ lastTb = (decimal.NewFromFloat(lastData.Value)).Sub(decimal.NewFromFloat(preValue)).Div(decimal.NewFromFloat(preValue))
|
|
|
break
|
|
|
} else {
|
|
|
preDateDayStr := preDateDay.Format(utils.FormatDate)
|
|
|
if preValue, ok := existMap[preDateDayStr]; ok { //上一年同期->上一个月找到
|
|
|
- lastTb = decimal.NewFromFloat(lastData.Value).Div(decimal.NewFromFloat(preValue))
|
|
|
+ lastTb = (decimal.NewFromFloat(lastData.Value)).Sub(decimal.NewFromFloat(preValue)).Div(decimal.NewFromFloat(preValue))
|
|
|
break
|
|
|
}
|
|
|
}
|
|
@@ -1054,7 +1054,7 @@ func GetChartPredictEdbInfoDataListByRuleTbzscz(edbInfoId int, tbEndValue float6
|
|
|
|
|
|
case "季度", "年度":
|
|
|
if preValue, ok := existMap[preDateStr]; ok { //上一年同期->下一个月找到
|
|
|
- lastTb = decimal.NewFromFloat(lastData.Value).Div(decimal.NewFromFloat(preValue))
|
|
|
+ lastTb = (decimal.NewFromFloat(lastData.Value)).Sub(decimal.NewFromFloat(preValue)).Div(decimal.NewFromFloat(preValue))
|
|
|
break
|
|
|
}
|
|
|
default:
|
|
@@ -1064,12 +1064,12 @@ func GetChartPredictEdbInfoDataListByRuleTbzscz(edbInfoId int, tbEndValue float6
|
|
|
for i := 0; i < 35; i++ {
|
|
|
nextDateDayStr := nextDateDay.Format(utils.FormatDate)
|
|
|
if preValue, ok := existMap[nextDateDayStr]; ok { //上一年同期->下一个月找到
|
|
|
- lastTb = decimal.NewFromFloat(lastData.Value).Div(decimal.NewFromFloat(preValue))
|
|
|
+ lastTb = (decimal.NewFromFloat(lastData.Value)).Sub(decimal.NewFromFloat(preValue)).Div(decimal.NewFromFloat(preValue))
|
|
|
break
|
|
|
} else {
|
|
|
preDateDayStr := preDateDay.Format(utils.FormatDate)
|
|
|
if preValue, ok := existMap[preDateDayStr]; ok { //上一年同期->上一个月找到
|
|
|
- lastTb = decimal.NewFromFloat(lastData.Value).Div(decimal.NewFromFloat(preValue))
|
|
|
+ lastTb = (decimal.NewFromFloat(lastData.Value)).Sub(decimal.NewFromFloat(preValue)).Div(decimal.NewFromFloat(preValue))
|
|
|
break
|
|
|
} else {
|
|
|
//fmt.Println("pre not find:", preDateStr, "i:", i)
|
|
@@ -1087,17 +1087,13 @@ func GetChartPredictEdbInfoDataListByRuleTbzscz(edbInfoId int, tbEndValue float6
|
|
|
tbEndValueDecimal := decimal.NewFromFloat(tbEndValue)
|
|
|
avgTbVal := tbEndValueDecimal.Sub(lastTb).Div(decimal.NewFromInt(int64(lenDay)))
|
|
|
|
|
|
- fmt.Println(lastTb.Float64())
|
|
|
- fmt.Println(decimal.NewFromFloat(tbEndValue).Sub(lastTb))
|
|
|
- fmt.Println(avgTbVal.Float64())
|
|
|
-
|
|
|
predictEdbInfoData = make([]*EdbInfoSearchData, 0)
|
|
|
for k, currentDate := range dayList {
|
|
|
var tbValue decimal.Decimal
|
|
|
if k == lenDay-1 { // 如果是最后的日期了,那么就用终值去计算
|
|
|
- tbValue = tbEndValueDecimal
|
|
|
+ tbValue = tbEndValueDecimal.Add(decimal.NewFromInt(1))
|
|
|
} else { // 最近数据的同比值 + (平均增值乘以当前期数)
|
|
|
- tbValue = lastTb.Add(avgTbVal.Mul(decimal.NewFromInt(int64(k + 1))))
|
|
|
+ tbValue = lastTb.Add(avgTbVal.Mul(decimal.NewFromInt(int64(k + 1)))).Add(decimal.NewFromInt(1))
|
|
|
}
|
|
|
tmpData := &EdbInfoSearchData{
|
|
|
EdbDataId: edbInfoId + 100000 + index + k,
|