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

import com.baomidou.mybatisplus.plugins.Page;
import com.casic.missiles.modular.system.dto.*;
import com.casic.missiles.modular.system.model.BusWellInfo;
import com.casic.missiles.core.datascope.DataScope;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 闸井信息表 Mapper 接口
 * </p>
 *
 * @author stylefeng123
 * @since 2019-05-13
 */
public interface BusWellInfoMapper extends BaseMapper<BusWellInfo> {

    List<BusWellInfo> selectDataScopePage(@Param("scope") DataScope dataScope, @Param("page") Page<BusWellInfo> page, @Param("keywords") String keywords, @Param("wellType") String wellType, @Param("deptid") String deptid, @Param("bfzt") String bfzt, @Param("areaId") String areaId);

    List<DeviceInWellInfo> getDeviceInWellInfo(@Param("id") Long id);

    List<WatchDataDto> watchData(@Param("id") Long id);

    DeviceData wellcoverData(@Param("devcode") String devcode);

    DeviceData liquidData(@Param("devcode") String devcode);

    DeviceData harmfulgasData(@Param("devcode") String devcode);

    DeviceData gasData(@Param("devcode") String devcode);

    DeviceData temphumData(@Param("devcode") String devcode);

    DeviceData digData(@Param("devcode") String devcode);

    DeviceData noiseData(@Param("devcode") String devcode);

    DeviceData wellcoverlocaData(@Param("devcode") String devcode);

    DeviceData lgGasData(@Param("devcode") String devcode);//燃气液位

    DeviceData lgLiquidData(@Param("devcode") String devcode);//燃气液位


    BfztCountDataDto bfztCountData(@Param("deptIds") List<Long> deptIds, @Param("isApp") Boolean isApp);

    List<BatchExportDataDto> selectDataScope(@Param("scope") DataScope dataScope, @Param("page") Page<BatchExportDataDto> page, @Param("wellType") String deviceType, @Param("deptid") String deptid, @Param("keywords") String keywords);

    List<BatchExportDataDto> getBatchExportData(@Param("scope") DataScope dataScope, @Param("page") Page<BatchExportDataDto> page, @Param("wellType") String deviceType, @Param("deptid") String deptid, @Param("keywords") String keywords);


    Integer deviceCountData(@Param("id") Long id);

    String deptNameData(@Param("deptid") String deptid);

    String getAreaId(@Param("qu") String qu, @Param("area") String area);

    String getArea(@Param("id") String id);
    String getAreaPId(@Param("id") String id);

    List<BusWellInfoDto> getWellList(@Param("scope") DataScope dataScope, @Param("keywords") String keywords, @Param("wellType") String deviceType, @Param("deptid") String deptid);

    List<BusWellInfoDto> getAlarmWellList(@Param("scope") DataScope dataScope, @Param("keywords") String keywords, @Param("wellType") String deviceType, @Param("deptid") String deptid);

    List<BusWellInfoDto> getNotAlarmWellList(@Param("scope") DataScope dataScope, @Param("keywords") String keywords, @Param("wellType") String deviceType, @Param("deptid") String deptid);

    void updateBatchBfcf(@Param("keywords") String keywords, @Param("wellType") String wellType, @Param("deptid") String deptid, @Param("bfzt") String bfzt, @Param("deptIds") List<Long> deptIds);

    void updateCoordinates(@Param("keywords") String keywords, @Param("wellType") String wellType, @Param("deptid") String deptid, @Param("bfzt") String bfzt, @Param("LNG_BAIDU") List<Long> deptIds);

    Boolean isExistWellCode(@Param("wellCode") String wellCode);

    List<BusWellInfo> getWellListAll();

    List<DeviceInfoDto> getDeviceList(@Param("scope") DataScope dataScope);

    DeviceInfoDto selectDeviceById(@Param("id") Long id);
}
