package com.casic.missiles.modular.system.service;

import com.baomidou.mybatisplus.plugins.Page;
import com.casic.missiles.modular.system.dto.BatchExportDataDto;
import com.casic.missiles.modular.system.dto.BfztCountDataDto;
import com.casic.missiles.modular.system.dto.WatchDataDto;
import com.casic.missiles.modular.system.model.BusWellInfo;
import com.casic.missiles.core.datascope.DataScope;
import com.baomidou.mybatisplus.service.IService;

import java.util.List;


/**
 * <p>
 * 闸井信息表 服务类
 * </p>
 *
 * @author stylefeng123
 * @since 2019-05-13
 */
public interface IBusWellInfoService extends IService<BusWellInfo> {

    /**
     * 根据条件分页查询闸井列表
     *
     * @param dataScope  数据权限集合
     * @param page       分页参数
     * @return 设备列表
     */
    List<BusWellInfo> selectDataScopePage(DataScope dataScope, Page<BusWellInfo> page, String keywords, String wellType, String deptid, String bfzt);

    List<BusWellInfo> selectDataScopePageForPolice(DataScope dataScope, Page<BusWellInfo> page, String keywords, String position, String owner, String wellType, String deptid, String notes);

    List<Long> deleteBatchByIds(List<Long> id);

    List<WatchDataDto> getWatchDatas(Long id);
    BfztCountDataDto getBfztCountData(DataScope dataScope, List<Long> deptIds);

    List<BatchExportDataDto> selectDataScope(DataScope dataScope, Page<BatchExportDataDto> page, String deviceType, String deptid, String keywords);

    Integer getDeviceCountData(Long id);
    String getDeptNameData(String deptid);

    List<String> addWellBatch(List<BusWellInfo> results);

    List<BusWellInfo> getWellList(DataScope dataScope, String keywords, String wellType, String deptid);
    List<BusWellInfo> getAllWellList();
    List<BusWellInfo> getAlarmWellList(DataScope dataScope, String keywords, String wellType, String deptid);
    List<BusWellInfo> getNotAlarmWellList(DataScope dataScope, String keywords, String wellType, String deptid);

    String getAreaPid(String id);

    void updateBatchBfcf(String keywords, String position, String owner, String wellType, String deptid, String bfzt, List<Long> deptIds, String notes);
}
