package com.jeeplus.business.humanResources.service.dto;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jeeplus.core.domain.BaseEntity;

import com.jeeplus.sys.domain.WorkAttachmentInfo;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.util.List;

@Data
public class StaffUserInfoDTO extends BaseEntity {

    /**
     * 员工入职日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @Excel(name = "入职时间",width = 25,exportFormat = "yyyy-MM-dd",importFormat = "yyyy-MM-dd")
    private Date inTime;

    /**
     * 用户id
     */
    @ExcelIgnore
    private String userId;
    @Excel(name = "姓名",width = 25)
    private String name;                //姓名
    @ExcelIgnore
    private String sex;                 //性别
    @ExcelIgnore
    private String age;                 //年龄
    @ExcelIgnore
    private String birthday;            //出生日期
    @ExcelIgnore
    private String politicalOutlook;    //政治面貌
    @Excel(name = "籍贯",width = 25)
    private String nativePlace;         //籍贯
    @ExcelIgnore
    private String nation;              //民族
    @ExcelIgnore
    private String maritalStatus;       //婚姻状况
    @Excel(name = "联系电话",width = 25)
    private String mobilePhone;         //联系电话
    @Excel(name = "身份证号码",width = 25)
    private String idCard;              //身份证号码
    @ExcelIgnore
    private String homeAddress;         //家庭住址
    @ExcelIgnore
    private String permanentAddress;    //常住地址
    @ExcelIgnore
    private String graduatedFrom;       //毕业院校
    @ExcelIgnore
    private String speciality;          //专业
    @ExcelIgnore
    private String startTime;           //开始时间
    @ExcelIgnore
    private String endTime;             //毕业时间
    @ExcelIgnore
    private String education;           //学历
    @ExcelIgnore
    private String educationNature;     //学历性质
    @ExcelIgnore
    private String graduatedOrNot;      //是否毕业
    @ExcelIgnore
    private String englishLevel;        //英语等级
    @ExcelIgnore
    private String ncre;                //计算机等级
    @Excel(name = "所属部门",width = 25)
    private String department;          //所属部门
    @ExcelIgnore
    private String departmentName;
    @ExcelIgnore
    private String remarks;             //备注
    @ExcelIgnore
    @Excel(name = "流程状态",width = 25,dict = "program_project_list_info_status")
    private String type;                //流程状态
    @ExcelIgnore
    private String procInsId;
    @ExcelIgnore
    private String processDefinitionId;
    @ExcelIgnore
    @Excel(name = "在职状态",width = 25,dict = "on_job_status")
    private String onJobStatus;       //在职状态
    @ExcelIgnore
    private String roleId;            //角色
    @ExcelIgnore
    private String postId;            //岗位
    @ExcelIgnore
    private String bankNumber;        //银行账号
    @ExcelIgnore
    private String email;               //邮箱
    @ExcelIgnore
    private String fundNumber;          //公积金账号
    @ExcelIgnore
    private String managerOffice;       //管理部门

    @ExcelIgnore
    private List<WorkAttachmentInfo> files; //附件
    @ExcelIgnore
    private List<WorkAttachmentInfo> commitment; //承诺书
    @ExcelIgnore
    private List<WorkAttachmentInfo> applys; //申请表
    @ExcelIgnore
    private List<WorkAttachmentInfo> certificates; //学历证明
    @ExcelIgnore
    private List<WorkAttachmentInfo> idCards; //身份证
    @ExcelIgnore
    private List<WorkAttachmentInfo> trainings; //培训证书
    @ExcelIgnore
    private List<WorkAttachmentInfo> professional; //职称
    @ExcelIgnore
    private List<WorkAttachmentInfo> resignation; //离职证明


    //部门
    @ExcelIgnore
    private String officeId;
    @ExcelIgnore
    @Excel(name = "部门",width = 25)
    private String officeName;
    @ExcelIgnore
    @Excel(name = "创建人",width = 25)
    private String createName;
    @Excel(name = "创建时间",width = 25,exportFormat = "yyyy-MM-dd")
    private Date createTime;


    //员工状态
    @ExcelIgnore

    private String loginFlag;
    @Excel(name = "状态",width = 25)
    private String flagName;

    //创建时间
    @ExcelIgnore
    private String[] createDates;

    //角色名称
    @ExcelIgnore
    @Excel(name = "角色",width = 25)
    private String roleName;
    @ExcelIgnore
    private List<String> roleIdList;
    @ExcelIgnore
    private List<String> postIdList;
    @ExcelIgnore
    private List<String> manageList;
    @ExcelIgnore
    private String taskId;

    private String timeLimit;   //试用期限


    //转正申请
    private String procInsIdApply;
    private String procDefIdApply;
    private String taskIdApply;
    private String applyId;
    private String applyStatus;
    //是否通过
    private String isPass;
    //是否留用
    private String isEmploy;
    //是否顺延
    private String isPostpone;

    //手签章url
    private String handSignatureUrl;
    //是否有手签章
    private String isHandSignature;



}
