package com.willalp.stat.domain;

import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
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_stat_clocking_in
 *
 * @author willalp
 * @date 2022-08-03
 */

@TableName(value = "hs_stat_clocking_in", autoResultMap = true)
public class HsStatClockingIn extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    private String id;

    /**
     * 用户编号
     */
    @Excel(name = "用户编号")
    private String userCode;

    /**
     * 考勤月份
     */
    @Excel(name = "考勤月份")
    private String clockingInMonth;

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

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

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

    /**
     * (A)累积积休
     */
    @Excel(name = "(A)累积积休")
    private String upLjjx;

    /**
     * (A)公休
     */
    @Excel(name = "(A)公休")
    private String upWorkLeave;

    /**
     * (A)疫情增休
     */
    @Excel(name = "(A)疫情增休")
    private String upYqAddLeave;

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

    /**
     * (A)育儿假截至时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "(A)育儿假截至时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date upParentalLeaveEndTime;

    /**
     * (B)应出勤
     */
    @Excel(name = "(B)应出勤")
    private String thisShouldJob;

    /**
     * (B)已出勤
     */
    @Excel(name = "(B)已出勤")
    private String thisAlreadyJob;

    /**
     * (C)事假
     */
    @Excel(name = "(C)事假")
    private String thisPersonalLeave;

    /**
     * (C)病假
     */
    @Excel(name = "(C)病假")
    private String thisSickLeave;

    /**
     * (C)积休
     */
    @Excel(name = "(C)积休")
    private String thisProductLeave;

    /**
     * (C)公休
     */
    @Excel(name = "(C)公休")
    private String thisWorkLeave;

    /**
     * (C)增休
     */
    @Excel(name = "(C)增休")
    private String thisAddLeave;

    /**
     * (D)育儿假
     */
    @Excel(name = "(D)育儿假")
    private String thisSumParentalLeave;

    /**
     * (D)累计积休
     */
    @Excel(name = "(D)累计积休")
    private String thisSumLjjx;

    /**
     * (D)公休
     */
    @Excel(name = "(D)公休")
    private String thisSumWorkLeave;

    /**
     * (D)疫情增休
     */
    @Excel(name = "(D)疫情增休")
    private String thisSumYqAddLeave;

    /**
     * 1-31天出勤JSON串
     */
    @TableField(typeHandler = FastjsonTypeHandler.class)
    private JSONArray zend;

    /**
     * 绑定机构编号
     */
    private String orgCode;

    /**
     * 是否删除(0.未删除；1.已删除)
     */
    @TableLogic
    private Integer isDelete;

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

    public String getId() {
        return id;
    }

    public void setUserCode(String userCode) {
        this.userCode = userCode;
    }

    public String getUserCode() {
        return userCode;
    }

    public void setClockingInMonth(String clockingInMonth) {
        this.clockingInMonth = clockingInMonth;
    }

    public String getClockingInMonth() {
        return clockingInMonth;
    }

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

    public String getJobNo() {
        return jobNo;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getUserName() {
        return userName;
    }

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

    public String getDepartment() {
        return department;
    }

    public void setUpLjjx(String upLjjx) {
        this.upLjjx = upLjjx;
    }

    public String getUpLjjx() {
        return upLjjx;
    }

    public void setUpWorkLeave(String upWorkLeave) {
        this.upWorkLeave = upWorkLeave;
    }

    public String getUpWorkLeave() {
        return upWorkLeave;
    }

    public void setUpYqAddLeave(String upYqAddLeave) {
        this.upYqAddLeave = upYqAddLeave;
    }

    public String getUpYqAddLeave() {
        return upYqAddLeave;
    }

    public void setUpParentalLeave(String upParentalLeave) {
        this.upParentalLeave = upParentalLeave;
    }

    public String getUpParentalLeave() {
        return upParentalLeave;
    }

    public void setUpParentalLeaveEndTime(Date upParentalLeaveEndTime) {
        this.upParentalLeaveEndTime = upParentalLeaveEndTime;
    }

    public Date getUpParentalLeaveEndTime() {
        return upParentalLeaveEndTime;
    }

    public void setThisShouldJob(String thisShouldJob) {
        this.thisShouldJob = thisShouldJob;
    }

    public String getThisShouldJob() {
        return thisShouldJob;
    }

    public void setThisAlreadyJob(String thisAlreadyJob) {
        this.thisAlreadyJob = thisAlreadyJob;
    }

    public String getThisAlreadyJob() {
        return thisAlreadyJob;
    }

    public void setThisPersonalLeave(String thisPersonalLeave) {
        this.thisPersonalLeave = thisPersonalLeave;
    }

    public String getThisPersonalLeave() {
        return thisPersonalLeave;
    }

    public void setThisSickLeave(String thisSickLeave) {
        this.thisSickLeave = thisSickLeave;
    }

    public String getThisSickLeave() {
        return thisSickLeave;
    }

    public void setThisProductLeave(String thisProductLeave) {
        this.thisProductLeave = thisProductLeave;
    }

    public String getThisProductLeave() {
        return thisProductLeave;
    }

    public void setThisWorkLeave(String thisWorkLeave) {
        this.thisWorkLeave = thisWorkLeave;
    }

    public String getThisWorkLeave() {
        return thisWorkLeave;
    }

    public void setThisAddLeave(String thisAddLeave) {
        this.thisAddLeave = thisAddLeave;
    }

    public String getThisAddLeave() {
        return thisAddLeave;
    }

    public void setThisSumParentalLeave(String thisSumParentalLeave) {
        this.thisSumParentalLeave = thisSumParentalLeave;
    }

    public String getThisSumParentalLeave() {
        return thisSumParentalLeave;
    }

    public void setThisSumLjjx(String thisSumLjjx) {
        this.thisSumLjjx = thisSumLjjx;
    }

    public String getThisSumLjjx() {
        return thisSumLjjx;
    }

    public void setThisSumWorkLeave(String thisSumWorkLeave) {
        this.thisSumWorkLeave = thisSumWorkLeave;
    }

    public String getThisSumWorkLeave() {
        return thisSumWorkLeave;
    }

    public void setThisSumYqAddLeave(String thisSumYqAddLeave) {
        this.thisSumYqAddLeave = thisSumYqAddLeave;
    }

    public String getThisSumYqAddLeave() {
        return thisSumYqAddLeave;
    }

    public void setZend(JSONArray zend) {
        this.zend = zend;
    }

    public JSONArray getZend() {
        return zend;
    }

    public void setOrgCode(String orgCode) {
        this.orgCode = orgCode;
    }

    public String getOrgCode() {
        return orgCode;
    }

    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("userCode", getUserCode())
                .append("clockingInMonth", getClockingInMonth())
                .append("jobNo", getJobNo())
                .append("userName", getUserName())
                .append("department", getDepartment())
                .append("upLjjx", getUpLjjx())
                .append("upWorkLeave", getUpWorkLeave())
                .append("upYqAddLeave", getUpYqAddLeave())
                .append("upParentalLeave", getUpParentalLeave())
                .append("upParentalLeaveEndTime", getUpParentalLeaveEndTime())
                .append("thisShouldJob", getThisShouldJob())
                .append("thisAlreadyJob", getThisAlreadyJob())
                .append("thisPersonalLeave", getThisPersonalLeave())
                .append("thisSickLeave", getThisSickLeave())
                .append("thisProductLeave", getThisProductLeave())
                .append("thisWorkLeave", getThisWorkLeave())
                .append("thisAddLeave", getThisAddLeave())
                .append("thisSumParentalLeave", getThisSumParentalLeave())
                .append("thisSumLjjx", getThisSumLjjx())
                .append("thisSumWorkLeave", getThisSumWorkLeave())
                .append("thisSumYqAddLeave", getThisSumYqAddLeave())
                .append("zend", getZend())
                .append("orgCode", getOrgCode())
                .append("isDelete", getIsDelete())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("remark", getRemark())
                .toString();
    }
}
