fix: reuse overseas receiving resources in acceptance

This commit is contained in:
2026-09-11 00:48:21 +08:00
parent 9abb0004dd
commit 7dff9b57ed
8 changed files with 107 additions and 85 deletions
@@ -238,7 +238,7 @@ public class RelabelApplicationService implements WalletResultHandler {
if (!StringUtils.hasText(request.operationWarehouseId())) throw badRequest("Operation warehouse is required");
boolean requiresOutbound = request.items().stream().anyMatch(item -> !"SKU_LABEL".equals(operationType(item)));
String deliveryMethod = trim(request.deliveryMethod());
if (requiresOutbound && !DELIVERY_METHODS.contains(deliveryMethod)) {
if (requiresOutbound && (!StringUtils.hasText(deliveryMethod) || !DELIVERY_METHODS.contains(deliveryMethod))) {
throw badRequest("Delivery method must be TRUCK, PICKUP or EXPRESS when carton labels are changed");
}
if (!requiresOutbound && StringUtils.hasText(deliveryMethod)) {
@@ -90,4 +90,12 @@ class RelabelContractTest {
openApi.indexOf(" RelabelItem:"));
assertFalse(relabelCreate.contains("customerId"));
}
@Test
void missingDeliveryMethodIsValidatedWithoutCallingNullRejectingSetContains() throws Exception {
String service = Files.readString(Path.of("src/main/java/com/baiyue/lastleg/relabel/service/RelabelApplicationService.java"),
StandardCharsets.UTF_8);
assertTrue(service.contains("requiresOutbound && (!StringUtils.hasText(deliveryMethod)"
+ " || !DELIVERY_METHODS.contains(deliveryMethod))"));
}
}