package com.ruoyi.business.domain;

import java.math.BigDecimal;
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_device_mode_parameter
 * 
 * @author xins
 * @date 2023-09-11
 */
public class HwDeviceModeParameter extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 设备属性参数ID */
    private Long modeParameterId;

    /** 设备模型功能ID，关联表hw_device_mode_function的字段mode_function_id */
    @Excel(name = "设备模型功能ID，关联表hw_device_mode_function的字段mode_function_id")
    private Long modeFunctionId;

    /** 设备属性参数ID,关联本表的字段mode_parameter_id。如果数据类型为struct类型，定义json参数时需要用此字段 */
    @Excel(name = "设备属性参数ID,关联本表的字段mode_parameter_id。如果数据类型为struct类型，定义json参数时需要用此字段")
    private Long releatedParameterId;

    /** 参数类型（1、输入参数，2、输出参数） */
    @Excel(name = "参数类型", readConverterExp = "1=、输入参数，2、输出参数")
    private String parameterType;

    /** 参数名称 */
    @Excel(name = "参数名称")
    private String parameterName;

    /** 标识符（支持大小写字母、数字和下划线，对外暂时不超过50个字符） */
    @Excel(name = "标识符", readConverterExp = "支=持大小写字母、数字和下划线，对外暂时不超过50个字符")
    private String parameterIdentifier;

    /** 数据类型（在平台字典表中定义） */
    @Excel(name = "数据类型", readConverterExp = "在=平台字典表中定义")
    private String dataType;

    /** 数据定义，按json保存，示例如下：
            1、取值范围：{'minValue':1,'maxValue':100},
            2、枚举型：
            {'1':'成功','2','失败','3','提示}
            3、bool型：
            {'0':'关','1','开'}
            4、Text型：
            {'dataLength'：1024}
            5、Date类型（此类型需要定义在数据字典中，支持多语言）：
            {'dateFormat':'String类型的UTC时间戳(毫秒)'} */
    @Excel(name = "数据定义，按json保存")
    private String dataDefinition;

    /** 单位 */
    @Excel(name = "单位")
    private String propertyUnit;

    /** 预留字段，步长 */
    @Excel(name = "预留字段，步长")
    private BigDecimal propertyStep;

    public void setModeParameterId(Long modeParameterId) 
    {
        this.modeParameterId = modeParameterId;
    }

    public Long getModeParameterId() 
    {
        return modeParameterId;
    }
    public void setModeFunctionId(Long modeFunctionId) 
    {
        this.modeFunctionId = modeFunctionId;
    }

    public Long getModeFunctionId() 
    {
        return modeFunctionId;
    }
    public void setReleatedParameterId(Long releatedParameterId) 
    {
        this.releatedParameterId = releatedParameterId;
    }

    public Long getReleatedParameterId() 
    {
        return releatedParameterId;
    }
    public void setParameterType(String parameterType) 
    {
        this.parameterType = parameterType;
    }

    public String getParameterType() 
    {
        return parameterType;
    }
    public void setParameterName(String parameterName) 
    {
        this.parameterName = parameterName;
    }

    public String getParameterName() 
    {
        return parameterName;
    }
    public void setParameterIdentifier(String parameterIdentifier) 
    {
        this.parameterIdentifier = parameterIdentifier;
    }

    public String getParameterIdentifier() 
    {
        return parameterIdentifier;
    }
    public void setDataType(String dataType) 
    {
        this.dataType = dataType;
    }

    public String getDataType() 
    {
        return dataType;
    }
    public void setDataDefinition(String dataDefinition) 
    {
        this.dataDefinition = dataDefinition;
    }

    public String getDataDefinition() 
    {
        return dataDefinition;
    }
    public void setPropertyUnit(String propertyUnit) 
    {
        this.propertyUnit = propertyUnit;
    }

    public String getPropertyUnit() 
    {
        return propertyUnit;
    }
    public void setPropertyStep(BigDecimal propertyStep) 
    {
        this.propertyStep = propertyStep;
    }

    public BigDecimal getPropertyStep() 
    {
        return propertyStep;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("modeParameterId", getModeParameterId())
            .append("modeFunctionId", getModeFunctionId())
            .append("releatedParameterId", getReleatedParameterId())
            .append("parameterType", getParameterType())
            .append("parameterName", getParameterName())
            .append("parameterIdentifier", getParameterIdentifier())
            .append("dataType", getDataType())
            .append("dataDefinition", getDataDefinition())
            .append("propertyUnit", getPropertyUnit())
            .append("propertyStep", getPropertyStep())
            .toString();
    }
}
