package cn.cecep.talroad.service;

import cn.cecep.talroad.domain.BasDevice;
import cn.cecep.talroad.domain.BasDeviceInfoOperationLog;
import cn.cecep.talroad.system.api.domain.SysUser;
import cn.cecep.talroad.vo.FacilityInformationManagementVO;
import cn.cecep.talroad.vo.query.FacilityInformationQuery;
import com.baomidou.mybatisplus.core.metadata.IPage;

import java.util.List;

/**
 * @className: FacilityInformationManagementService
 * @description: TODO 类描述
 * @author: Mr.Yanghongtao
 * @date: 2023/04/28 10:59
 * @Company: Copyright© [2023/04/28 10:59] by [Mr.Yanghongtao]
 **/
public interface FacilityInformationManagementService {

    /**
     * @Author: Mr.Yanghongtao
     * @data: 2023/4/28 12:28
     * @Deseription: 分表计电生产设施匹配列表
     * @Params: null
     * @Return:
     * @Throws:
     */
    IPage<FacilityInformationManagementVO> getProductionDeviceList(FacilityInformationQuery dto);

    /**
     * @Author: Mr.Yanghongtao
     * @data: 2023/4/28 11:33
     * @Deseription: 查询排污许可设施列表
     * @Params: deviceType
     * @Return:
     * @Throws:
     */
    List<BasDevice> getPollutantDeviceList(String factoryId, Integer deviceType);

    /**
     * @Author: Mr.Yanghongtao
     * @data: 2023/4/28 13:38
     * @Deseription: 保存
     * @Params: null
     * @Return:
     * @Throws:
     */
    void modifyDeviceAndPollutantCodeList(SysUser sysUser, List<FacilityInformationQuery> dto, String type);

    /**
     * @Author: Mr.Yanghongtao
     * @data: 2023/4/28 15:08
     * @Deseription: 查询日志
     * @Params: null
     * @Return:
     * @Throws:
     */
    IPage<BasDeviceInfoOperationLog> getBasDeviceInfoOperationLogList(FacilityInformationQuery dto);

    /**
     * @Author: Mr.Yanghongtao
     * @data: 2023/4/28 15:36
     * @Deseription: 取消对应关系
     * @Params: null
     * @Return:
     * @Throws:
     */
    void cancelDeviceAndPollutantCodeList(SysUser sysUser, FacilityInformationQuery dto, String type);

    /**
     * @Author: Mr.Yanghongtao
     * @data: 2023/4/30 14:51
     * @Deseription:
     * @Params: null
     * @Return: 
     * @Throws: 
     */
    List<FacilityInformationManagementVO> getProductionDeviceSearchList(String factoryId,String queryType);
}
