youseries / urule

URULE是一款基于RETE算法的纯Java规则引擎,提供规则集、决策表、决策树、评分卡,规则流等各种规则表现工具及基于网页的可视化设计器,可快速开发出各种复杂业务规则。
Apache License 2.0
1.83k stars 723 forks source link

使用自定义方法后评分卡条件匹配不正确 #94

Open hlizard opened 6 years ago

hlizard commented 6 years ago

为了您的问题能得到及时准确解答,请认真填写下面各个选项,感谢您的配合。

^^^条件:[变量]信用能力.有贷款余额机构数/贷款审批查询机构数总计(人行征信)【小于等于】[字符]0.2 =>不满足, 左值:0.71, 右值:0.2 ^^^条件:[变量]信用能力.有贷款余额机构数/贷款审批查询机构数总计(人行征信)【大于】[字符]0.2 =>满足, 左值:0.71, 右值:0.2 条件(js表达式)为"true",所以取:真值(0.4) ^^^条件:[变量]信用能力.有贷款余额机构数/贷款审批查询机构数总计(人行征信)【小于】[BEAN][commonHelper.If] =>不满足, 左值:0.71, 右值:0.4 条件(js表达式)为"true",所以取:真值(0.4) ^^^条件:[变量]信用能力.有贷款余额机构数/贷款审批查询机构数总计(人行征信)【大于等于】[BEAN][commonHelper.If] =>满足, 左值:0.71, 右值:0.4 条件(js表达式)为"true",所以取:真值(0.8) ^^^条件:[变量]信用能力.有贷款余额机构数/贷款审批查询机构数总计(人行征信)【小于】[BEAN][commonHelper.If] =>满足, 左值:0.71, 右值:0.8 √√√规则【sc4】成功匹配 √√√规则【sc5】成功匹配 ---行2,得分:80 ---行2,得分:100 +++求和得分:100

评分卡: image

sc4条件: image

sc5条件: image

youseries commented 6 years ago

从日志输出来说: ^^^条件:[变量]信用能力.有贷款余额机构数/贷款审批查询机构数总计(人行征信)【大于等于】[BEAN][commonHelper.If] =>满足, 左值:0.71, 右值:0.4 没问题呀。

hlizard commented 6 years ago

按理只应该匹配到80分(sc4条件)那条,结果80分、100分(sc5条件)两条都匹配了,结果变成100分了。

Geoffrey-Yip commented 6 years ago

没毛病,你的sc4本来就包含sc3,所以最终得了最高分那个