xyxie 1 year ago
parent
commit
b055c9528f
1 changed files with 61 additions and 25 deletions
  1. 61 25
      services/data/chart_info.go

+ 61 - 25
services/data/chart_info.go

@@ -1098,6 +1098,7 @@ func GetSeasonEdbInfoDataListByXDateNong(result *data_manage.EdbDataResult, late
 
 	for name, dateItem := range dataMap {
 		lv, ok1 := yearDataListMap[dateItem.EndDate.Year()]
+
 		if dateItem.EndDate.Year() > lastDateT.Year() {
 			lv, ok1 = yearDataListMap[dateItem.StartDate.Year()]
 		}
@@ -1115,35 +1116,70 @@ func GetSeasonEdbInfoDataListByXDateNong(result *data_manage.EdbDataResult, late
 			dataTimeT, _ := time.Parse(utils.FormatDate, item.DataTime)
 			year := dataTimeT.Year()
 			newItemDate := dataTimeT.AddDate(nowYear-year, 0, 0)
-			if (startTmpT.Before(dataTimeT) && endTmpT.After(dataTimeT)) || startTmpT == dataTimeT || endTmpT == dataTimeT {
-				if jumpYear == 1 {
-					//计算前一年最大的日期, 只补齐数据到去年
-					beforeYearMaxDate := fmt.Sprintf("%d-12-31", startTmpT.Year())
-					beforeYearMaxDateT, _ := time.Parse(utils.FormatDate, beforeYearMaxDate)
-					if dataTimeT.Before(beforeYearMaxDateT) || dataTimeT == beforeYearMaxDateT {
-						newItemDate = dataTimeT.AddDate(nowYear-year-1, 0, 0)
+			if dateItem.EndDate.Year() > maxY {
+				if (dateItem.StartDate.Before(dataTimeT) && dateItem.EndDate.After(dataTimeT)) || dateItem.StartDate == dataTimeT || dateItem.EndDate == dataTimeT {
+					if jumpYear == 1 {
+						//计算前一年最大的日期, 只补齐数据到去年
+						beforeYearMaxDate := fmt.Sprintf("%d-12-31", dateItem.StartDate.Year())
+						beforeYearMaxDateT, _ := time.Parse(utils.FormatDate, beforeYearMaxDate)
+						if dataTimeT.Before(beforeYearMaxDateT) || dataTimeT == beforeYearMaxDateT {
+							newItemDate = dataTimeT.AddDate(nowYear-year-1, 0, 0)
+						} else {
+							newItemDate = dataTimeT.AddDate(nowYear-year, 0, 0)
+						}
 					} else {
 						newItemDate = dataTimeT.AddDate(nowYear-year, 0, 0)
 					}
-				} else {
-					newItemDate = dataTimeT.AddDate(nowYear-year, 0, 0)
-				}
-				timestamp := newItemDate.UnixNano() / 1e6
-				tmpVal.DataTimestamp = timestamp
-				tmpV := &tmpVal
-				if findVal, ok := quarterMap[name]; !ok {
-					findVal = append(findVal, tmpV)
-					quarterMap[name] = findVal
-				} else {
-					findVal = append(findVal, tmpV)
-					quarterMap[name] = findVal
+					timestamp := newItemDate.UnixNano() / 1e6
+					tmpVal.DataTimestamp = timestamp
+					tmpV := &tmpVal
+					if findVal, ok := quarterMap[name]; !ok {
+						findVal = append(findVal, tmpV)
+						quarterMap[name] = findVal
+					} else {
+						findVal = append(findVal, tmpV)
+						quarterMap[name] = findVal
+					}
+					if lv.Year >= latestDateYear {
+						// 切割的日期时间字符串
+						cuttingDataTimeStr := latestDate.AddDate(0, 0, lv.BetweenDay).Format(utils.FormatDate)
+						if item.DataTime == cuttingDataTimeStr {
+							dateItem.CuttingDataTimestamp = timestamp
+							dataMap[name] = dateItem
+						}
+					}
 				}
-				if lv.Year >= latestDateYear {
-					// 切割的日期时间字符串
-					cuttingDataTimeStr := latestDate.AddDate(0, 0, lv.BetweenDay).Format(utils.FormatDate)
-					if item.DataTime == cuttingDataTimeStr {
-						dateItem.CuttingDataTimestamp = timestamp
-						dataMap[name] = dateItem
+			} else {
+				if (startTmpT.Before(dataTimeT) && endTmpT.After(dataTimeT)) || startTmpT == dataTimeT || endTmpT == dataTimeT {
+					if jumpYear == 1 {
+						//计算前一年最大的日期, 只补齐数据到去年
+						beforeYearMaxDate := fmt.Sprintf("%d-12-31", startTmpT.Year())
+						beforeYearMaxDateT, _ := time.Parse(utils.FormatDate, beforeYearMaxDate)
+						if dataTimeT.Before(beforeYearMaxDateT) || dataTimeT == beforeYearMaxDateT {
+							newItemDate = dataTimeT.AddDate(nowYear-year-1, 0, 0)
+						} else {
+							newItemDate = dataTimeT.AddDate(nowYear-year, 0, 0)
+						}
+					} else {
+						newItemDate = dataTimeT.AddDate(nowYear-year, 0, 0)
+					}
+					timestamp := newItemDate.UnixNano() / 1e6
+					tmpVal.DataTimestamp = timestamp
+					tmpV := &tmpVal
+					if findVal, ok := quarterMap[name]; !ok {
+						findVal = append(findVal, tmpV)
+						quarterMap[name] = findVal
+					} else {
+						findVal = append(findVal, tmpV)
+						quarterMap[name] = findVal
+					}
+					if lv.Year >= latestDateYear {
+						// 切割的日期时间字符串
+						cuttingDataTimeStr := latestDate.AddDate(0, 0, lv.BetweenDay).Format(utils.FormatDate)
+						if item.DataTime == cuttingDataTimeStr {
+							dateItem.CuttingDataTimestamp = timestamp
+							dataMap[name] = dateItem
+						}
 					}
 				}
 			}