OptaPlanner - возможная проблема с ArrayList () из коллекции - PullRequest
0 голосов
/ 20 октября 2019

Я хотел бы представить следующее правило:

rule "nonHomogeneousDistributionOnPeriod"
    when
        RosterParametrization($index : planningWindowStart.Date.toEpochDay)
        $myObject: MyObject($myObjectId: myObjectId, level == 3)
        $assignments : ArrayList() from collect(DutyAssignment(
                myObjectId == $myObjectId
                && dutyDateDayIndex >= $index
                && duty.dutyType.type == "DAY"
        ))
        eval($myObject.calculateDutyDistribution($assignments, 20) < 0)
    then
        scoreHolder.addHardConstraintMatch(kcontext, -30);
end

В режиме FULL_ASSERT эти правила вызывают ошибку «java.lang.IllegalStateException: constraintMatchTotal ... не удалось удалить constraintMatch ....». Похоже, что именно конструкция $ assignments и является основной причиной, поскольку комментирование eval не имеет никакого эффекта. Я использую тот же шаблон на других правилах с тем же эффектом. DutyAssignment - это мой PlanningEntity, а MyObject - это эквивалент Nurse in NurseRostering sample.

Есть идеи?

...