Commit 3aec48019a4a0bc3e77aecbf1bb1ea794a0e942b

Authored by dadiyang
1 parent 50adebd1

fix(crm):删除合同时同步删除合同产品明细——残留明细仍计入产品引用计数,被已删合同引用的产品永久拦 1020008003 删不掉(幽灵引用死锁)

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. 记录操作日志上下文
... ...