package com.jiayue.ipfcst.common.data.entity;


import cn.hutool.core.date.DateTime;
import com.jiayue.ipfcst.common.data.abst.equipmentstatus.AbstractEquipmentStatusData;
import com.jiayue.ipfcst.common.data.constant.enums.AbnormalCode;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.extern.slf4j.Slf4j;
import org.hibernate.annotations.Type;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.validation.constraints.Digits;
import java.lang.reflect.Field;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;

/**
 * 测风塔数据实体
 *
 * @author zzy
 * @version 1.0
 * @since 2019/8/2 9:28
 */
@EqualsAndHashCode(callSuper = true)
@Data
@Entity
@Slf4j
public class WindTowerStatusData extends AbstractEquipmentStatusData {

    private static final Map<String, Field> numberFields = new HashMap<>();


    static {
        Field[] fields = WindTowerStatusData.class.getDeclaredFields();
        for (Field f : fields) {
            if (f.getAnnotatedType().getType().equals(BigDecimal.class)) {
                f.setAccessible(true);
                numberFields.put(f.getName(), f);
            }
        }
    }


    public void setHubData(int height) {
        try {
            //设置风向
            this.setWdInstHubHeight((BigDecimal) numberFields.get("wdInst" + height).get(this));
            //设置风速
            this.setWsInstHubHeight((BigDecimal) numberFields.get("wsInst" + height).get(this));

            //设置风向
            this.setWdAveHubHeight(this.getWdInstHubHeight());
            //设置风速
            this.setWsAveHubHeight(this.getWsInstHubHeight());
        } catch (IllegalAccessException e) {
            log.error("在设置测风塔轮毂高数据时，获取字段值时异常", e);
            e.printStackTrace();
        } catch (Exception e) {
            log.error("在设置测风塔轮毂高数据时异常", e);
        }
    }

    /**
     * 温度瞬时值（℃）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal tInst = new BigDecimal(-99);

    /**
     * 温度最大值（℃）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal tMax = new BigDecimal(-99);

    /**
     * 温度最小值（℃）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal tMin = new BigDecimal(-99);

    /**
     * 温度平均值（℃）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal tAve = new BigDecimal(-99);

    /**
     * 温度标准差（℃）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal tSta = new BigDecimal(-99);

    /**
     * 湿度瞬时值（%）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal rhInst = new BigDecimal(-99);

    /**
     * 湿度最大值（%）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal rhMax = new BigDecimal(-99);

    /**
     * 湿度最小值（%）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal rhMin = new BigDecimal(-99);

    /**
     * 湿度平均值（%）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal rhAve = new BigDecimal(-99);

    /**
     * 湿度标准差（%）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal rhSta = new BigDecimal(-99);

    /**
     * 气压瞬时值（KPa）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal paInst = new BigDecimal(-99);

    /**
     * 气压最大值（KPa）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal paMax = new BigDecimal(-99);

    /**
     * 气压最小值（KPa）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal paMin = new BigDecimal(-99);

    /**
     * 气压平均值（KPa）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal paAve = new BigDecimal(-99);

    /**
     * 气压标准差（KPa）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal paSta = new BigDecimal(-99);

    /**
     * 10米风速瞬时值（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsInst10 = new BigDecimal(-99);

    /**
     * 10米风速最大值（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsMax10 = new BigDecimal(-99);

    /**
     * 10米风速最小值（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsMin10 = new BigDecimal(-99);

    /**
     * 10米风速平均值（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsAve10 = new BigDecimal(-99);

    /**
     * 10米风速标准差（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsSta10 = new BigDecimal(-99);

    /**
     * 10米风向瞬时值（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdInst10 = new BigDecimal(-99);

    /**
     * 10米风向最大值（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdMax10 = new BigDecimal(-99);

    /**
     * 10米风向最小值（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdMin10 = new BigDecimal(-99);

    /**
     * 10米风向平均值（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdAve10 = new BigDecimal(-99);

    /**
     * 10米风向标准差（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdSta10 = new BigDecimal(-99);


    /**
     * 30米风速瞬时值（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsInst30 = new BigDecimal(-99);

    /**
     * 30米风速最大值（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsMax30 = new BigDecimal(-99);

    /**
     * 30米风速最小值（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsMin30 = new BigDecimal(-99);

    /**
     * 30米风速平均值（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsAve30 = new BigDecimal(-99);

    /**
     * 30米风速标准差（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsSta30 = new BigDecimal(-99);

    /**
     * 30米风向瞬时值（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdInst30 = new BigDecimal(-99);

    /**
     * 30米风向最大值（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdMax30 = new BigDecimal(-99);

    /**
     * 30米风向最小值（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdMin30 = new BigDecimal(-99);

    /**
     * 30米风向平均值（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdAve30 = new BigDecimal(-99);

    /**
     * 30米风向标准差（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdSta30 = new BigDecimal(-99);

    /**
     * 50米风速瞬时值（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsInst50 = new BigDecimal(-99);

    /**
     * 50米风速最大值（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsMax50 = new BigDecimal(-99);

    /**
     * 50米风速最小值（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsMin50 = new BigDecimal(-99);

    /**
     * 50米风速平均值（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsAve50 = new BigDecimal(-99);

    /**
     * 50米风速标准差（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsSta50 = new BigDecimal(-99);

    /**
     * 50米风向瞬时值（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdInst50 = new BigDecimal(-99);

    /**
     * 50米风向最大值（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdMax50 = new BigDecimal(-99);

    /**
     * 50米风向最小值（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdMin50 = new BigDecimal(-99);

    /**
     * 50米风向平均值（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdAve50 = new BigDecimal(-99);

    /**
     * 50米风向标准差（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdSta50 = new BigDecimal(-99);


    /**
     * 60米风速瞬时值（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsInst60 = new BigDecimal(-99);

    /**
     * 60米风速最大值（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsMax60 = new BigDecimal(-99);

    /**
     * 60米风速最小值（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsMin60 = new BigDecimal(-99);

    /**
     * 60米风速平均值（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsAve60 = new BigDecimal(-99);

    /**
     * 60米风速标准差（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsSta60 = new BigDecimal(-99);

    /**
     * 60米风向瞬时值（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdInst60 = new BigDecimal(-99);

    /**
     * 60米风向最大值（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdMax60 = new BigDecimal(-99);

    /**
     * 60米风向最小值（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdMin60 = new BigDecimal(-99);

    /**
     * 60米风向平均值（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdAve60 = new BigDecimal(-99);

    /**
     * 60米风向标准差（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdSta60 = new BigDecimal(-99);

    /**
     * 70米风速瞬时值（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsInst70 = new BigDecimal(-99);

    /**
     * 70米风速最大值（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsMax70 = new BigDecimal(-99);

    /**
     * 70米风速最小值（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsMin70 = new BigDecimal(-99);

    /**
     * 70米风速平均值（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsAve70 = new BigDecimal(-99);

    /**
     * 70米风速标准差（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsSta70 = new BigDecimal(-99);

    /**
     * 70米风向瞬时值（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdInst70 = new BigDecimal(-99);

    /**
     * 70米风向最大值（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdMax70 = new BigDecimal(-99);

    /**
     * 70米风向最小值（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdMin70 = new BigDecimal(-99);

    /**
     * 70米风向平均值（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdAve70 = new BigDecimal(-99);

    /**
     * 70米风向标准差（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdSta70 = new BigDecimal(-99);

    /**
     * 80米风速瞬时值（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsInst80 = new BigDecimal(-99);

    /**
     * 80米风速最大值（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsMax80 = new BigDecimal(-99);

    /**
     * 80米风速最小值（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsMin80 = new BigDecimal(-99);

    /**
     * 80米风速平均值（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsAve80 = new BigDecimal(-99);

    /**
     * 80米风速标准差（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsSta80 = new BigDecimal(-99);

    /**
     * 80米风向瞬时值（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdInst80 = new BigDecimal(-99);

    /**
     * 80米风向最大值（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdMax80 = new BigDecimal(-99);

    /**
     * 80米风向最小值（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdMin80 = new BigDecimal(-99);

    /**
     * 80米风向平均值（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdAve80 = new BigDecimal(-99);

    /**
     * 80米风向标准差（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdSta80 = new BigDecimal(-99);

    /**
     * 90米风速瞬时值（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsInst90 = new BigDecimal(-99);

    /**
     * 90米风速最大值（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsMax90 = new BigDecimal(-99);

    /**
     * 90米风速最小值（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsMin90 = new BigDecimal(-99);

    /**
     * 90米风速平均值（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsAve90 = new BigDecimal(-99);

    /**
     * 90米风速标准差（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsSta90 = new BigDecimal(-99);

    /**
     * 90米风向瞬时值（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdInst90 = new BigDecimal(-99);

    /**
     * 90米风向最大值（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdMax90 = new BigDecimal(-99);

    /**
     * 90米风向最小值（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdMin90 = new BigDecimal(-99);

    /**
     * 90米风向平均值（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdAve90 = new BigDecimal(-99);

    /**
     * 90米风向标准差（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdSta90 = new BigDecimal(-99);

    /**
     * 100米风速瞬时值（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsInst100 = new BigDecimal(-99);

    /**
     * 100米风速最大值（m/s）
     */
    @Column(precision = 7, scale = 4)
    private BigDecimal wsMax100 = new BigDecimal(-99);

    /**
     * 100米风速最小值（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsMin100 = new BigDecimal(-99);

    /**
     * 100米风速平均值（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsAve100 = new BigDecimal(-99);

    /**
     * 100米风速标准差（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsSta100 = new BigDecimal(-99);

    /**
     * 100米风向瞬时值（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdInst100 = new BigDecimal(-99);

    /**
     * 100米风向最大值（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdMax100 = new BigDecimal(-99);

    /**
     * 100米风向最小值（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdMin100 = new BigDecimal(-99);

    /**
     * 100米风向平均值（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdAve100 = new BigDecimal(-99);

    /**
     * 100米风向标准差（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdSta100 = new BigDecimal(-99);

    /**
     * 110米风速瞬时值（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsInst110 = new BigDecimal(-99);

    /**
     * 110米风速最大值（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsMax110 = new BigDecimal(-99);

    /**
     * 110米风速最小值（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsMin110 = new BigDecimal(-99);

    /**
     * 110米风速平均值（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsAve110 = new BigDecimal(-99);

    /**
     * 110米风速标准差（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsSta110 = new BigDecimal(-99);

    /**
     * 110米风向瞬时值（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdInst110 = new BigDecimal(-99);

    /**
     * 110米风向最大值（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdMax110 = new BigDecimal(-99);

    /**
     * 110米风向最小值（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdMin110 = new BigDecimal(-99);

    /**
     * 110米风向平均值（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdAve110 = new BigDecimal(-99);

    /**
     * 110米风向标准差（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdSta110 = new BigDecimal(-99);


    /**
     * 120米风速瞬时值（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsInst120 = new BigDecimal(-99);

    /**
     * 120米风速最大值（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsMax120 = new BigDecimal(-99);

    /**
     * 120米风速最小值（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsMin120 = new BigDecimal(-99);

    /**
     * 120米风速平均值（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsAve120 = new BigDecimal(-99);

    /**
     * 120米风速标准差（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsSta120 = new BigDecimal(-99);

    /**
     * 120米风向瞬时值（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdInst120 = new BigDecimal(-99);

    /**
     * 120米风向最大值（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdMax120 = new BigDecimal(-99);

    /**
     * 120米风向最小值（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdMin120 = new BigDecimal(-99);

    /**
     * 120米风向平均值（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdAve120 = new BigDecimal(-99);

    /**
     * 120米风向标准差（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdSta120 = new BigDecimal(-99);

    /**
     * 风机轮毂高度风速瞬时值
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsInstHubHeight = new BigDecimal(-99);

    /**
     * 风机轮毂高度风速最大值（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsMaxHubHeight = new BigDecimal(-99);

    /**
     * 风机轮毂高度风速最小值（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsMinHubHeight = new BigDecimal(-99);

    /**
     * 风机轮毂高度风速平均值（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsAveHubHeight = new BigDecimal(-99);

    /**
     * 风机轮毂高度风速标准差（m/s）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wsStaHubHeight = new BigDecimal(-99);

    /**
     * 风机轮毂高度风向瞬时值（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdInstHubHeight = new BigDecimal(-99);

    /**
     * 风机轮毂高度风向最大值（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdMaxHubHeight = new BigDecimal(-99);

    /**
     * 风机轮毂高度风向最小值（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdMinHubHeight = new BigDecimal(-99);

    /**
     * 风机轮毂高度风向平均值（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdAveHubHeight = new BigDecimal(-99);

    /**
     * 风机轮毂高度风向标准差（°）
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal wdStaHubHeight = new BigDecimal(-99);


    /**
     * 空气密度  Kg/m³
     */
    @Digits(integer = 10, fraction = 2)
    @Column
    private BigDecimal airDensity = new BigDecimal(-99);


    /**
     * 数据是否是通过预测数据生成的
     */
    @Column
    @Type(type = "yes_no")
    private Boolean isGenerated = false;

    /**
     * 异常代码
     */
    @Enumerated(EnumType.STRING)
    private AbnormalCode abnormalCode;


    public BigDecimal getNumberValueByFiled(String filedName) throws IllegalAccessException {
        if (numberFields.containsKey(filedName)) {
            return (BigDecimal) numberFields.get(filedName).get(this);
        } else {
            return BigDecimal.valueOf(-99);
        }
    }


    public String iToString() {
        StringBuffer stringBuffer = new StringBuffer();
        stringBuffer.append("10米：~~").append(this.wsInst10).append(",→→").append(this.wdInst10).append("\r\n");
        stringBuffer.append("30米：~~").append(this.wsInst30).append(",→→").append(this.wdInst30).append("\r\n");
        stringBuffer.append("50米：~~").append(this.wsInst50).append(",→→").append(this.wdInst50).append("\r\n");
        stringBuffer.append("60米：~~").append(this.wsInst60).append(",→→").append(this.wdInst60).append("\r\n");
        stringBuffer.append("70米：~~").append(this.wsInst70).append(",→→").append(this.wdInst70).append("\r\n");
        stringBuffer.append("80米：~~").append(this.wsInst80).append(",→→").append(this.wdInst80).append("\r\n");
        stringBuffer.append("90米：~~").append(this.wsInst90).append(",→→").append(this.wdInst90).append("\r\n");
        stringBuffer.append("100米：~~").append(this.wsInst100).append(",→→").append(this.wdInst100).append("\r\n");
        stringBuffer.append("110米：~~").append(this.wsInst110).append(",→→").append(this.wdInst110).append("\r\n");
        stringBuffer.append("120米：~~").append(this.wsInst120).append(",→→").append(this.wdInst120).append("\r\n");
        stringBuffer.append("HUB：~~").append(this.wsInstHubHeight).append(",→→").append(this.wdInstHubHeight).append("\r\n");
        stringBuffer.append("温度：~~").append(this.tInst).append("\r\n");
        stringBuffer.append("湿度：~~").append(this.rhInst).append("\r\n");
        stringBuffer.append("气压：~~").append(this.paInst).append("\r\n");
        return stringBuffer.toString();
    }

}
