package cn.iocoder.yudao.module.erp.service.statistics; import cn.iocoder.yudao.module.erp.controller.admin.statistics.vo.sale.ErpSaleCustomerSummaryRespVO; import cn.iocoder.yudao.module.erp.controller.admin.statistics.vo.sale.ErpSaleProductSummaryRespVO; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; /** * ERP 销售统计 Service 接口 * * @author 超级管理员 */ public interface ErpSaleStatisticsService { /** * 获得销售金额 * * 计算逻辑:销售出库的金额 - 销售退货的金额 * * @param beginTime >= 开始时间 * @param endTime < 结束时间 * @return 销售金额 */ BigDecimal getSalePrice(LocalDateTime beginTime, LocalDateTime endTime); /** * 按客户统计销售款(销售额、已收款、未收款) * * 需求 6.7① 销售款统计、③ 客户销售统计 * * @param customerId 客户编号,为空表示全部客户 * @param beginTime 下单时间 >= 开始时间 * @param endTime 下单时间 <= 结束时间 * @return 客户维度统计列表(已填充客户名称) */ List getCustomerSummary(Long customerId, LocalDateTime beginTime, LocalDateTime endTime); /** * 按产品统计销售量与销售额 * * 需求 6.7② 产品销售统计 * * @param productId 产品编号,为空表示全部产品 * @param beginTime 下单时间 >= 开始时间 * @param endTime 下单时间 <= 结束时间 * @return 产品维度统计列表(已填充产品名称) */ List getProductSummary(Long productId, LocalDateTime beginTime, LocalDateTime endTime); }