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

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.staff.model.vo.StaffContractVo;
/**
* 员工合同信息实体对象
*
* @author zxfei
* @date 2023-04-07
*/

public class StaffContractEntity extends StaffContractVo {
    private static final long serialVersionUID = 1L;

    /**
    * 员工ID
    */
    private Long staffId;
    /**
    * 员工姓名
    */
    private String staffName;
    /**
    * 性别(1.男,2.女)
    */
    private Integer gender;
    /**
    * 出生日期
    */
    private Date birthday;
    /**
    * 照片
    */
    private String photoPath;
    /**
    * 联系电话
    */
    private String phoneNumber;
    /**
    * 身份证号码
    */
    private String idCard;
    /**
    * 工号
    */
    private String workNum;
    /**
    * 政治面貌 （1.中共党员，2.中共预备党员，3.共青团员，4.群众，5.其它)
    */
    private Integer politicalstatus;
    /**
    * 所属部门
    */
    private Long deptId;
    /**
    * 所属部门名称
    */
    private String deptName;
    /**
    * 职位ID
    */
    private Long jobId;
    /**
    * 职位名称
    */
    private String jobName;
    /**
    * 员工类型(1.全职,2.兼职,3.实习)
    */
    private Integer staffType;
    /**
    * 员工状态(1.正式,2.试用,3.离职)
    */
    private Integer status;
    /**
    * 入职时间
    */
    private Date entryDate;
    /**
    * 现合同开始时间
    */
    private Date contractStartDate;
    /**
    * 现合同到期时间
    */
    private Date contractEndDate;
    /**
    * 合同公司
    */
    private String contractCompany;
    /**
    * 合同类型(1.纸质)
    */
    private Integer contractType;
    /**
    * 新合同开始时间
    */
    private Date newStartDate;
    /**
    * 新合同到期时间
    */
    private Date newEndDate;
    /**
    * 审核状态(0.待审核,1.通过,2.拒绝)
    */
    private Integer auditStatus;



    public StaffContractEntity(){}
    /**
    * 获取 员工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;
    }
    /**
    * 获取 性别(1.男,2.女)
    * @return Integer
    */
    public Integer getGender(){
        return gender;
    }
    /**
    * 设置 性别(1.男,2.女)
    * @param gender
    */
    public void setGender(Integer gender){
        this.gender = gender;
    }
    /**
    * 获取 出生日期
    * @return Date
    */
    public Date getBirthday(){
        return birthday;
    }
    /**
    * 设置 出生日期
    * @param birthday
    */
    public void setBirthday(Date birthday){
        this.birthday = birthday;
    }
    /**
    * 获取 照片
    * @return String
    */
    public String getPhotoPath(){
        return photoPath;
    }
    /**
    * 设置 照片
    * @param photoPath
    */
    public void setPhotoPath(String photoPath){
        this.photoPath = photoPath;
    }
    /**
    * 获取 联系电话
    * @return String
    */
    public String getPhoneNumber(){
        return phoneNumber;
    }
    /**
    * 设置 联系电话
    * @param phoneNumber
    */
    public void setPhoneNumber(String phoneNumber){
        this.phoneNumber = phoneNumber;
    }
    /**
    * 获取 身份证号码
    * @return String
    */
    public String getIdCard(){
        return idCard;
    }
    /**
    * 设置 身份证号码
    * @param idCard
    */
    public void setIdCard(String idCard){
        this.idCard = idCard;
    }
    /**
    * 获取 工号
    * @return String
    */
    public String getWorkNum(){
        return workNum;
    }
    /**
    * 设置 工号
    * @param workNum
    */
    public void setWorkNum(String workNum){
        this.workNum = workNum;
    }
    /**
    * 获取 政治面貌 （1.中共党员，2.中共预备党员，3.共青团员，4.群众，5.其它)
    * @return Integer
    */
    public Integer getPoliticalstatus(){
        return politicalstatus;
    }
    /**
    * 设置 政治面貌 （1.中共党员，2.中共预备党员，3.共青团员，4.群众，5.其它)
    * @param politicalstatus
    */
    public void setPoliticalstatus(Integer politicalstatus){
        this.politicalstatus = politicalstatus;
    }
    /**
    * 获取 所属部门
    * @return Long
    */
    public Long getDeptId(){
        return deptId;
    }
    /**
    * 设置 所属部门
    * @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;
    }
    /**
    * 获取 职位ID
    * @return Long
    */
    public Long getJobId(){
        return jobId;
    }
    /**
    * 设置 职位ID
    * @param jobId
    */
    public void setJobId(Long jobId){
        this.jobId = jobId;
    }
    /**
    * 获取 职位名称
    * @return String
    */
    public String getJobName(){
        return jobName;
    }
    /**
    * 设置 职位名称
    * @param jobName
    */
    public void setJobName(String jobName){
        this.jobName = jobName;
    }
    /**
    * 获取 员工类型(1.全职,2.兼职,3.实习)
    * @return Integer
    */
    public Integer getStaffType(){
        return staffType;
    }
    /**
    * 设置 员工类型(1.全职,2.兼职,3.实习)
    * @param staffType
    */
    public void setStaffType(Integer staffType){
        this.staffType = staffType;
    }
    /**
    * 获取 员工状态(1.正式,2.试用,3.离职)
    * @return Integer
    */
    public Integer getStatus(){
        return status;
    }
    /**
    * 设置 员工状态(1.正式,2.试用,3.离职)
    * @param status
    */
    public void setStatus(Integer status){
        this.status = status;
    }
    /**
    * 获取 入职时间
    * @return Date
    */
    public Date getEntryDate(){
        return entryDate;
    }
    /**
    * 设置 入职时间
    * @param entryDate
    */
    public void setEntryDate(Date entryDate){
        this.entryDate = entryDate;
    }
    /**
    * 获取 现合同开始时间
    * @return Date
    */
    public Date getContractStartDate(){
        return contractStartDate;
    }
    /**
    * 设置 现合同开始时间
    * @param contractStartDate
    */
    public void setContractStartDate(Date contractStartDate){
        this.contractStartDate = contractStartDate;
    }
    /**
    * 获取 现合同到期时间
    * @return Date
    */
    public Date getContractEndDate(){
        return contractEndDate;
    }
    /**
    * 设置 现合同到期时间
    * @param contractEndDate
    */
    public void setContractEndDate(Date contractEndDate){
        this.contractEndDate = contractEndDate;
    }
    /**
    * 获取 合同公司
    * @return String
    */
    public String getContractCompany(){
        return contractCompany;
    }
    /**
    * 设置 合同公司
    * @param contractCompany
    */
    public void setContractCompany(String contractCompany){
        this.contractCompany = contractCompany;
    }
    /**
    * 获取 合同类型(1.纸质)
    * @return Integer
    */
    public Integer getContractType(){
        return contractType;
    }
    /**
    * 设置 合同类型(1.纸质)
    * @param contractType
    */
    public void setContractType(Integer contractType){
        this.contractType = contractType;
    }
    /**
    * 获取 新合同开始时间
    * @return Date
    */
    public Date getNewStartDate(){
        return newStartDate;
    }
    /**
    * 设置 新合同开始时间
    * @param newStartDate
    */
    public void setNewStartDate(Date newStartDate){
        this.newStartDate = newStartDate;
    }
    /**
    * 获取 新合同到期时间
    * @return Date
    */
    public Date getNewEndDate(){
        return newEndDate;
    }
    /**
    * 设置 新合同到期时间
    * @param newEndDate
    */
    public void setNewEndDate(Date newEndDate){
        this.newEndDate = newEndDate;
    }
    /**
    * 获取 审核状态(0.待审核,1.通过,2.拒绝)
    * @return Integer
    */
    public Integer getAuditStatus(){
        return auditStatus;
    }
    /**
    * 设置 审核状态(0.待审核,1.通过,2.拒绝)
    * @param auditStatus
    */
    public void setAuditStatus(Integer auditStatus){
        this.auditStatus = auditStatus;
    }




    @Override
    public int hashCode() {
         return this.getId().hashCode();
    }
    @Override
    public boolean equals(Object obj) {
        if (obj == null) return false;
        if (obj instanceof StaffContractEntity) {
            StaffContractEntity tmp = (StaffContractEntity) 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(",gender:").append(getGender());
        sb.append(",birthday:").append(getBirthday());
        sb.append(",photoPath:").append(getPhotoPath());
        sb.append(",phoneNumber:").append(getPhoneNumber());
        sb.append(",idCard:").append(getIdCard());
        sb.append(",workNum:").append(getWorkNum());
        sb.append(",politicalstatus:").append(getPoliticalstatus());
        sb.append(",deptId:").append(getDeptId());
        sb.append(",deptName:").append(getDeptName());
        sb.append(",jobId:").append(getJobId());
        sb.append(",jobName:").append(getJobName());
        sb.append(",staffType:").append(getStaffType());
        sb.append(",status:").append(getStatus());
        sb.append(",entryDate:").append(getEntryDate());
        sb.append(",contractStartDate:").append(getContractStartDate());
        sb.append(",contractEndDate:").append(getContractEndDate());
        sb.append(",contractCompany:").append(getContractCompany());
        sb.append(",contractType:").append(getContractType());
        sb.append(",newStartDate:").append(getNewStartDate());
        sb.append(",newEndDate:").append(getNewEndDate());
        sb.append(",auditStatus:").append(getAuditStatus());
        return sb.toString();
    }

    public void initAttrValue(){

            this.staffId = null;

            this.staffName = "";

            this.gender = 1;

            this.birthday = null;

            this.photoPath = "";

            this.phoneNumber = "";

            this.idCard = "";

            this.workNum = "";

            this.politicalstatus = 1;

            this.deptId = null;

            this.deptName = "";

            this.jobId = null;

            this.jobName = "";

            this.staffType = 1;

            this.status = 1;

            this.entryDate = null;

            this.contractStartDate = null;

            this.contractEndDate = null;

            this.contractCompany = "";

            this.contractType = 1;

            this.newStartDate = null;

            this.newEndDate = null;

            this.auditStatus = 0;
    }
}