首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >drools中对特定对象值进行计数的迭代

drools中对特定对象值进行计数的迭代
EN

Stack Overflow用户
提问于 2021-10-13 14:10:38
回答 1查看 32关注 0票数 0

嗨,新手Drools and stuck,在这里我需要迭代对象列表并进行计数,如果计数超过阈值数字,则分配一些值。

要求:计算部门与"HR“匹配的员工数量,如果超过数字10,则将特定的范围分配给部门。我使用了下面的代码,但是它只给出了匹配,不确定如何检查计数,然后分配标签。

rule "Less Than or Equal 10 Employee" dialect "mvel" when company : CompanyFact($listOfEmployees: employees) employee : EmployeeFact(departmentType == "HR") from $listOfEmployees then company.setDepartmentBand("ABC"); end

同样的结果只有在部门是HR的情况下才会产生,而我正在寻找的是,如果HR的员工超过10人,那么只给出"ABC“。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-13 14:25:49

您可以使用accumulatecollect,这取决于您的条件有多复杂。

代码语言:javascript
复制
rule "More than 10 HR employees"
when
  company: CompanyFact($listOfEmployees: employees)
  List(size > 10) from collect(EmployeeFact(departmentType == "HR") from $listOfEmployees)
then
  company.setDepartmentBand("ABC");
end

我在这个例子中使用了collect,因为它是一个简单的“获取子集”。如果你想得到一个属性的集合,平均值/最大值/平均值,或者更复杂的东西,你可以使用accumulate

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69557077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档