package com.njcn.device.pq.service;


import com.njcn.common.pojo.param.StatisticsBizBaseParam;
import com.njcn.device.pq.pojo.param.GridDiagramParam;
import com.njcn.device.pq.pojo.po.RStatIntegrityD;
import com.njcn.device.pq.pojo.po.RStatOnlinerateD;
import com.njcn.device.pq.pojo.vo.GridDiagramProVO;
import com.njcn.device.pq.pojo.vo.GridDiagramVO;
import com.njcn.device.pq.pojo.vo.LoadTypeVO;

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

/**
 * @author wr
 * @description 冀北电网一张图
 * @date 2024/4/16 13:11
 */
public interface GridDiagramService {


    /**
     * @Description: 监测点统计(在线数/在线率/完整率)
     * @param
     * @Author: wr
     */

    GridDiagramVO getGridDiagramMonitor(GridDiagramParam param);

    /**
     * @Description: 终端统计(在运/在线)
     * @param
     * @Author: wr
     */

    GridDiagramVO getGridDiagramDev(GridDiagramParam param);

    /**
     * @Description: 终端趋势分析
     * @param
     * @Author: wr
     */

    Map<String,Long> getGridDiagramDevTendency(GridDiagramParam param,Integer type);

    /**
     * @Description: 终端分布统计
     * @param
     * @Author: wr
     */

    List<GridDiagramVO.DeviceData> getGridDiagramDevData(GridDiagramParam param);


    /**
     * @Description: 终端统计详细列表
     * @param
     * @Author: wr
     */

    List<GridDiagramVO.DevData> getGridDiagramDevDataList(GridDiagramParam param);

    /**
     * 监测点指标统计
     * @param param
     * @return
     */
    GridDiagramProVO getGridDiagramStatistics(StatisticsBizBaseParam param);
    //---------------------------------------------------市级---------------------------------------

    /**
     * @Description: 监测终端状态
     * @param
     * @Author: wr
     */

    List<String> getGridDiagramCityDev(GridDiagramParam param);

    /**
     * @Description: 监测点完整性
     * @Author: wr
     * @Date: 2024/5/4 18:34
     */
    List<RStatIntegrityD> getGridDiagramIntegrityD(StatisticsBizBaseParam param);
    /**
     * @Description: 终端在线率
     * @param param
     * @return: java.util.List<com.njcn.device.pq.pojo.po.RStatOnlinerateD>
     * @Author: wr
     * @Date: 2024/5/4 18:35
     */
    List<RStatOnlinerateD> getGridDiagramOnLineRateD(StatisticsBizBaseParam param);


    /**
     * @Description: 根据干扰源进行分组
     * @param param
     * @return
     */
    List<LoadTypeVO>  loadTypeVOList(GridDiagramParam param);
}
