yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/contract/CrmContractService.java
@@ -1,6 +1,7 @@
package cn.iocoder.yudao.module.crm.service.contract;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.crm.api.contract.dto.CrmContractCreateFromSaleOrderReqDTO;
import cn.iocoder.yudao.module.crm.controller.admin.contract.vo.contract.CrmContractPageReqVO;
import cn.iocoder.yudao.module.crm.controller.admin.contract.vo.contract.CrmContractSaveReqVO;
import cn.iocoder.yudao.module.crm.controller.admin.contract.vo.contract.CrmContractImportExcelVO;
@@ -12,6 +13,7 @@
import cn.iocoder.yudao.module.crm.dal.dataobject.customer.CrmCustomerDO;
import jakarta.validation.Valid;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Collection;
import java.util.List;
@@ -188,6 +190,26 @@
    Long getContractCountByCustomerId(Long customerId);
    /**
     * 批量统计各客户「已签订」的合同数量
     *
     * 「已签订」= 审批状态为审核通过的合同
     *
     * @param customerIds 客户编号集合
     * @return key:客户编号,value:合同数量。没有已签订合同的客户不在 map 中
     */
    Map<Long, Long> getContractCountMapByCustomerIds(Collection<Long> customerIds);
    /**
     * 批量统计各客户「已签订」的合同金额合计
     *
     * 「已签订」= 审批状态为审核通过的合同
     *
     * @param customerIds 客户编号集合
     * @return key:客户编号,value:金额合计。没有已签订合同的客户不在 map 中
     */
    Map<Long, BigDecimal> getContractPriceMapByCustomerIds(Collection<Long> customerIds);
    /**
     * 根据商机编号,获取关联客户的合同数量
     *
     * @param businessId 商机编号
@@ -238,6 +260,14 @@
    Long generateSaleOrder(Long id, Long userId);
    /**
     * 根据销售订单创建合同草稿(不提交审批)
     *
     * @param reqDTO 销售订单信息
     * @return 合同
     */
    CrmContractDO createContractDraftFromSaleOrder(CrmContractCreateFromSaleOrderReqDTO reqDTO);
    /**
     * 更新合同状态
     *
     * @param id     合同编号