package com.yiqi.core.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yiqi.core.domain.SettlementStoreStatistics;
import com.yiqi.order.domain.dto.SettlementFactoryStatisticsDto;
import com.yiqi.settlement.domain.dto.StoreChargeStatistics;

import java.util.Date;
import java.util.List;

/**
 * 工厂统计Service接口
 *
 * @author douya
 * @date 2025-03-21
 */
public interface ISettlementFactoryStatisticsService  {

    /**
     * 按门店定时生成每个工厂的统计数据
     * @param date
     */
    void generateDayStatistics(Date date);

    /**
     * 根据日期生成工厂统计
     *
     * @param factoryId 工厂id
     * @param start 开始日期
     * @param end 结束日期
     */
    List<SettlementFactoryStatisticsDto> generateFactoryStatisticsByDate(Long factoryId, Long storeId, Date start, Date end, Integer pageNum, Integer pageSize);


    /**
     * 根据日期生成工厂统计
     *
     * @param factoryId 工厂id
     * @param start 开始日期
     * @param end 结束日期
     */
    List<SettlementFactoryStatisticsDto> generateFactoryStatisticsByStoreId(Long factoryId, Long storeId, Date start, Date end);


    /**
     * 根据日期生成工厂一段时间内的总统计
     *
     * @param factoryId 工厂id
     * @param start 开始日期
     * @param end 结束日期
     */
    SettlementFactoryStatisticsDto generateTotalFactoryStatistics(Long factoryId, Long storeId, Date start, Date end);
}
