package cn.cecep.talroad.service.analysis;

import cn.cecep.talroad.domain.analysis.SRaFactoryTransferRateAnalysis;
import com.baomidou.mybatisplus.extension.service.IService;

import java.time.LocalDate;
import java.util.List;

/**
 * 企业传输率分析Service接口
 *
 * @author szhpt
 * @date 2023-03-28*/
public interface ISRaFactoryTransferRateAnalysisService extends IService<SRaFactoryTransferRateAnalysis>
{
    /**
     * 查询企业传输率分析列表
     *
     * @param sRaFactoryTransferRateAnalysis 企业传输率分析
     * @return 企业传输率分析集合
     */
    public List<SRaFactoryTransferRateAnalysis> selectSRaFactoryTransferRateAnalysisList(SRaFactoryTransferRateAnalysis sRaFactoryTransferRateAnalysis);

    /**
     * 生成日数据
     *     逻辑说明：根据排口维度，查询数据进行封装
     * @param statisticsDate
     */
    public void generateFactoryDayRecord2(LocalDate statisticsDate);
    /**
     * 生成企业月度报表
     * 逻辑如下，查询该月下所有的日数据，根据企业+outletCode为维度，进行数据求和组装
     * @param statisticsDate yyyyMM
     */
    public void generateFactoryMonthRecord(String statisticsDate);

    /**
     * 生成企业季度报表
     * 逻辑如下，查询该季度下所有的月数据，根据企业+outletCode为维度，进行数据求和组装
     * @param year
     */
    public void generateFactorySeasonRecord(String year);

    /**
     * 生成企业年报表
     * 逻辑如下，查询该年所有的季度数据，根据企业+outletCode为维度，进行数据求和组装
     * @param year
     */
    public void generateFactoryYearRecord(String year);

    /**
     * 定时任务先跑完企业的数据，之后，根据企业的传输率分析来汇总区域的。
     * @param statisticsDate
     */
    public void generateAreaDayRecord(LocalDate statisticsDate);

    /**
     * 生成企业月度报表
     * 逻辑如下，查询该月下所有的日数据，根据区域编码维度，进行数据求和组装
     * @param statisticsDate yyyyMM
     */
    public void generateAreaMonthRecord(String statisticsDate);

    /**
     * 生成区域季度报表
     * 逻辑如下，查询该季度下所有的月数据，根据区域编码维度，进行数据求和组装
     * @param year
     */
    public void generateAreaSeasonRecord(String year);

    /**
     * 生成企业年度报表
     * 逻辑如下，查询该年所有的季度 数据，根据区域编码维度，进行数据求和组装
     * @param year
     */
    public void generateAreaYearRecord(String year);
}
