package com.huatek.busi.entity;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;

import org.springframework.format.annotation.DateTimeFormat;

import com.huatek.torch.sql.annotation.FieldName;
import com.huatek.torch.sql.annotation.Id;
import com.huatek.torch.sql.annotation.TableName;
import com.huatek.torch.sql.beans.Pojo;

import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 在线监测——监测数据
 * 
 * @author anker_cheng
 * @date 2019/09/16
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("busi_online_monitor_data")
public class BusiOnlineMonitorData extends Pojo implements Serializable {
    private static final long serialVersionUID = -2708055130897078799L;

    /**
     * 主键
     */
    @Id("id")
    private String id;

    /**
     * 传感器编码
     */
    @FieldName("sensor_code")
    private String sensorCode;

    @FieldName("ext_type")
    private String extType;

    /**
     * 主设备类型
     */
    @FieldName("equipment_type")
    private String equipmentType;

    /**
     * 外挂设备类型
     */
    @FieldName("sub_equipment_type")
    private String subEquipmentType;

    /**
     * 日期
     */
    @FieldName("day")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate day;

    /**
     * 工作状态
     */
    @FieldName("run_state")
    private String runState;

    /**
     * 维修次数
     */
    @FieldName("repair_count")
    private Integer repairCount;

    /**
     * 报警值
     */
    @FieldName("threshold_value")
    private String thresholdValue;

    /**
     * 预警值
     */
    @FieldName("warning_value")
    private String warningValue;

    /**
     * 相对增长率（%/月）
     */
    @FieldName("monthly_relative_growth_rate")
    private String monthlyRelativeGrowthRate;

    /**
     * 绝对增长率（%/月）
     */
    @FieldName("monthly_absolutely_growth_rate")
    private String monthlyAbsolutelyGrowthRate;

    /**
     * 数据缺失率
     */
    @FieldName("loss_rate")
    private String lossRate;

    /**
     * 误报率
     */
    @FieldName("false_alarm_rate")
    private String falseAlarmRate;

    /**
     * 稳定性指标
     */
    @FieldName("stability_index")
    private String stabilityIndex;
    
    /**
     * 精度偏差
     */
    @FieldName("accuracy_index")
    private String accuracyIndex;

    @FieldName("phase")
    private String phase;

    ///////////////////////////////////////////////////////////////////////////

    /**
     * 创建时间
     */
    @FieldName("created_time")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createdTime;

    @FieldName("site_id")
    private String siteId;

    @FieldName("main_tree_id")
    private String mainTreeId;
    
    @FieldName("sub_tree_id")
    private String subTreeId;
    
    @FieldName("main_equipment_id")
    private String mainEquipmentId;
    
    @FieldName("sub_equipment_id")
    private String subEquipmentId;
}
