package com.willalp.vacation.domain;

import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.willalp.common.annotation.Excel;
import com.willalp.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 假期剩余对象 hs_vacation_surplus
 *
 * @author willalp
 * @date 2023-03-19
 */

@TableName("hs_vacation_surplus")
public class HsVacationSurplus extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private String id;

    /** 姓名 */
    @Excel(name = "姓名")
    private String name;

    /** 工号 */
    @Excel(name = "工号")
    private String jobNo;

    /** 部门 */
    @Excel(name = "部门")
    private String department;

    /** 入职时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "入职时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date entryTime;

    /** 首次工作时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "首次工作时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date firstTime;

    /** 年假(天) */
    @Excel(name = "年假(天)")
    private String annualLeave;

    /** 事假(天) */
    @Excel(name = "事假(天)")
    private String matterLeave;

    /** 病假(天) */
    @Excel(name = "病假(天)")
    private String illnessLeave;

    /** 调休(天) */
    @Excel(name = "调休(天)")
    private String adjustLeave;

    /** 产假(天) */
    @Excel(name = "产假(天)")
    private String bearLeave;

    /** 陪产假(天) */
    @Excel(name = "陪产假(天)")
    private String accompanyBearLeave;

    /** 婚假(天) */
    @Excel(name = "婚假(天)")
    private String marriedLeave;

    /** 丧假(天) */
    @Excel(name = "丧假(天)")
    private String funeralLeave;

    /** 哺乳假(天) */
    @Excel(name = "哺乳假(天)")
    private String lactationLeave;

    /** 育儿假(天) */
    @Excel(name = "育儿假(天)")
    private String childcareLeave;

    /** 是否删除（0.未删除；1.已删除） */
    @Excel(name = "是否删除", readConverterExp = "0=.未删除；1.已删除")
    @TableLogic
    private Integer isDelete;

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

    public String getId()
    {
        return id;
    }
    public void setName(String name)
    {
        this.name = name;
    }

    public String getName()
    {
        return name;
    }
    public void setJobNo(String jobNo)
    {
        this.jobNo = jobNo;
    }

    public String getJobNo()
    {
        return jobNo;
    }
    public void setDepartment(String department)
    {
        this.department = department;
    }

    public String getDepartment()
    {
        return department;
    }
    public void setEntryTime(Date entryTime)
    {
        this.entryTime = entryTime;
    }

    public Date getEntryTime()
    {
        return entryTime;
    }
    public void setFirstTime(Date firstTime)
    {
        this.firstTime = firstTime;
    }

    public Date getFirstTime()
    {
        return firstTime;
    }
    public void setAnnualLeave(String annualLeave)
    {
        this.annualLeave = annualLeave;
    }

    public String getAnnualLeave()
    {
        return annualLeave;
    }
    public void setMatterLeave(String matterLeave)
    {
        this.matterLeave = matterLeave;
    }

    public String getMatterLeave()
    {
        return matterLeave;
    }
    public void setIllnessLeave(String illnessLeave)
    {
        this.illnessLeave = illnessLeave;
    }

    public String getIllnessLeave()
    {
        return illnessLeave;
    }
    public void setAdjustLeave(String adjustLeave)
    {
        this.adjustLeave = adjustLeave;
    }

    public String getAdjustLeave()
    {
        return adjustLeave;
    }
    public void setBearLeave(String bearLeave)
    {
        this.bearLeave = bearLeave;
    }

    public String getBearLeave()
    {
        return bearLeave;
    }
    public void setAccompanyBearLeave(String accompanyBearLeave)
    {
        this.accompanyBearLeave = accompanyBearLeave;
    }

    public String getAccompanyBearLeave()
    {
        return accompanyBearLeave;
    }
    public void setMarriedLeave(String marriedLeave)
    {
        this.marriedLeave = marriedLeave;
    }

    public String getMarriedLeave()
    {
        return marriedLeave;
    }
    public void setFuneralLeave(String funeralLeave)
    {
        this.funeralLeave = funeralLeave;
    }

    public String getFuneralLeave()
    {
        return funeralLeave;
    }
    public void setLactationLeave(String lactationLeave)
    {
        this.lactationLeave = lactationLeave;
    }

    public String getLactationLeave()
    {
        return lactationLeave;
    }
    public void setChildcareLeave(String childcareLeave)
    {
        this.childcareLeave = childcareLeave;
    }

    public String getChildcareLeave()
    {
        return childcareLeave;
    }
    public void setIsDelete(Integer isDelete)
    {
        this.isDelete = isDelete;
    }

    public Integer getIsDelete()
    {
        return isDelete;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("name", getName())
            .append("jobNo", getJobNo())
            .append("department", getDepartment())
            .append("entryTime", getEntryTime())
            .append("firstTime", getFirstTime())
            .append("annualLeave", getAnnualLeave())
            .append("matterLeave", getMatterLeave())
            .append("illnessLeave", getIllnessLeave())
            .append("adjustLeave", getAdjustLeave())
            .append("bearLeave", getBearLeave())
            .append("accompanyBearLeave", getAccompanyBearLeave())
            .append("marriedLeave", getMarriedLeave())
            .append("funeralLeave", getFuneralLeave())
            .append("lactationLeave", getLactationLeave())
            .append("childcareLeave", getChildcareLeave())
            .append("isDelete", getIsDelete())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
