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.StaffVo;
/**
* 员工基本信息实体对象
*
* @author zxfei
* @date 2023-04-07
*/

public class StaffEntity extends StaffVo {
    private static final long serialVersionUID = 1L;

    /**
    * 员工姓名
    */
    private String name;
    /**
    * 性别(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 positionId;
    /**
    * 职位名称
    */
    private String positionName;
    /**
    * 员工类型（1.全职,2.兼职,3.实习)
    */
    private Integer staffType;
    /**
    * 员工状态(1.正式,2.试用,3.离职)
    */
    private Integer status;
    /**
    * 入职登记表
    */
    private String registerPath;
    /**
    * 入职时间
    */
    private Date entryDate;
    /**
    * 转正时间
    */
    private Date regularDate;
    /**
    * 离职时间
    */
    private Date leaveDate;
    /**
    * 备注
    */
    private String remark;



    public StaffEntity(){}
    /**
    * 获取 员工姓名
    * @return String
    */
    public String getName(){
        return name;
    }
    /**
    * 设置 员工姓名
    * @param name
    */
    public void setName(String name){
        this.name = name;
    }
    /**
    * 获取 性别(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 getPositionId(){
        return positionId;
    }
    /**
    * 设置 职位ID
    * @param positionId
    */
    public void setPositionId(Long positionId){
        this.positionId = positionId;
    }
    /**
    * 获取 职位名称
    * @return String
    */
    public String getPositionName(){
        return positionName;
    }
    /**
    * 设置 职位名称
    * @param positionName
    */
    public void setPositionName(String positionName){
        this.positionName = positionName;
    }
    /**
    * 获取 员工类型（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 String
    */
    public String getRegisterPath(){
        return registerPath;
    }
    /**
    * 设置 入职登记表
    * @param registerPath
    */
    public void setRegisterPath(String registerPath){
        this.registerPath = registerPath;
    }
    /**
    * 获取 入职时间
    * @return Date
    */
    public Date getEntryDate(){
        return entryDate;
    }
    /**
    * 设置 入职时间
    * @param entryDate
    */
    public void setEntryDate(Date entryDate){
        this.entryDate = entryDate;
    }
    /**
    * 获取 转正时间
    * @return Date
    */
    public Date getRegularDate(){
        return regularDate;
    }
    /**
    * 设置 转正时间
    * @param regularDate
    */
    public void setRegularDate(Date regularDate){
        this.regularDate = regularDate;
    }
    /**
    * 获取 离职时间
    * @return Date
    */
    public Date getLeaveDate(){
        return leaveDate;
    }
    /**
    * 设置 离职时间
    * @param leaveDate
    */
    public void setLeaveDate(Date leaveDate){
        this.leaveDate = leaveDate;
    }
    /**
    * 获取 备注
    * @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 StaffEntity) {
            StaffEntity tmp = (StaffEntity) obj;
            if (this.getId() == tmp.getId()) {
                 return true;
            }
        }
        return false;
    }

    public String toString(){
        StringBuilder sb = new StringBuilder("");
        sb.append(",name:").append(getName());
        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(",positionId:").append(getPositionId());
        sb.append(",positionName:").append(getPositionName());
        sb.append(",staffType:").append(getStaffType());
        sb.append(",status:").append(getStatus());
        sb.append(",registerPath:").append(getRegisterPath());
        sb.append(",entryDate:").append(getEntryDate());
        sb.append(",regularDate:").append(getRegularDate());
        sb.append(",leaveDate:").append(getLeaveDate());
        sb.append(",remark:").append(getRemark());
        return sb.toString();
    }

    public void initAttrValue(){

            this.name = "";

            this.gender = 1;

            this.birthday = null;

            this.photoPath = "";

            this.phoneNumber = "";

            this.idCard = "";

            this.workNum = "";

            this.politicalstatus = 1;

            this.deptId = null;

            this.deptName = "";

            this.positionId = null;

            this.positionName = "";

            this.staffType = 1;

            this.status = 1;

            this.registerPath = "";

            this.entryDate = null;

            this.regularDate = null;

            this.leaveDate = null;

            this.remark = "";
    }
}