zwxi 7 tháng trước cách đây
mục cha
commit
f2385cd2a7
1 tập tin đã thay đổi với 31 bổ sung3 xóa
  1. 31 3
      services/data/chart_info.go

+ 31 - 3
services/data/chart_info.go

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