package com.usky.fire.service;

import com.usky.common.core.bean.CommonPage;
import com.usky.common.mybatis.core.CrudService;
import com.usky.fire.domain.AlarmSprayWater;
import com.usky.fire.service.vo.DataVo;

import java.util.List;

/**
 * <p>
 * 自动喷水灭火隐患告警 服务类
 * </p>
 *
 * @author JCB
 * @since 2022-08-18
 */
public interface AlarmSprayWaterService extends CrudService<AlarmSprayWater> {

    /**
     * 事件管理-隐患管理-自动喷水灭火-列表查询
     *
     * @param companyName    单位名称
     * @param handlingStatus 处理状态（0、未处理 1、已处理）
     * @param startDate      开始时间 格式：yyyy-MM-dd HH:mm:ss
     * @param endDate        结束时间 格式：yyyy-MM-dd HH:mm:ss
     * @param pageNum        当前页
     * @param pageSize       每页条数
     * @return
     */
    CommonPage<AlarmSprayWater> alarmSprayWaterList(String companyName, Integer handlingStatus, String startDate, String endDate,
                                                    Integer pageNum, Integer pageSize);

    /**
     * 事件管理-隐患管理-自动喷水灭火-告警统计
     *
     * @param companyIdList  单位ID
     * @param handlingStatus 处理状态（0、未处理 1、已处理）
     * @param companyName    单位名称
     * @param startDate      开始时间 格式：yyyy-MM-dd HH:mm:ss
     * @param endDate        结束时间 格式：yyyy-MM-dd HH:mm:ss
     * @return
     */
    Integer sprayWaterCount(List<String> companyIdList, Integer handlingStatus, String companyName, String startDate, String endDate);

    /**
     * 事件管理-隐患管理-自动喷水灭火-告警处置
     *
     * @param alarmSprayWater
     */
    void updateAlarmSmokeControl(AlarmSprayWater alarmSprayWater);

    /**
     * 事件管理-隐患管理-自动喷水灭火-导出数据查询
     *
     * @param companyName    单位名称
     * @param handlingStatus 处理状态（0、未处理 1、已处理）
     * @param startDate      开始时间 格式：yyyy-MM-dd HH:mm:ss
     * @param endDate        结束时间 格式：yyyy-MM-dd HH:mm:ss
     * @return
     */
    List<AlarmSprayWater> alarmSprayWaterListOne(String companyName, Integer handlingStatus, String startDate, String endDate);

    /**
     * 根据单位ID查询自动喷水灭火告警数
     *
     * @param companyId 单位ID
     * @return
     */
    Integer sprayWaterCount(String companyId, String startTime, String endTime);

    /**
     * 自动喷水灭火列表查询
     *
     * @return
     */
    List<DataVo> Alarmlist();
}
