diff --git a/bms-back/bms-system/src/main/java/com/bms/price/service/impl/TmsPriceQuoteServiceImpl.java b/bms-back/bms-system/src/main/java/com/bms/price/service/impl/TmsPriceQuoteServiceImpl.java index c3220204..08afe8e7 100644 --- a/bms-back/bms-system/src/main/java/com/bms/price/service/impl/TmsPriceQuoteServiceImpl.java +++ b/bms-back/bms-system/src/main/java/com/bms/price/service/impl/TmsPriceQuoteServiceImpl.java @@ -544,6 +544,12 @@ public class TmsPriceQuoteServiceImpl implements ITmsPriceQuoteService productCode, productName, discWeight, bizDate); if (hit != null) { + // Calc-only snap: do not persist raised min-band weight as charge_weight. + if (discWeight != null && weight != null && discWeight.compareTo(weight) != 0) + { + hit.setWeight(weight); + hit.setChargeWeight(weight); + } stampRequestMeta(request, hit); return hit; } @@ -1027,7 +1033,11 @@ public class TmsPriceQuoteServiceImpl implements ITmsPriceQuoteService String msg = MessageUtils.message("price.quote.hitCustomerFixedPackageDetail") + " [" + verLabel + "]"; if (snappedToMinBand) { - msg = msg + "; chargeWeight raised to min band " + billWeight.toPlainString(); + // Calc-only snap: keep original weight/chargeWeight for persist so upstream re-sync + // can replace them when the new weight is already in-band. + r.setWeight(weight); + r.setChargeWeight(weight); + msg = msg + "; billed at min band " + billWeight.toPlainString() + " (persist original weight)"; } r.setMatchMessage(msg); r.setCustomerId(bind.getCustomerId());