|
@@ -6,8 +6,9 @@ import (
|
|
|
"eta/eta_index_lib/utils"
|
|
|
"fmt"
|
|
|
"github.com/beego/beego/v2/client/orm"
|
|
|
+ "github.com/dengsgo/math-engine/engine"
|
|
|
"github.com/shopspring/decimal"
|
|
|
- "github.com/yidane/formula"
|
|
|
+ //"github.com/yidane/formula"
|
|
|
"strconv"
|
|
|
"strings"
|
|
|
"time"
|
|
@@ -460,24 +461,24 @@ func refreshAllCalculate(to orm.TxOrmer, edbInfoIdArr []*EdbInfo, edbInfoTag map
|
|
|
}
|
|
|
//utils.FileLog.Info(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 {
|
|
|
- // 分母为0的报错
|
|
|
- if strings.Contains(err.Error(), "divide by zero") {
|
|
|
- //removeDateList = append(removeDateList, sk)
|
|
|
- continue
|
|
|
- }
|
|
|
- err = errors.New("计算失败:Err:" + err.Error() + ";formulaStr:" + formulaFormStr)
|
|
|
- fmt.Println(err)
|
|
|
- return err
|
|
|
- }
|
|
|
- // 如果计算结果是NAN,那么就退出当前循环
|
|
|
- if calResult.IsNan() {
|
|
|
- continue
|
|
|
- }
|
|
|
-
|
|
|
- calVal, err := calResult.Float64()
|
|
|
+ //expression := formula.NewExpression(formulaFormStr)
|
|
|
+ //calResult, err := expression.Evaluate()
|
|
|
+ //if err != nil {
|
|
|
+ // // 分母为0的报错
|
|
|
+ // if strings.Contains(err.Error(), "divide by zero") {
|
|
|
+ // //removeDateList = append(removeDateList, sk)
|
|
|
+ // continue
|
|
|
+ // }
|
|
|
+ // err = errors.New("计算失败:Err:" + err.Error() + ";formulaStr:" + formulaFormStr)
|
|
|
+ // fmt.Println(err)
|
|
|
+ // return err
|
|
|
+ //}
|
|
|
+ //// 如果计算结果是NAN,那么就退出当前循环
|
|
|
+ //if calResult.IsNan() {
|
|
|
+ // continue
|
|
|
+ //}
|
|
|
+ calVal, err := engine.ParseAndExec(formulaFormStr)
|
|
|
+ //calVal, err := calResult.Float64()
|
|
|
if err != nil {
|
|
|
err = errors.New("计算失败:获取计算值失败 Err:" + err.Error() + ";formulaStr:" + formulaFormStr)
|
|
|
fmt.Println(err)
|
|
@@ -712,12 +713,19 @@ func CheckFormula2(edbInfoArr []*EdbInfo, formulaMap map[string]string, formulaS
|
|
|
if formulaFormStr == "" {
|
|
|
return
|
|
|
}
|
|
|
- expression := formula.NewExpression(formulaFormStr)
|
|
|
- _, err = expression.Evaluate()
|
|
|
+
|
|
|
+ _, err = engine.ParseAndExec(formulaFormStr)
|
|
|
if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
} else {
|
|
|
ok = true
|
|
|
}
|
|
|
+ //expression := formula.NewExpression(formulaFormStr)
|
|
|
+ //_, err = expression.Evaluate()
|
|
|
+ //if err != nil {
|
|
|
+ //} else {
|
|
|
+ // ok = true
|
|
|
+ //}
|
|
|
return
|
|
|
}
|
|
|
|