package org.dromara.ems.base.mapper;

import org.dromara.ems.base.domain.EmsAlarmActionStep;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 报警规则具体措施步骤Mapper接口
 * 
 * @author zch
 * @date 2025-05-29
 */
public interface EmsAlarmActionStepMapper 
{
    /**
     * 查询报警规则具体措施步骤
     * 
     * @param objId 报警规则具体措施步骤主键
     * @return 报警规则具体措施步骤
     */
    public EmsAlarmActionStep selectEmsAlarmActionStepByObjId(String objId);

    /**
     * 查询报警规则具体措施步骤列表
     * 
     * @param emsAlarmActionStep 报警规则具体措施步骤
     * @return 报警规则具体措施步骤集合
     */
    public List<EmsAlarmActionStep> selectEmsAlarmActionStepList(EmsAlarmActionStep emsAlarmActionStep);

    /**
     * 新增报警规则具体措施步骤
     * 
     * @param emsAlarmActionStep 报警规则具体措施步骤
     * @return 结果
     */
    public int insertEmsAlarmActionStep(EmsAlarmActionStep emsAlarmActionStep);

    /**
     * 修改报警规则具体措施步骤
     * 
     * @param emsAlarmActionStep 报警规则具体措施步骤
     * @return 结果
     */
    public int updateEmsAlarmActionStep(EmsAlarmActionStep emsAlarmActionStep);

    /**
     * 删除报警规则具体措施步骤
     * 
     * @param objId 报警规则具体措施步骤主键
     * @return 结果
     */
    public int deleteEmsAlarmActionStepByObjId(String objId);

    /**
     * 批量删除报警规则具体措施步骤
     * 
     * @param objIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteEmsAlarmActionStepByObjIds(String[] objIds);

    /**
     * 根据报警规则ID查询措施步骤列表
     * 
     * @param ruleObjId 报警规则ID
     * @return 措施步骤列表
     */
    public List<EmsAlarmActionStep> selectEmsAlarmActionStepByRuleObjId(String ruleObjId);

    /**
     * 根据报警数据信息查询对应的措施步骤列表
     * 
     * @param monitorId 设备编号
     * @param cause 异常原因
     * @return 措施步骤列表
     */
    public List<EmsAlarmActionStep> selectActionStepsByAlarmInfo(@Param("monitorId") String monitorId, @Param("cause") String cause);
}
