From ff57be1116df669e9edc4dc3670e0d538b69f3b3 Mon Sep 17 00:00:00 2001 From: wuweihua <88888888> Date: Tue, 29 Sep 2026 10:32:59 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=AF=BC=E5=85=A5=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../price/mapper/PrcPriceSetDetailMapper.java | 2 +- .../service/impl/PrcPriceSetServiceImpl.java | 19 ++++++++++++++++--- .../mapper/price/PrcPriceSetDetailMapper.xml | 7 +++++-- 3 files changed, 22 insertions(+), 6 deletions(-) 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}