package com.ruoyi.business.domain;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 报警规则对象 hw_alarm_rule
 * 
 * @author xins
 * @date 2023-09-16
 */
public class HwAlarmRule extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 报警规则ID */
    private Long alarmRuleId;

    /** 规则名称 */
    @Excel(name = "规则名称")
    private String alarmRuleName;

    /** 租户ID，关联hw_tenant的tenant_id */
    @Excel(name = "租户ID，关联hw_tenant的tenant_id")
    private Long tenantId;

    /** 所属场景，关联hw_scene表的scene_id字段 */
    @Excel(name = "所属场景，关联hw_scene表的scene_id字段")
    private Long sceneId;

    /** 报警级别，关联表hw_alarm_level字段alarm_level_id */
    @Excel(name = "报警级别，关联表hw_alarm_level字段alarm_level_id")
    private Long alarmLevelId;

    /** 报警类型，关联表hw_alarm_type字段alarm_type_id */
    @Excel(name = "报警类型，关联表hw_alarm_type字段alarm_type_id")
    private Long alarmTypeId;

    /** 规则类型（1、设备模型，2、设备） */
    @Excel(name = "规则类型", readConverterExp = "1=、设备模型，2、设备")
    private String ruleType;

    /** 设备，关联表hw_device字段device_id */
    @Excel(name = "设备，关联表hw_device字段device_id")
    private Long deviceId;

    /** 设备模型，关联表hw_device_mode字段device_mode_id */
    @Excel(name = "设备模型，关联表hw_device_mode字段device_mode_id")
    private Long deviceModeId;

    /** 设备属性，关联表hw_device_mode_function字段mode_function_id */
    @Excel(name = "设备属性，关联表hw_device_mode_function字段mode_function_id")
    private Long modeFunctionId;

    /** 触发条件（1、数值大于A，2、数值小于B，3、数值大于A且小于B，4、数值小于A或大于B，5、数值等于A） */
    @Excel(name = "触发条件", readConverterExp = "1=、数值大于A，2、数值小于B，3、数值大于A且小于B，4、数值小于A或大于B，5、数值等于A")
    private String triggerCondition;

    /** 触发定义A值 */
    @Excel(name = "触发定义A值")
    private String triggerDataA;

    /** 触发定义B值 */
    @Excel(name = "触发定义B值")
    private String triggerDataB;

    /** 触发死区 */
    @Excel(name = "触发死区")
    private String triggerDeadzone;

    /** 触发阈值次数 */
    @Excel(name = "触发阈值次数")
    private Long triggerNumber;

    /** 时间范围（单位：分钟） */
    @Excel(name = "时间范围", readConverterExp = "单=位：分钟")
    private Long triggerTimeFrame;

    /** 联动标识（1、是，0、否） */
    @Excel(name = "联动标识", readConverterExp = "1=、是，0、否")
    private String linkFlag;

    /** 联动类型（1、控制，2、采集） */
    @Excel(name = "联动类型", readConverterExp = "1=、控制，2、采集")
    private String linkType;

    /** 联动设备，关联表hw_device字段device_id */
    @Excel(name = "联动设备，关联表hw_device字段device_id")
    private Long linkDeviceId;

    /** 联动设备功能，关联表hw_device_mode_function字段mode_function_id */
    @Excel(name = "联动设备功能，关联表hw_device_mode_function字段mode_function_id")
    private Long linkDeviceFunctionId;

    /** 联动设备属性值 */
    @Excel(name = "联动设备属性值")
    private String linkDeviceFunctionData;

    /** 报警启用状态(1、是，2、否） */
    @Excel(name = "报警启用状态(1、是，2、否）")
    private String alarmRuleStatus;

    /** 报警推送标识(1、是，2、否） */
    @Excel(name = "报警推送标识(1、是，2、否）")
    private String alarmPushFlag;

    /** 报警推送内容 */
    @Excel(name = "报警推送内容")
    private String alarmPushContent;

    /** 恢复正常推送内容 */
    @Excel(name = "恢复正常推送内容")
    private String alarmRecoverContent;

    /** 预留字段 */
    @Excel(name = "预留字段")
    private String alarmRuleField;

    public void setAlarmRuleId(Long alarmRuleId) 
    {
        this.alarmRuleId = alarmRuleId;
    }

    public Long getAlarmRuleId() 
    {
        return alarmRuleId;
    }
    public void setAlarmRuleName(String alarmRuleName) 
    {
        this.alarmRuleName = alarmRuleName;
    }

    public String getAlarmRuleName() 
    {
        return alarmRuleName;
    }
    public void setTenantId(Long tenantId) 
    {
        this.tenantId = tenantId;
    }

    public Long getTenantId() 
    {
        return tenantId;
    }
    public void setSceneId(Long sceneId) 
    {
        this.sceneId = sceneId;
    }

    public Long getSceneId() 
    {
        return sceneId;
    }
    public void setAlarmLevelId(Long alarmLevelId) 
    {
        this.alarmLevelId = alarmLevelId;
    }

    public Long getAlarmLevelId() 
    {
        return alarmLevelId;
    }
    public void setAlarmTypeId(Long alarmTypeId) 
    {
        this.alarmTypeId = alarmTypeId;
    }

    public Long getAlarmTypeId() 
    {
        return alarmTypeId;
    }
    public void setRuleType(String ruleType) 
    {
        this.ruleType = ruleType;
    }

    public String getRuleType() 
    {
        return ruleType;
    }
    public void setDeviceId(Long deviceId) 
    {
        this.deviceId = deviceId;
    }

    public Long getDeviceId() 
    {
        return deviceId;
    }
    public void setDeviceModeId(Long deviceModeId) 
    {
        this.deviceModeId = deviceModeId;
    }

    public Long getDeviceModeId() 
    {
        return deviceModeId;
    }
    public void setModeFunctionId(Long modeFunctionId) 
    {
        this.modeFunctionId = modeFunctionId;
    }

    public Long getModeFunctionId() 
    {
        return modeFunctionId;
    }
    public void setTriggerCondition(String triggerCondition) 
    {
        this.triggerCondition = triggerCondition;
    }

    public String getTriggerCondition() 
    {
        return triggerCondition;
    }
    public void setTriggerDataA(String triggerDataA) 
    {
        this.triggerDataA = triggerDataA;
    }

    public String getTriggerDataA() 
    {
        return triggerDataA;
    }
    public void setTriggerDataB(String triggerDataB) 
    {
        this.triggerDataB = triggerDataB;
    }

    public String getTriggerDataB() 
    {
        return triggerDataB;
    }
    public void setTriggerDeadzone(String triggerDeadzone) 
    {
        this.triggerDeadzone = triggerDeadzone;
    }

    public String getTriggerDeadzone() 
    {
        return triggerDeadzone;
    }
    public void setTriggerNumber(Long triggerNumber) 
    {
        this.triggerNumber = triggerNumber;
    }

    public Long getTriggerNumber() 
    {
        return triggerNumber;
    }
    public void setTriggerTimeFrame(Long triggerTimeFrame) 
    {
        this.triggerTimeFrame = triggerTimeFrame;
    }

    public Long getTriggerTimeFrame() 
    {
        return triggerTimeFrame;
    }
    public void setLinkFlag(String linkFlag) 
    {
        this.linkFlag = linkFlag;
    }

    public String getLinkFlag() 
    {
        return linkFlag;
    }
    public void setLinkType(String linkType) 
    {
        this.linkType = linkType;
    }

    public String getLinkType() 
    {
        return linkType;
    }
    public void setLinkDeviceId(Long linkDeviceId) 
    {
        this.linkDeviceId = linkDeviceId;
    }

    public Long getLinkDeviceId() 
    {
        return linkDeviceId;
    }
    public void setLinkDeviceFunctionId(Long linkDeviceFunctionId) 
    {
        this.linkDeviceFunctionId = linkDeviceFunctionId;
    }

    public Long getLinkDeviceFunctionId() 
    {
        return linkDeviceFunctionId;
    }
    public void setLinkDeviceFunctionData(String linkDeviceFunctionData) 
    {
        this.linkDeviceFunctionData = linkDeviceFunctionData;
    }

    public String getLinkDeviceFunctionData() 
    {
        return linkDeviceFunctionData;
    }
    public void setAlarmRuleStatus(String alarmRuleStatus) 
    {
        this.alarmRuleStatus = alarmRuleStatus;
    }

    public String getAlarmRuleStatus() 
    {
        return alarmRuleStatus;
    }
    public void setAlarmPushFlag(String alarmPushFlag) 
    {
        this.alarmPushFlag = alarmPushFlag;
    }

    public String getAlarmPushFlag() 
    {
        return alarmPushFlag;
    }
    public void setAlarmPushContent(String alarmPushContent) 
    {
        this.alarmPushContent = alarmPushContent;
    }

    public String getAlarmPushContent() 
    {
        return alarmPushContent;
    }
    public void setAlarmRecoverContent(String alarmRecoverContent) 
    {
        this.alarmRecoverContent = alarmRecoverContent;
    }

    public String getAlarmRecoverContent() 
    {
        return alarmRecoverContent;
    }
    public void setAlarmRuleField(String alarmRuleField) 
    {
        this.alarmRuleField = alarmRuleField;
    }

    public String getAlarmRuleField() 
    {
        return alarmRuleField;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("alarmRuleId", getAlarmRuleId())
            .append("alarmRuleName", getAlarmRuleName())
            .append("tenantId", getTenantId())
            .append("sceneId", getSceneId())
            .append("alarmLevelId", getAlarmLevelId())
            .append("alarmTypeId", getAlarmTypeId())
            .append("ruleType", getRuleType())
            .append("deviceId", getDeviceId())
            .append("deviceModeId", getDeviceModeId())
            .append("modeFunctionId", getModeFunctionId())
            .append("triggerCondition", getTriggerCondition())
            .append("triggerDataA", getTriggerDataA())
            .append("triggerDataB", getTriggerDataB())
            .append("triggerDeadzone", getTriggerDeadzone())
            .append("triggerNumber", getTriggerNumber())
            .append("triggerTimeFrame", getTriggerTimeFrame())
            .append("linkFlag", getLinkFlag())
            .append("linkType", getLinkType())
            .append("linkDeviceId", getLinkDeviceId())
            .append("linkDeviceFunctionId", getLinkDeviceFunctionId())
            .append("linkDeviceFunctionData", getLinkDeviceFunctionData())
            .append("alarmRuleStatus", getAlarmRuleStatus())
            .append("alarmPushFlag", getAlarmPushFlag())
            .append("alarmPushContent", getAlarmPushContent())
            .append("alarmRecoverContent", getAlarmRecoverContent())
            .append("remark", getRemark())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("alarmRuleField", getAlarmRuleField())
            .toString();
    }
}
