|
@@ -429,24 +429,25 @@ func refreshAllCalculate(to orm.TxOrmer, edbInfoIdArr []*EdbInfo, edbInfoId, sou
|
|
|
return err
|
|
|
}
|
|
|
dataMap := make(map[string]string)
|
|
|
+
|
|
|
+ removeDateMap := make(map[string]string) //需要移除的日期
|
|
|
for _, v := range dataList {
|
|
|
dataMap[v.DataTime] = v.Value
|
|
|
+ removeDateMap[v.DataTime] = v.DataTime
|
|
|
}
|
|
|
edbInfoIdStr := strconv.Itoa(edbInfoId)
|
|
|
existDataMap := make(map[string]string)
|
|
|
-
|
|
|
- removeDateList := make([]string, 0) //需要移除的日期
|
|
|
for sk, sv := range saveDataMap {
|
|
|
//fmt.Println(sk, sv)
|
|
|
formulaStr = strings.ToUpper(formulaStr)
|
|
|
formulaFormStr := ReplaceFormula(edbInfoIdArr, sv, formulaMap, formulaStr, edbInfoIdBytes)
|
|
|
//计算公式异常,那么就移除该指标
|
|
|
if formulaFormStr == `` {
|
|
|
- removeDateList = append(removeDateList, sk)
|
|
|
+ //removeDateList = append(removeDateList, sk)
|
|
|
continue
|
|
|
}
|
|
|
//utils.FileLog.Info(fmt.Sprintf("formulaFormStr:%s", formulaFormStr))
|
|
|
- fmt.Println(fmt.Sprintf("formulaFormStr:%s", formulaFormStr))
|
|
|
+ fmt.Println(fmt.Sprintf("%s:formulaFormStr:%s", sk, formulaFormStr))
|
|
|
expression := formula.NewExpression(formulaFormStr)
|
|
|
calResult, err := expression.Evaluate()
|
|
|
if err != nil {
|
|
@@ -466,6 +467,8 @@ func refreshAllCalculate(to orm.TxOrmer, edbInfoIdArr []*EdbInfo, edbInfoId, sou
|
|
|
return err
|
|
|
}
|
|
|
|
|
|
+ // 有计算出来值,那么就从待删除指标中移除
|
|
|
+ delete(removeDateMap, sk)
|
|
|
saveValue := decimal.NewFromFloat(calVal).RoundCeil(4).String() //utils.SubFloatToString(calVal, 4)
|
|
|
if existVal, ok := dataMap[sk]; !ok {
|
|
|
dataTime, _ := time.Parse(utils.FormatDate, sk)
|
|
@@ -500,7 +503,11 @@ func refreshAllCalculate(to orm.TxOrmer, edbInfoIdArr []*EdbInfo, edbInfoId, sou
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if len(removeDateList) > 0 {
|
|
|
+ if len(removeDateMap) > 0 {
|
|
|
+ removeDateList := make([]string, 0) //需要移除的日期
|
|
|
+ for k := range removeDateMap {
|
|
|
+ removeDateList = append(removeDateList, k)
|
|
|
+ }
|
|
|
removeDateStr := strings.Join(removeDateList, `","`)
|
|
|
removeDateStr = `"` + removeDateStr + `"`
|
|
|
//如果拼接指标变更了,那么需要删除所有的指标数据
|