package com.hw.ems.report.service;

import com.hw.ems.base.domain.BaseLineLoss;
import com.hw.ems.report.domain.ExportReport;

import java.util.List;
import java.util.Map;

/**
 * 能源分析Service接口
 *
 * @author YinQ
 * @date 2023-04-05
 */
public interface IDataAnalysisService {


    /**
     * 环比分析返回数据
     *
     * @param paramMap
     * @return
     */
    Map<String, Object> energyMomAnalysisData(Map paramMap);


    /**
     * 同比分析返回数据
     *
     * @param paramMap
     * @return
     */
    Map<String, Object> energyYoyAnalysisData(Map paramMap);

    /**
     * 线损分析返回数据
     *
     * @param
     * @return
     */
    List<Map<String, String>> lineLossAnalysisData(BaseLineLoss baseLineLoss);

    /**
     * 线损分析详情页面返回数据
     *
     * @param baseLineLoss
     * @return
     */
    List<Map<String, String>> lineLossAnalysisDetailsData(BaseLineLoss baseLineLoss);

    /**
     * 线损分析详情页面图表
     *
     * @param baseLineLoss
     * @return
     */
    Map<String, Object> lineLossAnalysisDetailsCharts(BaseLineLoss baseLineLoss);

    /**
     * 预览看板折线
     *
     * @param paramMap
     * @return
     */
    Map<String, Object> previewPolyline(Map paramMap);

    /**
     * 线损排名
     *
     * @param paramMap
     * @return
     */
    Map<String, Object> lineLossRanking(Map paramMap);

    /**
     * 预览看板线损折线
     *
     * @param paramMap
     * @return
     */
    Map<String, Object> previewLineLossLine(Map paramMap);

    public List<Map<String, String>> energyConsumptionByTime(Map paramMap);

    /**
     * 能耗统计返回数据
     *
     * @param paramMap
     * @return
     */
    List<Map<String, String>> energyStatisticsData(Map paramMap);

    /**
     * 定时任务用：线损分析返回数据
     *
     * @param
     * @return
     */
    List<Map<String, String>> lineLossAnalysisDataTimedTasks(BaseLineLoss baseLineLoss);

    /**
     * 层级导出报表
     * @param paramMap
     * @return
     */
    List<ExportReport> classificationExportReport(Map paramMap);
}
