Ausführung von Regeln mit einer Punktzahl von 0Java

Java-Forum
Guest
 Ausführung von Regeln mit einer Punktzahl von 0

Post by Guest »

Ich habe eine Mitarbeiterplanungsanwendung, die mit Zeitfold ausgeführt wird. Der Benutzer kann Regeln dynamisch ausschließen. Wir verarbeiten das mit Einschränkungen, soweit ich sehen kann, mit einem Vertragsstrafe
auch die Regeln mit einem Strafwert von 0 ausgeführt (aber nicht bestraft). Wenn ich also alle Regeln mit Ausnahme einer Regel deaktiviere, ist die Geschwindigkeit nicht höher als wenn ich alle Regeln auswähle. Ist das richtig oder weiß Timefold irgendwie im ConstraintProvider Welche Regel sollte nicht ausgeführt werden, da es ohnehin eine Punktzahl von Null hat? Ich weiß nicht, gibt es eine empfohlene Möglichkeit, eine solche Regel auszuschließen?

Code: Select all

public Constraint holiday(ConstraintFactory constraintFactory) {
return constraintFactory.forEach(Shift.class)
.filter((shift)-> shift.getRoster().getConstraintWeightOverrides().getConstraintWeight(ConstraintNames.HOLIDAY) == HardMediumSoftLongScore.of(0, 0, 0))
.join(
Absence.class,
Joiners.equal(Shift::getEmployee, Absence::getEmployee),
Joiners.greaterThanOrEqual(Shift::getDate, Absence::getStartDate),
Joiners.lessThanOrEqual(Shift::getDate, Absence::getEndDate)
)
.penalize(HardMediumSoftLongScore.ONE_HARD)
.asConstraint(ConstraintNames.HOLIDAY);
}
Mit der Filterung in der ersten Zeile machen wir zumindest nicht alle anderen Berechnungen.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post