From bfb139c7c7bcd895c0a0746eb393d51b53b847fe Mon Sep 17 00:00:00 2001 From: liuyihe <2513762445@qq.com> Date: Thu, 3 Sep 2026 21:33:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/CustomerDimensionWeightingService.java | 2 +- .../firstleg/service/InboundMeasurementService.java | 3 ++- .../firstleg/service/MeasurementBatchService.java | 11 ++++------- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/firstleg/src/main/java/com/baiyue/firstleg/service/CustomerDimensionWeightingService.java b/firstleg/src/main/java/com/baiyue/firstleg/service/CustomerDimensionWeightingService.java index 637dd601b..a4c1c73ce 100644 --- a/firstleg/src/main/java/com/baiyue/firstleg/service/CustomerDimensionWeightingService.java +++ b/firstleg/src/main/java/com/baiyue/firstleg/service/CustomerDimensionWeightingService.java @@ -72,7 +72,7 @@ public class CustomerDimensionWeightingService { return rules.stream() .filter(rule -> rule.contains(measured)) .findFirst() - .map(Rule::weighted) + .map(rule -> rule.weightedActualDimensions(lengthCm, widthCm, heightCm)) .orElseGet(() -> actualDimensions(lengthCm, widthCm, heightCm)); } diff --git a/firstleg/src/main/java/com/baiyue/firstleg/service/InboundMeasurementService.java b/firstleg/src/main/java/com/baiyue/firstleg/service/InboundMeasurementService.java index 72772cbea..4b08e8a64 100644 --- a/firstleg/src/main/java/com/baiyue/firstleg/service/InboundMeasurementService.java +++ b/firstleg/src/main/java/com/baiyue/firstleg/service/InboundMeasurementService.java @@ -108,7 +108,8 @@ public class InboundMeasurementService { request.items().stream().map(InboundMeasurementRequests.ItemRequest::chargeRuleId) .filter(java.util.Objects::nonNull).distinct().forEach(ruleId -> { var rule = fbaMasterDataService.rule(tenantId, ruleId); - if (!"ACTIVE".equals(rule.getStatus()) || !java.util.Objects.equals(rule.getCustomerId(), inbound.getCustomerId())) { + long inboundCustomerId = inbound.getCustomerId() == null ? tenantId : inbound.getCustomerId(); + if (!"ACTIVE".equals(rule.getStatus()) || !java.util.Objects.equals(rule.getCustomerId(), inboundCustomerId)) { throw new BizException(ResultCode.VALIDATION_FAILED, "测量明细绑定的计费规则不属于当前客户或已停用"); } }); 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 ee8bb0032..5cc581196 100644 --- a/firstleg/src/main/java/com/baiyue/firstleg/service/MeasurementBatchService.java +++ b/firstleg/src/main/java/com/baiyue/firstleg/service/MeasurementBatchService.java @@ -263,16 +263,13 @@ public class MeasurementBatchService { } private CustomerChargeRuleEntity requireCoefficientRule(long tenantId, Long customerId, Long ruleId) { - if (customerId == null || customerId <= 0) { - if (ruleId == null) return null; - throw new BizException(ResultCode.VALIDATION_FAILED, "入库单客户无效,不能应用计费系数"); - } + Long effectiveCustomerId = customerId == null || customerId <= 0 ? tenantId : customerId; CustomerChargeRuleEntity rule = ruleId == null - ? pricingRepository.findDefaultRule(tenantId, customerId) + ? pricingRepository.findDefaultRule(tenantId, effectiveCustomerId) : pricingRepository.findRule(tenantId, ruleId); if (rule == null || !"ACTIVE".equals(rule.getStatus()) - || !Boolean.TRUE.equals(rule.getDefaultRule()) || !customerId.equals(rule.getCustomerId())) { - throw new BizException(ResultCode.VALIDATION_FAILED, "计费规则不属于当前客户、未启用或未设置默认规则"); + || !effectiveCustomerId.equals(rule.getCustomerId())) { + throw new BizException(ResultCode.VALIDATION_FAILED, "计费规则不属于当前客户或已停用"); } return rule; }