package cn.cecep.talroad.domain;


import cn.cecep.talroad.common.core.annotation.Excel;
import cn.cecep.talroad.common.core.web.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.IdType;
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 lombok.EqualsAndHashCode;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;


/**
 * 各设备的监测参数属性对象 bas_device_param
 *
 * @author szhpt
 * @date 2023-01-10*/
@ApiModel(value = "各设备的监测参数属性")
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("bas_device_param")
public class BasDeviceParam extends BaseEntity
{
    private static final long serialVersionUID = 1L;


    @ApiModelProperty(value = "ID")
    /** ID */
    @TableId(value = "id",type = IdType.ASSIGN_ID)
    private Long id;


    @ApiModelProperty(value = "设备ID")
    /** 设备ID */
    @Excel(name = "设备ID")
    private String deviceId;


    @ApiModelProperty(value = "参数ID")
    /** 参数ID */
    @Excel(name = "参数ID")
    private String paramId;


    @ApiModelProperty(value = "所属行业 枚举。钢铁/焦化/水泥...")
    /** 所属行业 枚举。钢铁/焦化/水泥... */
    @Excel(name = "所属行业 枚举。钢铁/焦化/水泥...")
    private String industry;


    @ApiModelProperty(value = "所属设备类别 枚举。焦炉/烧结机...")
    /** 所属设备类别 枚举。焦炉/烧结机... */
    @Excel(name = "所属设备类别 枚举。焦炉/烧结机...")
    private String deviceType;


    @ApiModelProperty(value = "所属设施类别 枚举。生产/CEMS...")
    /** 所属设施类别 枚举。生产/CEMS... */
    @Excel(name = "所属设施类别 枚举。生产/CEMS...")
    private String facilityType;


    @ApiModelProperty(value = "正常值")
    /** 正常值 */
    @Excel(name = "正常值")
    private String normalValue;


    @ApiModelProperty(value = "最小值")
    /** 最小值 */
    @Excel(name = "最小值")
    private String minValue;


    @ApiModelProperty(value = "最大值")
    /** 最大值 */
    @Excel(name = "最大值")
    private String maxValue;


    @ApiModelProperty(value = "Q1(下四分位)值 用于异常值判断")
    /** Q1(下四分位)值 用于异常值判断 */
    @Excel(name = "Q1(下四分位)值 用于异常值判断")
    private String q1Value;


    @ApiModelProperty(value = "Q2(上四分位)值 用于异常值判断")
    /** Q2(上四分位)值 用于异常值判断 */
    @Excel(name = "Q2(上四分位)值 用于异常值判断")
    private String q2Value;


    @ApiModelProperty(value = "参数是否联网 0=否，1=是")
    /** 参数是否联网 0=否，1=是 */
    @Excel(name = "参数是否联网 0=否，1=是")
    private Long isOnline;


    @ApiModelProperty(value = "备用值数量 数量不含原值")
    /** 备用值数量 数量不含原值 */
    @Excel(name = "备用值数量 数量不含原值")
    private Long standbyNum;


    @ApiModelProperty(value = "多值数量 数量不含原值")
    /** 多值数量 数量不含原值 */
    @Excel(name = "多值数量 数量不含原值")
    private Long multiNum;

    @ApiModelProperty(value = "超标阈值 超过此值则认为超标")
    /** 超标阈值 超过此值则认为超标 */
    @Excel(name = "超标阈值 超过此值则认为超标")
    private String overMaxVal;

    @ApiModelProperty(value = "分表计电测点id")
    private String deviceSiteId;

    @ApiModelProperty(value = "放散时间配置：分析几小时内的炉数")
    private Long releaseValue;

    @ApiModelProperty(value = "停产阈值")
    private String stopValue;

    @ApiModelProperty(value = "数据类型 1：DCS监控数据:，2：分表计电监测数据，3：在线监测数据，4：无组织监控数据:5：网格化监控数据，6：废水国省控站点监控数据，7：废气国省控站点监控数据")
    private String dataType;

    /**
     * 参数名称
     */
    @ApiModelProperty(value = "参数名称")
    private String paramName;

    /**
     * 参数单位
     */
    @ApiModelProperty(value = "参数单位")
    private String paramUnit;
    /**
     * 是否启用，0：未启用，1：启用
     */
    @ApiModelProperty(value = "是否启用，0：未启用，1：启用")
    private String isStatus;

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("deviceId", getDeviceId())
            .append("paramId", getParamId())
            .append("industry", getIndustry())
            .append("deviceType", getDeviceType())
            .append("facilityType", getFacilityType())
            .append("normalValue", getNormalValue())
            .append("minValue", getMinValue())
            .append("maxValue", getMaxValue())
            .append("q1Value", getQ1Value())
            .append("q2Value", getQ2Value())
            .append("isOnline", getIsOnline())
            .append("standbyNum", getStandbyNum())
            .append("multiNum", getMultiNum())
            .append("overMaxVal", getOverMaxVal())
            .append("createTime", getCreateTime())
            .append("isStatus", getIsStatus())
            .toString();
    }
}
