From b8bbf3676726556bea0c7cf38bd73ebf23c9941e Mon Sep 17 00:00:00 2001 From: wuweihua <88888888> Date: Mon, 9 Nov 2026 13:39:14 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=88=A0=E9=99=A4=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/bms/price/mapper/PrcOrderBillMapper.java | 3 +++ .../price/service/impl/PrcPriceSetServiceImpl.java | 14 +++++++++++--- .../resources/mapper/price/PrcOrderBillMapper.xml | 4 ++++ bms-front/src/views/price/exclusive/detail.vue | 4 ++-- bms-front/src/views/price/set/detail.vue | 4 ++-- 5 files changed, 22 insertions(+), 7 deletions(-) diff --git a/bms-back/bms-system/src/main/java/com/bms/price/mapper/PrcOrderBillMapper.java b/bms-back/bms-system/src/main/java/com/bms/price/mapper/PrcOrderBillMapper.java index 6bc1fe72..1785de23 100644 --- a/bms-back/bms-system/src/main/java/com/bms/price/mapper/PrcOrderBillMapper.java +++ b/bms-back/bms-system/src/main/java/com/bms/price/mapper/PrcOrderBillMapper.java @@ -134,4 +134,7 @@ public interface PrcOrderBillMapper @Param("surchargeAmount") BigDecimal surchargeAmount, @Param("incomeTotal") BigDecimal incomeTotal, @Param("payTotal") BigDecimal payTotal); + + /** Count order bills that reference this sales package version. */ + int countByPsvId(@Param("psvId") Long psvId); } 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 6c05e563..c8b15e81 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 @@ -40,6 +40,7 @@ import com.bms.price.domain.PrcSurchargeRel; import com.bms.price.mapper.BmsProductCountryMapper; import com.bms.price.mapper.BmsProductMapper; import com.bms.price.mapper.PrcCustomerPriceSetMapper; +import com.bms.price.mapper.PrcOrderBillMapper; import com.bms.price.mapper.PrcPriceSetDetailMapper; import com.bms.price.mapper.PrcPriceSetMapper; import com.bms.price.mapper.PrcPriceSetProductMapper; @@ -141,6 +142,9 @@ public class PrcPriceSetServiceImpl implements IPrcPriceSetService @Autowired private IBmsCustomerService bmsCustomerService; + @Autowired + private PrcOrderBillMapper orderBillMapper; + @Override public PrcPriceSet selectPrcPriceSetById(Long priceSetId) { @@ -626,7 +630,7 @@ public class PrcPriceSetServiceImpl implements IPrcPriceSetService { throw new ServiceException(MessageUtils.message("price.set.version.notExists")); } - // Draft / pending: hard delete; EFFECT: soft delete then reopen previous via refreshVersionStatus + // Draft / pending / effect may be deleted; expired stays view-only. if (!VER_DRAFT.equals(version.getStatus()) && !VER_PENDING.equals(version.getStatus()) && !VER_EFFECT.equals(version.getStatus())) @@ -634,9 +638,13 @@ public class PrcPriceSetServiceImpl implements IPrcPriceSetService throw new ServiceException(MessageUtils.message("price.set.version.delete.statusNotAllowed")); } requireSet(version.getPriceSetId()); - wipeVersionChildren(psvId, version.getStatus()); + // Products / details / surcharge always physical delete. + surchargeRelMapper.physicalDeleteByPsvId(psvId); + detailMapper.physicalDeleteByPsvId(psvId); + setProductMapper.physicalDeleteByPsvId(psvId); + // Version: soft-delete when any order bill references psv_id; otherwise hard-delete. int rows; - if (VER_EFFECT.equals(version.getStatus())) + if (orderBillMapper.countByPsvId(psvId) > 0) { rows = versionMapper.softDeleteById(psvId, updateBy); } diff --git a/bms-back/bms-system/src/main/resources/mapper/price/PrcOrderBillMapper.xml b/bms-back/bms-system/src/main/resources/mapper/price/PrcOrderBillMapper.xml index 24acf2dd..d2e63256 100644 --- a/bms-back/bms-system/src/main/resources/mapper/price/PrcOrderBillMapper.xml +++ b/bms-back/bms-system/src/main/resources/mapper/price/PrcOrderBillMapper.xml @@ -1070,4 +1070,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update_time = sysdate() where bill_id = #{billId} + + diff --git a/bms-front/src/views/price/exclusive/detail.vue b/bms-front/src/views/price/exclusive/detail.vue index ab62b16e..0c6f0ff7 100644 --- a/bms-front/src/views/price/exclusive/detail.vue +++ b/bms-front/src/views/price/exclusive/detail.vue @@ -448,8 +448,8 @@ function onCreateVersion() { function onRemoveVersion(row) { if (!row || row.psvId == null) return const msg = isEffectVersion(row) - ? "确认软删除已生效版本(生效时间:" + (row.effectiveTime || '未设置') + ")?版本及产品、明细将标记为已删除,上一版将自动恢复生效并清空失效时间。" - : "确认删除" + (isPendingVersion(row) ? "待生效" : "草稿") + "版本(生效时间:" + (row.effectiveTime || '未设置') + ")?其明细与附加费将一并删除。" + ? "确认删除该版本(生效时间:" + (row.effectiveTime || '未设置') + ")?若订单已引用该版本则仅软删版本记录;若无订单引用则整版本硬删。产品与明细均会物理删除,且上一版将自动恢复生效。" + : "确认删除" + (isPendingVersion(row) ? "待生效" : "草稿") + "版本(生效时间:" + (row.effectiveTime || '未设置') + ")?若订单已引用该版本则仅软删版本记录;若无订单引用则整版本硬删。产品与明细均会物理删除。" proxy.$modal.confirm(msg).then(() => { removingPsvId.value = row.psvId proxy.$modal.loading("正在删除,请稍候...") diff --git a/bms-front/src/views/price/set/detail.vue b/bms-front/src/views/price/set/detail.vue index d6856f38..46a9ba09 100644 --- a/bms-front/src/views/price/set/detail.vue +++ b/bms-front/src/views/price/set/detail.vue @@ -465,8 +465,8 @@ function onCreateVersion() { function onRemoveVersion(row) { if (!row || row.psvId == null) return const msg = isEffectVersion(row) - ? "确认软删除已生效版本(生效时间:" + (row.effectiveTime || '未设置') + ")?版本及产品、明细将标记为已删除,上一版将自动恢复生效并清空失效时间。" - : "确认删除" + (isPendingVersion(row) ? "待生效" : "草稿") + "版本(生效时间:" + (row.effectiveTime || '未设置') + ")?其明细与附加费将一并删除。" + ? "确认删除该版本(生效时间:" + (row.effectiveTime || '未设置') + ")?若订单已引用该版本则仅软删版本记录;若无订单引用则整版本硬删。产品与明细均会物理删除,且上一版将自动恢复生效。" + : "确认删除" + (isPendingVersion(row) ? "待生效" : "草稿") + "版本(生效时间:" + (row.effectiveTime || '未设置') + ")?若订单已引用该版本则仅软删版本记录;若无订单引用则整版本硬删。产品与明细均会物理删除。" proxy.$modal.confirm(msg).then(() => { removingPsvId.value = row.psvId proxy.$modal.loading("正在删除,请稍候...")