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

import java.util.Date;
import java.util.List;
import java.util.ArrayList;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.attendance.model.vo.AttendanceRecordErrorVo;
/**
* 考勤打卡记录异常信息实体对象
*
* @author zxfei
* @date 2023-04-08
*/

public class AttendanceRecordErrorEntity extends AttendanceRecordErrorVo {
    private static final long serialVersionUID = 1L;

    /**
    * 员工ID
    */
    private Long staffId;
    /**
    * 员工姓名
    */
    private String staffName;
    /**
    * 工号
    */
    private String workNum;
    /**
    * 所属部门
    */
    private Long deptId;
    /**
    * 所属部门名称
    */
    private String deptName;
    /**
    * 职位ID
    */
    private Long positionId;
    /**
    * 职位名称
    */
    private String positionName;
    /**
    * 所属考勤组ID
    */
    private Long attendanceGroupId;
    /**
    * 所属考勤组名称
    */
    private String attendanceGroupName;
    /**
    * 班次ID
    */
    private Long shiftsId;
    /**
    * 班次名称
    */
    private String shiftsName;
    /**
    * 上下班时间
    */
    @JsonFormat(pattern = "HH:mm")
    @JSONField(format = "HH:mm")
    private Date goOffDateTime;
    /**
    * 异常时间
    */
    private Date errorDateTime;
    /**
    * 实际打卡时间
    */
    private Date actualAttendanceDateTime;
    /**
    * 处理时间
    */
    private Date operDateTime;
    /**
    * 处理人
    */
    private String opertor;
    /**
    * 异常状态(0.缺卡,1.早退,2.缺卡)
    */
    private Integer errorStatus;
    /**
    * 处理状态(0.未处理,1.已处理)
    */
    private Integer processStatus;
    /**
    * 处理结果
    */
    private String processResult;
    /**
    * 备注
    */
    private String remark;



    public AttendanceRecordErrorEntity(){}
    /**
    * 获取 员工ID
    * @return Long
    */
    public Long getStaffId(){
        return staffId;
    }
    /**
    * 设置 员工ID
    * @param staffId
    */
    public void setStaffId(Long staffId){
        this.staffId = staffId;
    }
    /**
    * 获取 员工姓名
    * @return String
    */
    public String getStaffName(){
        return staffName;
    }
    /**
    * 设置 员工姓名
    * @param staffName
    */
    public void setStaffName(String staffName){
        this.staffName = staffName;
    }
    /**
    * 获取 工号
    * @return String
    */
    public String getWorkNum(){
        return workNum;
    }
    /**
    * 设置 工号
    * @param workNum
    */
    public void setWorkNum(String workNum){
        this.workNum = workNum;
    }
    /**
    * 获取 所属部门
    * @return Long
    */
    public Long getDeptId(){
        return deptId;
    }
    /**
    * 设置 所属部门
    * @param deptId
    */
    public void setDeptId(Long deptId){
        this.deptId = deptId;
    }
    /**
    * 获取 所属部门名称
    * @return String
    */
    public String getDeptName(){
        return deptName;
    }
    /**
    * 设置 所属部门名称
    * @param deptName
    */
    public void setDeptName(String deptName){
        this.deptName = deptName;
    }
    /**
    * 获取 职位ID
    * @return Long
    */
    public Long getPositionId(){
        return positionId;
    }
    /**
    * 设置 职位ID
    * @param positionId
    */
    public void setPositionId(Long positionId){
        this.positionId = positionId;
    }
    /**
    * 获取 职位名称
    * @return String
    */
    public String getPositionName(){
        return positionName;
    }
    /**
    * 设置 职位名称
    * @param positionName
    */
    public void setPositionName(String positionName){
        this.positionName = positionName;
    }
    /**
    * 获取 所属考勤组ID
    * @return Long
    */
    public Long getAttendanceGroupId(){
        return attendanceGroupId;
    }
    /**
    * 设置 所属考勤组ID
    * @param attendanceGroupId
    */
    public void setAttendanceGroupId(Long attendanceGroupId){
        this.attendanceGroupId = attendanceGroupId;
    }
    /**
    * 获取 所属考勤组名称
    * @return String
    */
    public String getAttendanceGroupName(){
        return attendanceGroupName;
    }
    /**
    * 设置 所属考勤组名称
    * @param attendanceGroupName
    */
    public void setAttendanceGroupName(String attendanceGroupName){
        this.attendanceGroupName = attendanceGroupName;
    }
    /**
    * 获取 班次ID
    * @return Long
    */
    public Long getShiftsId(){
        return shiftsId;
    }
    /**
    * 设置 班次ID
    * @param shiftsId
    */
    public void setShiftsId(Long shiftsId){
        this.shiftsId = shiftsId;
    }
    /**
    * 获取 班次名称
    * @return String
    */
    public String getShiftsName(){
        return shiftsName;
    }
    /**
    * 设置 班次名称
    * @param shiftsName
    */
    public void setShiftsName(String shiftsName){
        this.shiftsName = shiftsName;
    }
    /**
    * 获取 上下班时间
    * @return Date
    */
    public Date getGoOffDateTime(){
        return goOffDateTime;
    }
    /**
    * 设置 上下班时间
    * @param goOffDateTime
    */
    public void setGoOffDateTime(Date goOffDateTime){
        this.goOffDateTime = goOffDateTime;
    }
    /**
    * 获取 异常时间
    * @return Date
    */
    public Date getErrorDateTime(){
        return errorDateTime;
    }
    /**
    * 设置 异常时间
    * @param errorDateTime
    */
    public void setErrorDateTime(Date errorDateTime){
        this.errorDateTime = errorDateTime;
    }
    /**
    * 获取 实际打卡时间
    * @return Date
    */
    public Date getActualAttendanceDateTime(){
        return actualAttendanceDateTime;
    }
    /**
    * 设置 实际打卡时间
    * @param actualAttendanceDateTime
    */
    public void setActualAttendanceDateTime(Date actualAttendanceDateTime){
        this.actualAttendanceDateTime = actualAttendanceDateTime;
    }
    /**
    * 获取 处理时间
    * @return Date
    */
    public Date getOperDateTime(){
        return operDateTime;
    }
    /**
    * 设置 处理时间
    * @param operDateTime
    */
    public void setOperDateTime(Date operDateTime){
        this.operDateTime = operDateTime;
    }
    /**
    * 获取 处理人
    * @return String
    */
    public String getOpertor(){
        return opertor;
    }
    /**
    * 设置 处理人
    * @param opertor
    */
    public void setOpertor(String opertor){
        this.opertor = opertor;
    }
    /**
    * 获取 异常状态(0.缺卡,1.早退,2.缺卡)
    * @return Integer
    */
    public Integer getErrorStatus(){
        return errorStatus;
    }
    /**
    * 设置 异常状态(0.缺卡,1.早退,2.缺卡)
    * @param errorStatus
    */
    public void setErrorStatus(Integer errorStatus){
        this.errorStatus = errorStatus;
    }
    /**
    * 获取 处理状态(0.未处理,1.已处理)
    * @return Integer
    */
    public Integer getProcessStatus(){
        return processStatus;
    }
    /**
    * 设置 处理状态(0.未处理,1.已处理)
    * @param processStatus
    */
    public void setProcessStatus(Integer processStatus){
        this.processStatus = processStatus;
    }
    /**
    * 获取 处理结果
    * @return String
    */
    public String getProcessResult(){
        return processResult;
    }
    /**
    * 设置 处理结果
    * @param processResult
    */
    public void setProcessResult(String processResult){
        this.processResult = processResult;
    }
    /**
    * 获取 备注
    * @return String
    */
    public String getRemark(){
        return remark;
    }
    /**
    * 设置 备注
    * @param remark
    */
    public void setRemark(String remark){
        this.remark = remark;
    }




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

    public String toString(){
        StringBuilder sb = new StringBuilder("");
        sb.append(",staffId:").append(getStaffId());
        sb.append(",staffName:").append(getStaffName());
        sb.append(",workNum:").append(getWorkNum());
        sb.append(",deptId:").append(getDeptId());
        sb.append(",deptName:").append(getDeptName());
        sb.append(",positionId:").append(getPositionId());
        sb.append(",positionName:").append(getPositionName());
        sb.append(",attendanceGroupId:").append(getAttendanceGroupId());
        sb.append(",attendanceGroupName:").append(getAttendanceGroupName());
        sb.append(",shiftsId:").append(getShiftsId());
        sb.append(",shiftsName:").append(getShiftsName());
        sb.append(",goOffDateTime:").append(getGoOffDateTime());
        sb.append(",errorDateTime:").append(getErrorDateTime());
        sb.append(",actualAttendanceDateTime:").append(getActualAttendanceDateTime());
        sb.append(",operDateTime:").append(getOperDateTime());
        sb.append(",opertor:").append(getOpertor());
        sb.append(",errorStatus:").append(getErrorStatus());
        sb.append(",processStatus:").append(getProcessStatus());
        sb.append(",processResult:").append(getProcessResult());
        sb.append(",remark:").append(getRemark());
        return sb.toString();
    }

    public void initAttrValue(){

            this.staffId = null;

            this.staffName = "";

            this.workNum = "";

            this.deptId = null;

            this.deptName = "";

            this.positionId = null;

            this.positionName = "";

            this.attendanceGroupId = null;

            this.attendanceGroupName = "";

            this.shiftsId = null;

            this.shiftsName = "";

            this.goOffDateTime = null;

            this.errorDateTime = null;

            this.actualAttendanceDateTime = null;

            this.operDateTime = null;

            this.opertor = "";

            this.errorStatus = 0;

            this.processStatus = 0;

            this.processResult = "";

            this.remark = "";
    }
}
