我正在基于OptaPlanner 7.5.0 Final的NurseRostering示例构建名册计划器应用程序。
圣诞节或复活节等假期的花名册要求与常规周末相同(轮班类型和金额相同), 因此,我想更改默认的周末定义以包括预定义的假期。
我尝试更改NurseRostering示例(src \ main \ java \ org \ optaplanner \ examples \ nurserostering \ domain \ WeekendDefinition.java)中的WeekendDefinition类,
但对计划者使用的周末定义没有影响。
如何更改OptaPlanner使用的周末定义?
答案 0 :(得分:0)
从ShiftAssignment.isWeekend()
开始:
https://github.com/kiegroup/optaplanner/blob/master/optaplanner-examples/src/main/java/org/optaplanner/examples/nurserostering/domain/ShiftAssignment.java#L94
public boolean isWeekend() {
if (employee == null) {
return false;
}
WeekendDefinition weekendDefinition = employee.getContract().getWeekendDefinition();
DayOfWeek dayOfWeek = shift.getShiftDate().getDayOfWeek();
return weekendDefinition.isWeekend(dayOfWeek); // Add or shiftDate is 25-DEC
}