From 92d7c0a7b0c8c878a1b4d8407007f06465b80db8 Mon Sep 17 00:00:00 2001 From: ouyangxq <775153912@qq.com> Date: Wed, 26 Aug 2026 17:23:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ReceivingContainerControllerTest.java | 14 ++++++++++++++ .../ReceivingContainerServiceBehaviorTest.java | 8 ++++---- .../admin-test-env-modules/phase4-overseas-pda.mjs | 2 ++ 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/lastleg-service/src/test/java/com/baiyue/lastleg/inboundplan/pda/controller/ReceivingContainerControllerTest.java b/lastleg-service/src/test/java/com/baiyue/lastleg/inboundplan/pda/controller/ReceivingContainerControllerTest.java index c87523822..d374745c5 100644 --- a/lastleg-service/src/test/java/com/baiyue/lastleg/inboundplan/pda/controller/ReceivingContainerControllerTest.java +++ b/lastleg-service/src/test/java/com/baiyue/lastleg/inboundplan/pda/controller/ReceivingContainerControllerTest.java @@ -1,6 +1,7 @@ package com.baiyue.lastleg.inboundplan.pda.controller; import com.baiyue.common.security.AuthenticatedUser; +import com.baiyue.lastleg.inboundplan.pda.dto.ReceivingContainerRequests; import com.baiyue.lastleg.inboundplan.pda.dto.ReceivingContainerResponses; import com.baiyue.lastleg.inboundplan.pda.gateway.UnloadPhotoFileGateway; import com.baiyue.lastleg.inboundplan.pda.service.ReceivingContainerService; @@ -96,6 +97,19 @@ class ReceivingContainerControllerTest { .hasMessageContaining("403"); } + @Test + void fbaCartonResolutionDelegatesWithoutControllerModeRejection() { + ReceivingContainerRequests.CartonResolve request = + new ReceivingContainerRequests.CartonResolve("NYEXX2608260002#4-1"); + when(service.resolveCarton("42", request)).thenReturn(new ReceivingContainerResponses.CartonResolved( + "NYEXX2608260002#4-1", "IN-1", "FBA", "900", "Shared LAX", null, null, null, + "ABE3", 1, 40, 0, 40)); + + controller.resolveCarton(picker(), request); + + verify(service).resolveCarton("42", request); + } + private static AuthenticatedUser picker() { return new AuthenticatedUser(42L, 0L, 0L, 8L, "receiver", "PLATFORM", "PDA", Set.of(PdaWarehouseIdentity.PICKER_ROLE, ReceivingContainerController.OPERATE_PERMISSION), diff --git a/lastleg-service/src/test/java/com/baiyue/lastleg/inboundplan/pda/service/ReceivingContainerServiceBehaviorTest.java b/lastleg-service/src/test/java/com/baiyue/lastleg/inboundplan/pda/service/ReceivingContainerServiceBehaviorTest.java index 1362e3053..83ea119ab 100644 --- a/lastleg-service/src/test/java/com/baiyue/lastleg/inboundplan/pda/service/ReceivingContainerServiceBehaviorTest.java +++ b/lastleg-service/src/test/java/com/baiyue/lastleg/inboundplan/pda/service/ReceivingContainerServiceBehaviorTest.java @@ -406,13 +406,13 @@ class ReceivingContainerServiceBehaviorTest { } @Test - void cartonResolutionSupportsFbaWithoutProjectingSku() { + void fbaCartonResolutionForNyexx2608260002DoesNotApplyReceiptModeGate() { stubCurrent("FBA", "CONT-A"); - when(cartons.selectOne(any())).thenReturn(carton(1L, "FBA-BOX-1")); + when(cartons.selectOne(any())).thenReturn(carton(1L, "NYEXX2608260002#4-1")); - var resolved = service.resolveCarton("7", new ReceivingContainerRequests.CartonResolve("FBA-BOX-1")); + var resolved = service.resolveCarton("7", new ReceivingContainerRequests.CartonResolve("NYEXX2608260002#4-1")); - assertThat(resolved.cartonMark()).isEqualTo("FBA-BOX-1"); + assertThat(resolved.cartonMark()).isEqualTo("NYEXX2608260002#4-1"); assertThat(resolved.inboundCode()).isEqualTo("IN-1"); assertThat(resolved.destinationType()).isEqualTo("FBA"); } diff --git a/scripts/admin-test-env-modules/phase4-overseas-pda.mjs b/scripts/admin-test-env-modules/phase4-overseas-pda.mjs index ba7c333d3..d26d113f7 100644 --- a/scripts/admin-test-env-modules/phase4-overseas-pda.mjs +++ b/scripts/admin-test-env-modules/phase4-overseas-pda.mjs @@ -1,6 +1,7 @@ const MODULE = 'phase4-overseas-pda' const SCENARIO = 'phase4-overseas-pda-container-receiving' const OPTIONS = { scenario: SCENARIO, deploymentBlocker: true } +const OBSERVATION_OPTIONS = { scenario: SCENARIO, deploymentBlocker: false } const PHOTO_ROLES = ['LICENSE_PLATE', 'CONTAINER_SEAL', 'DOOR_OPEN'] const PNG = Uint8Array.from(Buffer.from('iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII=', 'base64')) @@ -12,6 +13,7 @@ function code(response) { return String(response?.body?.code ?? '') } function traced(response) { return nonBlank(response?.requestId) && nonBlank(response?.traceId) } function conflict(response) { return (response?.http === 409 || (response?.http === 200 && ['409', 'A0409'].includes(code(response)))) && traced(response) } function conflictMessage(response, pattern) { return conflict(response) && pattern.test(String(response?.body?.message || '')) } +function a0409Message(response, pattern) { return response?.http === 200 && code(response) === 'A0409' && traced(response) && pattern.test(String(response?.body?.message || '')) } function notFound(response) { return (response?.http === 404 || (response?.http === 200 && ['404', 'A0404'].includes(code(response)))) && traced(response) } function forbidden(response) { return [401, 403].includes(response?.http) || (response?.http === 200 && ['A0401', 'A0403'].includes(code(response))) } function trace(response) { return `HTTP=${response?.http ?? 'missing'}, code=${response?.body?.code ?? 'missing'}, requestId=${response?.requestId || 'missing'}, traceId=${response?.traceId || 'missing'}` }