package com.mortals.xhx.module.appointment.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.appointment.model.vo.AppointmentRecordsVo;
/**
* 预约签到记录实体对象
*
* @author zxfei
* @date 2023-04-17
*/

public class AppointmentRecordsEntity extends AppointmentRecordsVo {
    private static final long serialVersionUID = 1L;

    /**
    * 站点Id
    */
    private Long siteId;
    /**
    * 站点名称
    */
    private String siteName;
    /**
    * 人员id
    */
    @Excel(name = "人员id")
    private Long personId;
    /**
    * 姓名
    */
    @Excel(name = "姓名")
    private String name;
    /**
    * 联系方式
    */
    @Excel(name = "联系方式")
    private String contactInfo;
    /**
    * 身份证号码
    */
    @Excel(name = "身份证号码")
    private String idNumber;
    /**
    * 预约业务
    */
    @Excel(name = "预约业务")
    private String reservationService;
    /**
    * 预约编号
    */
    @Excel(name = "预约编号")
    private String reservationNumber;
    /**
    * 监测时间
    */
    @Excel(name = "监测时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date monitorTime;
    /**
    * 监测设备id
    */
    @Excel(name = "监测设备id")
    private Long monitorDeviceId;
    /**
    * 监测设备
    */
    @Excel(name = "监测设备")
    private String monitorDevice;
    /**
    * 签到方式(0.自动签到，1.手动签到)
    */
    @Excel(name = "签到方式", readConverterExp = "0=自动签到,1=手动签到")
    private Integer checkInMethod;
    /**
    * 监测凭证
    */
    @Excel(name = "监测凭证")
    private String monitorCertificate;
    /**
    * 预约取号状态(0.未取号，1.取号中，2.取号完成)
    */
    @Excel(name = "预约取号状态", readConverterExp = "0=未取号,1=取号中,2=取号完成")
    private Integer appointmentStatus;
    /**
    * 取号号码
    */
    @Excel(name = "取号号码")
    private String flowNum;
    /**
    * 取号时间
    */
    @Excel(name = "取号时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date flowTime;
    /**
    * 监控相对图片pic
    */
    private String picUri;
    /**
    * 图片资源唯一标识
    */
    private String serverIndexCode;



    public AppointmentRecordsEntity(){}
    /**
    * 获取 站点Id
    * @return Long
    */
    public Long getSiteId(){
        return siteId;
    }
    /**
    * 设置 站点Id
    * @param siteId
    */
    public void setSiteId(Long siteId){
        this.siteId = siteId;
    }
    /**
    * 获取 站点名称
    * @return String
    */
    public String getSiteName(){
        return siteName;
    }
    /**
    * 设置 站点名称
    * @param siteName
    */
    public void setSiteName(String siteName){
        this.siteName = siteName;
    }
    /**
    * 获取 人员id
    * @return Long
    */
    public Long getPersonId(){
        return personId;
    }
    /**
    * 设置 人员id
    * @param personId
    */
    public void setPersonId(Long personId){
        this.personId = personId;
    }
    /**
    * 获取 姓名
    * @return String
    */
    public String getName(){
        return name;
    }
    /**
    * 设置 姓名
    * @param name
    */
    public void setName(String name){
        this.name = name;
    }
    /**
    * 获取 联系方式
    * @return String
    */
    public String getContactInfo(){
        return contactInfo;
    }
    /**
    * 设置 联系方式
    * @param contactInfo
    */
    public void setContactInfo(String contactInfo){
        this.contactInfo = contactInfo;
    }
    /**
    * 获取 身份证号码
    * @return String
    */
    public String getIdNumber(){
        return idNumber;
    }
    /**
    * 设置 身份证号码
    * @param idNumber
    */
    public void setIdNumber(String idNumber){
        this.idNumber = idNumber;
    }
    /**
    * 获取 预约业务
    * @return String
    */
    public String getReservationService(){
        return reservationService;
    }
    /**
    * 设置 预约业务
    * @param reservationService
    */
    public void setReservationService(String reservationService){
        this.reservationService = reservationService;
    }
    /**
    * 获取 预约编号
    * @return String
    */
    public String getReservationNumber(){
        return reservationNumber;
    }
    /**
    * 设置 预约编号
    * @param reservationNumber
    */
    public void setReservationNumber(String reservationNumber){
        this.reservationNumber = reservationNumber;
    }
    /**
    * 获取 监测时间
    * @return Date
    */
    public Date getMonitorTime(){
        return monitorTime;
    }
    /**
    * 设置 监测时间
    * @param monitorTime
    */
    public void setMonitorTime(Date monitorTime){
        this.monitorTime = monitorTime;
    }
    /**
    * 获取 监测设备id
    * @return Long
    */
    public Long getMonitorDeviceId(){
        return monitorDeviceId;
    }
    /**
    * 设置 监测设备id
    * @param monitorDeviceId
    */
    public void setMonitorDeviceId(Long monitorDeviceId){
        this.monitorDeviceId = monitorDeviceId;
    }
    /**
    * 获取 监测设备
    * @return String
    */
    public String getMonitorDevice(){
        return monitorDevice;
    }
    /**
    * 设置 监测设备
    * @param monitorDevice
    */
    public void setMonitorDevice(String monitorDevice){
        this.monitorDevice = monitorDevice;
    }
    /**
    * 获取 签到方式(0.自动签到，1.手动签到)
    * @return Integer
    */
    public Integer getCheckInMethod(){
        return checkInMethod;
    }
    /**
    * 设置 签到方式(0.自动签到，1.手动签到)
    * @param checkInMethod
    */
    public void setCheckInMethod(Integer checkInMethod){
        this.checkInMethod = checkInMethod;
    }
    /**
    * 获取 监测凭证
    * @return String
    */
    public String getMonitorCertificate(){
        return monitorCertificate;
    }
    /**
    * 设置 监测凭证
    * @param monitorCertificate
    */
    public void setMonitorCertificate(String monitorCertificate){
        this.monitorCertificate = monitorCertificate;
    }
    /**
    * 获取 预约取号状态(0.未取号，1.取号中，2.取号完成)
    * @return Integer
    */
    public Integer getAppointmentStatus(){
        return appointmentStatus;
    }
    /**
    * 设置 预约取号状态(0.未取号，1.取号中，2.取号完成)
    * @param appointmentStatus
    */
    public void setAppointmentStatus(Integer appointmentStatus){
        this.appointmentStatus = appointmentStatus;
    }
    /**
    * 获取 取号号码
    * @return String
    */
    public String getFlowNum(){
        return flowNum;
    }
    /**
    * 设置 取号号码
    * @param flowNum
    */
    public void setFlowNum(String flowNum){
        this.flowNum = flowNum;
    }
    /**
    * 获取 取号时间
    * @return Date
    */
    public Date getFlowTime(){
        return flowTime;
    }
    /**
    * 设置 取号时间
    * @param flowTime
    */
    public void setFlowTime(Date flowTime){
        this.flowTime = flowTime;
    }
    /**
    * 获取 监控相对图片pic
    * @return String
    */
    public String getPicUri(){
        return picUri;
    }
    /**
    * 设置 监控相对图片pic
    * @param picUri
    */
    public void setPicUri(String picUri){
        this.picUri = picUri;
    }
    /**
    * 获取 图片资源唯一标识
    * @return String
    */
    public String getServerIndexCode(){
        return serverIndexCode;
    }
    /**
    * 设置 图片资源唯一标识
    * @param serverIndexCode
    */
    public void setServerIndexCode(String serverIndexCode){
        this.serverIndexCode = serverIndexCode;
    }




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

    public String toString(){
        StringBuilder sb = new StringBuilder("");
        sb.append(",siteId:").append(getSiteId());
        sb.append(",siteName:").append(getSiteName());
        sb.append(",personId:").append(getPersonId());
        sb.append(",name:").append(getName());
        sb.append(",contactInfo:").append(getContactInfo());
        sb.append(",idNumber:").append(getIdNumber());
        sb.append(",reservationService:").append(getReservationService());
        sb.append(",reservationNumber:").append(getReservationNumber());
        sb.append(",monitorTime:").append(getMonitorTime());
        sb.append(",monitorDeviceId:").append(getMonitorDeviceId());
        sb.append(",monitorDevice:").append(getMonitorDevice());
        sb.append(",checkInMethod:").append(getCheckInMethod());
        sb.append(",monitorCertificate:").append(getMonitorCertificate());
        sb.append(",appointmentStatus:").append(getAppointmentStatus());
        sb.append(",flowNum:").append(getFlowNum());
        sb.append(",flowTime:").append(getFlowTime());
        sb.append(",picUri:").append(getPicUri());
        sb.append(",serverIndexCode:").append(getServerIndexCode());
        return sb.toString();
    }

    public void initAttrValue(){

            this.siteId = null;

            this.siteName = "";

            this.personId = null;

            this.name = "";

            this.contactInfo = "";

            this.idNumber = "";

            this.reservationService = "";

            this.reservationNumber = "";

            this.monitorTime = null;

            this.monitorDeviceId = null;

            this.monitorDevice = "";

            this.checkInMethod = 0;

            this.monitorCertificate = "";

            this.appointmentStatus = 0;

            this.flowNum = "";

            this.flowTime = null;

            this.picUri = "";

            this.serverIndexCode = "";
    }
}