我需要有关Optaplanner任务分配更改的帮助,以下是有关该任务的完整信息:-
我有70个任务,每个任务需要2到8个小时,每个任务定义2个小时,每个任务的优先级低,员工与客户之间的亲和力低,这些任务与37个客户相关联。
我的问题是,我如何将这些任务分配给员工,以便如果将客户的任务分配给员工,那么在那天,该客户的另一任务将不会分配给同一员工或另一位员工。有人可以为drl规则或Java约束提供帮助吗?
不知道您的数据模型,我将对可用字段进行一些假设。约束看起来像这样:
.from(Task.class)
.ifExistsOther(Task.class,
Joiners.equal(Task::getCustomer),
Joiners.equal(Task::getDay))
.penalize("Two tasks for the same customer on the same day", ...)
由您来决定应处罚的力度。如果要消除这种情况,则应将其设为硬约束-打破此约束的解决方案将不可行。