|
@@ -3326,6 +3326,22 @@ func SeasonChartData(dataList []*data_manage.ChartEdbInfoMapping, seasonExtraCon
|
|
|
minValueMap := make(map[time.Time]float64)
|
|
|
|
|
|
maxMinDataList := make([]*data_manage.MaxMinLimitsData, 0)
|
|
|
+ var startDateStr string
|
|
|
+ var endDateStr string
|
|
|
+ var newDate time.Time
|
|
|
+
|
|
|
+ startDateStr = fmt.Sprintf("%d-%s", time.Now().Year(), seasonConfig.XStartDate)
|
|
|
+ endDateStr = fmt.Sprintf("%d-%s", time.Now().Year(), seasonConfig.XEndDate)
|
|
|
+ startDate, e := time.Parse(utils.FormatDate, startDateStr)
|
|
|
+ if e != nil {
|
|
|
+ err = e
|
|
|
+ return
|
|
|
+ }
|
|
|
+ endDate, e := time.Parse(utils.FormatDate, endDateStr)
|
|
|
+ if e != nil {
|
|
|
+ err = e
|
|
|
+ return
|
|
|
+ }
|
|
|
// 日度 周度插值
|
|
|
for _, v := range quarterDataList {
|
|
|
if mappingItem.Frequency == "日度" || mappingItem.Frequency == "周度" {
|
|
@@ -3349,54 +3365,85 @@ func SeasonChartData(dataList []*data_manage.ChartEdbInfoMapping, seasonExtraCon
|
|
|
if dateTime.Month() == 2 && dateTime.Day() == 29 {
|
|
|
continue
|
|
|
}
|
|
|
- var startDateStr string
|
|
|
+
|
|
|
if seasonConfig.JumpYear == 1 {
|
|
|
- startDateStr = fmt.Sprintf("%d-%s", time.Now().Year()-1, seasonConfig.XStartDate)
|
|
|
- } else {
|
|
|
- startDateStr = fmt.Sprintf("%d-%s", time.Now().Year(), seasonConfig.XStartDate)
|
|
|
- }
|
|
|
- startDate, e := time.Parse(utils.FormatDate, startDateStr)
|
|
|
- if e != nil {
|
|
|
- err = e
|
|
|
- return
|
|
|
- }
|
|
|
- //endDateStr := fmt.Sprintf("%d-%s", time.Now().Year(), seasonConfig.XEndDate)
|
|
|
- //endDate, e := time.Parse(utils.FormatDate, endDateStr)
|
|
|
- //if e != nil {
|
|
|
- // err =e
|
|
|
- // return
|
|
|
- //}
|
|
|
- var newDate time.Time
|
|
|
- lastdate := time.Date(dateTime.Year()+1, 1, 1, 23, 59, 59, 0, time.Now().Location()).AddDate(0,0,-1)
|
|
|
- if dateTime.Before(lastdate) {
|
|
|
- newDate = dateTime.AddDate(time.Now().Year()-dateTime.Year()-1, 0, 0)
|
|
|
- } else {
|
|
|
- newDate = dateTime.AddDate(time.Now().Year()-dateTime.Year(), 0, 0)
|
|
|
- }
|
|
|
+ if startDate.After(endDate) {
|
|
|
+ // 如果跨年且不到一年
|
|
|
+ // 全年截取一部分
|
|
|
+ newDate = dateTime.AddDate(time.Now().Year()-dateTime.Year(), 0, 0)
|
|
|
+ if newDate.Before(startDate) && newDate.After(endDate) {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ if newDate.After(startDate) {
|
|
|
+ // 减一年
|
|
|
+ newDate = newDate.AddDate(-1, 0, 0)
|
|
|
+ }
|
|
|
+ // 处理上下限列表
|
|
|
+ if value, ok := maxValueMap[newDate]; ok {
|
|
|
+ if value < handleDataMap[date] {
|
|
|
+ maxValueMap[newDate] = handleDataMap[date]
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ maxValueMap[newDate] = handleDataMap[date]
|
|
|
+ }
|
|
|
+
|
|
|
+ if value, ok := minValueMap[newDate]; ok {
|
|
|
+ if value > handleDataMap[date] {
|
|
|
+ minValueMap[newDate] = handleDataMap[date]
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ minValueMap[newDate] = handleDataMap[date]
|
|
|
+ }
|
|
|
+
|
|
|
+ dataTimeMap[newDate] = newDate
|
|
|
+ } else {
|
|
|
+ // 如果跨年且大于等于一年
|
|
|
+ // double后截取
|
|
|
+ newDate = dateTime.AddDate(time.Now().Year()-dateTime.Year(), 0, 0)
|
|
|
+
|
|
|
+ // 处理上下限列表
|
|
|
+ if value, ok := maxValueMap[newDate]; ok {
|
|
|
+ if value < handleDataMap[date] {
|
|
|
+ maxValueMap[newDate] = handleDataMap[date]
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ maxValueMap[newDate] = handleDataMap[date]
|
|
|
+ }
|
|
|
+
|
|
|
+ if value, ok := minValueMap[newDate]; ok {
|
|
|
+ if value > handleDataMap[date] {
|
|
|
+ minValueMap[newDate] = handleDataMap[date]
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ minValueMap[newDate] = handleDataMap[date]
|
|
|
+ }
|
|
|
+
|
|
|
+ dataTimeMap[newDate] = newDate
|
|
|
|
|
|
- if newDate.Before(startDate) {
|
|
|
- continue
|
|
|
- }
|
|
|
- // 处理上下限列表
|
|
|
- if value, ok := maxValueMap[newDate]; ok {
|
|
|
- if value < handleDataMap[date] {
|
|
|
- maxValueMap[newDate] = handleDataMap[date]
|
|
|
}
|
|
|
} else {
|
|
|
- maxValueMap[newDate] = handleDataMap[date]
|
|
|
- }
|
|
|
+ // 如果不跨年 正常获取
|
|
|
+ // 获取当前日期所在区间
|
|
|
+ // 处理上下限列表
|
|
|
+ if value, ok := maxValueMap[newDate]; ok {
|
|
|
+ if value < handleDataMap[date] {
|
|
|
+ maxValueMap[newDate] = handleDataMap[date]
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ maxValueMap[newDate] = handleDataMap[date]
|
|
|
+ }
|
|
|
|
|
|
- if value, ok := minValueMap[newDate]; ok {
|
|
|
- if value > handleDataMap[date] {
|
|
|
+ if value, ok := minValueMap[newDate]; ok {
|
|
|
+ if value > handleDataMap[date] {
|
|
|
+ minValueMap[newDate] = handleDataMap[date]
|
|
|
+ }
|
|
|
+ } else {
|
|
|
minValueMap[newDate] = handleDataMap[date]
|
|
|
}
|
|
|
- } else {
|
|
|
- minValueMap[newDate] = handleDataMap[date]
|
|
|
- }
|
|
|
|
|
|
- dataTimeMap[newDate] = newDate
|
|
|
+ dataTimeMap[newDate] = newDate
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
} else {
|
|
|
// 旬度、月度、季度、半年度 不插值,需要先把日期列表和数据map取出来
|
|
|
for _, vv := range v.DataList {
|
|
@@ -3413,41 +3460,7 @@ func SeasonChartData(dataList []*data_manage.ChartEdbInfoMapping, seasonExtraCon
|
|
|
if dateTime.Month() == 2 && dateTime.Day() == 29 {
|
|
|
continue
|
|
|
}
|
|
|
- var startDateStr string
|
|
|
- if seasonConfig.JumpYear == 1 {
|
|
|
- startDateStr = fmt.Sprintf("%d-%s", time.Now().Year()-1, seasonConfig.XStartDate)
|
|
|
- } else {
|
|
|
- startDateStr = fmt.Sprintf("%d-%s", time.Now().Year(), seasonConfig.XStartDate)
|
|
|
- }
|
|
|
- startDate, e := time.Parse(utils.FormatDate, startDateStr)
|
|
|
- if e != nil {
|
|
|
- err = e
|
|
|
- return
|
|
|
- }
|
|
|
- endDateStr := fmt.Sprintf("%d-%s", time.Now().Year(), seasonConfig.XEndDate)
|
|
|
- endDate, e := time.Parse(utils.FormatDate, endDateStr)
|
|
|
- if e != nil {
|
|
|
- err =e
|
|
|
- return
|
|
|
- }
|
|
|
- // 开始日期 年份的最后一天
|
|
|
- var newDate time.Time
|
|
|
- lastdate := time.Date(startDate.Year()+1, 1, 1, 23, 59, 59, 0, time.Now().Location()).AddDate(0,0,-1)
|
|
|
- if dateTime.Before(lastdate) {
|
|
|
- newDate = dateTime.AddDate(time.Now().Year()-dateTime.Year()-1, 0, 0)
|
|
|
- } else {
|
|
|
- newDate = dateTime.AddDate(time.Now().Year()-dateTime.Year(), 0, 0)
|
|
|
- }
|
|
|
-
|
|
|
- if newDate.Before(endDate) {
|
|
|
- continue
|
|
|
- }
|
|
|
- if newDate.After(startDate) {
|
|
|
- continue
|
|
|
- }
|
|
|
- if seasonConfig.JumpYear == 1 {
|
|
|
-
|
|
|
- }
|
|
|
+ newDate := dateTime.AddDate(time.Now().Year()-dateTime.Year(), 0, 0)
|
|
|
|
|
|
if value, ok := maxValueMap[newDate]; ok {
|
|
|
if value < vv.Value {
|
|
@@ -3465,7 +3478,7 @@ func SeasonChartData(dataList []*data_manage.ChartEdbInfoMapping, seasonExtraCon
|
|
|
minValueMap[newDate] = vv.Value
|
|
|
}
|
|
|
dataTimeMap[newDate] = newDate
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -3483,6 +3496,15 @@ func SeasonChartData(dataList []*data_manage.ChartEdbInfoMapping, seasonExtraCon
|
|
|
} else {
|
|
|
maxMinItem.MinValue = maxValueMap[v]
|
|
|
}
|
|
|
+ //if seasonConfig.JumpYear == 1 {
|
|
|
+ // if startDate.After(endDate) {
|
|
|
+ // maxMinItem.DataTime = v.Format(utils.FormatDate)
|
|
|
+ // maxMinItem.DataTimestamp = v.UnixNano() / 1e6
|
|
|
+ //
|
|
|
+ // maxMinDataList = append(maxMinDataList, maxMinItem)
|
|
|
+ // }
|
|
|
+ //}
|
|
|
+
|
|
|
maxMinItem.DataTime = v.Format(utils.FormatDate)
|
|
|
maxMinItem.DataTimestamp = v.UnixNano() / 1e6
|
|
|
|