change(oa): 添加删除操作的状态校验防止误删审批中记录

- 在报价单删除前验证状态,仅允许删除暂存状态记录
- 在项目验收确认删除前验证状态,仅允许删除暂存状态记录
- 在项目计划删除前验证状态,仅允许删除暂存状态记录
- 在项目收货确认删除前验证状态,仅允许删除暂存状态记录
- 在发货单删除前验证状态,仅允许删除暂存状态记录
- 移除项目计划实现类中未使用的导入包
dev
zangch@mesnac.com 3 weeks ago
parent 1656a3235b
commit 764867634b

@ -288,7 +288,13 @@ public class CrmQuoteInfoServiceImpl implements ICrmQuoteInfoService {
@Transactional(rollbackFor = Exception.class)
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
// 仅允许删除暂存状态的报价单,防止审批中/已完成记录被误删
List<CrmQuoteInfo> list = baseMapper.selectBatchIds(ids);
for (CrmQuoteInfo item : list) {
if (!OAStatusEnum.DRAFT.getStatus().equals(item.getQuoteStatus())) {
throw new ServiceException("只能删除暂存状态的报价单");
}
}
}
// 先删除子表
int delete = quoteMaterialMapper.delete(Wrappers.<CrmQuoteMaterial>lambdaQuery().in(CrmQuoteMaterial::getQuoteId, ids));
@ -438,7 +444,7 @@ public class CrmQuoteInfoServiceImpl implements ICrmQuoteInfoService {
Map<String, Object> params = processEvent.getParams();
if (MapUtil.isNotEmpty(params)) {
// 预留:当前节点办理人
// 当前节点办理人
String handler = Convert.toStr(params.get("handler"));
}

@ -219,7 +219,13 @@ public class ErpProjectAcceptanceServiceImpl implements IErpProjectAcceptanceSer
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
// 仅允许删除暂存状态的数据,避免审批中/已完成记录被误删
List<ErpProjectAcceptance> list = baseMapper.selectBatchIds(ids);
for (ErpProjectAcceptance item : list) {
if (!OAStatusEnum.DRAFT.getStatus().equals(item.getAcceptanceStatus())) {
throw new ServiceException("只能删除暂存状态的项目验收确认记录");
}
}
}
return baseMapper.deleteByIds(ids) > 0;
}

@ -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<Long> ids, Boolean isValid) {
if (isValid) {
//TODO 做一些业务上的校验,判断是否需要校验
// 仅允许删除暂存状态的计划,审批中/已完成禁止删除
List<ErpProjectPlan> plans = baseMapper.selectBatchIds(ids);
for (ErpProjectPlan plan : plans) {
if (!OAStatusEnum.DRAFT.getStatus().equals(plan.getProjectPlanStatus())) {
throw new ServiceException("只能删除暂存状态的项目计划");
}
}
}
// 先删除子表
planStageMapper.delete(Wrappers.<ErpProjectPlanStage>lambdaQuery()

@ -215,7 +215,13 @@ public class ErpProjectReceivingServiceImpl implements IErpProjectReceivingServi
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
// 仅允许删除暂存状态的收货确认,防止审批中/完成数据被误删
List<ErpProjectReceiving> list = baseMapper.selectBatchIds(ids);
for (ErpProjectReceiving item : list) {
if (!OAStatusEnum.DRAFT.getStatus().equals(item.getReceivingStatus())) {
throw new ServiceException("只能删除暂存状态的项目收货确认记录");
}
}
}
return baseMapper.deleteByIds(ids) > 0;
}

@ -255,7 +255,13 @@ public class WmsShippingBillServiceImpl implements IWmsShippingBillService {
@Transactional(rollbackFor = Exception.class)
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if (isValid) {
//TODO 做一些业务上的校验,判断是否需要校验
// 仅允许删除暂存状态的发货单,防止审批中/已完成记录被误删
List<WmsShippingBill> list = baseMapper.selectBatchIds(ids);
for (WmsShippingBill bill : list) {
if (!OAStatusEnum.DRAFT.getStatus().equals(bill.getShippingStatus())) {
throw new ServiceException("只能删除暂存状态的发货单");
}
}
}
// 先删除子表明细
detailsMapper.delete(Wrappers.<WmsShippingDetails>lambdaUpdate()

Loading…
Cancel
Save