package com.tofly.xrtygis.custom.entity.scada;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.tofly.mybatisplus.config.ToflySqlCondition;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * SCADA存储最新值：TF_SCADA_MONITOR_VIEW
 *
 * @author JF
 * @date
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel
public class ScadaMonitor extends Model<ScadaMonitor> {
    private static final long serialVersionUID = 1L;
    /**
     * 主键ID
     */
    @TableId(value = "ID",type= IdType.INPUT)
    @ApiModelProperty(value = "主键ID")
    private Long id;
    /**
     * 指标编号
     */
    @ApiModelProperty(value = "指标编号")
    private String code;
    /**
     * 采集值
     */
    @ApiModelProperty(value = "采集值")
    private String value;
    /**
     * Scada采集时间
     */
    @ApiModelProperty(value = "Scada采集时间")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date scadaTime;
    /**
     * 入库时间
     */
    @ApiModelProperty(value = "入库时间")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @TableField(value = "UPDATE_TIME",fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;

    /**
     * 描述
     */
    @ApiModelProperty(value = "描述")
    private String describe;
    /**
     * 所属设备ID
     */
    @ApiModelProperty(value = "所属设备ID")
    private Long deviceId;
    @ApiModelProperty(hidden = true)
    @TableField(exist = false)
    private String deviceName;
    /**
     * 设备类型（1出口,2入口,3加药）
     */
    @ApiModelProperty(value = "设备类型（1出口,2入口,3加药）")
    private String model;
    /**
     * 设备类型转义（1出口,2入口,3加药）
     */
    @ApiModelProperty(value = "设备类型转义（1出口,2入口,3加药）")
    @TableField(exist = false)
    private String modelName;
    /**
     * 变量编码
     */
    @ApiModelProperty(value = "变量编码")
    private String variableCode;
    /**
     * 变量名称
     */
    @ApiModelProperty(value = "变量名称")
    @TableField(condition = ToflySqlCondition.LIKE)
    private String variableName;
    /**
     * 显示名称
     */
    @ApiModelProperty(value = "显示名称")
    @TableField(condition = ToflySqlCondition.LIKE)
    private String displayName;
    /**
     * 单位
     */
    @ApiModelProperty(value = "单位")
    @TableField(condition = ToflySqlCondition.LIKE)
    private String unit;
    /**
     * 报警上限
     */
    @ApiModelProperty(value = "报警上限")
    private Long alarmUpperLimit;
    /**
     * 报警下限
     */
    @ApiModelProperty(value = "报警下限")
    private Long alarmLowerLimit;
    /**
     * 是否报警（0未报警,1已报警）
     */
    @ApiModelProperty(value = "是否报警（0未报警,1已报警）")
    private String isAlarm;
    /**
     * 是否报警转义（0未报警,1已报警）
     */
    @ApiModelProperty(value = "是否报警转义（0未报警,1已报警）")
    @TableField(exist = false)
    private String isAlarmName;
    /**
     * 排序号
     */
    @ApiModelProperty(value = "排序号")
    private String sortNumber;
    /**
     * 精度
     */
    @ApiModelProperty(value = "精度")
    private Long accuracy;
    /**
     * 设备档案编号
     */
    @ApiModelProperty(value = "设备档案编号")
    private String archivesCode;
}
