You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Drools统计符合指定条件的对象数量 满足阈值后执行赋值操作

Drools规则计数阈值触发调整方案

原有规则问题

你写的规则匹配逻辑为只要公司员工列表中存在1名HR部门的员工就会触发规则执行赋值,没有实现计数和阈值判断逻辑,因此只要存在HR员工就会触发标签设置。

调整后代码

使用Drools提供的accumulate聚合函数完成员工计数和阈值判断,调整后规则如下:

rule "HR Employee Count Over 10 Set Band"
dialect "mvel"
when 
    company : CompanyFact($listOfEmployees: employees)
    // 聚合统计HR部门员工数,判断超过10才满足匹配条件
    accumulate(
        employee : EmployeeFact(departmentType == "HR") from $listOfEmployees;
        $hrEmpCount : count(employee);
        $hrEmpCount > 10
    )
then
    company.setDepartmentBand("ABC");
end

逻辑说明

  • accumulate 会遍历所有符合条件的HR部门员工,通过count函数统计总数量
  • 只有当统计得到的$hrEmpCount大于10时,才会满足规则的when匹配条件,触发标签赋值操作
  • 避免了单条符合条件的员工就触发规则的问题

内容的提问来源于stack exchange,提问作者gahlot.jaggs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 05:42:02