at
org.drools.planner.core.score.director.drools.DroolsScoreDirector.getWorkingFacts(DroolsScoreDirector.java:88)
at
org.drools.planner.core.score.director.drools.DroolsScoreDirector.resetWorkingMemory(DroolsScoreDirector.java:81)
at
org.drools.planner.core.score.director.drools.DroolsScoreDirector.setWorkingSolution(DroolsScoreDirector.java:70)
at
org.drools.planner.core.solver.scope.DefaultSolverScope.setWorkingSolutionFromBestSolution(DefaultSolverScope.java:158)
at
org.drools.planner.core.solver.DefaultSolver.solvingStarted(DefaultSolver.java:176)
at
org.drools.planner.core.solver.DefaultSolver.solve(DefaultSolver.java:154)
at
com.swa.planner.snap1.app.SortWorkOrder.main(SortWorkOrder.java:41)
rule "requiredWorkTimeTotal"
when
$engineer : Engineer($worktime : worktime )
$requiredEngineerWorktimeTotal : Number(intValue
> $worktime) from accumulate(
WorkOrder(
engineer == $engineer,
$requiredWorktime : requiredWorktime ),
sum($requiredWorktime)
)
then
insertLogical(new
IntConstraintOccurrence("requiredWorkTimeTotal",
ConstraintType.NEGATIVE_HARD,
$requiredEngineerWorktimeTotal.intValue()
- $worktime,
$engineer));
end
----------
I'm rebuilding the app bit by bit and then
evolve it. The skill is not considered yet to make the
comparison, just worktime. This is the data i'm working with
right now:
-----------
List<Engineer> engineerList = new
ArrayList<Engineer>();
engineerList.add(new Engineer(1l, 8, ABC1, "Fabio"));
engineerList.add(new Engineer(2l, 8, ABC2, "Qwert"));
engineerList.add(new Engineer(3l, 8, ABC3, "Trewq"));
List<WorkOrder> workOrderList = new
ArrayList<WorkOrder>();
workOrderList.add(new WorkOrder(101l, 8, ABC1));
workOrderList.add(new WorkOrder(102L, 8, ABC2));
workOrderList.add(new WorkOrder(103L, 8, ABC3));
-----------