package com.njcn.device.pms.service.ledgerManger;

import com.njcn.common.pojo.param.StatisticsBizBaseParam;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.device.biz.pojo.dto.StatisticsMonitor;
import com.njcn.device.biz.pojo.dto.*;
import com.njcn.device.biz.pojo.param.DeptGetLineParam;
import com.njcn.device.biz.pojo.param.SubstationParam;
import com.njcn.device.pms.pojo.po.Monitor;
import org.springframework.web.bind.annotation.RequestParam;

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

/**
 * pqs
 *
 * @author cdf
 * @date 2023/5/10
 */

public interface CommTerminalService {


    /**
     *通过部门获取所有子集部门所拥有的监测点
     * @author cdf
     * @date 2023/5/10
     */
    List<DeptGetChildrenDTO> deptGetLineList(DeptGetLineParam deptGetLineParam);

    /**
     * 根据单位获取所有子单位信息
     * @author cdf
     * @date 2023/5/10
     */
    List<DeptGetBase> getDeptChildrenByParent(DeptGetLineParam deptGetLineParam);

    /**
     * 根据单位获取单位监测点
     * @author cdf
     * @date 2023/5/10
     */
    List<DeptGetChildrenMoreDTO> deptGetLine(DeptGetLineParam deptGetLineParam);

    /**
     * 根据单位获取所有变电站
     * @author cdf
     * @date 2023/5/10
     */
    List<DeptGetSubStationDTO> deptSubStation(DeptGetLineParam deptGetLineParam);


    /**
     * 根据单位获取所有变电站
     * @author cdf
     * @date 2023/5/10
     */
    List<DeptGetBusBarDTO> deptBusBar(DeptGetLineParam deptGetLineParam);


    /**
     * 根据单位获取所有装置
     * @author cdf
     * @date 2023/5/10
     */
    List<DeptGetDeviceDTO> deptGetDevice(DeptGetLineParam deptGetLineParam,Integer type);

    /**
     * 根据单位获取所有装置
     * @author cdf
     * @date 2023/5/10
     */
    LineDevGetBandDTO substationGetLine(String substationId);


    /**
     * 根据母线获取监测点信息
     * @author cdf
     * @date 2023/5/10
     */
    LineDevGetBandDTO busBarGetLine(String busBarId);




    String updatePmsOverLimit();

    /**
     * 获取所有I类在运监测点id
     * @author cdf
     * @date 2023/9/14
     */
    List<String> getOneMonitorIds();


    List<String> getRunMonitorList();


    LineDevGetDTO getMonitorDetail(String monitorId);

    List<StatisticsMonitor> getStatisticsMonitor(StatisticsBizBaseParam param);

    /**
     * 获取监测点的台账详细信息
     * @author cdf
     * @date 2023/10/23
     */
    Map<String,String> getCustomDetailByLineId(String id);


    List<BusBarAndHisMonitorDTO> getBusBarAndHisMonitor();


    List<CommMonitorInfoDTO> tagOrIdGetMonitorList(List<String> tagList,List<String> monitorIds,List<String> deptIds);

    /**
     * 根据部门获取各变电站信息
     * @param deptGetLineParam
     * @return
     */
    List<DeptGetSubStationDTO.Info> deptSubStationInfo(DeptGetLineParam deptGetLineParam);



    /**
     * 变电站信息
     * @param
     * @return
     */
    List<SubGetBase> tagOrIdGetSub(SubstationParam substationParam);
}
