|
@@ -14,7 +14,6 @@ import (
|
|
"time"
|
|
"time"
|
|
)
|
|
)
|
|
|
|
|
|
-
|
|
|
|
type RuleParams struct {
|
|
type RuleParams struct {
|
|
EdbInfoId int
|
|
EdbInfoId int
|
|
DayList []time.Time
|
|
DayList []time.Time
|
|
@@ -1560,6 +1559,7 @@ func getReplaceValue(replaceValueMap map[string]float64, days, dayStep int, curr
|
|
func GetChartPredictEdbInfoDataListByRuleDynamicYOYComparisonOrDifference(ruleType, edbInfoId int, configValue string, dayList []time.Time, realPredictEdbInfoData []*data_manage.EdbDataList, existMap map[string]float64) (newPredictEdbInfoData []*data_manage.EdbDataList, minValue, maxValue float64, err error) {
|
|
func GetChartPredictEdbInfoDataListByRuleDynamicYOYComparisonOrDifference(ruleType, edbInfoId int, configValue string, dayList []time.Time, realPredictEdbInfoData []*data_manage.EdbDataList, existMap map[string]float64) (newPredictEdbInfoData []*data_manage.EdbDataList, minValue, maxValue float64, err error) {
|
|
//预测指标的去年同期数据
|
|
//预测指标的去年同期数据
|
|
baseDynamicDataList := make(map[string]decimal.Decimal, len(dayList))
|
|
baseDynamicDataList := make(map[string]decimal.Decimal, len(dayList))
|
|
|
|
+ //动态同比同差指标
|
|
DynamicCalculateDataList := make(map[string]decimal.Decimal, len(dayList))
|
|
DynamicCalculateDataList := make(map[string]decimal.Decimal, len(dayList))
|
|
index := len(realPredictEdbInfoData)
|
|
index := len(realPredictEdbInfoData)
|
|
if index <= 0 {
|
|
if index <= 0 {
|
|
@@ -1602,10 +1602,18 @@ func GetChartPredictEdbInfoDataListByRuleDynamicYOYComparisonOrDifference(ruleTy
|
|
baseDynamicDataList[preDateStr] = decimal.NewFromFloat(preValue)
|
|
baseDynamicDataList[preDateStr] = decimal.NewFromFloat(preValue)
|
|
predictDayList = append(predictDayList, date)
|
|
predictDayList = append(predictDayList, date)
|
|
} else {
|
|
} else {
|
|
- if baseDynamicDataList[preDateStr], ok = getReplaceValue(existMap, 0, -1, preDate); !ok {
|
|
|
|
- continue
|
|
|
|
|
|
+ if replaceValue, replaceOk := getReplaceValue(existMap, 35, -1, preDate); !replaceOk {
|
|
|
|
+ replaceValue, replaceOk = getReplaceValue(existMap, 35, 1, preDate)
|
|
|
|
+ if !replaceOk {
|
|
|
|
+ continue
|
|
|
|
+ } else {
|
|
|
|
+ baseDynamicDataList[preDateStr] = replaceValue
|
|
|
|
+ predictDayList = append(predictDayList, date)
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ baseDynamicDataList[preDateStr] = replaceValue
|
|
|
|
+ predictDayList = append(predictDayList, date)
|
|
}
|
|
}
|
|
- predictDayList = append(predictDayList, date)
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1614,7 +1622,7 @@ func GetChartPredictEdbInfoDataListByRuleDynamicYOYComparisonOrDifference(ruleTy
|
|
for k, currentDate := range predictDayList {
|
|
for k, currentDate := range predictDayList {
|
|
var calculateValue decimal.Decimal
|
|
var calculateValue decimal.Decimal
|
|
var dateStr = currentDate.Format(utils.FormatDate)
|
|
var dateStr = currentDate.Format(utils.FormatDate)
|
|
- if _, ok := DynamicCalculateDataList[dateStr]; !ok {
|
|
|
|
|
|
+ if _, ok := DynamicCalculateDataList[dateStr]; ok {
|
|
switch ruleType {
|
|
switch ruleType {
|
|
case 17:
|
|
case 17:
|
|
calculateValue = baseDynamicDataList[dateStr].Mul(DynamicCalculateDataList[dateStr].Add(decimal.NewFromInt(1)))
|
|
calculateValue = baseDynamicDataList[dateStr].Mul(DynamicCalculateDataList[dateStr].Add(decimal.NewFromInt(1)))
|