订单比对加上状态

This commit is contained in:
wuweihua
2026-10-26 11:59:19 +08:00
parent 4bee108661
commit ab6216922a
12 changed files with 337 additions and 61 deletions
@@ -497,6 +497,13 @@ public class TmsPriceQuoteServiceImpl implements ITmsPriceQuoteService
productCode, productName, cc, cn, zone.zoneCode, weight, bizDate);
if (hit != null)
{
// Billing requires product catalog price (产品价); package hit alone is not enough.
if (request instanceof TmsPriceBillRequest && !hasProductCatalogPrice(catalog))
{
missCode = Math.max(missCode,
diagnoseCatalogMiss(productCode, cc, cn, zone.zoneCode, bizDate));
continue;
}
stampRequestMeta(request, hit);
return hit;
}
@@ -504,7 +511,7 @@ public class TmsPriceQuoteServiceImpl implements ITmsPriceQuoteService
}
else if (TYPE_DISCOUNT.equals(setType))
{
if (catalog == null)
if (!hasProductCatalogPrice(catalog))
{
missCode = Math.max(missCode, diagnoseCatalogMiss(productCode, cc, cn, zone.zoneCode, bizDate));
continue;
@@ -747,7 +754,13 @@ public class TmsPriceQuoteServiceImpl implements ITmsPriceQuoteService
return out;
}
/** Catalog match for product_amount / DISCOUNT base; null is allowed for FIXED sales. */
/** True when product catalog row has a usable freight price (产品价). */
private static boolean hasProductCatalogPrice(BmsProductCountry catalog)
{
return catalog != null && catalog.getFreightPrice() != null;
}
/** Catalog match for product_amount / DISCOUNT base; quote FIXED may still hit without catalog. */
private BmsProductCountry softMatchCatalog(String productCode, String countryCode, String countryName,
String zoneCode, BigDecimal weight, Date bizDate, PrcZone resolvedZone)
{