I am new to drools, I would like to know how to sort a collection based on two properties of an object. The below objects are stored in a collection.
class Schedule{
private String datePlan;
private String orderNumber;
//more fields
}
I tried by configuring the below rule but seems like there is an issue.
rule "ORDER RULE"
dialect "java"
when
// OrderBy DatePlan asc, OrderNo asc
not Schedule(planYearMonth == $schedule.planYearMonth,
carSeries == $schedule.carSeries,
porCode == $schedule.porCode,
productionFamilyCode == $schedule.productionFamilyCode,
endItemModelCode == $schedule.endItemModelCode,
endItemColorCode == $schedule.endItemColorCode,
datePlan < $schedule.datePlan ||
orderNumber< $schedule.orderNumber))
then
retract($order);
retract($schedule);
end
The below logic is to store Orders & Schedules
rule "insert Orders"
when
$inlist : OrderList( $inIdx : size > 0)
then
for (int i=0; i < $inIdx; i++){
Order order = (Order)$inlist.get(i);
insert(order);
}
retract($inlist);
end
rule "insert Schedules"
when
$inlist : ScheduleList( $inIdx : size > 0)
then
for (int i=0; i < $inIdx; i++){
Schedule schedule = (Schedule)$inlist.get(i);
insert(schedule);
}
retract($inlist);
end