package com.dcsoft.system.domain;

import java.util.Date;

import com.dcsoft.common.core.web.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.dcsoft.common.core.annotation.Excel;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 人员识别记录对象 sys_people_record
 *
 * @author nichun
 * @date 2023-03-08
 */
public class SysPeopleRecord extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 记录Id */
    @JsonSerialize(using= ToStringSerializer.class)
    private Long id;

    /** 人员id */
    private Long peopleId;

    /** 设备id */
    private Long equipmentId;

    /** 设备内网ip */
    private String deviceIp;

    /** 人员guid 或者STRANGERBABY */
    private String admitGuid;

    /** 识别模式,1:人像识别, 2:刷卡识别 ,3:人卡合一 4,人证比对 7:密码识别 8 二维码识别 */
    @Excel(name = "识别模式",sort = 6 , readConverterExp = "0=人像验证,3= 刷卡验证,9= 指纹比对,12=  身份证验证")
    private String recMode;

    /** 现场照url */
    private String filePath;

    /** 识别记录时间戳 */
    private Long showTime;

    /** 识别记录时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "识别记录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss",sort = 1)
    private Date showDate;

    /** 识别记录时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date showDateState;

    /** 识别记录时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date showDateEnd;

    /** 活体结果 1:活体判断成功 2:活体判断失败 3:未进行活体判断 */
    @Excel(name = "活体结果", readConverterExp = "1=活体判断成功,2=活体判断失败,3=活体判断失败")
    private String aliveType;

    /** 识别分数 */
    private String recScore;

    /** 设备序列号 */
    @Excel(name = "设备序列号",sort = 5)
    private String deviceNo;

    /** 软件版本号 */
    private String deviceVersion;

    /** 设备来源 */
    private String source;

    /** 人员比对结果,1:比对成功 2:比对失败 */
    @Excel(name = "人员比对结果" , readConverterExp = "1=比对成功,2=比对失败")
    private String type;

    /** 识别卡号 */
    @Excel(name = "识别卡号",sort = 7)
    private String cardNo;

    /** 设备名称 */
    private String deviceName;

    /** 比对模式,1:本地识别 2:云端识别 */
    private String recType;

    /** 结果 */
    private String result;

    /** 有效日期判断 1:有效期内 2:有效期外 3:未进行有效期判断 */
    private String permissionTimeType;

    /** 有效时间段判断 1:时间段内 2:时间段外 3:未进行时间段判断 */
    private String passTimeType;

    /** 识别模式判断 1. 模式正确 2.模式不正确 */
    private String recModeType;

    /** 保留字段 */
    private String storageId;

    /** 当前时间戳 */
    private Long timestamp;

    /** 识别主体姓名 */
    private String admitName;

    private String flag;

    private String sign;


    private SysEquipment equipment;

    @Excel(name = "人员姓名",sort = 4)
    private String peopleName;

    @Excel(name = "设备名称",sort = 2)
    private String equipmentName;

    @Excel(name = "工号",sort = 3)
    private String gh;

    private Long groupId;//考勤用---考勤组

    /**
     * 小时
     */
    private String hour;

    /**
     * 今天
     */
    private String today;

    /**
     * 昨天
     */
    private String yesterday;

    public Date getShowDateState() {
        return showDateState;
    }

    public void setShowDateState(Date showDateState) {
        this.showDateState = showDateState;
    }

    public Date getShowDateEnd() {
        return showDateEnd;
    }

    public void setShowDateEnd(Date showDateEnd) {
        this.showDateEnd = showDateEnd;
    }

    public String getHour() {
        return hour;
    }

    public void setHour(String hour) {
        this.hour = hour;
    }

    public String getToday() {
        return today;
    }

    public void setToday(String today) {
        this.today = today;
    }

    public String getYesterday() {
        return yesterday;
    }

    public void setYesterday(String yesterday) {
        this.yesterday = yesterday;
    }

    public Long getGroupId() {
        return groupId;
    }

    public void setGroupId(Long groupId) {
        this.groupId = groupId;
    }


    public SysEquipment getEquipment() {
        return equipment;
    }

    public void setEquipment(SysEquipment equipment) {
        this.equipment = equipment;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setPeopleId(Long peopleId)
    {
        this.peopleId = peopleId;
    }

    public Long getPeopleId()
    {
        return peopleId;
    }
    public void setEquipmentId(Long equipmentId)
    {
        this.equipmentId = equipmentId;
    }

    public Long getEquipmentId()
    {
        return equipmentId;
    }
    public void setDeviceIp(String deviceIp)
    {
        this.deviceIp = deviceIp;
    }

    public String getDeviceIp()
    {
        return deviceIp;
    }
    public void setAdmitGuid(String admitGuid)
    {
        this.admitGuid = admitGuid;
    }

    public String getAdmitGuid()
    {
        return admitGuid;
    }
    public void setRecMode(String recMode)
    {
        this.recMode = recMode;
    }

    public String getRecMode()
    {
        return recMode;
    }
    public void setFilePath(String filePath)
    {
        this.filePath = filePath;
    }

    public String getFilePath()
    {
        return filePath;
    }
    public void setShowTime(Long showTime)
    {
        this.showTime = showTime;
    }

    public Long getShowTime()
    {
        return showTime;
    }
    public void setShowDate(Date showDate)
    {
        this.showDate = showDate;
    }

    public Date getShowDate()
    {
        return showDate;
    }
    public void setAliveType(String aliveType)
    {
        this.aliveType = aliveType;
    }

    public String getAliveType()
    {
        return aliveType;
    }
    public void setRecScore(String recScore)
    {
        this.recScore = recScore;
    }

    public String getRecScore()
    {
        return recScore;
    }
    public void setDeviceNo(String deviceNo)
    {
        this.deviceNo = deviceNo;
    }

    public String getDeviceNo()
    {
        return deviceNo;
    }
    public void setDeviceVersion(String deviceVersion)
    {
        this.deviceVersion = deviceVersion;
    }

    public String getDeviceVersion()
    {
        return deviceVersion;
    }
    public void setSource(String source)
    {
        this.source = source;
    }

    public String getSource()
    {
        return source;
    }
    public void setType(String type)
    {
        this.type = type;
    }

    public String getType()
    {
        return type;
    }
    public void setCardNo(String cardNo)
    {
        this.cardNo = cardNo;
    }

    public String getCardNo()
    {
        return cardNo;
    }
    public void setDeviceName(String deviceName)
    {
        this.deviceName = deviceName;
    }

    public String getDeviceName()
    {
        return deviceName;
    }
    public void setRecType(String recType)
    {
        this.recType = recType;
    }

    public String getRecType()
    {
        return recType;
    }
    public void setResult(String result)
    {
        this.result = result;
    }

    public String getResult()
    {
        return result;
    }
    public void setPermissionTimeType(String permissionTimeType)
    {
        this.permissionTimeType = permissionTimeType;
    }

    public String getPermissionTimeType()
    {
        return permissionTimeType;
    }
    public void setPassTimeType(String passTimeType)
    {
        this.passTimeType = passTimeType;
    }

    public String getPassTimeType()
    {
        return passTimeType;
    }
    public void setRecModeType(String recModeType)
    {
        this.recModeType = recModeType;
    }

    public String getRecModeType()
    {
        return recModeType;
    }
    public void setStorageId(String storageId)
    {
        this.storageId = storageId;
    }

    public String getStorageId()
    {
        return storageId;
    }
    public void setTimestamp(Long timestamp)
    {
        this.timestamp = timestamp;
    }

    public Long getTimestamp()
    {
        return timestamp;
    }
    public void setAdmitName(String admitName)
    {
        this.admitName = admitName;
    }

    public String getAdmitName()
    {
        return admitName;
    }

    public String getFlag() {
        return flag;
    }

    public void setFlag(String flag) {
        this.flag = flag;
    }

    public String getPeopleName() {
        return peopleName;
    }

    public void setPeopleName(String peopleName) {
        this.peopleName = peopleName;
    }

    public String getEquipmentName() {
        return equipmentName;
    }

    public void setEquipmentName(String equipmentName) {
        this.equipmentName = equipmentName;
    }

    public String getGh() {
        return gh;
    }

    public void setGh(String gh) {
        this.gh = gh;
    }

    public String getSign() {
        return sign;
    }

    public void setSign(String sign) {
        this.sign = sign;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("peopleId", getPeopleId())
            .append("equipmentId", getEquipmentId())
            .append("deviceIp", getDeviceIp())
            .append("admitGuid", getAdmitGuid())
            .append("recMode", getRecMode())
            .append("filePath", getFilePath())
            .append("showTime", getShowTime())
            .append("showDate", getShowDate())
            .append("aliveType", getAliveType())
            .append("recScore", getRecScore())
            .append("deviceNo", getDeviceNo())
            .append("deviceVersion", getDeviceVersion())
            .append("source", getSource())
            .append("type", getType())
            .append("cardNo", getCardNo())
            .append("deviceName", getDeviceName())
            .append("recType", getRecType())
            .append("result", getResult())
            .append("permissionTimeType", getPermissionTimeType())
            .append("passTimeType", getPassTimeType())
            .append("recModeType", getRecModeType())
            .append("storageId", getStorageId())
            .append("timestamp", getTimestamp())
            .append("admitName", getAdmitName())
            .append("remark", getRemark())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
