From 757f6ef24fb0b8722ceb1d389beafe08afe20d24 Mon Sep 17 00:00:00 2001 From: ouyangxq <775153912@qq.com> Date: Thu, 3 Sep 2026 11:32:08 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=A4=B4=E7=A8=8B=E6=B5=8B?= =?UTF-8?q?=E9=87=8F=E4=B8=8E=E8=AE=A1=E8=B4=B9=E6=B5=8B=E8=AF=95=E9=97=A8?= =?UTF-8?q?=E7=A6=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../firstleg/service/MeasurementBatchService.java | 12 +++++------- .../src/main/resources/openapi/fba-pricing-v1.yaml | 2 +- .../firstleg/service/FbaPricingServiceTest.java | 2 +- .../service/InboundMeasurementServiceTest.java | 1 + 4 files changed, 8 insertions(+), 9 deletions(-) diff --git a/firstleg/src/main/java/com/baiyue/firstleg/service/MeasurementBatchService.java b/firstleg/src/main/java/com/baiyue/firstleg/service/MeasurementBatchService.java index b6ed8000f..fb701ccc6 100644 --- a/firstleg/src/main/java/com/baiyue/firstleg/service/MeasurementBatchService.java +++ b/firstleg/src/main/java/com/baiyue/firstleg/service/MeasurementBatchService.java @@ -155,15 +155,13 @@ public class MeasurementBatchService { : requestedMode == null ? findDefaultCoefficientRule(command.tenantId(), customerId) : null; String coefficientMode = coefficientRule != null ? "MULTIPLY" : requestedMode; boolean useDimensionRule = "ADD".equals(coefficientMode); - // The box-dimension strategy bills against the matched carton tier. - // This is important when a measured carton is smaller than a standard - // carton: use the configured outer dimensions, rather than adding the - // edge allowance to each measured side. BigDecimal addition = weighted.edgeAdditionCm(); boolean hasMatchedAddition = useDimensionRule && weighted.boxType() != null; - BigDecimal outerLength = hasMatchedAddition ? weighted.outerLengthCm() : source.lengthCm(); - BigDecimal outerWidth = hasMatchedAddition ? weighted.outerWidthCm() : source.widthCm(); - BigDecimal outerHeight = hasMatchedAddition ? weighted.outerHeightCm() : source.heightCm(); + // ADD 只从匹配箱规取得加边值,外尺寸仍以本次实测尺寸为基准, + // 不能把箱规边界尺寸当成本次货物的实际外尺寸。 + BigDecimal outerLength = hasMatchedAddition ? source.lengthCm().add(addition) : source.lengthCm(); + BigDecimal outerWidth = hasMatchedAddition ? source.widthCm().add(addition) : source.widthCm(); + BigDecimal outerHeight = hasMatchedAddition ? source.heightCm().add(addition) : source.heightCm(); boolean hasOuterOverride = source.outerLengthCm() != null || source.outerWidthCm() != null || source.outerHeightCm() != null; diff --git a/firstleg/src/main/resources/openapi/fba-pricing-v1.yaml b/firstleg/src/main/resources/openapi/fba-pricing-v1.yaml index 1b8cfd611..6e88e7c78 100644 --- a/firstleg/src/main/resources/openapi/fba-pricing-v1.yaml +++ b/firstleg/src/main/resources/openapi/fba-pricing-v1.yaml @@ -15,7 +15,7 @@ paths: - name: customerId in: query required: false - schema: {type: integer, format: int64, minimum: 1} + schema: {type: string, pattern: '^[1-9][0-9]*$'} - {name: ruleCode, in: query, schema: {type: string, maxLength: 50}} responses: '200': diff --git a/firstleg/src/test/java/com/baiyue/firstleg/service/FbaPricingServiceTest.java b/firstleg/src/test/java/com/baiyue/firstleg/service/FbaPricingServiceTest.java index 85000cd71..061287b76 100644 --- a/firstleg/src/test/java/com/baiyue/firstleg/service/FbaPricingServiceTest.java +++ b/firstleg/src/test/java/com/baiyue/firstleg/service/FbaPricingServiceTest.java @@ -484,7 +484,7 @@ class FbaPricingServiceTest { // 试算重复用例的摘要由服务算法固定;其余用例在首次调用后才返回该记录。 value.setRequestHash("FEE_SEND".equals(operation) ? "3be2051b9bc4c06a163cb3099fd7b3f828b51307cc54d3cfc232c11353c61046" - : "8aa8a9861d4cac0c6001bb902754c152c6211ba57e1fad9160b1caef651e3d65"); + : "1b874a4f469151f236aa6086835f3cac22cca5cb4a1b90444f08b27b76e8a3c4"); return value; } diff --git a/firstleg/src/test/java/com/baiyue/firstleg/service/InboundMeasurementServiceTest.java b/firstleg/src/test/java/com/baiyue/firstleg/service/InboundMeasurementServiceTest.java index 38c2be50e..fd3b51d36 100644 --- a/firstleg/src/test/java/com/baiyue/firstleg/service/InboundMeasurementServiceTest.java +++ b/firstleg/src/test/java/com/baiyue/firstleg/service/InboundMeasurementServiceTest.java @@ -52,6 +52,7 @@ import static org.mockito.Mockito.when; class InboundMeasurementServiceTest { @MockBean private InboundMeasurementRepository repository; @MockBean private MeasurementBatchService batchService; + @MockBean private FbaMasterDataService fbaMasterDataService; @MockBean private OrderCargoClient orderCargoClient; @MockBean private MeasurementImageClient imageClient; @MockBean private WarehousePalletLocationClient warehousePallets;