package com.njcn.product.terminal.mysqlTerminal.service;

import com.njcn.common.pojo.dto.SimpleDTO;

import com.njcn.product.terminal.mysqlTerminal.pojo.dto.DeviceType;
import com.njcn.product.terminal.mysqlTerminal.pojo.param.DeviceInfoParam;
import com.njcn.product.terminal.mysqlTerminal.pojo.po.Line;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * pqs
 *
 * @author cdf
 * @date 2022/1/4
 */
public interface TerminalBaseService {



    /**
     * 根据监测点id，获取所有监测点
     *
     * @param lineIds 监测点id
     * @return 监测点数据
     */
    List<Line> getLineById(List<String> lineIds);

    /**
     * 根据监测点id，获取所有监测点
     *
     * @param lineIds         监测点id
     * @param deviceInfoParam 监测点查询条件
     * @return 监测点数据
     */
    List<Line> getLineByCondition(List<String> lineIds, DeviceInfoParam deviceInfoParam);

    /**
     * 根据终端id,获取所有对应终端
     *
     * @param devIds     终端id
     * @param deviceType 终端条件筛选
     * @return 终端数据
     */
    List<Line> getDeviceById(List<String> devIds, DeviceType deviceType);


    /**
     * 功能描述: 根据id查询变电站信息
     *
     * @param list
     * @return java.util.List<com.njcn.device.pq.pojo.po.Line>
     * @author xy
     * @date 2022/2/21 18:47
     */
    List<Line> getSubstationById(List<String> list);


    /**
     * 查询终端信息
     *
     * @param devIds       终端索引
     * @param deviceType   终端筛选条件
     * @param manufacturer 终端厂家
     */
    List<Line> getDeviceByCondition(List<String> devIds, DeviceType deviceType, List<SimpleDTO> manufacturer);

    /**
     * 查询母线信息
     *
     * @param voltageIds 母线索引
     * @param scale      电压等级
     */
    List<Line> getVoltageByCondition(List<String> voltageIds, List<SimpleDTO> scale);

    /**
     * 查询变电站信息
     *
     * @param subIds    变电站索引
     * @param scale     电压等级
     */
    List<Line> getSubByCondition(List<String> subIds, List<SimpleDTO> scale);

    /**
     * 根据指定电压等级查询母线id
     *
     * @param voltageIds 母线id
     * @param scale      电压等级
     */
 /*   List<String> getVoltageIdByScale(List<String> voltageIds, String scale);
*/
    /**
    * 根据指定电压等级查询母线id
    * @param subIds
    * @param scale
    * @return: java.util.List<java.lang.String>
    * @Author: wr
    * @Date: 2024/10/12 15:58
    */
    List<String> getSubIdByScale(List<String> subIds, String scale);

    /**
     * 根据干扰源获取对应的监测点id
     *
     * @param lineIds  监测点id
     * @param loadType 干扰源类型
     */
    List<String> getLineIdByLoadType(List<String> lineIds, String loadType);

    /**
     * 根据终端厂家获取对应的终端id
     *
     * @param deviceIds    终端id
     * @param manufacturer 终端厂家
     */
    List<String> getDeviceIdByManufacturer(List<String> deviceIds, String manufacturer);
    /**
     * 根据监测点性质获取监测信息
     *
     * @param lineIds    监测点id
     * @param manufacturer 监测点性质
     */
    List<String> getDeviceIdByPowerFlag(List<String> lineIds, Integer manufacturer);




}
