package com.njcn.device.pms.mapper.majornetwork;

import com.njcn.device.pms.pojo.param.SpecialAnalysisParam;
import com.njcn.device.pms.pojo.vo.SpecialAnalysisMonitorVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <专项分析-电气化铁路>
 *
 * @author wr
 * @createTime: 2022-12-01
 */
public interface SpecialAnalysisMapper {

    /**
     * 专项分析-地图数据展示
     *
     * @param deptIdList  部门集合（Code）
     * @param monitorTags 监测标签（字典）
     * @return
     */
    List<SpecialAnalysisMonitorVO.SpecialAnalysisVO> selectList(@Param("deptIdList") List<String> deptIdList,
                                                                @Param("monitorTags") String monitorTags,
                                                                @Param("status") String status);

    /**
     * 同比环比数据(风电场，光伏电站，冶炼负荷)
     *
     * @param deptIdList
     * @param param
     * @return
     */
    SpecialAnalysisMonitorVO.CompareDetailVO selectYoYList(@Param("deptIdList") List<String> deptIdList,
                                                           @Param("param") SpecialAnalysisParam.CompareDateParam param);

    /**
     * 专项分析-地图数据展示
     *
     * @param deptIdList 部门集合（Code）
     * @return
     */
    List<SpecialAnalysisMonitorVO.SpecialAnalysisRailwayVO> selectRailwayList(@Param("deptIdList") List<String> deptIdList);


    /**
     * 地图展示数据-按电压展示数据(电气铁路)
     *
     * @param deptIdList 部门集合（Code）
     * @param param
     * @return
     */
    List<SpecialAnalysisMonitorVO.CompareVO> selectMapDisplayRailway(@Param("deptIdList") List<String> deptIdList,
                                                                     @Param("param") SpecialAnalysisParam.CompareParam param);

    /**
     * 地图展示数据-按接线类型展示(电气化铁路)
     *
     * @param deptIdList
     * @param param
     * @return
     */
    List<SpecialAnalysisMonitorVO.WiringTypeDetail> selectWiringTypeRailway(@Param("deptIdList") List<String> deptIdList,
                                                                            @Param("param") SpecialAnalysisParam.CompareDateParam param);
}
