package com.usky.fire.service;

import com.usky.common.core.bean.CommonPage;
import com.usky.common.mybatis.core.CrudService;
import com.usky.fire.domain.DataRt;
import com.usky.fire.service.vo.RealTimeStatus;
import com.usky.fire.service.vo.DataRtVo;

import java.util.List;

/**
 * <p>
 * 实时数据表 服务类
 * </p>
 *
 * @author JCB
 * @since 2022-08-24
 */
public interface DataRtService extends CrudService<DataRt> {

    /**
     * 物联网实时数据-列表查询
     *
     * @param deviceCode 设备编号
     * @param systemType 系统类型(1.火灾自动报警系统 2.自动喷水灭火系统 3.消防给水及消火栓系统 4.防排烟系统 5.电气火灾系统 6.消防视频监控系统)
     * @param pageNum    当前页
     * @param pageSize   每页条数
     * @return
     */
    CommonPage<DataRt> dataRtList(String deviceCode, Integer systemType, Integer pageNum, Integer pageSize);

    /**
     * 设备管理实时数据-列表查询
     *
     * @param deviceCode 设备编号
     * @param systemType 系统类型(2.自动喷水灭火系统 3.消防给水及消火栓系统 4.防排烟系统 5.电气火灾系统)
     * @param pageNum          当前页
     * @param pageSize         每页条数
     * @return
     */
    CommonPage<DataRtVo> deviceDataRtList(String deviceCode, Integer systemType, Integer pageNum, Integer pageSize);

    /**
     * 物联网实时数据-导出数据查询
     *
     * @param deviceCode
     * @param systemType
     * @return
     */
    List<DataRt> dataRtListOne(String deviceCode, Integer systemType);

    /**
     * 根据设备编号查询实时数据
     *
     * @param deviceCode 设备编号
     * @return
     */
    List<DataRt> dataRt(String deviceCode);

    /**
     * 根据设备编号查询实时数据
     *
     * @param deviceCode 设备编号
     * @param systemType 系统类型(1.火灾自动报警系统 2.自动喷水灭火系统 3.消防给水及消火栓系统 4.防排烟系统 5.电气火灾系统 6.消防视频监控系统)
     * @return
     */
    CommonPage<DataRt> dataValue(List<String> companyIdList, String deviceCode, Integer systemType, Integer pageNum, Integer pageSize);

    /**
     * 实时监控与工况-设备实时状态
     *
     * @param deviceCode 设备编号
     * @return
     */
    RealTimeStatus deviceInfoData(String deviceCode);
}
