package cn.wise.sc.energy.power.plant.business.domain.vo;

import cn.wise.sc.energy.power.plant.business.domain.CharacterParamInfo;
import cn.wise.sc.energy.power.plant.business.domain.eum.FunctionEnum;
import cn.wise.sc.energy.power.plant.business.domain.eum.SignalTypeEnum;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.persistence.Column;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.Id;
import java.util.List;

/**
 * @description:特征值
 * @author: qh
 * @create: 2020-07-22 17:18
 **/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CharacterParamInfoVo extends EntityVo{

    private String parentDir;
    /**
     * 监测特征所属电站的标识
     */
    private String plantId;
    /**
     * 监测特征所属设备的标识
     */
    private String deviceId;
    /**
     * 监测特征所属监测单元标识
     */
    private String unitCodeId;
    /**
     * 监测特征唯一标识编码(KKS编码)如：C0A00101CBA00MKF26S101
     */
    private String kksCode;
    /**
     * 监测特征名称
     */
    private String cpName;
    /**
     * todo 枚举
     * 监测特征计算类型，很重要
     */
    private Integer cpType;
    /**
     * 监测特征的物理单位，如 um/mm 等
     */
    private String cpUnit;
    /**
     * 监测特征 信号类型:
     * T: 温度参数   M: 机械参数
     * E: 电气参数   A: 辅机参数
     */
    private SignalTypeEnum signalType;
    /**
     * 特征参数是否属于派生的特征参数
     * 1: 是  0: 不是
     */
    private Integer isDeriveParam;
    /**
     * 如果 isderiveparam =1  时，该字段 指名本特征参数是从哪一个  特征参数 计算获得，
     * derivefrom 指明该特征参数的KKScode
     */
    private String derivedFrom;
    /**
     * 特征参数保护(一级报警)规则是否有效
     * 1: 有效 0:无效(未设定)
     */
    private Integer protectRuleValid;
    /**
     * 特征参数保护(一级报警)下限值
     */
    private Float protectRuleMaxValue;
    /**
     * 特征参数保护(一级报警)上限值
     */
    private Float protectRuleMinValue;

    /**
     * 特征参数保护(一级报警)规则阈值范围是否是排除范围
     * 1: 是排除范围 0:是限定范围
     */
    private Integer protectRuleExclude;
    /**
     * 特征参数报警(二级报警)规则是否有效
     * 1: 有效 0:无效(未设定)
     */
    private Integer alertRuleValid;
    /**
     * 特征参数警(二级报警)下限值
     */
    private Float alertRuleMinValue;
    /**
     * 特征参数报警(二级报警)上限值
     */
    private Float alertRuleMaxValue;
    /**
     * 特征参数报警(二级报警)规则阈值范围是否是排除范围
     * 1: 是排除范围 0:是限定范围
     */
    private Integer alertRuleExclude;

    private Integer hasDeriveParam;

    private List<CharacterParamInfoVo> child;
    /**
     * 图形
     */
    private String function;
}
