我有一个计划实体请求和一个计划变量作为出租车。
我想将日期(特定日期)传递给drools文件以进行cab分配。
我尝试将日期添加到计划解决方案中,但规则始终失败,我抓住了日期。
规划解决方案
@PlanningSolution
public class NRequest extends AbstractPersistable implements Solution<HardMediumSoftScore> {
private Date date;
private List<Cabs> list_cabs;
@PlanningEntityCollectionProperty
private List<Requests> list_req;
.....
.....
}
Drools file
规则“检查重叠Shift1”
when
$date:Date()
then
scoreHolder.addHardConstraintMatch(kcontext, 3);
scoreHolder.addSoftConstraintMatch(kcontext, 2);
end
答案 0 :(得分:0)
我建议使用NurseRosteringParametrization。
FooSolution类有一个FooParameterization类,它包含日期或计划窗口开始日期或特定分数权重等内容。然后只需在您的drools规则中匹配FooParameterization(您知道只有1个实例)并且而已。确保FooParameterization是getProblemFacts()或@ProblemFactProperty
的一部分