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.excel.PowerGenerationUserExcel;
import com.njcn.device.pms.pojo.param.PowerDistributionareaParam;
import com.njcn.device.pms.pojo.param.PowerGenerationUserParam;
import com.njcn.device.pms.pojo.param.PowerUserParam;
import com.njcn.device.pms.pojo.po.PowerGenerationUser;
import com.njcn.device.pms.pojo.vo.PowerGenerationUserVO;
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 IPowerGenerationUserService extends IService<PowerGenerationUser> {

    /**
     * 新增发电用户
     * @author cdf
     * @date 2022/10/25
     * @param powerGenerationUserParam 发电用户
     * @return boolean
     */
    boolean addPowerGenerationUser(PowerGenerationUserParam powerGenerationUserParam);

    /**
     * 修改发电用户
     * @author cdf
     * @date 2022/10/25
     * @param powerGenerationUserParam 发电用户
     * @return boolean
     */
    boolean updatePowerGenerationUser(PowerGenerationUserParam powerGenerationUserParam);

    /**
     * 删除发电用户
     * @author cdf
     * @date 2022/10/25
     * @param powerGenerationUserIds 发电用户
     * @return boolean
     */
    boolean delPowerGenerationUser(List<String> powerGenerationUserIds);

    /**
     * 查询发电用户
     * @author cdf
     * @date 2022/10/25
     * @param powerGenerationUserId 发电用户id
     * @return boolean
     */
    PowerGenerationUser getPowerGenerationUserById(String powerGenerationUserId);

    /**
     * 查询发电用户列表
     * @author cdf
     * @date 2022/10/25
     * @return boolean
     */
    List<PowerGenerationUserVO> getPowerGenerationUserList(PowerDistributionareaParam powerDistributionareaParam);

    /**
     * 分页查询发电用户列表
     * @author cdf
     * @date 2022/10/25
     * @param baseParam 基础参数
     * @return boolean
     */
    Page<PowerGenerationUser> getPowerGenerationUserPageList(BaseParam baseParam);

    /**
     * 查询发电用户列表
     */
    List<PowerGenerationUser> getGenerateElectricityUserList(PowerUserParam powerUserParam);

    /**
     * 导出发电用户模板
     */
    void export();

    /**
     * 批量导入发电用户台账数据
     */
    void importGenerationUserExcel(List<PowerGenerationUserExcel.ErrMsg> list, HttpServletResponse response);
}
