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

import com.mortals.framework.annotation.Excel;
import com.mortals.xhx.module.attendance.model.vo.AttendanceVacationBalanceVo;

import java.math.BigDecimal;
import java.util.Date;
/**
 * 员工假期余额信息实体对象
 *
 * @author zxfei
 * @date 2023-04-14
 */

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

    /**
     * 员工id
     */
    private Long staffId;
    /**
     * 员工姓名
     */
    @Excel(name = "员工姓名")
    private String staffName;
    /**
     * 部门id
     */
    private Long deptId;
    /**
     * 部门名称
     */
    @Excel(name = "部门名称")
    private String deptName;
    /**
     * 入职时间
     */
    @Excel(name = "入职时间")
    private Date entryTime;
    /**
     * 事假（天）
     */
    @Excel(name = "事假（天）")
    private BigDecimal personalLeaveDays;
    /**
     * 调休（天）
     */
    @Excel(name = "调休（天）")
    private BigDecimal compensatedLeaveDays;
    /**
     * 病假（天）
     */
    @Excel(name = "病假（天）")
    private BigDecimal sickLeaveDays;
    /**
     * 年假（天）
     */
    @Excel(name = "年假（天）")
    private BigDecimal annualLeaveDays;
    /**
     * 婚假（天）
     */
    @Excel(name = "婚假（天）")
    private BigDecimal marriageLeaveDays;
    /**
     * 备注
     */
    @Excel(name = "备注")
    private String remark;
    /**
     * 产假（天）
     */
    @Excel(name = "产假（天）")
    private BigDecimal maternityLeaveDays;
    /**
     * 陪产假（天）
     */
    @Excel(name = "陪产假（天）")
    private BigDecimal paternityLeaveDays;
    /**
     * 例假（天）
     */
    @Excel(name = "例假（天）")
    private BigDecimal menstrualLeaveDays;
    /**
     * 哺乳假（天）
     */
    @Excel(name = "哺乳假（天）")
    private BigDecimal breastfeedingLeaveDays;
    /**
     * 丧假（天）
     */
    @Excel(name = "丧假（天）")
    private BigDecimal bereavementLeaveDays;
    /**
     * 回单位（天）
     */
    @Excel(name = "回单位（天）")
    private BigDecimal backToUnit;
    /**
     * 因公请假（天）
     */
    @Excel(name = "因公请假（天）")
    private BigDecimal onDutyLeave;
    /**
     * 外出勘验（天）
     */
    @Excel(name = "外出勘验（天）")
    private BigDecimal outOfOffice;
    /**
     * 值班补班（天）
     */
    @Excel(name = "值班补班（天）")
    private BigDecimal shiftCompensation;
    /**
     * 体检（天）
     */
    @Excel(name = "体检（天）")
    private BigDecimal physicalExamination;
    /**
     * 隔离（天）
     */
    @Excel(name = "隔离（天）")
    private BigDecimal quarantine;
    /**
     * 因公外出（与窗口工作无关/天）
     */
    @Excel(name = "因公外出（与窗口工作无关/天）")
    private BigDecimal businessTrip;
    /**
     * 公休（天）
     */
    @Excel(name = "公休（天）")
    private BigDecimal publicHoliday;
    /**
     * 育儿假（天）
     */
    @Excel(name = "育儿假（天）")
    private BigDecimal childRearingLeave;
    /**
     * 调回单位（或离职/天）
     */
    @Excel(name = "调回单位（或离职/天）")
    private BigDecimal transferBack;
    /**
     * 探亲假（天）
     */
    @Excel(name = "探亲假（天")
    private BigDecimal homeLeave;



    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;
    }
    /**
     * 获取 产假（天）
     * @return BigDecimal
     */
    public BigDecimal getMaternityLeaveDays(){
        return maternityLeaveDays;
    }
    /**
     * 设置 产假（天）
     * @param maternityLeaveDays
     */
    public void setMaternityLeaveDays(BigDecimal maternityLeaveDays){
        this.maternityLeaveDays = maternityLeaveDays;
    }
    /**
     * 获取 陪产假（天）
     * @return BigDecimal
     */
    public BigDecimal getPaternityLeaveDays(){
        return paternityLeaveDays;
    }
    /**
     * 设置 陪产假（天）
     * @param paternityLeaveDays
     */
    public void setPaternityLeaveDays(BigDecimal paternityLeaveDays){
        this.paternityLeaveDays = paternityLeaveDays;
    }
    /**
     * 获取 例假（天）
     * @return BigDecimal
     */
    public BigDecimal getMenstrualLeaveDays(){
        return menstrualLeaveDays;
    }
    /**
     * 设置 例假（天）
     * @param menstrualLeaveDays
     */
    public void setMenstrualLeaveDays(BigDecimal menstrualLeaveDays){
        this.menstrualLeaveDays = menstrualLeaveDays;
    }
    /**
     * 获取 哺乳假（天）
     * @return BigDecimal
     */
    public BigDecimal getBreastfeedingLeaveDays(){
        return breastfeedingLeaveDays;
    }
    /**
     * 设置 哺乳假（天）
     * @param breastfeedingLeaveDays
     */
    public void setBreastfeedingLeaveDays(BigDecimal breastfeedingLeaveDays){
        this.breastfeedingLeaveDays = breastfeedingLeaveDays;
    }
    /**
     * 获取 丧假（天）
     * @return BigDecimal
     */
    public BigDecimal getBereavementLeaveDays(){
        return bereavementLeaveDays;
    }
    /**
     * 设置 丧假（天）
     * @param bereavementLeaveDays
     */
    public void setBereavementLeaveDays(BigDecimal bereavementLeaveDays){
        this.bereavementLeaveDays = bereavementLeaveDays;
    }
    /**
     * 获取 回单位（天）
     * @return BigDecimal
     */
    public BigDecimal getBackToUnit(){
        return backToUnit;
    }
    /**
     * 设置 回单位（天）
     * @param backToUnit
     */
    public void setBackToUnit(BigDecimal backToUnit){
        this.backToUnit = backToUnit;
    }
    /**
     * 获取 因公请假（天）
     * @return BigDecimal
     */
    public BigDecimal getOnDutyLeave(){
        return onDutyLeave;
    }
    /**
     * 设置 因公请假（天）
     * @param onDutyLeave
     */
    public void setOnDutyLeave(BigDecimal onDutyLeave){
        this.onDutyLeave = onDutyLeave;
    }
    /**
     * 获取 外出勘验（天）
     * @return BigDecimal
     */
    public BigDecimal getOutOfOffice(){
        return outOfOffice;
    }
    /**
     * 设置 外出勘验（天）
     * @param outOfOffice
     */
    public void setOutOfOffice(BigDecimal outOfOffice){
        this.outOfOffice = outOfOffice;
    }
    /**
     * 获取 值班补班（天）
     * @return BigDecimal
     */
    public BigDecimal getShiftCompensation(){
        return shiftCompensation;
    }
    /**
     * 设置 值班补班（天）
     * @param shiftCompensation
     */
    public void setShiftCompensation(BigDecimal shiftCompensation){
        this.shiftCompensation = shiftCompensation;
    }
    /**
     * 获取 体检（天）
     * @return BigDecimal
     */
    public BigDecimal getPhysicalExamination(){
        return physicalExamination;
    }
    /**
     * 设置 体检（天）
     * @param physicalExamination
     */
    public void setPhysicalExamination(BigDecimal physicalExamination){
        this.physicalExamination = physicalExamination;
    }
    /**
     * 获取 隔离（天）
     * @return BigDecimal
     */
    public BigDecimal getQuarantine(){
        return quarantine;
    }
    /**
     * 设置 隔离（天）
     * @param quarantine
     */
    public void setQuarantine(BigDecimal quarantine){
        this.quarantine = quarantine;
    }
    /**
     * 获取 因公外出（与窗口工作无关/天）
     * @return BigDecimal
     */
    public BigDecimal getBusinessTrip(){
        return businessTrip;
    }
    /**
     * 设置 因公外出（与窗口工作无关/天）
     * @param businessTrip
     */
    public void setBusinessTrip(BigDecimal businessTrip){
        this.businessTrip = businessTrip;
    }
    /**
     * 获取 公休（天）
     * @return BigDecimal
     */
    public BigDecimal getPublicHoliday(){
        return publicHoliday;
    }
    /**
     * 设置 公休（天）
     * @param publicHoliday
     */
    public void setPublicHoliday(BigDecimal publicHoliday){
        this.publicHoliday = publicHoliday;
    }
    /**
     * 获取 育儿假（天）
     * @return BigDecimal
     */
    public BigDecimal getChildRearingLeave(){
        return childRearingLeave;
    }
    /**
     * 设置 育儿假（天）
     * @param childRearingLeave
     */
    public void setChildRearingLeave(BigDecimal childRearingLeave){
        this.childRearingLeave = childRearingLeave;
    }
    /**
     * 获取 调回单位（或离职/天）
     * @return BigDecimal
     */
    public BigDecimal getTransferBack(){
        return transferBack;
    }
    /**
     * 设置 调回单位（或离职/天）
     * @param transferBack
     */
    public void setTransferBack(BigDecimal transferBack){
        this.transferBack = transferBack;
    }
    /**
     * 获取 探亲假（天）
     * @return BigDecimal
     */
    public BigDecimal getHomeLeave(){
        return homeLeave;
    }
    /**
     * 设置 探亲假（天）
     * @param homeLeave
     */
    public void setHomeLeave(BigDecimal homeLeave){
        this.homeLeave = homeLeave;
    }




    @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());
        sb.append(",maternityLeaveDays:").append(getMaternityLeaveDays());
        sb.append(",paternityLeaveDays:").append(getPaternityLeaveDays());
        sb.append(",menstrualLeaveDays:").append(getMenstrualLeaveDays());
        sb.append(",breastfeedingLeaveDays:").append(getBreastfeedingLeaveDays());
        sb.append(",bereavementLeaveDays:").append(getBereavementLeaveDays());
        sb.append(",backToUnit:").append(getBackToUnit());
        sb.append(",onDutyLeave:").append(getOnDutyLeave());
        sb.append(",outOfOffice:").append(getOutOfOffice());
        sb.append(",shiftCompensation:").append(getShiftCompensation());
        sb.append(",physicalExamination:").append(getPhysicalExamination());
        sb.append(",quarantine:").append(getQuarantine());
        sb.append(",businessTrip:").append(getBusinessTrip());
        sb.append(",publicHoliday:").append(getPublicHoliday());
        sb.append(",childRearingLeave:").append(getChildRearingLeave());
        sb.append(",transferBack:").append(getTransferBack());
        sb.append(",homeLeave:").append(getHomeLeave());
        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 = "";

        this.maternityLeaveDays = BigDecimal.valueOf(0);

        this.paternityLeaveDays = BigDecimal.valueOf(0);

        this.menstrualLeaveDays = BigDecimal.valueOf(0);

        this.breastfeedingLeaveDays = BigDecimal.valueOf(0);

        this.bereavementLeaveDays = BigDecimal.valueOf(0);

        this.backToUnit = BigDecimal.valueOf(0);

        this.onDutyLeave = BigDecimal.valueOf(0);

        this.outOfOffice = BigDecimal.valueOf(0);

        this.shiftCompensation = BigDecimal.valueOf(0);

        this.physicalExamination = BigDecimal.valueOf(0);

        this.quarantine = BigDecimal.valueOf(0);

        this.businessTrip = BigDecimal.valueOf(0);

        this.publicHoliday = BigDecimal.valueOf(0);

        this.childRearingLeave = BigDecimal.valueOf(0);

        this.transferBack = BigDecimal.valueOf(0);

        this.homeLeave = BigDecimal.valueOf(0);
    }
}