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.common.pojo.param.StatisticsBizBaseParam;
import com.njcn.device.pms.pojo.excel.PowerDistributionAreaExcel;
import com.njcn.device.pms.pojo.param.PowerDistributionareaParam;
import com.njcn.device.pms.pojo.param.TaiZhangParam;
import com.njcn.device.pms.pojo.po.PowerDistributionarea;
import com.njcn.device.pms.pojo.vo.PVCapacity;
import com.njcn.web.pojo.param.BaseParam;
import org.springframework.web.multipart.MultipartFile;

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

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

    /**
     * 分页查询所有
     * @return
     */
    Page<PowerDistributionarea> getList(TaiZhangParam baseParam);

    /**
     * 查询所有
     * @return
     */
    List<PowerDistributionarea> getPowerDistributionList(PowerDistributionareaParam powerDistributionareaParam);


    /**
     * 根据id查询
     * @return
     */
    PowerDistributionarea getDistrictById(String id);

    /**
     * 新增
     */
    boolean add(PowerDistributionareaParam newParam);

    /**
     * 修改
     * @param
     */
    boolean update(PowerDistributionareaParam updateParam);

    /**
     * 删除
     * @param ids ids
     */
    boolean delete(List<String> ids);

    /**
     * 冀北分布式光伏获取分布式光伏容量
     * @param param
     * @return
     */
    PVCapacity getPVCapacity(StatisticsBizBaseParam param);

    /**
     * 冀北分布式光伏获取分布式光伏渗透率
     * @param param
     * @return
     */
    PVCapacity.PVCapacityCount getPVPermeability(StatisticsBizBaseParam param);

    /**
     * 冀北分布式光伏获取消纳能力
     * @param param
     * @return
     */
    List<PVCapacity.Absorptive> getAbsorptiveCapacity(StatisticsBizBaseParam param);

    /**
     * 导出台区模板
     */
    void export();

    /**
     * 批量导入台区台账数据
     */
    void importDistributionAreaExcel(List<PowerDistributionAreaExcel.ErrMsg> list, HttpServletResponse response);
}
