package com.ho.business.service;

import com.ho.business.entity.Station;
import com.ho.business.vo.req.cockpit.CockpitReqVO;
import com.ho.business.vo.resp.iargeScreen.*;
import com.ho.common.tools.entity.SimpleUser;
import com.ho.flow.vo.resp.event.EventDayNum;

import java.util.List;

/**
 * @author gyan
 * @desc: TODO
 * @DateTime: 2023/12/13 17:38
 */
public interface IargeScreenShowService {
    AnnualOverviewResp getOverviewData();

    List<Station> getStationInfo();


    List<AnnualChartValue> getChargeDailyChart();

    //AnnualOverviewResp getDayDate(List<Station> list);

    List<Subdata> getRegionList();

    List<Subdata> getEfficiencyDate();

    List<Subdata> getIncomeList();

    List<Subdata> getCapacity();

    List<AnnualChartValue> getIncomeCurve(CockpitReqVO vo);

    EnergySavingRespVo getEnergySaving();

    /**
     * 查询收益按电站分组
     * @return
     */
    List<Subdata> getProfit(String beginString, String endString);

    /**
     * 查询曲线收益
     * @param vo
     * @return
     */
    List<AnnualChartValue> getProfitCurve(CockpitReqVO vo);

    /*************************以下为通用大屏接口***********************/

    /**
     * 获取集团数据以及收益
     * @param stationIds
     * @return
     */
    AnnualOverviewResp getOverviewData(List<Integer> stationIds);

    /**
     * 电站区域分布
     * @param stationIds
     * @return
     */
    List<Subdata> getCommonRegionList(List<Integer> stationIds);

    /**
     * 获取节能减排数据
     * @param stationIds 电站id集合
     * @return
     */
    EnergySavingRespVo getEnergySaving(List<Integer> stationIds);

    /**
     * 收益曲线
     * @param vo
     * @param stationIds
     * @return
     */
    List<AnnualChartValue> getCommonProfitCurve(CockpitReqVO vo,List<Integer> stationIds);

    /**
     * 日充日放对比图
     * @param stationIds
     * @return
     */
    List<AnnualChartValue> getCommonChargeDailyChart(List<Integer> stationIds);

    /**
     * 查询收益按电站分组
     * @return
     */
    List<Subdata> getCommonProfit(String beginString, String endString,List<Integer> stationIds,String lang);

    /**
     * 通用系统转换率
     * @param stationIds
     * @return
     */
    List<Subdata> getCommonEfficiencyDate(List<Integer> stationIds,String lang);

    /**
     * 获取统计电站信息
     * @param stationIds
     * @return
     */
    List<Station> getCountStations(List<Integer> stationIds,String lang);

    /**
     * 通用装机容量倒排
     * @return
     */
    List<Subdata> getCommonCapacity(List<Integer> stationIds,String lang);

    /**
     * 通用根据天获取告警数目曲线
     * @return
     */
    List<EventDayNum> getCommonEventCount(SimpleUser user);
    /**************************************************************/

    List<Subdata> getCommonPvRegionList(List<Integer> byDeptId);

    AnnualPvOverviewResp getPvOverviewData(List<Integer> stationIds);

    EnergySavingRespVo getPvEnergySaving(List<Integer> stationIds);

    List<AnnualChartValue> getPVCommonProfitCurve(CockpitReqVO vo,List<Integer> stationIds);

    List<Subdata> getPvCommonProfit(String beginString, String endString,List<Integer> stationIds);

    List<Subdata> getPvCommonElec(String beginString, String endString, List<Integer> stationIds);

    List<AnnualChartValue> getCommonPvRelease(List<Integer> stationIds);
}
