Ich möchte einen Employee
entweder einer Reserve
Periode oder Shift
Periode zuweisen.Kann ich mehrere @ PlanningEntityCollectionProperty in OptaPlanner verwenden?
@PlanningSolution
public class RosterSolution implements Solution<HardSoftScore> {
@PlanningEntityCollectionProperty
private List<Shift> shift = new ArrayList<Shift>();
@PlanningEntityCollectionProperty
private List<Reserve> reserve = new ArrayList<Reserve>();
....
}
Jede Verschiebung und Reserve Einheit hat einen einzigen @PlanningVariable von
@PlanningVariable(valueRangeProviderRefs={"employees"}, nullable= true)
private Employee emp;
Ist es möglich, mehrere @PlanningEntityCollectionProperty Anmerkungen in einer Lösung zu verwenden? Ich habe keine Beispiele für seine Verwendung gesehen. Die Dokumentation unter @PlaningSolution gibt an: "Jede Planungslösung muss über mindestens 1 PlanningEntityCollectionProperty oder PlanningEntityProperty -Eigenschaft" verfügen, aber ich bin nicht sicher, wie Sie es implementieren.
Ich versuche, die einzelne Liste der Planungseinheiten, die Typcodierung verwenden, zu vermeiden, es sei denn, ich kann Typcode durch Zustands-/Strategiemuster ersetzen (wenn das möglich ist).
Java8 erlaubt mehrere Annotationen des gleichen Typs. Ich bin mir nicht sicher, ob sie tatsächlich mit OptaPlanner arbeiten würden, obwohl ... –
Danke. Ich bin mehr daran interessiert, wie das Framework mit mehreren @ PlanningEntityCollectionProperty-Annotationen funktioniert. Ich weiß es kompiliert ok. – busdrivingtupperware