fix: preserve native tail order facts in combined lists

This commit is contained in:
2026-10-23 01:44:07 +08:00
parent d60a35b367
commit 6cd27658f7
4 changed files with 43 additions and 26 deletions
@@ -1,6 +1,9 @@
package com.baiyue.lastleg.service;
import com.baiyue.lastleg.dto.LastlegOrderRequests;
import com.baiyue.lastleg.client.OrderPreDepartureClient;
import com.baiyue.common.core.api.ApiResponse;
import com.baiyue.common.core.api.PageResult;
import com.baiyue.lastleg.dto.LastlegOrderSummary;
import com.baiyue.lastleg.dto.ContainerPlanProgressDetail;
import com.baiyue.lastleg.dto.ContainerPlanProgressSummary;
@@ -74,6 +77,7 @@ class LastlegOrderServiceTest {
@Mock ContainerArrivalTimeOperationMapper containerArrivalTimeOperations;
@Mock WarehouseResourceGateway warehouseResourceGateway;
@Mock ContainerShippingGateMapper containerShippingGates;
@Mock OrderPreDepartureClient preDeparture;
@Mock ReturnOrderReferenceResolver returnOrderReferences;
@Mock com.baiyue.lastleg.returnreceipt.service.ReturnReceiptService returnReceipts;
LastlegOrderService service;
@@ -137,6 +141,9 @@ class LastlegOrderServiceTest {
ReflectionTestUtils.setField(service, "containerArrivalTimeOperations", containerArrivalTimeOperations);
ReflectionTestUtils.setField(service, "warehouseResourceGateway", warehouseResourceGateway);
ReflectionTestUtils.setField(service, "containerShippingGates", containerShippingGates);
ReflectionTestUtils.setField(service, "orderPreDepartureClient", preDeparture);
lenient().when(preDeparture.page(any(), any(), any(), any(), anyInt(), anyInt()))
.thenReturn(ApiResponse.success(new PageResult<>(List.of(), 1, 2000, 0, 0)));
}
@Test
@@ -401,7 +408,8 @@ class LastlegOrderServiceTest {
@Test
void pageUsesPaginationAndPlatformFiltersWithoutCustomerScope() {
var query = new LastlegOrderRequests.Query(3L, 25L, "LL-", "FIRST_LEG", "IN-", null,
null, "", "PENDING_ASSIGNMENT", null, "LAX", null, null, null, null, null, null, null, null, null);
null, "", "PENDING_ASSIGNMENT", null, "LAX", null, null, null, null, null,
LastlegOrderRequests.SailingStage.AFTER_DEPARTURE, null, null, null);
var resultPage = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<LastlegOrder>(3, 25);
resultPage.setTotal(0);
when(orders.selectPage(any(), any())).thenReturn(resultPage);
@@ -553,7 +561,7 @@ class LastlegOrderServiceTest {
var resultPage = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<LastlegOrder>(1, 10);
resultPage.setRecords(List.of(order));
resultPage.setTotal(1);
when(orders.selectPage(any(), any())).thenReturn(resultPage);
when(orders.selectList(any())).thenReturn(resultPage.getRecords());
when(orders.findPalletMergeRelations(List.of(11L))).thenReturn(List.of(
new LastlegOrderMapper.PalletMergeRelationRow(11L, "INBOUND-2", "PMG-1"),
new LastlegOrderMapper.PalletMergeRelationRow(11L, "INBOUND-3", "PMG-1")));
@@ -580,7 +588,7 @@ class LastlegOrderServiceTest {
var resultPage = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<LastlegOrder>(1, 10);
resultPage.setRecords(List.of(relabel, looseboard, firstleg));
resultPage.setTotal(3);
when(orders.selectPage(any(), any())).thenReturn(resultPage);
when(orders.selectList(any())).thenReturn(resultPage.getRecords());
var query = new LastlegOrderRequests.Query(1L, 10L, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null, null, null);
@@ -611,14 +619,14 @@ class LastlegOrderServiceTest {
row.setOverseasWarehouseName("洛杉矶仓");
resultPage.setRecords(matched ? List.of(row) : List.of());
resultPage.setTotal(matched ? 1 : 0);
when(orders.selectPage(any(), any())).thenReturn(resultPage);
when(orders.selectList(any())).thenReturn(resultPage.getRecords());
var result = service.page(null, new LastlegOrderRequests.Query(1L, 10L, null, null, null, null,
null, null, null, null, input, null, null, null, null, null, null, null, null, null));
ArgumentCaptor<com.baomidou.mybatisplus.core.conditions.Wrapper<LastlegOrder>> filter =
ArgumentCaptor.forClass(com.baomidou.mybatisplus.core.conditions.Wrapper.class);
verify(orders).selectPage(any(), filter.capture());
verify(orders).selectList(filter.capture());
var wrapper = (com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<LastlegOrder>) filter.getValue();
String warehouseSql = wrapper.getExpression().getNormal().getSqlSegment();
assertTrue(warehouseSql.contains("LOWER(TRIM(overseas_warehouse_code))"));