|
@@ -218,6 +218,34 @@ func refreshAllPredictCalculateLjzzy(to orm.TxOrmer, edbInfoId, source int, from
|
|
|
dataMap[v.DataTime] = v.Value
|
|
|
}
|
|
|
existDataMap := make(map[string]string)
|
|
|
+ //查找实际日期, 如果实际日期不是月末值,则把上个月末日期作为实际日期
|
|
|
+ for yk, yv := range yearMap {
|
|
|
+ for i := 1; i <= 12; i++ {
|
|
|
+ if dataCurrentItem, ok := yv[i]; ok {
|
|
|
+ if i == 1 {
|
|
|
+ if latestDateStr < dataCurrentItem.DataTime { //假如最新的实际值不是1月末
|
|
|
+ if lastYearDate, ok1 := yearMap[yk-1]; ok1 {
|
|
|
+ if latestDateStr > lastYearDate[12].DataTime { //同时最新的实际值不是1月末,也不是上一年的12月末
|
|
|
+ latestDateStr = lastYearDate[12].DataTime
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else if i == 2 {
|
|
|
+ dataOne := strconv.Itoa(yk) + "-01-31"
|
|
|
+ if latestDateStr > dataOne && latestDateStr < dataCurrentItem.DataTime {
|
|
|
+ latestDateStr = dataOne
|
|
|
+ }
|
|
|
+
|
|
|
+ }else{
|
|
|
+ if dataPreItem, ok2 := yv[i-1]; ok2 {
|
|
|
+ if latestDateStr > dataPreItem.DataTime && latestDateStr < dataCurrentItem.DataTime {
|
|
|
+ latestDateStr = dataPreItem.DataTime
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
for yk, yv := range yearMap {
|
|
|
_, oneMonthOk := yv[1]
|
|
|
_, twoMonthOk := yv[2]
|
|
@@ -258,7 +286,6 @@ func refreshAllPredictCalculateLjzzy(to orm.TxOrmer, edbInfoId, source int, from
|
|
|
a := decimal.NewFromFloat(dataTwoItem.Value)
|
|
|
b := decimal.NewFromFloat(2.0)
|
|
|
val, _ = a.Div(b).Float64()
|
|
|
-
|
|
|
tmpSql, newAdd, tmpErr := calculateLjzzy(edbInfoId, date, edbInfoIdStr, edbCode, dataTableName, addSql, val, dataMap, existDataMap, to)
|
|
|
if !isAdd {
|
|
|
isAdd = newAdd
|
|
@@ -268,7 +295,8 @@ func refreshAllPredictCalculateLjzzy(to orm.TxOrmer, edbInfoId, source int, from
|
|
|
err = tmpErr
|
|
|
return
|
|
|
}
|
|
|
- if fromEdbInfo.LatestDate == date {
|
|
|
+
|
|
|
+ if latestDateStr == date {
|
|
|
latestValue= val
|
|
|
}
|
|
|
}
|
|
@@ -322,7 +350,7 @@ func refreshAllPredictCalculateLjzzy(to orm.TxOrmer, edbInfoId, source int, from
|
|
|
err = tmpErr
|
|
|
return
|
|
|
}
|
|
|
- if fromEdbInfo.LatestDate == date {
|
|
|
+ if latestDateStr == date {
|
|
|
latestValue= val
|
|
|
}
|
|
|
}
|