From cc5f1cf5ded06a35d3568d740069742cf66d39a7 Mon Sep 17 00:00:00 2001 From: wuweihua <88888888> Date: Sun, 20 Sep 2026 10:29:10 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=A5=97=E9=A4=90=E7=8A=B6?= =?UTF-8?q?=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/price/PriceSetController.java | 12 +++++- .../main/resources/i18n/messages.properties | 5 ++- .../domain/BmsCustomerPriceSet.java | 2 +- .../domain/BmsPriceSetOption.java | 2 +- .../price/service/IPrcPriceSetService.java | 3 ++ .../service/impl/PrcPriceSetServiceImpl.java | 18 +++++++++ .../impl/TmsPriceQuoteServiceImpl.java | 2 +- .../mapper/price/PrcPriceSetMapper.xml | 11 +----- bms-front/src/api/price/set.js | 7 ++++ .../customerinfo/customeredit/index.vue | 4 +- .../set/components/detail/SetDetailHeader.vue | 17 ++++---- bms-front/src/views/price/set/create.vue | 4 +- bms-front/src/views/price/set/detail.vue | 13 +++---- bms-front/src/views/price/set/priceSet.vue | 39 +++++++++++-------- .../src/views/price/set/utils/priceSet.js | 18 +++++---- 15 files changed, 96 insertions(+), 61 deletions(-) diff --git a/bms-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/price/PriceSetController.java b/bms-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/price/PriceSetController.java index 6629c282..91c3c5ad 100644 --- a/bms-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/price/PriceSetController.java +++ b/bms-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/price/PriceSetController.java @@ -152,15 +152,23 @@ public class PriceSetController extends BaseController } @PreAuthorize("@ss.hasPermi('price:set:audit')") - @Log(title = "价格套餐停用", businessType = BusinessType.UPDATE) + @Log(title = "Price set disable", businessType = BusinessType.UPDATE) @PutMapping("/disable/{priceSetId}") public AjaxResult disable(@PathVariable Long priceSetId) { return toAjax(priceSetService.disable(priceSetId, getUsername())); } + @PreAuthorize("@ss.hasPermi('price:set:audit')") + @Log(title = "Price set enable", businessType = BusinessType.UPDATE) + @PutMapping("/enable/{priceSetId}") + public AjaxResult enable(@PathVariable Long priceSetId) + { + return toAjax(priceSetService.enable(priceSetId, getUsername())); + } + @PreAuthorize("@ss.hasPermi('price:set:add')") - @Log(title = "价格套餐复用", businessType = BusinessType.INSERT) + @Log(title = "Price set copy", businessType = BusinessType.INSERT) @PostMapping("/copy/{priceSetId}") public AjaxResult copy(@PathVariable Long priceSetId) { diff --git a/bms-back/ruoyi-admin/src/main/resources/i18n/messages.properties b/bms-back/ruoyi-admin/src/main/resources/i18n/messages.properties index b7ebe259..3c9e85f3 100644 --- a/bms-back/ruoyi-admin/src/main/resources/i18n/messages.properties +++ b/bms-back/ruoyi-admin/src/main/resources/i18n/messages.properties @@ -54,12 +54,13 @@ price.set.name.exists=套餐名称已存在 price.set.effectiveDate.empty=生效日期不能为空 price.set.date.invalid=生效日期不能晚于失效日期 price.set.discount.range=折扣模式默认折扣需在 1~99 -price.set.delete.statusNotAllowed=仅草稿或驳回状态的套餐允许删除:{0} +price.set.delete.statusNotAllowed=仅待启用或驳回状态的套餐允许删除:{0} price.set.delete.boundCustomer=套餐【{0}】已绑定客户,请先解绑后再删除 price.set.submit.statusNotAllowed=当前状态不允许提交审核 price.set.approve.statusNotAllowed=仅审核中的套餐可以生效 price.set.reject.statusNotAllowed=仅审核中的套餐可以驳回 -price.set.disable.statusNotAllowed=仅生效中的套餐可以停用 +price.set.disable.statusNotAllowed=仅生效中的套餐可停用 +price.set.enable.statusNotAllowed=套餐已是生效状态 price.set.edit.audit=审核中的套餐不允许修改 price.set.edit.stopped=已停用的套餐不允许修改,请使用复用新建 price.set.childEdit.audit=审核中的套餐不允许改明细或客户 diff --git a/bms-back/ruoyi-system/src/main/java/com/ruoyi/customer/customerinfo/domain/BmsCustomerPriceSet.java b/bms-back/ruoyi-system/src/main/java/com/ruoyi/customer/customerinfo/domain/BmsCustomerPriceSet.java index 36b8f02d..9465d080 100644 --- a/bms-back/ruoyi-system/src/main/java/com/ruoyi/customer/customerinfo/domain/BmsCustomerPriceSet.java +++ b/bms-back/ruoyi-system/src/main/java/com/ruoyi/customer/customerinfo/domain/BmsCustomerPriceSet.java @@ -59,7 +59,7 @@ public class BmsCustomerPriceSet extends BaseEntity /** 计价类型 FIXED=固定价 DISCOUNT=折扣 */ private String setType; - /** 套餐状态 D草稿 A审核中 E生效 R驳回 S停用 */ + /** Package status D=pending-enable A=audit E=effective R=reject S=stopped */ private String priceSetStatus; /** 套餐生效日期 */ diff --git a/bms-back/ruoyi-system/src/main/java/com/ruoyi/customer/customerinfo/domain/BmsPriceSetOption.java b/bms-back/ruoyi-system/src/main/java/com/ruoyi/customer/customerinfo/domain/BmsPriceSetOption.java index b73fd9de..18bbbfdc 100644 --- a/bms-back/ruoyi-system/src/main/java/com/ruoyi/customer/customerinfo/domain/BmsPriceSetOption.java +++ b/bms-back/ruoyi-system/src/main/java/com/ruoyi/customer/customerinfo/domain/BmsPriceSetOption.java @@ -26,7 +26,7 @@ public class BmsPriceSetOption /** 计价类型 FIXED=固定价 DISCOUNT=折扣 */ private String setType; - /** 套餐状态 D草稿 A审核中 E生效 R驳回 S停用 */ + /** Package status D=pending-enable A=audit E=effective R=reject S=stopped */ private String status; /** 生效日期 */ diff --git a/bms-back/ruoyi-system/src/main/java/com/ruoyi/price/service/IPrcPriceSetService.java b/bms-back/ruoyi-system/src/main/java/com/ruoyi/price/service/IPrcPriceSetService.java index 6a8f5803..abbdffc6 100644 --- a/bms-back/ruoyi-system/src/main/java/com/ruoyi/price/service/IPrcPriceSetService.java +++ b/bms-back/ruoyi-system/src/main/java/com/ruoyi/price/service/IPrcPriceSetService.java @@ -34,6 +34,9 @@ public interface IPrcPriceSetService public int disable(Long priceSetId, String updateBy); + /** Re-enable a stopped package (S -> E). */ + public int enable(Long priceSetId, String updateBy); + /** * Activate a draft or reschedule a pending version with user-specified effectiveTime. * effectiveTime <= now -> EFFECT; future -> PENDING(3). Then refresh 0/3/1/2. diff --git a/bms-back/ruoyi-system/src/main/java/com/ruoyi/price/service/impl/PrcPriceSetServiceImpl.java b/bms-back/ruoyi-system/src/main/java/com/ruoyi/price/service/impl/PrcPriceSetServiceImpl.java index 08316833..a1a1a18a 100644 --- a/bms-back/ruoyi-system/src/main/java/com/ruoyi/price/service/impl/PrcPriceSetServiceImpl.java +++ b/bms-back/ruoyi-system/src/main/java/com/ruoyi/price/service/impl/PrcPriceSetServiceImpl.java @@ -49,6 +49,7 @@ import com.ruoyi.price.task.PrcPriceSetSaveAsyncRunner; @Service public class PrcPriceSetServiceImpl implements IPrcPriceSetService { + /** Package status: D pending-enable / A audit / E effective / R reject / S stopped */ private static final String STATUS_DRAFT = "D"; private static final String STATUS_AUDIT = "A"; private static final String STATUS_EFFECT = "E"; @@ -271,6 +272,23 @@ public class PrcPriceSetServiceImpl implements IPrcPriceSetService return setMapper.updatePrcPriceSetStatus(upd); } + @Override + public int enable(Long priceSetId, String updateBy) + { + PrcPriceSet db = requireSet(priceSetId); + if (STATUS_EFFECT.equals(db.getStatus())) + { + throw new ServiceException(MessageUtils.message("price.set.enable.statusNotAllowed")); + } + PrcPriceSet upd = new PrcPriceSet(); + upd.setPriceSetId(priceSetId); + upd.setStatus(STATUS_EFFECT); + upd.setUpdateBy(updateBy); + int rows = setMapper.updatePrcPriceSetStatus(upd); + refreshVersionStatus(priceSetId); + return rows; + } + @Override @Transactional public int activateVersion(Long psvId, Date effectiveTime, String updateBy) diff --git a/bms-back/ruoyi-system/src/main/java/com/ruoyi/price/service/impl/TmsPriceQuoteServiceImpl.java b/bms-back/ruoyi-system/src/main/java/com/ruoyi/price/service/impl/TmsPriceQuoteServiceImpl.java index 8a4e0665..601e938b 100644 --- a/bms-back/ruoyi-system/src/main/java/com/ruoyi/price/service/impl/TmsPriceQuoteServiceImpl.java +++ b/bms-back/ruoyi-system/src/main/java/com/ruoyi/price/service/impl/TmsPriceQuoteServiceImpl.java @@ -272,7 +272,7 @@ public class TmsPriceQuoteServiceImpl implements ITmsPriceQuoteService for (PrcCustomerPriceSet bind : binds) { PrcPriceSet set = priceSetMapper.selectPrcPriceSetById(bind.getPriceSetId()); - if (set == null || "S".equals(set.getStatus())) + if (set == null || !"E".equals(set.getStatus())) { continue; } diff --git a/bms-back/ruoyi-system/src/main/resources/mapper/price/PrcPriceSetMapper.xml b/bms-back/ruoyi-system/src/main/resources/mapper/price/PrcPriceSetMapper.xml index 1855e4b4..2a95edda 100644 --- a/bms-back/ruoyi-system/src/main/resources/mapper/price/PrcPriceSetMapper.xml +++ b/bms-back/ruoyi-system/src/main/resources/mapper/price/PrcPriceSetMapper.xml @@ -13,8 +13,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - - @@ -28,7 +26,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select s.price_set_id, s.price_set_code, s.price_set_name, s.price_set_note, s.set_type, s.default_discount, s.default_type, s.calculate_sign, - s.effective_date, s.expire_date, s.status, s.tms_id, + s.status, s.tms_id, s.created_by, s.create_time, s.updated_by, s.update_time, (select count(distinct d.product_code) from prc_price_set_detail d where d.price_set_id = s.price_set_id) as product_count, (select count(1) from prc_customer_price_set c where c.price_set_id = s.price_set_id) as customer_count @@ -93,8 +91,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" default_discount, default_type, calculate_sign, - effective_date, - expire_date, status, tms_id, created_by, @@ -107,8 +103,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{defaultDiscount}, #{defaultType}, #{calculateSign}, - #{effectiveDate}, - #{expireDate}, #{status}, #{tmsId}, #{createBy}, @@ -126,8 +120,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" default_discount = #{defaultDiscount}, default_type = #{defaultType}, calculate_sign = #{calculateSign}, - effective_date = #{effectiveDate}, - expire_date = #{expireDate}, status = #{status}, tms_id = #{tmsId}, updated_by = #{updateBy}, @@ -140,7 +132,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update prc_price_set status = #{status}, - effective_date = #{effectiveDate}, updated_by = #{updateBy}, update_time = sysdate() diff --git a/bms-front/src/api/price/set.js b/bms-front/src/api/price/set.js index 007c693d..80699aee 100644 --- a/bms-front/src/api/price/set.js +++ b/bms-front/src/api/price/set.js @@ -142,6 +142,13 @@ export function disablePriceSet(priceSetId) { }) } +export function enablePriceSet(priceSetId) { + return request({ + url: '/price/set/enable/' + priceSetId, + method: 'put' + }) +} + export function copyPriceSet(priceSetId) { return request({ url: '/price/set/copy/' + priceSetId, diff --git a/bms-front/src/views/customersuppliermanagement/customerinfo/customeredit/index.vue b/bms-front/src/views/customersuppliermanagement/customerinfo/customeredit/index.vue index f1cf57f3..7843e3cb 100644 --- a/bms-front/src/views/customersuppliermanagement/customerinfo/customeredit/index.vue +++ b/bms-front/src/views/customersuppliermanagement/customerinfo/customeredit/index.vue @@ -800,8 +800,8 @@ function removeProduct(productId) { /* ---------------- 套餐绑定(prc_customer_price_set,一客户一套餐) ---------------- */ const setTypeMap = { FIXED: '固定价', DISCOUNT: '折扣' } -const priceSetStatusMap = { D: '草稿', A: '审核中', E: '生效', R: '驳回', S: '停用' } -const priceSetStatusTagType = { D: 'info', A: 'warning', E: 'success', R: 'danger', S: 'info' } +const priceSetStatusMap = { D: '待启用', A: '审核中', E: '生效', R: '驳回', S: '停用' } +const priceSetStatusTagType = { D: 'warning', A: 'warning', E: 'success', R: 'danger', S: 'info' } const boundPriceSets = ref([]) const priceSetOptions = ref([]) diff --git a/bms-front/src/views/price/set/components/detail/SetDetailHeader.vue b/bms-front/src/views/price/set/components/detail/SetDetailHeader.vue index 56063bae..3aa2cd58 100644 --- a/bms-front/src/views/price/set/components/detail/SetDetailHeader.vue +++ b/bms-front/src/views/price/set/components/detail/SetDetailHeader.vue @@ -4,6 +4,7 @@

{{ set.priceSetName || '套餐详情' }}

{{ set.priceSetCode }} + {{ setStatusLabel(set) }}
@@ -15,31 +16,31 @@
返回列表 停用 复用新建 + @click="emit('enable')" + v-hasPermi="['price:set:audit']" + >启用