代码拉取完成,页面将自动刷新
同步操作将从 众辰创想/规则引擎--超轻量级 less-rules 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
超级轻量级的规则引擎,简单易用,超级容易上手
软件架构说明 略
目前还没有发布到maven的中央仓库,所以只能下载源码,打包到自己的仓库,使用
1、【规则表达式例子】:
((alarmId == '123' or alarmId == '124') and clearFlag != '0') and alarmTitle contains 'xd21' and alarmText notcontains 'Jzdd' and alarmCount in ['45','xx22','23','2333'] and alarmLevel > 3 and alarmServity < 8
2、java代码例子
//默认引擎实例:只要有符合的规则就返回结果
LessRuleEngine lre = LessEngineFactory.getDefaultEngine();
//全量引擎实例:返回全部符合的规则
LessRuleEngine lre = LessEngineFactory.getWholeEngine();
// _新建一个规则_
RuleEntity re = new RuleEntity();
// _设置规则分组标识_
re.setGroupId("meeting");
// _设置规则唯一标识_
re.setId("12345678");
//表达式字符串
String express = " clearFlag notin ['2','3','4'] and ( alarmId == '123' or alarmId == '124' )";
// _设置规则表达式_
re.setExpress(express);
// _规则注册到规则引擎_
EngineResponse opResult = lre.add(re);
//判断规则解析添加是否成功
if(opResult.getOpCode() == EngineResponse.ENGINE_OP_RES_FAIL) {
System.out.println("规则解析有错误,此规则没有添加成功:"+opResult.getMsg());
return ;
}
// _新建一个事实_
Map<String,String> fact = new HashMap<String,String>();
fact.put("alarmId", "124");
fact.put("clearFlag", "1");
// _引擎判断事实是否符合规则_
EngineResponse result = lre.fire(fact);
//结果判断
if(result.getMatchCode() == EngineResponse.ENGINE_MATCH_RES_SUCC) {
// _有规则匹配成功 TODO Something_
}
【判断符号说明】
操作符 | 说明 | 例子 |
---|---|---|
== | 恒等于 | alarmId == '123' |
!= | 不等于 | clearFlag != '0' |
contains | 包含 | alarmTitle contains 'xd21' |
notcontains | 不包含 | alarmText notcontains 'Jzdd' |
in | 在集合 | alarmCount in ['45','xx22','23','2333'] |
notin | 不在集合 | alarmType notin ['45','xx22','23','2333'] |
> | 大于 | alarmLevel > 3 |
< | 小于 | alarmLevel < 4 |
<= | 小于或等于 | alarmLevel >= 5 |
>= | 大于或等于 | alarmLevel > 6 |
【逻辑符号说明】
逻辑符号 | 说明 | 备注 |
---|---|---|
and | 且 && | 大小写敏感:小写 |
or | 或 || | 大小写敏感:小写 |
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。