package com.zd.airbottle.service;

import com.zd.airbottle.domain.AlarmRecord;
import com.zd.airbottle.domain.vo.AlarmRecordVo;
import com.zd.airbottle.domain.vo.BottleStorageInfoVo;
import com.zd.system.api.domain.InventoryTag;
import com.zd.system.api.laboratory.domain.RemoteLabHardware;

import java.util.List;

/**
 * 报警记录Service接口
 * @author Administrator
 */
public interface IAlarmRecordService {
    /**
     * 查询报警记录列表
     *
     * @param alarmRecord 报警记录
     * @return 报警记录集合
     */
    List<AlarmRecord> selectAlarmRecordList(AlarmRecord alarmRecord);

    /**
     * 根据主键集合查询报警记录列表
     *
     * @param ids 主键集合
     * @return 报警记录集合
     */
    List<AlarmRecord> getListByIds(List<Long> ids);

    /**
     * 新增报警记录
     *
     * @param alarmRecord 报警记录
     * @param hardware RFID设备信息
     * @return 结果
     */
    int insertAlarmRecord(AlarmRecord alarmRecord, RemoteLabHardware hardware);

    /**
     * 获取拓展信息
     *
     * @param recordVos 数据源
     */
    void getRecordInfo(List<AlarmRecordVo> recordVos);

    /**
     * 远程调用信息报警记录
     *
     * @param tag 标签值
     */
    boolean remoteAdd(InventoryTag tag);

    /**
     * 报警记录查询
     * @param alarmRecord
     * @return
     */
    List<BottleStorageInfoVo> setMasterIds(AlarmRecord alarmRecord);
}
