|
@@ -455,7 +455,7 @@ func RefreshAllPredictCalculateTcz(edbInfoId, source, subSource int, fromEdbInfo
|
|
|
} else {
|
|
|
if fromEdbInfo.Frequency == "月度" { //向上和向下,各找一个月
|
|
|
for i := 0; i <= 35; i++ {
|
|
|
- nextDateDay := preDate.AddDate(0, 0, 1)
|
|
|
+ nextDateDay := preDate.AddDate(0, 0, i)
|
|
|
nextDateDayStr := nextDateDay.Format(utils.FormatDate)
|
|
|
if findItem, ok := dataMap[nextDateDayStr]; ok { //上一年同期->下一个月找到
|
|
|
timestamp := currentDate.UnixNano() / 1e6
|
|
@@ -690,5 +690,36 @@ func RefreshAllPredictCalculateTcz(edbInfoId, source, subSource int, fromEdbInfo
|
|
|
return
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ // 取出最新值(小于源指标最新日期的最大日期所对应的值)
|
|
|
+ {
|
|
|
+ edb, e := GetEdbInfoById(edbInfoId)
|
|
|
+ if e != nil {
|
|
|
+ err = fmt.Errorf("获取刷新后的指标失败, %v", e)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ list, e := GetPredictEdbDataListAll(edb, 0)
|
|
|
+ if e != nil {
|
|
|
+ err = fmt.Errorf("获取刷新后的指标数据失败, %v", e)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ dateData := make(map[time.Time]float64)
|
|
|
+ for _, v := range list {
|
|
|
+ d, _ := time.ParseInLocation(utils.FormatDate, v.DataTime, time.Local)
|
|
|
+ if !d.IsZero() {
|
|
|
+ dateData[d] = v.Value
|
|
|
+ }
|
|
|
+ }
|
|
|
+ t, _ := time.ParseInLocation(utils.FormatDate, fromEdbInfo.LatestDate, time.Local)
|
|
|
+ if !t.IsZero() {
|
|
|
+ var maxDate time.Time
|
|
|
+ for k := range dateData {
|
|
|
+ if k.After(maxDate) && !k.After(t) {
|
|
|
+ maxDate = k
|
|
|
+ }
|
|
|
+ }
|
|
|
+ latestValue = dateData[maxDate]
|
|
|
+ }
|
|
|
+ }
|
|
|
return
|
|
|
}
|