从 Drools 对象的所有日期中查找最近的日期
Finding the most recent date in from all dates in Drools object
如何在 Drools 对象的所有加入日期中找到最近的日期?
我的规则是这样的:
declare RecentDate
dates : java.util.Date
end
rule "insert_dates"
when
//reading dates from back end
Employee($date : dateOfJoining, $name : name, salary > 10000)
then
insert(new RecentDate($date))
end
现在我想根据 dateOfJoining 查找最近的员工。任何帮助表示赞赏。谢谢。
一种方法是,给定一名员工,确保没有其他人有更高的日期:
declare RecentDate
dates : java.util.Date
end
rule "insert_dates"
when
//reading dates from back end
Employee( $date : dateOfJoining, $name : name, salary > 10000)
not Employee (dateOfJoining > $date)
then
insert(new RecentDate($date))
end
以上规则仅适用于在执行 fireAllRules()
之前在会话中拥有所有 Employee
事实的情况。如果不是这种情况,您可以尝试先插入一个带有空日期的 RecentDate
,然后将每个 Employee
与它进行比较并相应地更新它:
rule "Init RecentDate"
when
not RecentDate()
then
insert new RecentDate(null);
end
rule "update_dates"
when
Employee( $date : dateOfJoining, $name : name, salary > 10000)
$d: RecentDate ( date == null || date < $date)
then
modify ($d){
setDate($date)
}
end
希望对您有所帮助,
如何在 Drools 对象的所有加入日期中找到最近的日期?
我的规则是这样的:
declare RecentDate
dates : java.util.Date
end
rule "insert_dates"
when
//reading dates from back end
Employee($date : dateOfJoining, $name : name, salary > 10000)
then
insert(new RecentDate($date))
end
现在我想根据 dateOfJoining 查找最近的员工。任何帮助表示赞赏。谢谢。
一种方法是,给定一名员工,确保没有其他人有更高的日期:
declare RecentDate
dates : java.util.Date
end
rule "insert_dates"
when
//reading dates from back end
Employee( $date : dateOfJoining, $name : name, salary > 10000)
not Employee (dateOfJoining > $date)
then
insert(new RecentDate($date))
end
以上规则仅适用于在执行 fireAllRules()
之前在会话中拥有所有 Employee
事实的情况。如果不是这种情况,您可以尝试先插入一个带有空日期的 RecentDate
,然后将每个 Employee
与它进行比较并相应地更新它:
rule "Init RecentDate"
when
not RecentDate()
then
insert new RecentDate(null);
end
rule "update_dates"
when
Employee( $date : dateOfJoining, $name : name, salary > 10000)
$d: RecentDate ( date == null || date < $date)
then
modify ($d){
setDate($date)
}
end
希望对您有所帮助,