云
5 天以前 a82d847bbb39e2417d4c9773ebc4fc51fdb0b8fc
yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/quotation/CrmSaleQuotationService.java
@@ -5,6 +5,7 @@
import cn.iocoder.yudao.module.crm.controller.admin.quotation.vo.CrmSaleQuotationSaveReqVO;
import cn.iocoder.yudao.module.crm.dal.dataobject.quotation.CrmSaleQuotationDO;
import cn.iocoder.yudao.module.crm.dal.dataobject.quotation.CrmSaleQuotationProductDO;
import cn.iocoder.yudao.module.crm.dal.dataobject.quotation.CrmSaleQuotationRevisionDO;
import java.util.Collection;
import java.util.List;
@@ -12,7 +13,7 @@
/**
 * CRM 销售报价单 Service 接口
 *
 * @author 芋道源码
 * @author 超级管理员
 */
public interface CrmSaleQuotationService {
@@ -46,6 +47,30 @@
     * @return 销售报价单
     */
    CrmSaleQuotationDO getSaleQuotation(Long id);
    /**
     * 提交销售报价单审批
     *
     * @param id                   编号
     * @param processDefinitionKey 流程定义 Key
     * @param userId               用户编号
     */
    void submitSaleQuotation(Long id, String processDefinitionKey, Long userId);
    /**
     * 更新销售报价单审批结果
     *
     * @param id        编号
     * @param bpmResult BPM 审批结果
     */
    void updateSaleQuotationAuditStatus(Long id, Integer bpmResult);
    /**
     * 获取销售报价审批可用的流程定义列表
     *
     * @return 流程定义列表
     */
    java.util.List<java.util.Map<String, Object>> getSaleQuotationApproveProcessDefinitionList();
    /**
     * 获得销售报价单分页
@@ -97,4 +122,37 @@
     */
    Long convertToContract(Long id, Long userId);
    CrmSaleQuotationDO getByContractId(Long id);
    /**
     * 清除报价单的合同关联(删除合同时调用)
     *
     * @param quotationId 报价单编号
     */
    void clearContractReference(Long quotationId);
    /**
     * 手动作废报价单
     *
     * @param id     报价单编号
     * @param reason 作废原因
     */
    void voidSaleQuotation(Long id, String reason);
    /**
     * 获得报价单的轮次流水列表
     *
     * @param quotationId 报价单编号
     * @return 轮次流水列表
     */
    List<CrmSaleQuotationRevisionDO> getSaleQuotationRevisionList(Long quotationId);
    /**
     * 获得客户下可绑定投标的报价单列表(草稿/审批通过/审批不通过,且未被其他投标绑定)
     *
     * @param customerId 客户编号
     * @param bidBondId  当前投标编号(编辑时用于保留自身已绑定的报价单)
     * @return 报价单列表
     */
    List<CrmSaleQuotationDO> getBindableQuotationList(Long customerId, Long bidBondId);
}