diff --git a/nop-rule/nop-rule-core/src/main/java/io/nop/rule/core/model/compile/RuleModelCompiler.java b/nop-rule/nop-rule-core/src/main/java/io/nop/rule/core/model/compile/RuleModelCompiler.java index 40ecf2ea0..66e284967 100644 --- a/nop-rule/nop-rule-core/src/main/java/io/nop/rule/core/model/compile/RuleModelCompiler.java +++ b/nop-rule/nop-rule-core/src/main/java/io/nop/rule/core/model/compile/RuleModelCompiler.java @@ -49,7 +49,7 @@ public RuleModelCompiler() { public IExecutableRule compileRule(RuleModel ruleModel) { IExecutableRule rule; - if (ruleModel.getDecisionTree() != null) { + if (ruleModel.getDecisionTree() != null && ruleModel.getDecisionTree().hasChildren()) { rule = compileTree(ruleModel.getDecisionTree()); } else { rule = compileMatrix(ruleModel.getDecisionMatrix()); diff --git a/nop-rule/nop-rule-core/src/test/java/io/nop/rule/core/excel/TestRuleExcelParser.java b/nop-rule/nop-rule-core/src/test/java/io/nop/rule/core/excel/TestRuleExcelParser.java index 0a94774be..24648e507 100644 --- a/nop-rule/nop-rule-core/src/test/java/io/nop/rule/core/excel/TestRuleExcelParser.java +++ b/nop-rule/nop-rule-core/src/test/java/io/nop/rule/core/excel/TestRuleExcelParser.java @@ -80,14 +80,14 @@ public void testExecuteDecisionMatrix() { Map output = ruleManager.executeRule("test/test-matrix", null, ruleRt); System.out.println(JsonTool.serialize(ruleRt.getLogMessages(), true)); - assertEquals(9, output.get("result")); + assertEquals(9.0, output.get("result")); baseInfo.put("age", 50); ruleRt.setInput("是否已婚", "未婚"); ruleRt.clearOutputs(); output = ruleManager.executeRule("test/test-matrix", null, ruleRt); assertEquals("A", output.get("type")); - assertEquals(14, output.get("result")); + assertEquals(14.0, output.get("result")); } private IRuleManager getRuleManager() { diff --git a/nop-rule/nop-rule-core/src/test/resources/_vfs/nop/rule/test/test-matrix.rule.xlsx b/nop-rule/nop-rule-core/src/test/resources/_vfs/nop/rule/test/test-matrix.rule.xlsx index 8c12750b6..0f4c23a97 100644 Binary files a/nop-rule/nop-rule-core/src/test/resources/_vfs/nop/rule/test/test-matrix.rule.xlsx and b/nop-rule/nop-rule-core/src/test/resources/_vfs/nop/rule/test/test-matrix.rule.xlsx differ