Commit 117e700164217086f54d4518de8e1833d449bca6
Committed by
GitHub
Merge pull request #1282 from dadiyang/fix/crm-contract-delete-clean-products
[BUG] CRM 产品:产品被「已删除的合同」的明细行拦死,永远删不掉(删合同不清明细、产品引用计数不看合同删除状态)
Showing
2 changed files
with
7 additions
and
1 deletions
yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/contract/CrmContractProductMapper.java
| @@ -20,4 +20,8 @@ public interface CrmContractProductMapper extends BaseMapperX<CrmContractProduct | @@ -20,4 +20,8 @@ public interface CrmContractProductMapper extends BaseMapperX<CrmContractProduct | ||
| 20 | return selectList(new LambdaQueryWrapperX<CrmContractProductDO>().eq(CrmContractProductDO::getContractId, contractId)); | 20 | return selectList(new LambdaQueryWrapperX<CrmContractProductDO>().eq(CrmContractProductDO::getContractId, contractId)); |
| 21 | } | 21 | } |
| 22 | 22 | ||
| 23 | + default int deleteByContractId(Long contractId) { | ||
| 24 | + return delete(new LambdaQueryWrapperX<CrmContractProductDO>().eq(CrmContractProductDO::getContractId, contractId)); | ||
| 25 | + } | ||
| 26 | + | ||
| 23 | } | 27 | } |
yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/contract/CrmContractServiceImpl.java
| @@ -240,7 +240,9 @@ public class CrmContractServiceImpl implements CrmContractService { | @@ -240,7 +240,9 @@ public class CrmContractServiceImpl implements CrmContractService { | ||
| 240 | 240 | ||
| 241 | // 2.1 删除合同 | 241 | // 2.1 删除合同 |
| 242 | contractMapper.deleteById(id); | 242 | contractMapper.deleteById(id); |
| 243 | - // 2.2 删除数据权限 | 243 | + // 2.2 删除合同产品明细,避免残留明细仍计入产品引用计数、把关联产品的删除路径锁死 |
| 244 | + contractProductMapper.deleteByContractId(id); | ||
| 245 | + // 2.3 删除数据权限 | ||
| 244 | crmPermissionService.deletePermission(CrmBizTypeEnum.CRM_CONTRACT.getType(), id); | 246 | crmPermissionService.deletePermission(CrmBizTypeEnum.CRM_CONTRACT.getType(), id); |
| 245 | 247 | ||
| 246 | // 3. 记录操作日志上下文 | 248 | // 3. 记录操作日志上下文 |