package com.pm.device.service;

import java.util.List;
import java.util.Map;
import com.pm.common.config.PageData;

/**
 * 设备告警Service接口
 *
 * @author system
 * @date 2025-01-06
 */
public interface IIbmsDeviceAlarmsService
{
    /**
     * 查询设备告警
     *
     * @param id 设备告警主键
     * @return 设备告警
     */
    public PageData selectIbmsDeviceAlarmById(Long id);

    /**
     * 查询设备告警列表
     *
     * @param pd
     * @return 设备告警集合
     */
    public List<PageData> selectIbmsDeviceAlarmList(PageData pd);

    /**
     * 查询告警统计信息
     *
     * @param pd
     * @return 统计信息
     */
    public PageData selectAlarmStatistics(PageData pd);

    /**
     * 新增设备告警
     *
     * @param pd
     * @return 结果
     */
    public int insertIbmsDeviceAlarm(PageData pd);

    /**
     * 修改设备告警
     *
     * @param pd
     * @return 结果
     */
    public int updateIbmsDeviceAlarm(PageData pd);

    /**
     * 复位告警
     *
     * @param pd
     * @return 结果
     */
    public int resetAlarm(PageData pd);

    /**
     * 创建服务单
     *
     * @param pd
     * @return 结果
     */
    public Map<String, Object> createServiceOrder(PageData pd);

    /**
     * 获取告警详情（包含处理记录）
     *
     * @param id
     * @return 告警详情
     */
    public Map<String, Object> getAlarmDetail(Long id);

    /**
     * 批量删除设备告警
     *
     * @param ids 需要删除的设备告警主键集合
     * @return 结果
     */
    public int deleteIbmsDeviceAlarmByIds(Long[] ids);

    /**
     * 删除设备告警信息
     *
     * @param id 设备告警主键
     * @return 结果
     */
    public int deleteIbmsDeviceAlarmById(Long id);
}