|
@@ -359,7 +359,13 @@ func GetChartEdbData(chartInfoId, chartType int, calendar, startDate, endDate st
|
|
switch chartType {
|
|
switch chartType {
|
|
case 2: // 季节性图
|
|
case 2: // 季节性图
|
|
if seasonExtraConfig != "" {
|
|
if seasonExtraConfig != "" {
|
|
- dataResp, err = SeasonChartData(edbList, seasonExtraConfig)
|
|
|
|
|
|
+ // 季节性图计算不管图上数据时间,拿所有数据
|
|
|
|
+ _, tempEdbList, e := getEdbDataMapList(chartInfoId, chartType, calendar, "1990-01-01", "", mappingList, seasonExtraConfig)
|
|
|
|
+ if e != nil {
|
|
|
|
+ err = e
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ dataResp, err = SeasonChartData(tempEdbList, seasonExtraConfig)
|
|
} else {
|
|
} else {
|
|
// 兼容无配置的老图
|
|
// 兼容无配置的老图
|
|
dataResp = new(data_manage.SeasonChartResp)
|
|
dataResp = new(data_manage.SeasonChartResp)
|
|
@@ -3331,6 +3337,8 @@ func SeasonChartData(dataList []*data_manage.ChartEdbInfoMapping, seasonExtraCon
|
|
}
|
|
}
|
|
// 上下限区间
|
|
// 上下限区间
|
|
if seasonConfig.MaxMinLimits.Year > 0 {
|
|
if seasonConfig.MaxMinLimits.Year > 0 {
|
|
|
|
+ yearRange := time.Now().Year() - seasonConfig.MaxMinLimits.Year
|
|
|
|
+ startYear := time.Now().AddDate(-yearRange, 0, 0).Year()
|
|
dataResp.MaxMinLimits.List = make([]*data_manage.MaxMinLimitsData, 0)
|
|
dataResp.MaxMinLimits.List = make([]*data_manage.MaxMinLimitsData, 0)
|
|
dataTimeMap := make(map[time.Time]time.Time)
|
|
dataTimeMap := make(map[time.Time]time.Time)
|
|
dataTimeList := make([]string, 0)
|
|
dataTimeList := make([]string, 0)
|
|
@@ -3373,6 +3381,9 @@ func SeasonChartData(dataList []*data_manage.ChartEdbInfoMapping, seasonExtraCon
|
|
err = errors.New("时间格式化异常, Err:" + e.Error())
|
|
err = errors.New("时间格式化异常, Err:" + e.Error())
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
+ if dateTime.Year() < startYear {
|
|
|
|
+ continue
|
|
|
|
+ }
|
|
// 不包含2月29号
|
|
// 不包含2月29号
|
|
if dateTime.Month() == 2 && dateTime.Day() == 29 {
|
|
if dateTime.Month() == 2 && dateTime.Day() == 29 {
|
|
continue
|
|
continue
|
|
@@ -3491,7 +3502,10 @@ func SeasonChartData(dataList []*data_manage.ChartEdbInfoMapping, seasonExtraCon
|
|
if v.ChartLegend == strconv.Itoa(time.Now().Year()) {
|
|
if v.ChartLegend == strconv.Itoa(time.Now().Year()) {
|
|
continue
|
|
continue
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+ if dateTime.Year() < startYear {
|
|
|
|
+ continue
|
|
|
|
+ }
|
|
// 不包含2月29号
|
|
// 不包含2月29号
|
|
if dateTime.Month() == 2 && dateTime.Day() == 29 {
|
|
if dateTime.Month() == 2 && dateTime.Day() == 29 {
|
|
continue
|
|
continue
|
|
@@ -3655,7 +3669,11 @@ func SeasonChartData(dataList []*data_manage.ChartEdbInfoMapping, seasonExtraCon
|
|
err = errors.New("时间格式化异常, Err:" + e.Error())
|
|
err = errors.New("时间格式化异常, Err:" + e.Error())
|
|
return
|
|
return
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+ yearRange := time.Now().Year() - seasonConfig.SamePeriodAverage.Year
|
|
|
|
+ startYear := time.Now().AddDate(-yearRange, 0, 0).Year()
|
|
|
|
+ if dateTime.Year() < startYear {
|
|
|
|
+ continue
|
|
|
|
+ }
|
|
// 不包含2月29号
|
|
// 不包含2月29号
|
|
if dateTime.Month() == 2 && dateTime.Day() == 29 {
|
|
if dateTime.Month() == 2 && dateTime.Day() == 29 {
|
|
continue
|
|
continue
|
|
@@ -3702,6 +3720,9 @@ func SeasonChartData(dataList []*data_manage.ChartEdbInfoMapping, seasonExtraCon
|
|
|
|
|
|
// 自定义同期标准差
|
|
// 自定义同期标准差
|
|
if seasonConfig.SamePeriodStandardDeviation.Year > 1 && seasonConfig.SamePeriodStandardDeviation.Multiple > 0 {
|
|
if seasonConfig.SamePeriodStandardDeviation.Year > 1 && seasonConfig.SamePeriodStandardDeviation.Multiple > 0 {
|
|
|
|
+ yearRange := time.Now().Year() - seasonConfig.SamePeriodAverage.Year
|
|
|
|
+ startYear := time.Now().AddDate(-yearRange, 0, 0).Year()
|
|
|
|
+
|
|
// 先算均值,再算标准差
|
|
// 先算均值,再算标准差
|
|
handleDataMap := make(map[string]float64)
|
|
handleDataMap := make(map[string]float64)
|
|
dataTimeMap := make(map[time.Time]time.Time)
|
|
dataTimeMap := make(map[time.Time]time.Time)
|
|
@@ -3723,6 +3744,13 @@ func SeasonChartData(dataList []*data_manage.ChartEdbInfoMapping, seasonExtraCon
|
|
err = errors.New("时间格式化异常, Err:" + e.Error())
|
|
err = errors.New("时间格式化异常, Err:" + e.Error())
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
+ if dateTime.Year() < startYear {
|
|
|
|
+ continue
|
|
|
|
+ }
|
|
|
|
+ // 不包含2月29号
|
|
|
|
+ if dateTime.Month() == 2 && dateTime.Day() == 29 {
|
|
|
|
+ continue
|
|
|
|
+ }
|
|
newDate := dateTime.AddDate(time.Now().Year()-dateTime.Year(), 0, 0)
|
|
newDate := dateTime.AddDate(time.Now().Year()-dateTime.Year(), 0, 0)
|
|
// 处理均值
|
|
// 处理均值
|
|
if value, ok := valueMap[newDate]; ok {
|
|
if value, ok := valueMap[newDate]; ok {
|