在OptaPlanner中更改周末定义

时间:2018-12-10 16:07:03

标签: java optaplanner

我正在基于OptaPlanner 7.5.0 Final的NurseRostering示例构建名册计划器应用程序。

圣诞节或复活节等假期的花名册要求与常规周末相同(轮班类型和金额相同), 因此,我想更改默认的周末定义以包括预定义的假期。

我尝试更改NurseRostering示例(src \ main \ java \ org \ optaplanner \ examples \ nurserostering \ domain \ WeekendDefinition.java)中的WeekendDefinition类, 但对计划者使用的周末定义没有影响。
如何更改OptaPlanner使用的周末定义?

1 个答案:

答案 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
    }