package cn.iocoder.yudao.module.mes.service.pro.task.schedule; import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderDO; import org.junit.jupiter.api.Test; import java.time.LocalDateTime; import java.util.List; import static org.junit.jupiter.api.Assertions.assertEquals; class MesSchedulePriorityTest { @Test void higherPriorityFirstThenEarlierDeliveryThenId() { var low = new MesProWorkOrderDO().setId(1L).setSchedulePriority(0).setRequestDate(LocalDateTime.of(2026,1,1,0,0)); var high = new MesProWorkOrderDO().setId(2L).setSchedulePriority(9).setRequestDate(LocalDateTime.of(2026,2,1,0,0)); var older = new MesProWorkOrderDO().setId(3L).setSchedulePriority(9).setRequestDate(LocalDateTime.of(2026,1,2,0,0)); assertEquals(List.of(3L,2L,1L), List.of(low,high,older).stream().sorted(MesSchedulePriority.comparator()).map(MesProWorkOrderDO::getId).toList()); } }