This commit is contained in:
2026-08-07 17:36:02 +08:00
parent 91f31d9567
commit 98ac9840c2
10 changed files with 172 additions and 5 deletions
@@ -395,8 +395,12 @@ public class PlatformPriceBookService {
issues.add(issue("BLOCKING", "SOURCE_LOCATION_MISSING", "价格行缺少Excel来源位置", rate.sourceSheetName(), rate.sourceRowNumber(), null));
validateOrigin(rate, warehouseCache, issues);
validateDestination(rate, warehouseCache, issues);
String key = String.join("|", code, text(rate.originWarehouseId()), enumText(rate.destinationType()),
text(rate.destinationWarehouseId()), nullToEmpty(upper(rate.destinationCode())),
String originIdentity = rate.originWarehouseId() == null
? "CODE:" + mappingKey(rate.originWarehouseCode()) : "ID:" + rate.originWarehouseId();
String destinationIdentity = rate.destinationWarehouseId() == null
? "NAME:" + mappingKey(rate.destinationName()) : "ID:" + rate.destinationWarehouseId();
String key = String.join("|", code, originIdentity, enumText(rate.destinationType()),
destinationIdentity, nullToEmpty(upper(rate.destinationCode())),
rate.regionCode() == null ? "" : rate.regionCode().name(), rate.pricingTaxMode() == null ? "" : rate.pricingTaxMode().name(),
rate.chargeUnit(), text(rate.weightFromKg()));
if (!unique.add(key)) issues.add(issue("BLOCKING", "DUPLICATE_RATE", "存在重复价格组合", rate.sourceSheetName(), rate.sourceRowNumber(), null));