package com.mortals.xhx.module.device.model;

import java.util.Date;
import java.util.List;
import java.util.ArrayList;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.device.model.vo.DeviceVo;
/**
 * 设备实体对象
 *
 * @author zxfei
 * @date 2022-04-25
 */

public class DeviceEntity extends DeviceVo {
    private static final long serialVersionUID = 1L;

    /**
     * 设备名称
     */
    @Excel(name = "设备名称")
    private String deviceName;
    /**
     * 设备编码
     */
    private String deviceCode;
    /**
     * 站点编号，来源基础服务平台
     */
    private String siteCode;
    /**
     * 站点名称
     */
    private String siteName;
    /**
     * 设备的MAC地址
     */
    private String deviceMac;
    /**
     * 平台系统Id
     */
    private Long platformId;
    /**
     * 平台系统名称
     */
    private String platformName;
    /**
     * 产品Id
     */
    private Long productId;
    /**
     * 产品名称
     */
    private String productName;
    /**
     * 设备生产厂商ID
     */
    private Long deviceFirmId;
    /**
     * 设备生产厂商名称
     */
    @Excel(name = "设备生产厂商名称")
    private String deviceFirmname;
    /**
     * 设备访问ip
     */
    private String ip;
    /**
     * 中心设备编码
     */
    private String centernum;
    /**
     * 端口
     */
    private String port;
    /**
     * 在线状态 (0.离线，1.在线)
     */
    @Excel(name = "在线状态 ", readConverterExp = "0=离线,1=在线")
    private Integer deviceOnlineStatus;
    /**
     * 启用状态 (0.停止，1.启用)
     */
    private Integer status;
    /**
     * 激活状态 (0.未激活，1.已激活)
     */
    @Excel(name = "激活状态 ", readConverterExp = "0=未激活,1=已激活")
    private Integer active;
    /**
     * 备注
     */
    private String deviceRemark;
    /**
     * 最近上线时间
     */
    private Date onlineTime;
    /**
     * 最近离线时间
     */
    private Date offlineTime;



    public DeviceEntity(){}
    /**
     * 获取 设备名称
     * @return String
     */
    public String getDeviceName(){
        return deviceName;
    }
    /**
     * 设置 设备名称
     * @param deviceName
     */
    public void setDeviceName(String deviceName){
        this.deviceName = deviceName;
    }
    /**
     * 获取 设备编码
     * @return String
     */
    public String getDeviceCode(){
        return deviceCode;
    }
    /**
     * 设置 设备编码
     * @param deviceCode
     */
    public void setDeviceCode(String deviceCode){
        this.deviceCode = deviceCode;
    }
    /**
     * 获取 站点编号，来源基础服务平台
     * @return String
     */
    public String getSiteCode(){
        return siteCode;
    }
    /**
     * 设置 站点编号，来源基础服务平台
     * @param siteCode
     */
    public void setSiteCode(String siteCode){
        this.siteCode = siteCode;
    }
    /**
     * 获取 站点名称
     * @return String
     */
    public String getSiteName(){
        return siteName;
    }
    /**
     * 设置 站点名称
     * @param siteName
     */
    public void setSiteName(String siteName){
        this.siteName = siteName;
    }
    /**
     * 获取 设备的MAC地址
     * @return String
     */
    public String getDeviceMac(){
        return deviceMac;
    }
    /**
     * 设置 设备的MAC地址
     * @param deviceMac
     */
    public void setDeviceMac(String deviceMac){
        this.deviceMac = deviceMac;
    }
    /**
     * 获取 平台系统Id
     * @return Long
     */
    public Long getPlatformId(){
        return platformId;
    }
    /**
     * 设置 平台系统Id
     * @param platformId
     */
    public void setPlatformId(Long platformId){
        this.platformId = platformId;
    }
    /**
     * 获取 平台系统名称
     * @return String
     */
    public String getPlatformName(){
        return platformName;
    }
    /**
     * 设置 平台系统名称
     * @param platformName
     */
    public void setPlatformName(String platformName){
        this.platformName = platformName;
    }
    /**
     * 获取 产品Id
     * @return Long
     */
    public Long getProductId(){
        return productId;
    }
    /**
     * 设置 产品Id
     * @param productId
     */
    public void setProductId(Long productId){
        this.productId = productId;
    }
    /**
     * 获取 产品名称
     * @return String
     */
    public String getProductName(){
        return productName;
    }
    /**
     * 设置 产品名称
     * @param productName
     */
    public void setProductName(String productName){
        this.productName = productName;
    }
    /**
     * 获取 设备生产厂商ID
     * @return Long
     */
    public Long getDeviceFirmId(){
        return deviceFirmId;
    }
    /**
     * 设置 设备生产厂商ID
     * @param deviceFirmId
     */
    public void setDeviceFirmId(Long deviceFirmId){
        this.deviceFirmId = deviceFirmId;
    }
    /**
     * 获取 设备生产厂商名称
     * @return String
     */
    public String getDeviceFirmname(){
        return deviceFirmname;
    }
    /**
     * 设置 设备生产厂商名称
     * @param deviceFirmname
     */
    public void setDeviceFirmname(String deviceFirmname){
        this.deviceFirmname = deviceFirmname;
    }
    /**
     * 获取 设备访问ip
     * @return String
     */
    public String getIp(){
        return ip;
    }
    /**
     * 设置 设备访问ip
     * @param ip
     */
    public void setIp(String ip){
        this.ip = ip;
    }
    /**
     * 获取 中心设备编码
     * @return String
     */
    public String getCenternum(){
        return centernum;
    }
    /**
     * 设置 中心设备编码
     * @param centernum
     */
    public void setCenternum(String centernum){
        this.centernum = centernum;
    }
    /**
     * 获取 端口
     * @return String
     */
    public String getPort(){
        return port;
    }
    /**
     * 设置 端口
     * @param port
     */
    public void setPort(String port){
        this.port = port;
    }
    /**
     * 获取 在线状态 (0.离线，1.在线)
     * @return Integer
     */
    public Integer getDeviceOnlineStatus(){
        return deviceOnlineStatus;
    }
    /**
     * 设置 在线状态 (0.离线，1.在线)
     * @param deviceOnlineStatus
     */
    public void setDeviceOnlineStatus(Integer deviceOnlineStatus){
        this.deviceOnlineStatus = deviceOnlineStatus;
    }
    /**
     * 获取 启用状态 (0.停止，1.启用)
     * @return Integer
     */
    public Integer getStatus(){
        return status;
    }
    /**
     * 设置 启用状态 (0.停止，1.启用)
     * @param status
     */
    public void setStatus(Integer status){
        this.status = status;
    }
    /**
     * 获取 激活状态 (0.未激活，1.已激活)
     * @return Integer
     */
    public Integer getActive(){
        return active;
    }
    /**
     * 设置 激活状态 (0.未激活，1.已激活)
     * @param active
     */
    public void setActive(Integer active){
        this.active = active;
    }
    /**
     * 获取 备注
     * @return String
     */
    public String getDeviceRemark(){
        return deviceRemark;
    }
    /**
     * 设置 备注
     * @param deviceRemark
     */
    public void setDeviceRemark(String deviceRemark){
        this.deviceRemark = deviceRemark;
    }
    /**
     * 获取 最近上线时间
     * @return Date
     */
    public Date getOnlineTime(){
        return onlineTime;
    }
    /**
     * 设置 最近上线时间
     * @param onlineTime
     */
    public void setOnlineTime(Date onlineTime){
        this.onlineTime = onlineTime;
    }
    /**
     * 获取 最近离线时间
     * @return Date
     */
    public Date getOfflineTime(){
        return offlineTime;
    }
    /**
     * 设置 最近离线时间
     * @param offlineTime
     */
    public void setOfflineTime(Date offlineTime){
        this.offlineTime = offlineTime;
    }




    @Override
    public int hashCode() {
        return this.getId().hashCode();
    }
    @Override
    public boolean equals(Object obj) {
        if (obj == null) return false;
        if (obj instanceof DeviceEntity) {
            DeviceEntity tmp = (DeviceEntity) obj;
            if (this.getId() == tmp.getId()) {
                return true;
            }
        }
        return false;
    }

    public String toString(){
        StringBuilder sb = new StringBuilder("");
        sb.append(",deviceName:").append(getDeviceName());
        sb.append(",deviceCode:").append(getDeviceCode());
        sb.append(",siteCode:").append(getSiteCode());
        sb.append(",siteName:").append(getSiteName());
        sb.append(",deviceMac:").append(getDeviceMac());
        sb.append(",platformId:").append(getPlatformId());
        sb.append(",platformName:").append(getPlatformName());
        sb.append(",productId:").append(getProductId());
        sb.append(",productName:").append(getProductName());
        sb.append(",deviceFirmId:").append(getDeviceFirmId());
        sb.append(",deviceFirmname:").append(getDeviceFirmname());
        sb.append(",ip:").append(getIp());
        sb.append(",centernum:").append(getCenternum());
        sb.append(",port:").append(getPort());
        sb.append(",deviceOnlineStatus:").append(getDeviceOnlineStatus());
        sb.append(",status:").append(getStatus());
        sb.append(",active:").append(getActive());
        sb.append(",deviceRemark:").append(getDeviceRemark());
        sb.append(",onlineTime:").append(getOnlineTime());
        sb.append(",offlineTime:").append(getOfflineTime());
        return sb.toString();
    }

    public void initAttrValue(){

        this.deviceName = "";

        this.deviceCode = "";

        this.siteCode = "";

        this.siteName = "";

        this.deviceMac = "";

        this.platformId = null;

        this.platformName = "";

        this.productId = null;

        this.productName = "";

        this.deviceFirmId = null;

        this.deviceFirmname = "";

        this.ip = "";

        this.centernum = "";

        this.port = "";

        this.deviceOnlineStatus = 0;

        this.status = 0;

        this.active = 0;

        this.deviceRemark = "";

        this.onlineTime = null;

        this.offlineTime = null;
    }
}