Я новичок в drools, я хотел бы знать, как отсортировать коллекцию на основе двух свойств объекта. Приведенные ниже объекты хранятся в коллекции.
class Schedule{
private String datePlan;
private String orderNumber;
//more fields
}
Я попытался настроить приведенное ниже правило, но похоже, что есть проблема.
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
Нижеприведенные логи c предназначены для магазин заказов и расписаний
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