fix(lastleg): export all pages when pagination caps batch size

This commit is contained in:
2026-10-08 15:31:56 +08:00
parent d89198ee21
commit e09f8785e1
2 changed files with 27 additions and 4 deletions
@@ -414,6 +414,27 @@ class LastlegOrderServiceTest {
assertEquals("处理中", LastlegOrderStatus.labelOf("PROCESSING"));
}
@Test
void exportContinuesAfterThePaginationInterceptorCapsTheBatchSize() {
when(orders.selectPage(any(), any())).thenAnswer(invocation -> {
com.baomidou.mybatisplus.extension.plugins.pagination.Page<LastlegOrder> page = invocation.getArgument(0);
page.setSize(500);
page.setTotal(501);
long start = (page.getCurrent() - 1) * page.getSize() + 1;
page.setRecords(java.util.stream.LongStream.rangeClosed(start, Math.min(start + 499, 501))
.mapToObj(id -> order(id, "100", "PENDING_ASSIGNMENT", null)).toList());
return page;
});
var query = new LastlegOrderRequests.Query(1L, 20L, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, LastlegOrderRequests.SailingStage.BEFORE_DEPARTURE);
String csv = new String(service.exportCsv("100", query), StandardCharsets.UTF_8);
assertEquals(502, csv.lines().count());
assertTrue(csv.contains("\"LM-501\""));
verify(orders, org.mockito.Mockito.times(2)).selectPage(any(), any());
}
@Test
void pageWarehouseFilterMatchesFrozenWarehouseName() {
assertWarehouseFilter("洛杉矶仓", "洛杉矶仓", true);