优先级计算

parent c4a85650
...@@ -9,14 +9,11 @@ import org.junit.jupiter.api.extension.ExtendWith; ...@@ -9,14 +9,11 @@ import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks; import org.mockito.InjectMocks;
import org.mockito.junit.jupiter.MockitoExtension; import org.mockito.junit.jupiter.MockitoExtension;
import java.time.LocalDateTime;
import java.time.OffsetDateTime; import java.time.OffsetDateTime;
import java.time.ZoneOffset;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Comparator;
import java.util.List; import java.util.List;
import static org.junit.jupiter.api.Assertions.*;
/** /**
* 订单排序服务测试类 * 订单排序服务测试类
*/ */
...@@ -47,6 +44,11 @@ class OrderSortServiceTest { ...@@ -47,6 +44,11 @@ class OrderSortServiceTest {
// 执行测试 // 执行测试
orderSortService.assignPriority(testOrders, rule); orderSortService.assignPriority(testOrders, rule);
// 按照优先级排序
testOrders.sort(
Comparator.comparing(Order::getActualPriority).reversed()
);
// 验证多级优先级分配 // 验证多级优先级分配
printOrderPriorities(testOrders); // 调试输出 printOrderPriorities(testOrders); // 调试输出
...@@ -61,12 +63,12 @@ class OrderSortServiceTest { ...@@ -61,12 +63,12 @@ class OrderSortServiceTest {
List<Order> orders = new ArrayList<>(); List<Order> orders = new ArrayList<>();
// 创建5个测试订单,具有不同的属性 // 创建5个测试订单,具有不同的属性
for (int i = 1; i <= 5; i++) { for (int i = 1; i <=15; i++) {
Order order = new Order(); Order order = new Order();
order.setId(i); order.setId(i);
order.setProductId(100 + i); order.setProductId(100 + i);
order.setQuantity(50.0 * i); order.setQuantity(50.0 * i);
order.setPriority(6 - i); // 优先级:5,4,3,2,1(倒序) order.setPriority(15 - i); // 优先级:5,4,3,2,1(倒序)
order.setDueDate(OffsetDateTime.now().plusDays(i)); // 到期日递增 order.setDueDate(OffsetDateTime.now().plusDays(i)); // 到期日递增
order.setTardiness(i * 0.5); order.setTardiness(i * 0.5);
order.setCanSplit(i % 2 == 0); order.setCanSplit(i % 2 == 0);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment