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-03-09
*/

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

    /**
    * 设备名称
    */
    @Excel(name = "设备名称")
    private String deviceName;
    /**
    * 设备编码
    */
    private String deviceCode;
    /**
    * 设备类型（1.呼叫器，2.窗口屏, 3.评价器，4.集中屏, 5.排号机，6.im设备, 7.样表设备，8.取件柜, 9.信息发布,10.导视机,11.开标室设备,12.背靠背）
    */
    private Integer deviceType;
    /**
    * 设备的MAC地址
    */
    private String deviceMac;
    /**
    * 设备访问ip
    */
    private String ip;
    /**
    * 中心设备编码
    */
    private String centernum;
    /**
    * 端口
    */
    private String port;
    /**
    * 站点编号
    */
    private String siteNum;
    /**
    * 设备生产厂商ID
    */
    private Long deviceFirmId;
    /**
    * 设备生产厂商名称
    */
    @Excel(name = "设备生产厂商名称")
    private String deviceFirmname;
    /**
    * 在线状态 (0.离线，1.在线)
    */
    private Integer deviceOnlineStatus;
    /**
    * 启用状态 (0.停止，1.启用)
    */
    private Integer status;
    /**
    * 备注
    */
    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;
    }
    /**
    * 获取 设备类型（1.呼叫器，2.窗口屏, 3.评价器，4.集中屏, 5.排号机，6.im设备, 7.样表设备，8.取件柜, 9.信息发布,10.导视机,11.开标室设备,12.背靠背）
    * @return Integer
    */
    public Integer getDeviceType(){
        return deviceType;
    }
    /**
    * 设置 设备类型（1.呼叫器，2.窗口屏, 3.评价器，4.集中屏, 5.排号机，6.im设备, 7.样表设备，8.取件柜, 9.信息发布,10.导视机,11.开标室设备,12.背靠背）
    * @param deviceType
    */
    public void setDeviceType(Integer deviceType){
        this.deviceType = deviceType;
    }
    /**
    * 获取 设备的MAC地址
    * @return String
    */
    public String getDeviceMac(){
        return deviceMac;
    }
    /**
    * 设置 设备的MAC地址
    * @param deviceMac
    */
    public void setDeviceMac(String deviceMac){
        this.deviceMac = deviceMac;
    }
    /**
    * 获取 设备访问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;
    }
    /**
    * 获取 站点编号
    * @return String
    */
    public String getSiteNum(){
        return siteNum;
    }
    /**
    * 设置 站点编号
    * @param siteNum
    */
    public void setSiteNum(String siteNum){
        this.siteNum = siteNum;
    }
    /**
    * 获取 设备生产厂商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;
    }
    /**
    * 获取 在线状态 (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;
    }
    /**
    * 获取 备注
    * @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(",deviceType:").append(getDeviceType());
        sb.append(",deviceMac:").append(getDeviceMac());
        sb.append(",ip:").append(getIp());
        sb.append(",centernum:").append(getCenternum());
        sb.append(",port:").append(getPort());
        sb.append(",siteNum:").append(getSiteNum());
        sb.append(",deviceFirmId:").append(getDeviceFirmId());
        sb.append(",deviceFirmname:").append(getDeviceFirmname());
        sb.append(",deviceOnlineStatus:").append(getDeviceOnlineStatus());
        sb.append(",status:").append(getStatus());
        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.deviceType = 1;

            this.deviceMac = "";

            this.ip = "";

            this.centernum = "";

            this.port = "";

            this.siteNum = "";

            this.deviceFirmId = null;

            this.deviceFirmname = "";

            this.deviceOnlineStatus = 0;

            this.status = 0;

            this.deviceRemark = "";

            this.onlineTime = null;

            this.offlineTime = null;
    }
}