|
@@ -749,9 +749,7 @@ func getEdbDataMapList(chartInfoId, chartType int, calendar, startDate, endDate
|
|
|
err = errors.New("获取农历数据失败,Err:" + tmpErr.Error())
|
|
|
return
|
|
|
}
|
|
|
- endDateTmp := dataList[len(dataList)-1].DataTime
|
|
|
- endDateForm, _ := time.Parse(utils.FormatDate, endDateTmp)
|
|
|
- quarterDataList, tErr := GetSeasonEdbInfoDataListByXDateNong(result, latestDate, seasonExtraConfig, calendarPreYear, int(endDateForm.Month()))
|
|
|
+ quarterDataList, tErr := GetSeasonEdbInfoDataListByXDateNong(result, latestDate, seasonExtraConfig, calendarPreYear)
|
|
|
if tErr != nil {
|
|
|
err = errors.New("获取季节性图表数据失败,Err:" + tErr.Error())
|
|
|
return
|
|
@@ -965,7 +963,7 @@ func GetSeasonEdbInfoDataListByXDate(dataList []*data_manage.EdbDataList, latest
|
|
|
}
|
|
|
|
|
|
// GetSeasonEdbInfoDataListByXDateNong 季节性图的指标数据根据横轴选择农历时展示
|
|
|
-func GetSeasonEdbInfoDataListByXDateNong(result *data_manage.EdbDataResult, latestDate time.Time, seasonExtraConfig string, calendarPreYear, thisMonth int) (quarterDataListSort data_manage.QuarterDataList, err error) {
|
|
|
+func GetSeasonEdbInfoDataListByXDateNong(result *data_manage.EdbDataResult, latestDate time.Time, seasonExtraConfig string, calendarPreYear int) (quarterDataListSort data_manage.QuarterDataList, err error) {
|
|
|
xStartDate := "01-01"
|
|
|
xEndDate := "12-31"
|
|
|
jumpYear := 0
|
|
@@ -1023,6 +1021,7 @@ func GetSeasonEdbInfoDataListByXDateNong(result *data_manage.EdbDataResult, late
|
|
|
|
|
|
//整理出日期
|
|
|
leftNameFlag := true
|
|
|
+ maxY := 0
|
|
|
for currentStartYear := startYear; currentStartYear <= endYear; currentStartYear++ {
|
|
|
startStr := fmt.Sprintf("%d-%s", currentStartYear, xStartDate)
|
|
|
currentEndYear := currentStartYear
|
|
@@ -1057,6 +1056,9 @@ func GetSeasonEdbInfoDataListByXDateNong(result *data_manage.EdbDataResult, late
|
|
|
//如果最新的日期比真实年份要大,则数据全部按照最大的年份补齐
|
|
|
nowYear = endT.Year()
|
|
|
}
|
|
|
+ if endT.Year() > maxY {
|
|
|
+ maxY = endT.Year()
|
|
|
+ }
|
|
|
item := data_manage.QuarterXDateItem{
|
|
|
StartDate: startT,
|
|
|
EndDate: endT,
|
|
@@ -1085,15 +1087,6 @@ func GetSeasonEdbInfoDataListByXDateNong(result *data_manage.EdbDataResult, late
|
|
|
}
|
|
|
|
|
|
//判断哪些点应该落在同一条时间线上
|
|
|
- maxY := lastDateT.Year()
|
|
|
- /*for _, lv := range result.List {
|
|
|
- for _, item := range lv.Items {
|
|
|
- dataTimeT, _ := time.Parse(utils.FormatDate, item.DataTime)
|
|
|
- if dataTimeT.Year() > maxY {
|
|
|
- maxY = dataTimeT.Year()
|
|
|
- }
|
|
|
- }
|
|
|
- }*/
|
|
|
endTmp := fmt.Sprintf("%d-%s", maxY, xEndDate)
|
|
|
endTmpT, _ := time.Parse(utils.FormatDate, endTmp)
|
|
|
minY := maxY
|
|
@@ -1105,9 +1098,6 @@ func GetSeasonEdbInfoDataListByXDateNong(result *data_manage.EdbDataResult, late
|
|
|
|
|
|
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() > lastDateT.Year() {
|
|
|
lv, ok1 = yearDataListMap[dateItem.StartDate.Year()]
|
|
|
}
|
|
@@ -1125,70 +1115,35 @@ 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 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)
|
|
|
- }
|
|
|
+ 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)
|
|
|
}
|
|
|
- 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
|
|
|
- }
|
|
|
- }
|
|
|
+ } else {
|
|
|
+ newItemDate = dataTimeT.AddDate(nowYear-year, 0, 0)
|
|
|
}
|
|
|
- } 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
|
|
|
- }
|
|
|
+ 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
|
|
|
}
|
|
|
}
|
|
|
}
|