package com.ruoyi.business.domain;

import java.util.List;
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_electronic_fence
 * 
 * @author xins
 * @date 2023-09-15
 */
public class HwElectronicFence extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 电子围栏ID */
    private Long electronicFenceId;

    /** 电子围栏名称 */
    @Excel(name = "电子围栏名称")
    private String electronicFenceName;

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

    /** 规则类型（1、设备，2、监控单元，3、场景） */
    @Excel(name = "规则类型", readConverterExp = "1=、设备，2、监控单元，3、场景")
    private String fenceType;

    /** 生效时间标识（1、长期有效，2、时间范围） */
    @Excel(name = "生效时间标识", readConverterExp = "1=、长期有效，2、时间范围")
    private String effectiveTimeFlag;

    /** 时区 */
    @Excel(name = "时区")
    private String timeZone;

    /** 格式：开始时间_结束时间_状态，多个用|隔开（例如00:00_05:00_1|06:00_08:00_0）,状态：（1、开启、2、关闭） */
    @Excel(name = "格式：开始时间_结束时间_状态，多个用|隔开", readConverterExp = "例=如00:00_05:00_1|06:00_08:00_0")
    private String effectiveTime;

    /** 触发状态（0、关闭，1、出界，2、入界，3、双向） */
    @Excel(name = "触发状态", readConverterExp = "0=、关闭，1、出界，2、入界，3、双向")
    private String triggerStatus;

    /** 区域形状（1、多边形，2、圆形） */
    @Excel(name = "区域形状", readConverterExp = "1=、多边形，2、圆形")
    private String areaShapeFlag;

    /** 区域范围：为多边形时保存格式，经度_纬度，多个以|隔开；为圆形时的中心点和半径，下划线隔开 */
    @Excel(name = "区域范围：为多边形时保存格式，经度_纬度，多个以|隔开；为圆形时的中心点和半径，下划线隔开")
    private String areaRange;

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

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

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

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

    /** 电子围栏目标信息 */
    private List<HwFenceTarget> hwFenceTargetList;

    public void setElectronicFenceId(Long electronicFenceId) 
    {
        this.electronicFenceId = electronicFenceId;
    }

    public Long getElectronicFenceId() 
    {
        return electronicFenceId;
    }
    public void setElectronicFenceName(String electronicFenceName) 
    {
        this.electronicFenceName = electronicFenceName;
    }

    public String getElectronicFenceName() 
    {
        return electronicFenceName;
    }
    public void setSceneId(Long sceneId) 
    {
        this.sceneId = sceneId;
    }

    public Long getSceneId() 
    {
        return sceneId;
    }
    public void setFenceType(String fenceType) 
    {
        this.fenceType = fenceType;
    }

    public String getFenceType() 
    {
        return fenceType;
    }
    public void setEffectiveTimeFlag(String effectiveTimeFlag) 
    {
        this.effectiveTimeFlag = effectiveTimeFlag;
    }

    public String getEffectiveTimeFlag() 
    {
        return effectiveTimeFlag;
    }
    public void setTimeZone(String timeZone) 
    {
        this.timeZone = timeZone;
    }

    public String getTimeZone() 
    {
        return timeZone;
    }
    public void setEffectiveTime(String effectiveTime) 
    {
        this.effectiveTime = effectiveTime;
    }

    public String getEffectiveTime() 
    {
        return effectiveTime;
    }
    public void setTriggerStatus(String triggerStatus) 
    {
        this.triggerStatus = triggerStatus;
    }

    public String getTriggerStatus() 
    {
        return triggerStatus;
    }
    public void setAreaShapeFlag(String areaShapeFlag) 
    {
        this.areaShapeFlag = areaShapeFlag;
    }

    public String getAreaShapeFlag() 
    {
        return areaShapeFlag;
    }
    public void setAreaRange(String areaRange) 
    {
        this.areaRange = areaRange;
    }

    public String getAreaRange() 
    {
        return areaRange;
    }
    public void setFencePushFlag(String fencePushFlag) 
    {
        this.fencePushFlag = fencePushFlag;
    }

    public String getFencePushFlag() 
    {
        return fencePushFlag;
    }
    public void setFencePushContent(String fencePushContent) 
    {
        this.fencePushContent = fencePushContent;
    }

    public String getFencePushContent() 
    {
        return fencePushContent;
    }
    public void setFenceRecoverContent(String fenceRecoverContent) 
    {
        this.fenceRecoverContent = fenceRecoverContent;
    }

    public String getFenceRecoverContent() 
    {
        return fenceRecoverContent;
    }
    public void setFenceField(String fenceField) 
    {
        this.fenceField = fenceField;
    }

    public String getFenceField() 
    {
        return fenceField;
    }

    public List<HwFenceTarget> getHwFenceTargetList()
    {
        return hwFenceTargetList;
    }

    public void setHwFenceTargetList(List<HwFenceTarget> hwFenceTargetList)
    {
        this.hwFenceTargetList = hwFenceTargetList;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("electronicFenceId", getElectronicFenceId())
            .append("electronicFenceName", getElectronicFenceName())
            .append("sceneId", getSceneId())
            .append("fenceType", getFenceType())
            .append("effectiveTimeFlag", getEffectiveTimeFlag())
            .append("timeZone", getTimeZone())
            .append("effectiveTime", getEffectiveTime())
            .append("triggerStatus", getTriggerStatus())
            .append("areaShapeFlag", getAreaShapeFlag())
            .append("areaRange", getAreaRange())
            .append("fencePushFlag", getFencePushFlag())
            .append("fencePushContent", getFencePushContent())
            .append("fenceRecoverContent", getFenceRecoverContent())
            .append("remark", getRemark())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("fenceField", getFenceField())
            .append("hwFenceTargetList", getHwFenceTargetList())
            .toString();
    }
}
