diff --git a/bms-back/bms-system/src/main/java/com/bms/price/mapper/PrcPriceSetDetailMapper.java b/bms-back/bms-system/src/main/java/com/bms/price/mapper/PrcPriceSetDetailMapper.java index 6268e4ac..808dd931 100644 --- a/bms-back/bms-system/src/main/java/com/bms/price/mapper/PrcPriceSetDetailMapper.java +++ b/bms-back/bms-system/src/main/java/com/bms/price/mapper/PrcPriceSetDetailMapper.java @@ -71,7 +71,7 @@ public interface PrcPriceSetDetailMapper @Param("psvId") Long psvId, @Param("productCode") String productCode); - /** Update package freight / registration only */ + /** Update package freight / registration; null args keep existing columns. */ public int updateDetailPrices( @Param("psdId") Long psdId, @Param("fvValue") BigDecimal fvValue, diff --git a/bms-back/bms-system/src/main/java/com/bms/price/service/impl/PrcPriceSetServiceImpl.java b/bms-back/bms-system/src/main/java/com/bms/price/service/impl/PrcPriceSetServiceImpl.java index c49a46f7..9265dabd 100644 --- a/bms-back/bms-system/src/main/java/com/bms/price/service/impl/PrcPriceSetServiceImpl.java +++ b/bms-back/bms-system/src/main/java/com/bms/price/service/impl/PrcPriceSetServiceImpl.java @@ -917,9 +917,22 @@ public class PrcPriceSetServiceImpl implements IPrcPriceSetService { continue; } - detailMapper.updateDetailPrices(hit.getPsdId(), row.getFreightPrice(), row.getRegistrationFee()); - hit.setFvValue(row.getFreightPrice()); - hit.setFvRegistrationFee(row.getRegistrationFee()); + // Empty import freight/registration: do not overwrite existing detail values. + BigDecimal freight = row.getFreightPrice(); + BigDecimal registration = row.getRegistrationFee(); + if (freight == null && registration == null) + { + continue; + } + detailMapper.updateDetailPrices(hit.getPsdId(), freight, registration); + if (freight != null) + { + hit.setFvValue(freight); + } + if (registration != null) + { + hit.setFvRegistrationFee(registration); + } touched.add(hit.getPsdId()); updated++; } diff --git a/bms-back/bms-system/src/main/resources/mapper/price/PrcPriceSetDetailMapper.xml b/bms-back/bms-system/src/main/resources/mapper/price/PrcPriceSetDetailMapper.xml index e6d4939a..a50ac8ad 100644 --- a/bms-back/bms-system/src/main/resources/mapper/price/PrcPriceSetDetailMapper.xml +++ b/bms-back/bms-system/src/main/resources/mapper/price/PrcPriceSetDetailMapper.xml @@ -258,11 +258,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ) + update prc_price_set_detail - set fv_value = #{fvValue}, - fv_registration_fee = #{fvRegistrationFee}, + + fv_value = #{fvValue}, + fv_registration_fee = #{fvRegistrationFee}, update_time = sysdate() + where psd_id = #{psdId}