Merge remote-tracking branch 'origin/test' into dev
# Conflicts: # firstleg/src/test/java/com/baiyue/firstleg/service/CartonMeasurementServiceTest.java
This commit is contained in:
@@ -306,7 +306,7 @@ public class UnifiedOrderQueryService {
|
||||
order.getCustomerId(), order.getCustomerName(),
|
||||
order.getChannelCode(), order.getChannelName(), Boolean.TRUE.equals(order.getChannelChanged()), order.getReceivingWarehouseId(), order.getReceivingWarehouseName(),
|
||||
order.getDestinationWarehouseId(), order.getDestinationWarehouseName(), inbound.id(), inbound.version(), inbound.inboundCode(),
|
||||
order.getExpectedShipDate(), inbound.totalPackageCount() != null ? inbound.totalPackageCount() : totalPackageCount(cargo), null, inbound.locationCodes(),
|
||||
order.getExpectedShipDate(), displayedPackageCount(order, cargo, inbound), null, inbound.locationCodes(),
|
||||
order.getEstimatedVolumeCbm(), volumeCbm(cargo),
|
||||
inbound.actualGrossWeightKg(), inbound.actualVolumeCbm(),
|
||||
order.getExpectedArrivalAt() != null ? order.getExpectedArrivalAt() : inbound.expectedArrivalAt(), inbound.feeReviewStatus(),
|
||||
@@ -333,7 +333,7 @@ public class UnifiedOrderQueryService {
|
||||
order != null && Boolean.TRUE.equals(order.getChannelChanged()), inbound.warehouseId(),
|
||||
inbound.warehouseName(), inbound.deliveryWarehouseId(), inbound.deliveryWarehouseName(),
|
||||
inbound.id(), inbound.version(), inbound.inboundCode(), null,
|
||||
inbound.totalPackageCount() != null ? inbound.totalPackageCount() : totalPackageCount(cargo), null, inbound.locationCodes(),
|
||||
displayedPackageCount(order, cargo, inbound), null, inbound.locationCodes(),
|
||||
order == null ? null : order.getEstimatedVolumeCbm(), volumeCbm(cargo),
|
||||
inbound.actualGrossWeightKg(), inbound.actualVolumeCbm(),
|
||||
order != null && order.getExpectedArrivalAt() != null ? order.getExpectedArrivalAt() : inbound.expectedArrivalAt(), inbound.feeReviewStatus(), inbound.companyName(),
|
||||
@@ -416,6 +416,15 @@ public class UnifiedOrderQueryService {
|
||||
return cargo == null ? null : cargo.totalPackageCount();
|
||||
}
|
||||
|
||||
private Integer displayedPackageCount(OrderEntity order, CargoSummary cargo,
|
||||
FirstlegUnifiedOrderClient.Inbound inbound) {
|
||||
Integer declaredPackageCount = totalPackageCount(cargo);
|
||||
boolean splitChild = order != null
|
||||
&& (order.getParentOrderId() != null || "CHILD".equals(order.getOrderRole()));
|
||||
if (!splitChild && declaredPackageCount != null) return declaredPackageCount;
|
||||
return inbound.totalPackageCount() != null ? inbound.totalPackageCount() : declaredPackageCount;
|
||||
}
|
||||
|
||||
private BigDecimal grossWeightKg(CargoSummary cargo) {
|
||||
return cargo == null ? null : cargo.grossWeightKg();
|
||||
}
|
||||
|
||||
@@ -167,6 +167,25 @@ class UnifiedOrderQueryServiceTest {
|
||||
.extracting(UnifiedOrderResponse.Row::totalPackageCount).isEqualTo(35);
|
||||
}
|
||||
|
||||
@Test
|
||||
void regularOrderAlwaysDisplaysDeclaredCargoCountInsteadOfMeasuredInboundSnapshot() {
|
||||
UnifiedOrderQuery query = query(null);
|
||||
OrderEntity order = order(OrderStatus.APPROVED);
|
||||
OrderCargoEntity declaredCargo = new OrderCargoEntity();
|
||||
declaredCargo.setOrderId(77L);
|
||||
declaredCargo.setPackageCount(100);
|
||||
var summary = summary("WAIT_SPLIT", null);
|
||||
when(summary.inbound().totalPackageCount()).thenReturn(3);
|
||||
when(orders.unifiedPage(eq(10001L), eq(query), any()))
|
||||
.thenReturn(new PageResult<>(List.of(order), 1, 20, 1, 1));
|
||||
when(firstleg.summaries(eq("internal-token"), any()))
|
||||
.thenReturn(ApiResponse.success(List.of(summary)));
|
||||
when(orders.findCargoByOrderIds(10001L, List.of(77L))).thenReturn(List.of(declaredCargo));
|
||||
|
||||
assertThat(service.page(10001L, query).records()).singleElement()
|
||||
.extracting(UnifiedOrderResponse.Row::totalPackageCount).isEqualTo(100);
|
||||
}
|
||||
|
||||
@Test
|
||||
void inboundMasterUsesTotalPackageCountEvenWhenLegacyPackageCountIsAbsent() {
|
||||
UnifiedOrderQuery query = query(null);
|
||||
|
||||
Reference in New Issue
Block a user