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 | 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 | 240 | |
| 241 | 241 | // 2.1 删除合同 |
| 242 | 242 | contractMapper.deleteById(id); |
| 243 | - // 2.2 删除数据权限 | |
| 243 | + // 2.2 删除合同产品明细,避免残留明细仍计入产品引用计数、把关联产品的删除路径锁死 | |
| 244 | + contractProductMapper.deleteByContractId(id); | |
| 245 | + // 2.3 删除数据权限 | |
| 244 | 246 | crmPermissionService.deletePermission(CrmBizTypeEnum.CRM_CONTRACT.getType(), id); |
| 245 | 247 | |
| 246 | 248 | // 3. 记录操作日志上下文 | ... | ... |