package com.njcn.device.pq.pojo.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

/**
 * pqs
 * 用于前端页面展示实体类
 * 设备
 * @author cdf
 * @date 2021/6/23
 */
@Data
public class DeviceVO implements Serializable {

    private String devIndex;

    /**
     * （关联表NodeInformation）服务器表序号，表明这台设备运行在哪台服务器上
     */
    private String nodeId;


    @ApiModelProperty("供电公司名称")
    private String gdName;

    @ApiModelProperty("变电站名称")
    private String subName;

    private String name;

    /**
     * 装置通讯状态（0：中断；1：正常）
     */
    private Integer comFlag;

    private String devType;

    @ApiModelProperty(name = "frontType",value = "前置类型（MMS、CLD）字典表")
    private String frontType;

    private String ip;

    /**
     * 投运时间
     */
    private LocalDate loginTime;

    /**
     * 数据更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;
    /**
     * 已召唤标志（0：周期触发；1：变为触发）
     */
    private Integer callFlag;
    /**
     * 端口ID，用于端口映射
     */
    private Integer port;

    /**
     * 装置状态（0：投运；1：热备用；2：停运）
     */
    private Integer runFlag;

    /**
     * 装置识别码，采用3ds加密
     */
    private String series;

    /**
     * 装置秘钥，采用3ds加密
     */
    private String devKey;

    /**
     * 装置模型（0：虚拟设备；1：实际设备；2：离线设备；）默认是实际设备
     */
    private Integer devModel;

    /**
     * 数据类型（0：暂态系统；1：稳态系统；2：两个系统）
     */
    @ApiModelProperty(name = "dataType",value = "数据类型（0：暂态系统；1：稳态系统；2：两个系统）",required = true)
    private Integer devDataType;

    @ApiModelProperty(name = "manufacturer",value = "设备制造商Guid")
    private String manufacturer;

    @ApiModelProperty(name = "electroplate",value = "电度功能")
    private Integer electroplate;

    @ApiModelProperty(name = "thisTimeCheck",value = "本次定检时间")
    private LocalDate thisTimeCheck;

    @ApiModelProperty(name = "nextTimeCheck",value = "下次定检时间")
    private LocalDate nextTimeCheck;

    /**
     * 合同号
     */
    @ApiModelProperty(name = "contract",value = "合同号")
    private String contract;

    /**
     * 设备sim卡号
     */
    @ApiModelProperty(name = "sim",value = "装置sim卡")
    private String sim;

    @ApiModelProperty(name = "devSeries",value = "装置系列")
    private String devSeries;

    @ApiModelProperty(name = "devLocation",value = "监测装置安装位置")
    private String devLocation;

    @ApiModelProperty(name = "devNo",value = "监测厂家设备编号")
    private String devNo;

    @ApiModelProperty(name = "isAlarm",value = "告警功能 0:关闭  null、1:开启")
    private Integer isAlarm;


    @ApiModelProperty(name = "sort",value = "排序",required = true)
    private Integer sort;
    @ApiModelProperty(value = "所属前置机机进程")
    private Integer processNum;


    @ApiModelProperty(name = "subVoltageVOList",value = "母线集合")
    private List<SubVoltageVO> subVoltageVOList;
}
