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

import java.math.BigDecimal;
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.attendance.model.vo.AttendanceVacationBalanceVo;
/**
* 员工假期余额信息实体对象
*
* @author zxfei
* @date 2023-04-07
*/

public class AttendanceVacationBalanceEntity extends AttendanceVacationBalanceVo {
    private static final long serialVersionUID = 1L;

    /**
    * 员工id
    */
    @Excel(name = "员工id")
    private Long staffId;
    /**
    * 员工姓名
    */
    private String staffName;
    /**
    * 部门id
    */
    private Long deptId;
    /**
    * 部门名称
    */
    private String deptName;
    /**
    * 入职时间
    */
    private Date entryTime;
    /**
    * 事假（天）
    */
    private BigDecimal personalLeaveDays;
    /**
    * 调休（天）
    */
    private BigDecimal compensatedLeaveDays;
    /**
    * 病假（天）
    */
    private BigDecimal sickLeaveDays;
    /**
    * 年假（天）
    */
    private BigDecimal annualLeaveDays;
    /**
    * 婚假（天）
    */
    private BigDecimal marriageLeaveDays;
    /**
    * 备注
    */
    private String remark;



    public AttendanceVacationBalanceEntity(){}
    /**
    * 获取 员工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;
    }
    /**
    * 获取 部门id
    * @return Long
    */
    public Long getDeptId(){
        return deptId;
    }
    /**
    * 设置 部门id
    * @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;
    }
    /**
    * 获取 入职时间
    * @return Date
    */
    public Date getEntryTime(){
        return entryTime;
    }
    /**
    * 设置 入职时间
    * @param entryTime
    */
    public void setEntryTime(Date entryTime){
        this.entryTime = entryTime;
    }
    /**
    * 获取 事假（天）
    * @return BigDecimal
    */
    public BigDecimal getPersonalLeaveDays(){
        return personalLeaveDays;
    }
    /**
    * 设置 事假（天）
    * @param personalLeaveDays
    */
    public void setPersonalLeaveDays(BigDecimal personalLeaveDays){
        this.personalLeaveDays = personalLeaveDays;
    }
    /**
    * 获取 调休（天）
    * @return BigDecimal
    */
    public BigDecimal getCompensatedLeaveDays(){
        return compensatedLeaveDays;
    }
    /**
    * 设置 调休（天）
    * @param compensatedLeaveDays
    */
    public void setCompensatedLeaveDays(BigDecimal compensatedLeaveDays){
        this.compensatedLeaveDays = compensatedLeaveDays;
    }
    /**
    * 获取 病假（天）
    * @return BigDecimal
    */
    public BigDecimal getSickLeaveDays(){
        return sickLeaveDays;
    }
    /**
    * 设置 病假（天）
    * @param sickLeaveDays
    */
    public void setSickLeaveDays(BigDecimal sickLeaveDays){
        this.sickLeaveDays = sickLeaveDays;
    }
    /**
    * 获取 年假（天）
    * @return BigDecimal
    */
    public BigDecimal getAnnualLeaveDays(){
        return annualLeaveDays;
    }
    /**
    * 设置 年假（天）
    * @param annualLeaveDays
    */
    public void setAnnualLeaveDays(BigDecimal annualLeaveDays){
        this.annualLeaveDays = annualLeaveDays;
    }
    /**
    * 获取 婚假（天）
    * @return BigDecimal
    */
    public BigDecimal getMarriageLeaveDays(){
        return marriageLeaveDays;
    }
    /**
    * 设置 婚假（天）
    * @param marriageLeaveDays
    */
    public void setMarriageLeaveDays(BigDecimal marriageLeaveDays){
        this.marriageLeaveDays = marriageLeaveDays;
    }
    /**
    * 获取 备注
    * @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 AttendanceVacationBalanceEntity) {
            AttendanceVacationBalanceEntity tmp = (AttendanceVacationBalanceEntity) 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(",deptId:").append(getDeptId());
        sb.append(",deptName:").append(getDeptName());
        sb.append(",entryTime:").append(getEntryTime());
        sb.append(",personalLeaveDays:").append(getPersonalLeaveDays());
        sb.append(",compensatedLeaveDays:").append(getCompensatedLeaveDays());
        sb.append(",sickLeaveDays:").append(getSickLeaveDays());
        sb.append(",annualLeaveDays:").append(getAnnualLeaveDays());
        sb.append(",marriageLeaveDays:").append(getMarriageLeaveDays());
        sb.append(",remark:").append(getRemark());
        return sb.toString();
    }

    public void initAttrValue(){

            this.staffId = null;

            this.staffName = "";

            this.deptId = null;

            this.deptName = "";

            this.entryTime = null;

            this.personalLeaveDays = BigDecimal.valueOf(0);

            this.compensatedLeaveDays = BigDecimal.valueOf(0);

            this.sickLeaveDays = BigDecimal.valueOf(0);

            this.annualLeaveDays = BigDecimal.valueOf(0);

            this.marriageLeaveDays = BigDecimal.valueOf(0);

            this.remark = "";
    }
}