浏览代码

季节性图表,起始日期

xyxie 1 年之前
父节点
当前提交
ecd35405b1
共有 1 个文件被更改,包括 54 次插入35 次删除
  1. 54 35
      services/data/chart_info.go

+ 54 - 35
services/data/chart_info.go

@@ -819,9 +819,6 @@ func GetSeasonEdbInfoDataListByXDate(dataList []*data_manage.EdbDataList, latest
 		return
 	}
 	startYear := startDateT.Year()
-	if jumpYear == 1 {
-		startYear = startYear - 1
-	}
 	//获取数据的最新日期
 	lastDate := dataList[length-1].DataTime
 	lastDateT, tmpErr := time.Parse(utils.FormatDate, lastDate)
@@ -982,12 +979,7 @@ func GetSeasonEdbInfoDataListByXDateNong(result *data_manage.EdbDataResult, late
 	//判断横轴的两个时间之间是不是跨年了,如果跨年了,则横轴截止年份比起始年份+1,如果不跨年,截止年份等于起始年份
 	//根据数据确定最早的年份,和最近年份
 	//根据横轴的日期,汇总所有的年份
-	startYear := result.List[0].Year
-	if jumpYear == 1 {
-		if startYear != calendarPreYear {
-			startYear = startYear - 1
-		}
-	}
+	startYear := calendarPreYear + 1
 	itemLength := len(result.List[length-1].Items)
 	//获取数据的最新日期
 	lastDate := result.List[length-1].Items[itemLength-1].DataTime
@@ -1079,30 +1071,57 @@ func GetSeasonEdbInfoDataListByXDateNong(result *data_manage.EdbDataResult, late
 	for name, dateItem := range dataMap {
 		lv, ok1 := yearDataListMap[dateItem.EndDate.Year()]
 		if !ok1 {
-			continue
+			if dateItem.EndDate.Year() > maxY {
+				lv, ok1 = yearDataListMap[dateItem.StartDate.Year()]
+				if !ok1 {
+					continue
+				}
+			} else {
+				continue
+			}
 		}
 
 		for _, item := range lv.Items {
 			dataTimeT, _ := time.Parse(utils.FormatDate, item.DataTime)
-			if (startTmpT.Before(dataTimeT) && endTmpT.After(dataTimeT)) || startTmpT == dataTimeT || endTmpT == dataTimeT {
-				if findVal, ok := quarterMap[name]; !ok {
-					findVal = append(findVal, item)
-					quarterMap[name] = findVal
-				} else {
-					findVal = append(findVal, item)
-					quarterMap[name] = findVal
+			if dateItem.EndDate.Year() > maxY {
+				if (dateItem.StartDate.Before(dataTimeT) && dateItem.EndDate.After(dataTimeT)) || dateItem.StartDate == dataTimeT || dateItem.EndDate == dataTimeT {
+					if findVal, ok := quarterMap[name]; !ok {
+						findVal = append(findVal, item)
+						quarterMap[name] = findVal
+					} else {
+						findVal = append(findVal, item)
+						quarterMap[name] = findVal
+					}
+					if lv.Year >= latestDateYear {
+						// 切割的日期时间字符串
+						cuttingDataTimeStr := latestDate.AddDate(0, 0, lv.BetweenDay).Format(utils.FormatDate)
+						if item.DataTime == cuttingDataTimeStr {
+							dateItem.CuttingDataTimestamp = item.DataTimestamp
+							dataMap[name] = dateItem
+						}
+					}
 				}
-
-				if lv.Year >= latestDateYear {
-					// 切割的日期时间字符串
-					cuttingDataTimeStr := latestDate.AddDate(0, 0, lv.BetweenDay).Format(utils.FormatDate)
-					if item.DataTime == cuttingDataTimeStr {
-						dateItem.CuttingDataTimestamp = item.DataTimestamp
-						dataMap[name] = dateItem
+			} else {
+				if (startTmpT.Before(dataTimeT) && endTmpT.After(dataTimeT)) || startTmpT == dataTimeT || endTmpT == dataTimeT {
+					if findVal, ok := quarterMap[name]; !ok {
+						findVal = append(findVal, item)
+						quarterMap[name] = findVal
+					} else {
+						findVal = append(findVal, item)
+						quarterMap[name] = findVal
+					}
+					if lv.Year >= latestDateYear {
+						// 切割的日期时间字符串
+						cuttingDataTimeStr := latestDate.AddDate(0, 0, lv.BetweenDay).Format(utils.FormatDate)
+						if item.DataTime == cuttingDataTimeStr {
+							dateItem.CuttingDataTimestamp = item.DataTimestamp
+							dataMap[name] = dateItem
+						}
 					}
 				}
 			}
 		}
+
 	}
 	for k, v := range dataMap {
 		itemList := quarterMap[k]
@@ -1118,19 +1137,19 @@ func GetSeasonEdbInfoDataListByXDateNong(result *data_manage.EdbDataResult, late
 		quarterDataList = append(quarterDataList, quarterItem)
 	}
 
-	if result.List[0].Year != calendarPreYear || jumpYear == 1 {
-		itemList := make([]*data_manage.EdbDataList, 0)
-		items := new(data_manage.QuarterData)
-		//items.Year = calendarPreYear
-		items.DataList = itemList
+	//if result.List[0].Year != calendarPreYear || jumpYear == 1 {
+	itemList := make([]*data_manage.EdbDataList, 0)
+	items := new(data_manage.QuarterData)
+	//items.Year = calendarPreYear
+	items.DataList = itemList
 
-		newResult := make([]*data_manage.QuarterData, 0)
-		newResult = append(newResult, items)
-		newResult = append(newResult, quarterDataList...)
-		resultData = newResult
-	} else {
+	newResult := make([]*data_manage.QuarterData, 0)
+	newResult = append(newResult, items)
+	newResult = append(newResult, quarterDataList...)
+	resultData = newResult
+	/*} else {
 		resultData = quarterDataList
-	}
+	}*/
 
 	if len(quarterDataList) > 0 {
 		quarterDataListSort = resultData