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

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.device.pms.pojo.dto.PmsStatationStatInfoDTO;
import com.njcn.device.pms.pojo.param.PmsBaseParam;
import com.njcn.device.pms.pojo.param.StatationStatParam;
import com.njcn.device.pms.pojo.param.PmsStatationStatInfoParam;
import com.njcn.device.pms.pojo.param.TerminalQueryParam;
import com.njcn.device.pms.pojo.po.PmsMidLedger;
import com.njcn.device.pms.pojo.po.StatationStat;
import com.njcn.device.pms.pojo.vo.StatationStatVO;

import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author hongawen
 * @since 2022-10-14
 */
public interface IStatationStatService extends IService<StatationStat> {

    /**
     * 获取指定的变电站信息
     *
     * @param pmsStatationStatInfoParam 变电站详情数据入参
     * @return 指定的变电站信息
     */
    List<PmsStatationStatInfoDTO> getStatationStatInfo(PmsStatationStatInfoParam pmsStatationStatInfoParam);

    /**
     * 新增电站
     *
     * @param statationStatParam 电站
     * @return boolean
     * @author cdf
     * @date 2022/10/25
     */
    boolean addStatationStat(StatationStatParam statationStatParam);

    /**
     * 修改电站
     *
     * @param statationStatParam 电站
     * @return boolean
     * @author cdf
     * @date 2022/10/25
     */
    boolean updateStatationStat(StatationStatParam statationStatParam);

    /**
     * 删除电站
     *
     * @param statationStatIds 电站
     * @return boolean
     * @author cdf
     * @date 2022/10/25
     */
    boolean delStatationStat(List<String> statationStatIds);

    /**
     * 查询电站
     *
     * @param statationStatId 电站id
     * @return boolean
     * @author cdf
     * @date 2022/10/25
     */
    StatationStat getStatationStatById(String statationStatId);

    /**
     * 查询电站列表
     *
     * @return boolean
     * @author cdf
     * @date 2022/10/25
     */
    List<StatationStat> getStatationStatList(PmsBaseParam pmsBaseParam);

    /**
     * 查询电站列表
     *
     * @param baseParam 基础参数
     * @return boolean
     * @author cdf
     * @date 2022/10/25
     */
    Page<StatationStatVO> getStatationStatPageList(TerminalQueryParam baseParam);

    /**
     * 获取变电站信息
     *
     * @param param 条件参数
     * @return com.njcn.common.pojo.response.HttpResult<java.util.List < com.njcn.device.pms.pojo.po.PmsStatationStat>>
     * @author yzh
     * @date 2022/11/21
     */
    List<StatationStat> getPowerInfo(PmsStatationStatInfoParam param);

    /**
     * @Description: 统计指定电压等级在运变电站电压等机（冀北专用）
     * @param orgId
     * @return: java.util.List<java.lang.Integer>
     * @Author: wr
     * @Date: 2023/8/7 14:16
     */
    List<Integer> statisticsMotion(String orgId);

    /**
     * @Description: 部门统计指定电压等级在运变电站电压等机（冀北专用）
     * @param orgId
     * @return: java.util.List<java.util.List<com.njcn.device.pms.pojo.param.PmsStatationStatInfoParam.StatationParam>>
     * @Author: wr
     * @Date: 2023/8/7 14:55
     */
    List<List<StatationStatVO.StatationParam>> orgStatisticsMotion(String orgId);


   /**
    * @Description:查询电站列表（当前部门下所有变电站）
    * @param orgID
    * @return: java.util.List<com.njcn.device.pms.pojo.po.StatationStat>
    * @Author: wr
    * @Date: 2023/8/8 14:56
    */
    List<StatationStat> getStatationStatList(String orgID);

    /**
     * @Description: 根据变电编号和电压等级获取曲线(冀北专用)
     * @param subID 变电站信息
     * @param voltageLevel  电压等级
     * @param type  0谐波 1总有公
     * @return:
     * @Author: wr
     * @Date: 2023/8/8 14:56
     */
    List<StatationStatVO.Curve> getStatationStatCurve(String subID,String voltageLevel,Integer type);


    List<PmsMidLedger> getStationByDeptCode(String deptCode);

    Boolean batchSync();

}
