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

import com.njcn.device.pms.pojo.dto.PwPmsMonitorDTO;
import com.njcn.device.pms.pojo.param.PwPmsMonitorParam;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author yzh
 * @date 2022/10/28
 */
@Mapper
public interface PwMonitorMapper {

    /**
     * 获取配网监测点信息
     *
     * @param deptIdList        所有子部门索引
     * @param monitorTag        监测点标签
     * @param pwPmsMonitorParam 查询条件
     * @return 配网监测点信息
     */
    List<PwPmsMonitorDTO> getPwMonitorDataList(@Param("deptIdList") List<String> deptIdList,
                                               @Param("monitorTag") List<String> monitorTag,
                                               @Param("pwPmsMonitorParam") PwPmsMonitorParam pwPmsMonitorParam);

    /**
     * 获取配网监测点信息
     *
     * @param deptIdList        所有子部门索引
     * @param monitorTag        监测点标签
     * @param pwPmsMonitorParam 查询条件
     * @return 配网监测点信息
     */
    List<PwPmsMonitorDTO> getPwMonitorDataNewList(@Param("deptIdList") List<String> deptIdList,
                                                  @Param("ids") List<String> ids,
                                                   @Param("monitorTag") List<String> monitorTag,
                                                   @Param("pwPmsMonitorParam") PwPmsMonitorParam pwPmsMonitorParam);

    /**
     * 获取配网监测点信息
     *
     * @param ids        监测点id
     * @param name        监测点标签
     * @return 配网监测点信息
     */
    List<PwPmsMonitorDTO> getPwMonitorName(@Param("ids") List<String> ids,
                                           @Param("name") String name);

    /**
     * 获取分布式光伏配网所有监测点信息
     *
     * @param deptIdList        所有子部门索引
     * @param pwPmsMonitorParam 查询条件
     * @return 配网监测点信息
     */
    List<PwPmsMonitorDTO> getPwPhotovoltaicMonitorList(@Param("deptIdList") List<String> deptIdList,
                                               @Param("pwPmsMonitorParam") PwPmsMonitorParam pwPmsMonitorParam);



    List<PwPmsMonitorDTO> getPwBaseMonitorInfo(@Param("pwMonitorIds") List<String> pwMonitorIds,
                                                       @Param("pwPmsMonitorParam") PwPmsMonitorParam pwPmsMonitorParam);
}
