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()