package com.njcn.process.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.process.pojo.param.*;
import com.njcn.process.pojo.vo.LoadTypeRelationExcel;
import com.njcn.process.pojo.vo.LoadTypeUserExcel;
import com.njcn.process.pojo.vo.RLoadTypeUserManageVO;

import java.util.List;

/**
 * 干扰源用户管理
 *
 * @author qijian
 * @version 1.0.0
 * @createTime 2022/11/11 - 9:20
 */
public interface LoadTypeUserManageService {

    /**
     * 干扰源用户分页查询
     * @param loadTypeUserSearchParam
     * @return
     */
    Page<RLoadTypeUserManageVO> getLoadTypeUserList(LoadTypeUserSearchParam loadTypeUserSearchParam);

    /**
     * 根据id查询干扰源用户
     * @param id
     * @return
     */
    RLoadTypeUserManageVO getLoadTypeUserById(String id);

    /**
     * 新增干扰源用户
     * @param loadTypeUserParam
     * @return
     */
    boolean addLoadTypeUser(LoadTypeUserParam loadTypeUserParam);

    /**
     * 上传干扰源用户入网报告
     * @param loadTypeUserIUploadParam
     * @return
     */
    boolean uploadLoadTypeUserI(LoadTypeUserIUploadParam loadTypeUserIUploadParam);

    /**
     * 关联营销用户
     * @param loadTypeUserAssociateParam
     * @return
     */
    boolean linkUser(LoadTypeUserAssociateParam loadTypeUserAssociateParam);

    /**
     * 查询所有干扰源用户（与营销系统关联）
     * @param loadTypeUserSearchParam
     * @return
     */
    Page<RLoadTypeUserManageVO> getLoadTypeRelationList(LoadTypeUserSearchParam loadTypeUserSearchParam);

    /**
     * 上传干扰源用户实测报告
     * @param loadTypeUserAUploadParam
     * @return
     */
    boolean uploadLoadTypeUserA(LoadTypeUserAUploadParam loadTypeUserAUploadParam);

    /**
     * 导出未建档干扰源用户管理信息
     * @param list
     * @return
     */
    List<LoadTypeUserExcel> exportLoadTypeUserList(List<String> list);

    /**
     * 导出干扰源用户常态化管理信息
     * @param list
     * @return
     */
    List<LoadTypeRelationExcel> exportLoadTypeRelationList(List<String> list);
    /**
    * @Description: 入网评估报告审核
    * @Param: [loadTypeUserCheckParam]
    * @return: java.lang.Boolean
    * @Author: clam
    * @Date: 2023/2/22
    */
    Boolean checkLoadTypeUserI(LoadTypeUserCheckParam loadTypeUserCheckParam);
    /**
    * @Description: 实测报告审核
    * @Param: [loadTypeUserCheckParam]
    * @return: java.lang.Boolean
    * @Author: clam
    * @Date: 2023/2/22
    */
    Boolean checkLoadTypeUserA(LoadTypeUserCheckParam loadTypeUserCheckParam);


    /**
     *
     * @author cdf
     * @date 2024/4/9
     */
    Boolean delLoadTypeUserPlan(List<String> ids);


    Boolean submitAuditUser(LoadTypeUserCheckParam loadTypeUserCheckParam);

}
