@PlanningEntity
public class BinAvailablity {
private int id;
private Interval interval;
private Bin bin;
private int roomMax;
@InverseRelationShadowVariable(sourceVariableName = "binAvailablity")
private List<Event> events = new ArrayList<>();
private List<Interval> nonAvailablity;
}
public class Event {
private int id;
@CustomShadowVariable(variableListenerClass = IntervalAssigningListener.class,
sources = {@PlanningVariableReference(variableName = "binAvailablity")})
private Interval interval;//assignning listener variable
private boolean isPinned;
private TotalTime totalTime;
@PlanningVariable(valueRangeProviderRefs = "binAvailablities")
private BinAvailablity binAvailablity;//plannig variable
private List<Staff> staffList;
private List<Equipment> equipmentList;
private List<Interval> nonAvailability;}
Моя конфигурация: -
<?xml version="1.0" encoding="UTF-8"?>
<solver>
<solutionClass>com.strategy.eagle.domains.optaplanner.EventBinAssignation</solutionClass>
<entityClass>com.strategy.eagle.domains.optaplanner.Event</entityClass>
<entityClass>com.strategy.eagle.domains.optaplanner.BinAvailablity</entityClass>
<scoreDirectorFactory>
<scoreDrl>Optaplanner/EventScheduling.drl</scoreDrl>
</scoreDirectorFactory>
<termination>
<secondsSpentLimit>200</secondsSpentLimit>
<bestScoreLimit>0hard/0soft</bestScoreLimit>
</termination>
<constructionHeuristic>
<constructionHeuristicType>FIRST_FIT</constructionHeuristicType>
</constructionHeuristic>
<localSearch>
<!-- -->
<localSearchType>HILL_CLIMBING</localSearchType>
</localSearch>
</solver>
@ PlanningSolution publi c class EventBinAssignation {
private String id;
@PlanningScore
private HardSoftScore score;
@ProblemFactCollectionProperty
@ValueRangeProvider(id = "binAvailablities")
List<BinAvailablity> binAvailablities;
@PlanningEntityCollectionProperty
List<Event> events;
}
Я создал две сущности с событием и BinAvailability. Мне нужно назначить события для binAvailablity. но Optaplanner назначает события только первой binAvailability. Никакой другой binAvailbility не использовался Optaplanner для назначения событий, в которых застрял счет, но он не использует никакой другой binavalilbity для назначения событий с некоторыми конкретными условиями. Поэтому, пожалуйста, помогите.