|
@@ -6,7 +6,7 @@ import com.googlecode.aviator.runtime.function.AbstractFunction;
|
|
|
import com.googlecode.aviator.runtime.type.AviatorDecimal;
|
|
|
import com.googlecode.aviator.runtime.type.AviatorObject;
|
|
|
import com.googlecode.aviator.runtime.type.Sequence;
|
|
|
-
|
|
|
+import com.syjy.calculate.entity.CalculateResult;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.Map;
|
|
@@ -30,16 +30,17 @@ public class Pass extends AbstractFunction {
|
|
|
// 获取参数
|
|
|
Object first = arg1.getValue(env);
|
|
|
BigDecimal compare = new BigDecimal(String.valueOf(arg2.getValue(env)));
|
|
|
+ compare = compare.divide(CalculateResult.ONE_HUNDRED,8,BigDecimal.ROUND_HALF_UP);
|
|
|
BigDecimal sum = BigDecimal.ZERO;
|
|
|
Sequence seq = RuntimeUtils.seq(first, env);
|
|
|
// 循环集合获取实际功率、预测功率信息并计算
|
|
|
for (Object obj : seq) {
|
|
|
Map<String, Object> map = (Map<String, Object>) obj;
|
|
|
- BigDecimal calculateResult = new BigDecimal(String.valueOf(AviatorEvaluator.execute("1-math.abs((ableValue-forecastAbleValue)/electricCapacity)", map)));
|
|
|
+ BigDecimal calculateResult = new BigDecimal(String.valueOf(AviatorEvaluator.execute("1-math.abs((ableValue-forecastAbleValue)/openCapacity)", map)));
|
|
|
Map<String, Object> passMap = new HashMap<>();
|
|
|
passMap.put("calculateResult", calculateResult);
|
|
|
passMap.put("compare", compare);
|
|
|
- BigDecimal forResult = new BigDecimal(String.valueOf(AviatorEvaluator.execute("calculateResult>=compare ? 1M:0M", passMap)));
|
|
|
+ BigDecimal forResult = new BigDecimal(String.valueOf(AviatorEvaluator.execute("if(calculateResult>=compare){ return 1M; } else{return 0M;}", passMap)));
|
|
|
sum = sum.add(forResult);
|
|
|
}
|
|
|
BigDecimal size = new BigDecimal(seq.hintSize());
|