Как отсортировать коллекцию в слюни по двум свойствам? - PullRequest
0 голосов
/ 22 января 2020

Я новичок в 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
...