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.GeneratrixAndPowerStationDTO;
import com.njcn.device.pms.pojo.dto.GeneratrixAndPowerStationSonDTO;
import com.njcn.device.pms.pojo.dto.PmsGeneratrixDTO;
import com.njcn.device.pms.pojo.param.ConditionParam;
import com.njcn.device.pms.pojo.param.GeneratrixWireParam;
import com.njcn.device.pms.pojo.param.PmsBaseParam;
import com.njcn.device.pms.pojo.param.PmsGeneratrixParam;
import com.njcn.device.pms.pojo.po.GeneratrixWire;
import com.njcn.device.pms.pojo.po.PmsMidLedger;
import com.njcn.web.pojo.param.BaseParam;

import java.util.List;

/**
 * pms-device
 *
 * @author cdf
 * @date 2022/10/26
 */
public interface IGeneratrixWireService extends IService<GeneratrixWire> {

    /**
     * 新增线路
     * @author cdf
     * @date 2022/10/25
     * @param generatrixWireParam 线路
     * @return boolean
     */
    boolean addGeneratrixWire(GeneratrixWireParam generatrixWireParam);

    /**
     * 修改线路
     * @author cdf
     * @date 2022/10/25
     * @param generatrixWireParam 线路
     * @return boolean
     */
    boolean updateGeneratrixWire(GeneratrixWireParam generatrixWireParam);

    /**
     * 删除线路
     * @author cdf
     * @date 2022/10/25
     * @param generatrixWireIds 线路
     * @return boolean
     */
    boolean delGeneratrixWire(List<String> generatrixWireIds);

    /**
     * 查询线路
     * @author cdf
     * @date 2022/10/25
     * @param generatrixWireId 线路id
     * @return boolean
     */
    GeneratrixWire getGeneratrixWireById(String generatrixWireId);

    /**
     * 查询线路列表
     * @author cdf
     * @date 2022/10/25
     * @param pmsBaseParam 基础参数
     * @return boolean
     */
    List<GeneratrixWire> getGeneratrixWireList(PmsBaseParam pmsBaseParam);

    /**
     * 分页查询线路列表
     * @author cdf
     * @date 2022/10/25
     * @param baseParam 基础参数
     * @return boolean
     */
    Page<GeneratrixWire> getGeneratrixWirePageList(BaseParam baseParam);


    /**
     * 获取母线信息
     *
     * @param param 入参
     * @return 母线信息
     */
    List<PmsGeneratrixDTO> getGeneratrixInfo(PmsGeneratrixParam param);

    /**
     * 获取母线与电站关联信息
     *
     * @param param 条件参数
     * @return java.util.List<com.njcn.device.pms.pojo.dto.PmsGeneratrixDTO>
     * @author yzh
     * @date 2022/11/3
     */
    List<GeneratrixAndPowerStationDTO> getGeneratrixAndPowerStationInfo(PmsGeneratrixParam param);
    /**
     * @Description: 普测计划页面调用根据条件查询母线信息
     * @Param: [param]
     * @return: java.util.List<com.njcn.device.pms.pojo.dto.GeneratrixAndPowerStationDTO>
     * @Author: clam
     * @Date: 2022/12/5
     */
    List<GeneratrixAndPowerStationSonDTO> getGeneratrixByCondition(ConditionParam param);

    /**
     * 根据电站id匹配中台母线信息
     * @param stationId
     * @return
     */
    List<PmsMidLedger> getBusBar(String stationId);


    Boolean batchSync();

}
