zwxi 7 months ago
parent
commit
a5a6b6d804
2 changed files with 113 additions and 42 deletions
  1. 13 13
      controllers/data_manage/chart_info.go
  2. 100 29
      services/data/chart_info.go

+ 13 - 13
controllers/data_manage/chart_info.go

@@ -1433,7 +1433,7 @@ func (this *ChartInfoController) PreviewChartInfoDetail() {
 			return
 		}
 		for i := range markerLines {
-			if markerLines[i].EdbType == 1 {
+			//if markerLines[i].EdbType == 1 {
 				// 指标计算
 				edbInfo, err := data_manage.GetEdbInfoById(markerLines[i].EdbInfoId)
 				if err != nil {
@@ -1455,18 +1455,18 @@ func (this *ChartInfoController) PreviewChartInfoDetail() {
 				}
 				markerLines[i].Value = value
 
-			} else {
-				// 跟随图表
-				if edbList[0].IsAxis == 1 {
-					value, err := data.MarkerLineCalculate(markerLines[i], edbList[0].DataList, chartInfo)
-					if err != nil {
-						br.Msg = "标识线配置异常"
-						br.ErrMsg = "标识线配置异常" + err.Error()
-						return
-					}
-					markerLines[i].Value = value
-				}
-			}
+			//} else {
+			//	// 跟随图表
+			//	if edbList[0].IsAxis == 1 {
+			//		value, err := data.MarkerLineCalculate(markerLines[i], edbList[0].DataList, chartInfo)
+			//		if err != nil {
+			//			br.Msg = "标识线配置异常"
+			//			br.ErrMsg = "标识线配置异常" + err.Error()
+			//			return
+			//		}
+			//		markerLines[i].Value = value
+			//	}
+			//}
 		}
 
 		markerLineStr, err := json.Marshal(markerLines)

+ 100 - 29
services/data/chart_info.go

@@ -3363,6 +3363,7 @@ func SeasonChartData(dataList []*data_manage.ChartEdbInfoMapping, seasonExtraCon
 						err = errors.New("插值处理数据异常, Err:" + err.Error())
 						return
 					}
+					// 不包含当年
 					if v.ChartLegend == strconv.Itoa(time.Now().Year()) {
 						continue
 					}
@@ -3386,7 +3387,7 @@ func SeasonChartData(dataList []*data_manage.ChartEdbInfoMapping, seasonExtraCon
 								}
 								if newDate.After(startDate.AddDate(0, 0, -1)) {
 									// 减一年
-									newDate = dateTime.AddDate(time.Now().Year()-dateTime.Year() - 1, 0, 0)
+									newDate = dateTime.AddDate(time.Now().Year()-dateTime.Year()-1, 0, 0)
 								}
 								// 处理上下限列表
 								if value, ok := maxValueMap[newDate]; ok {
@@ -3431,7 +3432,7 @@ func SeasonChartData(dataList []*data_manage.ChartEdbInfoMapping, seasonExtraCon
 								}
 
 								newDate = dateTime.AddDate(time.Now().Year()-dateTime.Year()+1, 0, 0)
-								newEndDate := endDate.AddDate(1,0,0)
+								newEndDate := endDate.AddDate(1, 0, 0)
 								if newDate.Before(newEndDate) {
 									// 处理上下限列表
 									if value, ok := maxValueMap[newDate]; ok {
@@ -3485,32 +3486,116 @@ func SeasonChartData(dataList []*data_manage.ChartEdbInfoMapping, seasonExtraCon
 							err = errors.New("时间格式化异常, Err:" + e.Error())
 							return
 						}
-						// 不包含今年
-						if dateTime.Year() == time.Now().Year() {
+
+						// 不包含2月29号
+						if dateTime.Month() == 2 && dateTime.Day() == 29 {
 							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 seasonConfig.JumpYear == 1 {
+							if startDate.After(endDate) {
+								// 如果跨年且不到一年
+								// 全年截取一部分
+								if newDate.Before(startDate.AddDate(0, 0, 1)) && newDate.After(endDate) {
+									continue
+								}
+								if newDate.After(startDate.AddDate(0, 0, -1)) {
+									// 减一年
+									newDate = dateTime.AddDate(time.Now().Year()-dateTime.Year()-1, 0, 0)
+								}
+								// 处理上下限列表
+								if value, ok := maxValueMap[newDate]; ok {
+									if value < vv.Value {
+										maxValueMap[newDate] = vv.Value
+									}
+								} else {
+									maxValueMap[newDate] = vv.Value
+								}
+
+								if value, ok := minValueMap[newDate]; ok {
+									if value > vv.Value {
+										minValueMap[newDate] = vv.Value
+									}
+								} else {
+									minValueMap[newDate] = vv.Value
+								}
+
+								dataTimeMap[newDate] = newDate
+							} else {
+								// 如果跨年且大于等于一年
+								// double后截取
+								if newDate.After(startDate) {
+									// 处理上下限列表
+									if value, ok := maxValueMap[newDate]; ok {
+										if value < vv.Value {
+											maxValueMap[newDate] = vv.Value
+										}
+									} else {
+										maxValueMap[newDate] = vv.Value
+									}
+
+									if value, ok := minValueMap[newDate]; ok {
+										if value > vv.Value {
+											minValueMap[newDate] = vv.Value
+										}
+									} else {
+										minValueMap[newDate] = vv.Value
+									}
+
+									dataTimeMap[newDate] = newDate
+								}
+
+								newDate = dateTime.AddDate(time.Now().Year()-dateTime.Year()+1, 0, 0)
+								newEndDate := endDate.AddDate(1, 0, 0)
+								if newDate.Before(newEndDate) {
+									// 处理上下限列表
+									if value, ok := maxValueMap[newDate]; ok {
+										if value < vv.Value {
+											maxValueMap[newDate] = vv.Value
+										}
+									} else {
+										maxValueMap[newDate] = vv.Value
+									}
+
+									if value, ok := minValueMap[newDate]; ok {
+										if value > vv.Value {
+											minValueMap[newDate] = vv.Value
+										}
+									} else {
+										minValueMap[newDate] = vv.Value
+									}
+
+									dataTimeMap[newDate] = newDate
+								}
 
-						if value, ok := maxValueMap[newDate]; ok {
-							if value < vv.Value {
-								maxValueMap[newDate] = vv.Value
 							}
 						} else {
-							maxValueMap[newDate] = vv.Value
-						}
+							// 如果不跨年 正常获取
+							// 获取当前日期所在区间
+							// 处理上下限列表
+							if value, ok := maxValueMap[newDate]; ok {
+								if value < vv.Value {
+									maxValueMap[newDate] = vv.Value
+								}
+							} else {
+								maxValueMap[newDate] = vv.Value
+							}
 
-						if value, ok := minValueMap[newDate]; ok {
-							if value > vv.Value {
+							if value, ok := minValueMap[newDate]; ok {
+								if value > vv.Value {
+									minValueMap[newDate] = vv.Value
+								}
+							} else {
 								minValueMap[newDate] = vv.Value
 							}
-						} else {
-							minValueMap[newDate] = vv.Value
+
+							dataTimeMap[newDate] = newDate
 						}
-						dataTimeMap[newDate] = newDate
 
 					}
 				}
@@ -3529,20 +3614,6 @@ func SeasonChartData(dataList []*data_manage.ChartEdbInfoMapping, seasonExtraCon
 				} else {
 					maxMinItem.MinValue = maxValueMap[v]
 				}
-				//if seasonConfig.JumpYear == 1 {
-				//	if startDate.After(endDate) {
-				//		// 跨年且不到一年,修改年份
-				//		if v.After(endDate) {
-				//			maxMinItem.DataTime = v.AddDate(-1, 0, 0).Format(utils.FormatDate)
-				//			maxMinItem.DataTimestamp = v.AddDate(-1, 0, 0).UnixNano() / 1e6
-				//		} else {
-				//			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