package com.ruoyi.dataprocess.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
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_info
 * 
 * @author xins
 * @date 2023-09-15
 */
public class HwAlarmInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 报警信息ID */
    private Long alarmInfoId;

    /** 报警信息类型（1、设备报警，2、监控单元报警，3、离线报警，4、电子围栏） */
    @Excel(name = "报警信息类型", readConverterExp = "1=、设备报警，2、监控单元报警，3、离线报警，4、电子围栏")
    private String alarmInfoType;

    /** 报警信息类型是1关联表alarm_rule的字段alarm_rule_id；
            报警信息类型是3关联表hw_offline_rule的字段offline_rule_id；
            报警信息类型是4关联表hw_electronic_fence的字段electronic_fence_id。 */
    @Excel(name = "报警信息类型")
    private Long alarmReleatedId;

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

    /** 所属监控单元Id，关联表hw_monitor_unit字段monitor_unit_id */
    @Excel(name = "所属监控单元Id，关联表hw_monitor_unit字段monitor_unit_id")
    private Long monitorUnitId;

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

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

    /** 报警级别，关联hw_alarm_level的字段alarm_level_id，报警信息类型为1、2和3时保存 */
    @Excel(name = "报警级别，关联hw_alarm_level的字段alarm_level_id，报警信息类型为1、2和3时保存")
    private Long alarmLevelId;

    /** 报警类型，关联hw_alarm_type的字段alarm_type_id，报警信息类型为1和2时保存 */
    @Excel(name = "报警类型，关联hw_alarm_type的字段alarm_type_id，报警信息类型为1和2时保存")
    private Long alarmTypeId;

    /** 设备模型功能ID */
    @Excel(name = "设备模型功能ID")
    private Long modeFunctionId;

    /** 功能名称 */
    @Excel(name = "功能名称")
    private String functionName;

    /** 标识符 */
    @Excel(name = "标识符")
    private String functionIdentifier;

    /** 最新的值，如果是电子围栏则存经度,纬度 */
    @Excel(name = "最新的值，如果是电子围栏则存经度,纬度")
    private String functionValue;

    /** 触发状态（1、出界，2、入界，3、双向），报警信息类型为4时保存 */
    @Excel(name = "触发状态", readConverterExp = "1=、出界，2、入界，3、双向")
    private String triggerStatus;

    /** 处理状态（0、未处理 1、已处理） */
    @Excel(name = "处理状态", readConverterExp = "0=、未处理,1=、已处理")
    private String handleStatus;

    /** 实际报警时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实际报警时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date alarmTime;

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

    public void setAlarmInfoId(Long alarmInfoId) 
    {
        this.alarmInfoId = alarmInfoId;
    }

    public Long getAlarmInfoId() 
    {
        return alarmInfoId;
    }
    public void setAlarmInfoType(String alarmInfoType) 
    {
        this.alarmInfoType = alarmInfoType;
    }

    public String getAlarmInfoType() 
    {
        return alarmInfoType;
    }
    public void setAlarmReleatedId(Long alarmReleatedId) 
    {
        this.alarmReleatedId = alarmReleatedId;
    }

    public Long getAlarmReleatedId() 
    {
        return alarmReleatedId;
    }
    public void setDeviceId(Long deviceId) 
    {
        this.deviceId = deviceId;
    }

    public Long getDeviceId() 
    {
        return deviceId;
    }
    public void setMonitorUnitId(Long monitorUnitId) 
    {
        this.monitorUnitId = monitorUnitId;
    }

    public Long getMonitorUnitId() 
    {
        return monitorUnitId;
    }
    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 setModeFunctionId(Long modeFunctionId) 
    {
        this.modeFunctionId = modeFunctionId;
    }

    public Long getModeFunctionId() 
    {
        return modeFunctionId;
    }
    public void setFunctionName(String functionName) 
    {
        this.functionName = functionName;
    }

    public String getFunctionName() 
    {
        return functionName;
    }
    public void setFunctionIdentifier(String functionIdentifier) 
    {
        this.functionIdentifier = functionIdentifier;
    }

    public String getFunctionIdentifier() 
    {
        return functionIdentifier;
    }
    public void setFunctionValue(String functionValue) 
    {
        this.functionValue = functionValue;
    }

    public String getFunctionValue() 
    {
        return functionValue;
    }
    public void setTriggerStatus(String triggerStatus) 
    {
        this.triggerStatus = triggerStatus;
    }

    public String getTriggerStatus() 
    {
        return triggerStatus;
    }
    public void setHandleStatus(String handleStatus) 
    {
        this.handleStatus = handleStatus;
    }

    public String getHandleStatus() 
    {
        return handleStatus;
    }
    public void setAlarmTime(Date alarmTime) 
    {
        this.alarmTime = alarmTime;
    }

    public Date getAlarmTime() 
    {
        return alarmTime;
    }
    public void setAlarmInfoField(String alarmInfoField) 
    {
        this.alarmInfoField = alarmInfoField;
    }

    public String getAlarmInfoField() 
    {
        return alarmInfoField;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("alarmInfoId", getAlarmInfoId())
            .append("alarmInfoType", getAlarmInfoType())
            .append("alarmReleatedId", getAlarmReleatedId())
            .append("deviceId", getDeviceId())
            .append("monitorUnitId", getMonitorUnitId())
            .append("tenantId", getTenantId())
            .append("sceneId", getSceneId())
            .append("alarmLevelId", getAlarmLevelId())
            .append("alarmTypeId", getAlarmTypeId())
            .append("modeFunctionId", getModeFunctionId())
            .append("functionName", getFunctionName())
            .append("functionIdentifier", getFunctionIdentifier())
            .append("functionValue", getFunctionValue())
            .append("triggerStatus", getTriggerStatus())
            .append("handleStatus", getHandleStatus())
            .append("alarmTime", getAlarmTime())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("alarmInfoField", getAlarmInfoField())
            .toString();
    }
}
