Lius
17 小时以前 7852fd6313032a18ff44deb005f0bbc344d41d17
修复自定义公式除数为0异常
已修改2个文件
16 ■■■■ 文件已修改
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/TmpEquipmentAlarm.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/util/JexlFormulaCalculator.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/TmpEquipmentAlarm.java
@@ -1,7 +1,5 @@
package org.jeecg.modules.mdc.entity;
import com.fasterxml.jackson.annotation.JsonIgnore;
import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/util/JexlFormulaCalculator.java
@@ -50,12 +50,14 @@
                throw new RuntimeException("公式计算结果不是数字");
            }
        } catch (JexlException e) {
            // 关键:不依赖内部类,直接通过异常消息判断除数为0
            if (e.getMessage() != null && e.getMessage().contains("division by zero")) {
                return BigDecimal.ZERO; // 除数为0返回0
            }
            // 其他JEXL异常正常抛出
            throw new RuntimeException("公式计算失败: " + formula, e);
            return BigDecimal.ZERO; // 除数为0返回0
//            // 关键:不依赖内部类,直接通过异常消息判断除数为0
//            if (e.getMessage() != null && e.getMessage().contains("division by zero")) {
//
//            }
//            // 其他JEXL异常正常抛出
//            throw new RuntimeException("公式计算失败: " + formula, e);
        } catch (Exception e) {
            throw new RuntimeException("公式计算失败: " + formula, e);
        }