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.AttendanceClassDetailVo;
/**
* 考勤班次详细信息实体对象
*
* @author zxfei
* @date 2023-04-08
*/

public class AttendanceClassDetailEntity extends AttendanceClassDetailVo {
    private static final long serialVersionUID = 1L;

    /**
    * 班次ID
    */
    private Long classId;
    /**
    * 班次名称
    */
    private String className;
    /**
    * 上班打卡时间
    */
    @JsonFormat(pattern = "HH:mm")
    @JSONField(format = "HH:mm")
    private Date goWorkDate;
    /**
    * 上班打卡前时间段,单位分钟
    */
    private Integer goWorkDateBefore;
    /**
    * 上班打卡前时间段,单位分钟
    */
    private Integer goWorkDateAfter;
    /**
    * 下班打卡时间
    */
    @JsonFormat(pattern = "HH:mm")
    @JSONField(format = "HH:mm")
    private Date offWorkDate;
    /**
    * 下班打卡前时间段,单位分钟
    */
    private Integer offWorkDateBefore;
    /**
    * 下班打卡前时间段,单位分钟
    */
    private Integer offWorkDateAfter;
    /**
    * 备注
    */
    private String remark;



    public AttendanceClassDetailEntity(){}
    /**
    * 获取 班次ID
    * @return Long
    */
    public Long getClassId(){
        return classId;
    }
    /**
    * 设置 班次ID
    * @param classId
    */
    public void setClassId(Long classId){
        this.classId = classId;
    }
    /**
    * 获取 班次名称
    * @return String
    */
    public String getClassName(){
        return className;
    }
    /**
    * 设置 班次名称
    * @param className
    */
    public void setClassName(String className){
        this.className = className;
    }
    /**
    * 获取 上班打卡时间
    * @return Date
    */
    public Date getGoWorkDate(){
        return goWorkDate;
    }
    /**
    * 设置 上班打卡时间
    * @param goWorkDate
    */
    public void setGoWorkDate(Date goWorkDate){
        this.goWorkDate = goWorkDate;
    }
    /**
    * 获取 上班打卡前时间段,单位分钟
    * @return Integer
    */
    public Integer getGoWorkDateBefore(){
        return goWorkDateBefore;
    }
    /**
    * 设置 上班打卡前时间段,单位分钟
    * @param goWorkDateBefore
    */
    public void setGoWorkDateBefore(Integer goWorkDateBefore){
        this.goWorkDateBefore = goWorkDateBefore;
    }
    /**
    * 获取 上班打卡前时间段,单位分钟
    * @return Integer
    */
    public Integer getGoWorkDateAfter(){
        return goWorkDateAfter;
    }
    /**
    * 设置 上班打卡前时间段,单位分钟
    * @param goWorkDateAfter
    */
    public void setGoWorkDateAfter(Integer goWorkDateAfter){
        this.goWorkDateAfter = goWorkDateAfter;
    }
    /**
    * 获取 下班打卡时间
    * @return Date
    */
    public Date getOffWorkDate(){
        return offWorkDate;
    }
    /**
    * 设置 下班打卡时间
    * @param offWorkDate
    */
    public void setOffWorkDate(Date offWorkDate){
        this.offWorkDate = offWorkDate;
    }
    /**
    * 获取 下班打卡前时间段,单位分钟
    * @return Integer
    */
    public Integer getOffWorkDateBefore(){
        return offWorkDateBefore;
    }
    /**
    * 设置 下班打卡前时间段,单位分钟
    * @param offWorkDateBefore
    */
    public void setOffWorkDateBefore(Integer offWorkDateBefore){
        this.offWorkDateBefore = offWorkDateBefore;
    }
    /**
    * 获取 下班打卡前时间段,单位分钟
    * @return Integer
    */
    public Integer getOffWorkDateAfter(){
        return offWorkDateAfter;
    }
    /**
    * 设置 下班打卡前时间段,单位分钟
    * @param offWorkDateAfter
    */
    public void setOffWorkDateAfter(Integer offWorkDateAfter){
        this.offWorkDateAfter = offWorkDateAfter;
    }
    /**
    * 获取 备注
    * @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 AttendanceClassDetailEntity) {
            AttendanceClassDetailEntity tmp = (AttendanceClassDetailEntity) obj;
            if (this.getId() == tmp.getId()) {
                 return true;
            }
        }
        return false;
    }

    public String toString(){
        StringBuilder sb = new StringBuilder("");
        sb.append(",classId:").append(getClassId());
        sb.append(",className:").append(getClassName());
        sb.append(",goWorkDate:").append(getGoWorkDate());
        sb.append(",goWorkDateBefore:").append(getGoWorkDateBefore());
        sb.append(",goWorkDateAfter:").append(getGoWorkDateAfter());
        sb.append(",offWorkDate:").append(getOffWorkDate());
        sb.append(",offWorkDateBefore:").append(getOffWorkDateBefore());
        sb.append(",offWorkDateAfter:").append(getOffWorkDateAfter());
        sb.append(",remark:").append(getRemark());
        return sb.toString();
    }

    public void initAttrValue(){

            this.classId = null;

            this.className = "";

            this.goWorkDate = null;

            this.goWorkDateBefore = null;

            this.goWorkDateAfter = null;

            this.offWorkDate = null;

            this.offWorkDateBefore = null;

            this.offWorkDateAfter = null;

            this.remark = "";
    }
}
