diff --git a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/contract/CrmContractProductMapper.java b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/contract/CrmContractProductMapper.java index feafbc4..4bbfcbe 100644 --- a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/contract/CrmContractProductMapper.java +++ b/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().eq(CrmContractProductDO::getContractId, contractId)); } + default int deleteByContractId(Long contractId) { + return delete(new LambdaQueryWrapperX().eq(CrmContractProductDO::getContractId, contractId)); + } + } diff --git a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/contract/CrmContractServiceImpl.java b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/contract/CrmContractServiceImpl.java index 3d2d95a..ce116e0 100644 --- a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/contract/CrmContractServiceImpl.java +++ b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/contract/CrmContractServiceImpl.java @@ -240,7 +240,9 @@ public class CrmContractServiceImpl implements CrmContractService { // 2.1 删除合同 contractMapper.deleteById(id); - // 2.2 删除数据权限 + // 2.2 删除合同产品明细,避免残留明细仍计入产品引用计数、把关联产品的删除路径锁死 + contractProductMapper.deleteByContractId(id); + // 2.3 删除数据权限 crmPermissionService.deletePermission(CrmBizTypeEnum.CRM_CONTRACT.getType(), id); // 3. 记录操作日志上下文