huminmin
7 天以前 1feea304776ab97ab04f953a3e1b2334dfdc8732
yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/quotation/CrmSaleQuotationServiceImpl.java
@@ -23,8 +23,10 @@
import cn.iocoder.yudao.module.crm.api.customer.CrmCustomerApi;
import cn.iocoder.yudao.module.crm.service.permission.CrmPermissionService;
import cn.iocoder.yudao.module.crm.service.permission.bo.CrmPermissionCreateReqBO;
import cn.iocoder.yudao.module.system.api.storage.StorageAttachmentApi;
import cn.iocoder.yudao.module.mdm.api.item.MdmItemApi;
import cn.iocoder.yudao.module.mdm.api.item.dto.MdmItemRespDTO;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@@ -41,7 +43,7 @@
/**
 * CRM 销售报价单 Service 实现类
 *
 * @author 芋道源码
 * @author 超级管理员
 */
@Service
@Validated
@@ -69,6 +71,8 @@
    private CrmContactService contactService;
    @Resource
    private CrmPermissionService permissionService;
    @Resource
    private StorageAttachmentApi storageAttachmentApi;
    @Resource
    private CrmContractService contractService;
@@ -100,6 +104,8 @@
                .setBizType(CrmBizTypeEnum.CRM_SALE_QUOTATION.getType())
                .setBizId(saleQuotation.getId())
                .setLevel(CrmPermissionLevelEnum.OWNER.getLevel()));
        storageAttachmentApi.bindAttachments("file", "crm_sale_quotation",
                saleQuotation.getId(), createReqVO.getBlobIds());
        return saleQuotation.getId();
    }
@@ -123,6 +129,7 @@
        saleQuotationMapper.updateById(updateObj);
        // 2.2 更新报价明细
        updateQuotationProductList(updateReqVO.getId(), quotationProducts);
        storageAttachmentApi.updateAttachments("file", "crm_sale_quotation", updateReqVO.getId(), updateReqVO.getBlobIds());
    }
    @Override
@@ -141,6 +148,8 @@
        // 2. 遍历删除
        saleQuotations.forEach(saleQuotation -> {
            // 2.0 删除附件关联
            storageAttachmentApi.deleteAttachmentsByRecord("crm_sale_quotation", saleQuotation.getId());
            // 2.1 删除报价单
            saleQuotationMapper.deleteById(saleQuotation.getId());
            // 2.2 删除报价明细
@@ -310,4 +319,14 @@
        return contractId;
    }
    @Override
    public CrmSaleQuotationDO getByContractId(Long id) {
        return saleQuotationMapper.selectOne(new LambdaQueryWrapper<CrmSaleQuotationDO>().eq(CrmSaleQuotationDO::getContractId,id));
    }
    @Override
    public void clearContractReference(Long quotationId) {
        saleQuotationMapper.clearContractReference(quotationId);
    }
}