package cn.cecep.talroad.domain.analysis;

import cn.cecep.talroad.common.core.annotation.Excel;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 各设备的监测参数属性--------参数异常分析设置（按设备按参数）-管理端后台
 */
@ApiModel(description = "各设备的监测参数属性--------参数异常分析设置（按设备按参数）-管理端后台")
@Data
@TableName(value = "bas_device_param")
public class BasDeviceParam implements Serializable {
    public static final String COL_ID = "id";
    public static final String COL_DEVICE_ID = "device_id";
    public static final String COL_PARAM_ID = "param_id";
    public static final String COL_INDUSTRY = "industry";
    public static final String COL_DEVICE_TYPE = "device_type";
    public static final String COL_FACILITY_TYPE = "facility_type";
    public static final String COL_NORMAL_VALUE = "normal_value";
    public static final String COL_MIN_VALUE = "min_value";
    public static final String COL_MAX_VALUE = "max_value";
    public static final String COL_Q1_VALUE = "q1_value";
    public static final String COL_Q2_VALUE = "q2_value";
    public static final String COL_IS_ONLINE = "is_online";
    public static final String COL_STANDBY_NUM = "standby_num";
    public static final String COL_MULTI_NUM = "multi_num";
    public static final String COL_OVER_MAX_VAL = "over_max_val";
    public static final String COL_CREATE_TIME = "create_time";
    public static final String COL_RELEASE_VALUE = "release_value";
    public static final String COL_STOP_VALUE = "stop_value";
    public static final String COL_DEVICE_SITE_ID = "device_site_id";
    public static final String COL_PARAM_NAME = "param_name";
    public static final String COL_PARAM_UNIT = "param_unit";
    public static final String COL_IS_STATUS = "is_status";
    public static final String COL_DATA_TYPE = "data_type";
    public static final String COL_DEVICE_NAME = "device_name";
    public static final String COL_FACTORY_NAME = "factory_name";
    private static final long serialVersionUID = 1L;
    /**
     * ID
     */
    @TableId(value = "id", type = IdType.INPUT)
    @ApiModelProperty(value = "ID")
    @Excel(name = "ID",  sort = 0)
    private Long id;
    /**
     * 设备ID
     */
    @TableField(value = "device_id")
    @ApiModelProperty(value = "设备ID")
    @Excel(name = "设备ID", width = 25, sort = 3)
    private String deviceId;
    /**
     * 参数ID
     */
    @TableField(value = "param_id")
    @ApiModelProperty(value = "参数ID")
    private String paramId;
    /**
     * 所属行业 枚举。钢铁/焦化/水泥...
     */
    @TableField(value = "industry")
    @ApiModelProperty(value = "所属行业 枚举。钢铁/焦化/水泥...")
    private String industry;
    /**
     * 所属设备类别 枚举。焦炉/烧结机...
     */
    @TableField(value = "device_type")
    @ApiModelProperty(value = "所属设备类别 枚举。焦炉/烧结机...")
    private String deviceType;
    /**
     * 所属设施类别 枚举。生产/CEMS...
     */
    @TableField(value = "facility_type")
    @ApiModelProperty(value = "所属设施类别 枚举。生产/CEMS...")
    private String facilityType;
    /**
     * 正常值--正常生产或设计值
     */
    @TableField(value = "normal_value")
    @ApiModelProperty(value = "正常值--正常生产或设计值")
    @Excel(name = "正常生产或设计值", width = 25, sort = 7)
    private Double normalValue;
    /**
     * 最小值--正常运行低限
     */
    @TableField(value = "min_value")
    @ApiModelProperty(value = "最小值--正常运行低限")
    @Excel(name = "正常运行低限", width = 25, sort = 8)
    private Double minValue;
    /**
     * 最大值--正常运行高限
     */
    @TableField(value = "max_value")
    @ApiModelProperty(value = "最大值--正常运行高限")
    @Excel(name = "正常运行高限", width = 25, sort = 9)
    private Double maxValue;
    /**
     * Q1(下四分位)值 用于异常值判断
     */
    @TableField(value = "q1_value")
    @ApiModelProperty(value = "Q1(下四分位)值 用于异常值判断")
    private Double q1Value;
    /**
     * Q2(上四分位)值 用于异常值判断
     */
    @TableField(value = "q2_value")
    @ApiModelProperty(value = "Q2(上四分位)值 用于异常值判断")
    private Double q2Value;
    /**
     * 参数是否联网 0=否，1=是
     */
    @TableField(value = "is_online")
    @ApiModelProperty(value = "参数是否联网 0=否，1=是")
    @Excel(name = "是否联网", width = 25, sort = 10,readConverterExp = "0=否,1=是",combo = {"是", "否"})
    private Integer isOnline;
    /**
     * 备用值数量 数量不含原值
     */
    @TableField(value = "standby_num")
    @ApiModelProperty(value = "备用值数量 数量不含原值")
    private Integer standbyNum;
    /**
     * 多值数量 数量不含原值
     */
    @TableField(value = "multi_num")
    @ApiModelProperty(value = "多值数量 数量不含原值")
    private Integer multiNum;
    /**
     * 超标阈值 超过此值则认为超标
     */
    @TableField(value = "over_max_val")
    @ApiModelProperty(value = "超标阈值 超过此值则认为超标")
    private Double overMaxVal;
    /**
     * 创建时间
     */
    @TableField(value = "create_time")
    @ApiModelProperty(value = "创建时间")
    private Date createTime;
    /**
     * 放散时间配置：分析几个小时内炉数
     */
    @TableField(value = "release_value")
    @ApiModelProperty(value = "放散时间配置：分析几个小时内炉数")
    private Integer releaseValue;
    /**
     * 停产阈值
     */
    @TableField(value = "stop_value")
    @ApiModelProperty(value = "停产阈值")
    private Double stopValue;
    /**
     * 监测点位ID
     */
    @TableField(value = "device_site_id")
    @ApiModelProperty(value = "监测点位ID")
    private String deviceSiteId;
    /**
     * 参数名称
     */
    @TableField(value = "param_name")
    @ApiModelProperty(value = "参数名称")
    @Excel(name = "参数名称", width = 25, sort = 5)
    private String paramName;
    /**
     * 参数单位
     */
    @TableField(value = "param_unit")
    @ApiModelProperty(value = "参数单位")
    @Excel(name = "参数单位", width = 25, sort = 6)
    private String paramUnit;
    /**
     * 是否启用，0：未启用，1：启用
     */
    @TableField(value = "is_status")
    @ApiModelProperty(value = "是否启用，0：未启用，1：启用")
    private String isStatus;
    /**
     * 数据类型 1：DCS监控数据:，2：分表计电监测数据，3：在线监测数据，4：无组织监控数据:5：网格化监控数据，6：废水国省控站点监控数据，7：废气国省控站点监控数据
     */
    @TableField(value = "data_type")
    @ApiModelProperty(value = "数据类型 1：DCS监控数据:，2：分表计电监测数据，3：在线监测数据，4：无组织监控数据:5：网格化监控数据，6：废水国省控站点监控数据，7：废气国省控站点监控数据")
    @Excel(name = "数据类型", width = 25, sort = 1,readConverterExp = "1=DCS监控数据,2=分表计电监测数据,3=在线监测数据,4=无组织监控数据,5=网格化监控数据,6=废水国省控站点监控数据,7=废气国省控站点监控数据",
            combo = {"DCS监控数据","分表计电监测数据","在线监测数据","无组织监控数据","=网格化监控数据","废水国省控站点监控数据","废气国省控站点监控数据"})

    private String dataType;
    /**
     * 设备名称
     */
    @TableField(exist = false)
    @ApiModelProperty(value = "设备名称")
    @Excel(name = "设备名称", width = 25, sort = 4)
    private String deviceName;
    /**
     * 企业名称
     */
    @TableField(exist = false)
    @ApiModelProperty(value = "企业名称")
    @Excel(name = "企业名称", width = 25, sort = 2)
    private String factoryName;
}