Parcourir la source

图例bug修改

xyxie il y a 1 an
Parent
commit
a78f952ecc
1 fichiers modifiés avec 18 ajouts et 2 suppressions
  1. 18 2
      services/data/chart_info.go

+ 18 - 2
services/data/chart_info.go

@@ -300,7 +300,9 @@ func getEdbDataMapList(chartInfoId, chartType int, calendar, startDate, endDate
 						return
 					}
 
-					quarterDataList, tErr := GetSeasonEdbInfoDataListByXDateNong(result, latestDate, seasonExtraConfig, calendarPreYear)
+					endDateTmp := dataList[len(dataList)-1].DataTime
+					endDateForm, _ := time.Parse(utils.FormatDate, endDateTmp)
+					quarterDataList, tErr := GetSeasonEdbInfoDataListByXDateNong(result, latestDate, seasonExtraConfig, calendarPreYear, int(endDateForm.Month()))
 					if tErr != nil {
 						err = errors.New("获取季节性图表数据失败,Err:" + tErr.Error())
 						return
@@ -427,6 +429,10 @@ func GetSeasonEdbInfoDataListByXDate(dataList []*models.EdbDataList, latestDate
 			ShowName:  showName,
 		}
 		dataMap[name] = item
+		if lastDateT.Before(endT) {
+			//如果最新的日期在起始日之前,则跳出循环
+			break
+		}
 	}
 	for k, v := range dataMap {
 		if leftNameFlag {
@@ -511,7 +517,7 @@ func GetSeasonEdbInfoDataListByXDate(dataList []*models.EdbDataList, latestDate
 }
 
 // GetSeasonEdbInfoDataListByXDateNong 季节性图的指标数据根据横轴选择农历时展示
-func GetSeasonEdbInfoDataListByXDateNong(result *models.EdbDataResult, latestDate time.Time, seasonExtraConfig string, calendarPreYear int) (quarterDataListSort models.QuarterDataList, err error) {
+func GetSeasonEdbInfoDataListByXDateNong(result *models.EdbDataResult, latestDate time.Time, seasonExtraConfig string, calendarPreYear, thisMonth int) (quarterDataListSort models.QuarterDataList, err error) {
 	xStartDate := "01-01"
 	xEndDate := "12-31"
 	jumpYear := 0
@@ -609,6 +615,10 @@ func GetSeasonEdbInfoDataListByXDateNong(result *models.EdbDataResult, latestDat
 			ShowName:  showName,
 		}
 		dataMap[showName] = item
+		if lastDateT.Before(endT) {
+			//如果最新的日期在起始日之前,则跳出循环
+			break
+		}
 	}
 	for k, v := range dataMap {
 		if leftNameFlag {
@@ -646,8 +656,14 @@ func GetSeasonEdbInfoDataListByXDateNong(result *models.EdbDataResult, latestDat
 
 	for name, dateItem := range dataMap {
 		lv, ok1 := yearDataListMap[dateItem.EndDate.Year()]
+		if thisMonth > 11 {
+			lv, ok1 = yearDataListMap[dateItem.EndDate.Year()-1]
+		}
 		if dateItem.EndDate.Year() > maxY {
 			lv, ok1 = yearDataListMap[dateItem.StartDate.Year()]
+			if thisMonth > 11 {
+				lv, ok1 = yearDataListMap[dateItem.StartDate.Year()-1]
+			}
 		}
 		if !ok1 {
 			continue