From 764867634ba8714f2b3e357ac5b747b425b50534 Mon Sep 17 00:00:00 2001 From: "zangch@mesnac.com" Date: Fri, 26 Dec 2025 11:03:29 +0800 Subject: [PATCH] =?UTF-8?q?change(oa):=20=E6=B7=BB=E5=8A=A0=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E6=93=8D=E4=BD=9C=E7=9A=84=E7=8A=B6=E6=80=81=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=E9=98=B2=E6=AD=A2=E8=AF=AF=E5=88=A0=E5=AE=A1=E6=89=B9?= =?UTF-8?q?=E4=B8=AD=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在报价单删除前验证状态,仅允许删除暂存状态记录 - 在项目验收确认删除前验证状态,仅允许删除暂存状态记录 - 在项目计划删除前验证状态,仅允许删除暂存状态记录 - 在项目收货确认删除前验证状态,仅允许删除暂存状态记录 - 在发货单删除前验证状态,仅允许删除暂存状态记录 - 移除项目计划实现类中未使用的导入包 --- .../oa/crm/service/impl/CrmQuoteInfoServiceImpl.java | 10 ++++++++-- .../service/impl/ErpProjectAcceptanceServiceImpl.java | 8 +++++++- .../oa/erp/service/impl/ErpProjectPlanServiceImpl.java | 9 +++++++-- .../service/impl/ErpProjectReceivingServiceImpl.java | 8 +++++++- .../wms/service/impl/WmsShippingBillServiceImpl.java | 8 +++++++- 5 files changed, 36 insertions(+), 7 deletions(-) diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/service/impl/CrmQuoteInfoServiceImpl.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/service/impl/CrmQuoteInfoServiceImpl.java index ecd6c3b7..951cffce 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/service/impl/CrmQuoteInfoServiceImpl.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/service/impl/CrmQuoteInfoServiceImpl.java @@ -288,7 +288,13 @@ public class CrmQuoteInfoServiceImpl implements ICrmQuoteInfoService { @Transactional(rollbackFor = Exception.class) public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { if(isValid){ - //TODO 做一些业务上的校验,判断是否需要校验 + // 仅允许删除暂存状态的报价单,防止审批中/已完成记录被误删 + List list = baseMapper.selectBatchIds(ids); + for (CrmQuoteInfo item : list) { + if (!OAStatusEnum.DRAFT.getStatus().equals(item.getQuoteStatus())) { + throw new ServiceException("只能删除暂存状态的报价单"); + } + } } // 先删除子表 int delete = quoteMaterialMapper.delete(Wrappers.lambdaQuery().in(CrmQuoteMaterial::getQuoteId, ids)); @@ -438,7 +444,7 @@ public class CrmQuoteInfoServiceImpl implements ICrmQuoteInfoService { Map params = processEvent.getParams(); if (MapUtil.isNotEmpty(params)) { - // 预留:当前节点办理人 + // 当前节点办理人 String handler = Convert.toStr(params.get("handler")); } diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectAcceptanceServiceImpl.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectAcceptanceServiceImpl.java index d5c1cd50..a95e8532 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectAcceptanceServiceImpl.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectAcceptanceServiceImpl.java @@ -219,7 +219,13 @@ public class ErpProjectAcceptanceServiceImpl implements IErpProjectAcceptanceSer @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { if(isValid){ - //TODO 做一些业务上的校验,判断是否需要校验 + // 仅允许删除暂存状态的数据,避免审批中/已完成记录被误删 + List list = baseMapper.selectBatchIds(ids); + for (ErpProjectAcceptance item : list) { + if (!OAStatusEnum.DRAFT.getStatus().equals(item.getAcceptanceStatus())) { + throw new ServiceException("只能删除暂存状态的项目验收确认记录"); + } + } } return baseMapper.deleteByIds(ids) > 0; } diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectPlanServiceImpl.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectPlanServiceImpl.java index 94f3ad7a..9f53bfa5 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectPlanServiceImpl.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectPlanServiceImpl.java @@ -20,7 +20,6 @@ import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.tenant.helper.TenantHelper; -import org.dromara.oa.erp.domain.ErpProjectInfo; import org.dromara.oa.erp.domain.ErpProjectPlan; import org.dromara.oa.erp.domain.ErpProjectPlanStage; import org.dromara.oa.erp.domain.bo.ErpProjectPlanBo; @@ -308,7 +307,13 @@ public class ErpProjectPlanServiceImpl implements IErpProjectPlanService { @GlobalTransactional(rollbackFor = Exception.class) public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { if (isValid) { - //TODO 做一些业务上的校验,判断是否需要校验 + // 仅允许删除暂存状态的计划,审批中/已完成禁止删除 + List plans = baseMapper.selectBatchIds(ids); + for (ErpProjectPlan plan : plans) { + if (!OAStatusEnum.DRAFT.getStatus().equals(plan.getProjectPlanStatus())) { + throw new ServiceException("只能删除暂存状态的项目计划"); + } + } } // 先删除子表 planStageMapper.delete(Wrappers.lambdaQuery() diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectReceivingServiceImpl.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectReceivingServiceImpl.java index 3b759843..7bf2298c 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectReceivingServiceImpl.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectReceivingServiceImpl.java @@ -215,7 +215,13 @@ public class ErpProjectReceivingServiceImpl implements IErpProjectReceivingServi @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { if(isValid){ - //TODO 做一些业务上的校验,判断是否需要校验 + // 仅允许删除暂存状态的收货确认,防止审批中/完成数据被误删 + List list = baseMapper.selectBatchIds(ids); + for (ErpProjectReceiving item : list) { + if (!OAStatusEnum.DRAFT.getStatus().equals(item.getReceivingStatus())) { + throw new ServiceException("只能删除暂存状态的项目收货确认记录"); + } + } } return baseMapper.deleteByIds(ids) > 0; } diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsShippingBillServiceImpl.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsShippingBillServiceImpl.java index ba57d569..aad264a5 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsShippingBillServiceImpl.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsShippingBillServiceImpl.java @@ -255,7 +255,13 @@ public class WmsShippingBillServiceImpl implements IWmsShippingBillService { @Transactional(rollbackFor = Exception.class) public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { if (isValid) { - //TODO 做一些业务上的校验,判断是否需要校验 + // 仅允许删除暂存状态的发货单,防止审批中/已完成记录被误删 + List list = baseMapper.selectBatchIds(ids); + for (WmsShippingBill bill : list) { + if (!OAStatusEnum.DRAFT.getStatus().equals(bill.getShippingStatus())) { + throw new ServiceException("只能删除暂存状态的发货单"); + } + } } // 先删除子表明细 detailsMapper.delete(Wrappers.lambdaUpdate()