package cn.iocoder.yudao.module.crm.dal.mysql.salesTarget; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.Collection; /** * 销售目标达成统计 Mapper * * 统计实际达成金额/数量,从 CRM 现有业务表按周期范围 + 归属人(或物料)聚合。 * * @author 超级管理员 */ @Mapper public interface CrmSalesTargetAchievementMapper { /** * 合同金额(个人/部门维度) */ BigDecimal selectContractPriceByUserIds(@Param("userIds") Collection userIds, @Param("start") LocalDateTime start, @Param("end") LocalDateTime end); /** * 合同数量(个人/部门维度) */ Long selectContractCountByUserIds(@Param("userIds") Collection userIds, @Param("start") LocalDateTime start, @Param("end") LocalDateTime end); /** * 回款金额(个人/部门维度) */ BigDecimal selectReceivablePriceByUserIds(@Param("userIds") Collection userIds, @Param("start") LocalDateTime start, @Param("end") LocalDateTime end); /** * 商机金额(个人/部门维度,赢单) */ BigDecimal selectBusinessPriceByUserIds(@Param("userIds") Collection userIds, @Param("start") LocalDateTime start, @Param("end") LocalDateTime end); /** * 新增客户数(个人/部门维度) */ Long selectCustomerCountByUserIds(@Param("userIds") Collection userIds, @Param("start") LocalDateTime start, @Param("end") LocalDateTime end); /** * 合同金额(产品维度,按合同产品明细归属物料) */ BigDecimal selectContractPriceByItemId(@Param("itemId") Long itemId, @Param("start") LocalDateTime start, @Param("end") LocalDateTime end); /** * 合同数量(产品维度,按合同产品明细归属物料) */ Long selectContractCountByItemId(@Param("itemId") Long itemId, @Param("start") LocalDateTime start, @Param("end") LocalDateTime end); }