package com.zhgd.xmgl.modules.basicdata.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * @Description: 人员
 * @author： pengj
 * @date： 2023-03-13
 * @version： V1.0
 */
@Data
@TableName("worker_info")
@ApiModel(value = "WorkerInfo实体类", description = "WorkerInfo")
public class WorkerInfo implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 人员ID
     */
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "人员ID")
    private Long id;
    /**
     * 姓名
     */
    @Excel(name = "姓名", width = 15)
    @ApiModelProperty(value = "姓名")
    private String personName;
    /**
     * 性别，1男，2女
     */
    @Excel(name = "性别，1男，2女", width = 15)
    @ApiModelProperty(value = "性别，1男，2女")
    private Integer sex;
    /**
     * 出生日期
     */
    @Excel(name = "出生日期", width = 15)
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "出生日期")
    private Date birthday;

    @TableField(exist = false)
    @ApiModelProperty(value = "年龄")
    private Integer age;
    /**
     * 民族
     */
    @Excel(name = "民族", width = 15)
    @ApiModelProperty(value = "民族")
    private String nation;
    /**
     * 户籍地址
     */
    @Excel(name = "户籍地址", width = 15)
    @ApiModelProperty(value = "户籍地址")
    private String registerAddress;
    /**
     * 户籍省
     */
    @Excel(name = "户籍省", width = 15)
    @ApiModelProperty(value = "户籍省")
    private String registerProvince;
    /**
     * 身份证号
     */
    @Excel(name = "身份证号", width = 15)
    @ApiModelProperty(value = "身份证号")
    private String idCard;
    /**
     * 身份证签发机关
     */
    @Excel(name = "身份证签发机关", width = 15)
    @ApiModelProperty(value = "身份证签发机关")
    private String issuingAuthorityForIdCard;
    /**
     * 身份证有效期
     */
    @Excel(name = "身份证有效期", width = 15)
    @ApiModelProperty(value = "身份证有效期")
    private String idCardExpireDate;
    /**
     * 身份证正面
     */
    @Excel(name = "身份证正面", width = 15)
    @ApiModelProperty(value = "身份证正面")
    private String idCardFront;
    /**
     * 身份证反面
     */
    @Excel(name = "身份证反面", width = 15)
    @ApiModelProperty(value = "身份证反面")
    private Integer idCardBack;
    /**
     * 人像信息
     */
    @Excel(name = "人像信息", width = 15)
    @ApiModelProperty(value = "人像信息")
    private String portrait;
    /**
     * 手机号
     */
    @Excel(name = "手机号", width = 15)
    @ApiModelProperty(value = "手机号")
    private String phone;
    /**
     * 住址
     */
    @Excel(name = "住址", width = 15)
    @ApiModelProperty(value = "住址")
    private String address;
    /**
     * 参建单位
     */
    @Excel(name = "参建单位", width = 15)
    @ApiModelProperty(value = "参建单位")
    private String companySn;
    /**
     * 班组
     */
    @Excel(name = "班组", width = 15)
    @ApiModelProperty(value = "班组")
    private String teamSn;
    /**
     * 工种类型
     */
    @Excel(name = "工种类型", width = 15)
    @ApiModelProperty(value = "工种类型")
    private Long workerType;
    /**
     * 人员类别(1:管理;2:工人)
     */
    @Excel(name = "人员类别(1:管理;2:工人)", width = 15)
    @ApiModelProperty(value = "人员类别(1:管理;2:工人)")
    private Integer personType;
    /**
     * 是否参与安全教育(1:合格;2:不合格;3:未培训;)
     */
    @Excel(name = "是否参与安全教育(1:合格;2:不合格;3:未培训;)", width = 15)
    @ApiModelProperty(value = "是否参与安全教育(1:合格;2:不合格;3:未培训;)")
    private Integer safetyEducation;
    /**
     * 是否购买工伤和意外保险(0:否;1:是;)
     */
    @Excel(name = "是否购买工伤和意外保险(0:否;1:是;)", width = 15)
    @ApiModelProperty(value = "是否购买工伤和意外保险(0:否;1:是;)")
    private Integer isPurchaseInsurance;
    /**
     * 有无合同(0:否;1:是;)
     */
    @Excel(name = "有无合同(0:否;1:是;)", width = 15)
    @ApiModelProperty(value = "有无合同(0:否;1:是;)")
    private Integer isContract;
    /**
     * 合同上传路径
     */
    @Excel(name = "合同上传路径", width = 15)
    @ApiModelProperty(value = "合同上传路径")
    private String contractImage;
    /**
     * 是否体检(0:否;1:是;)
     */
    @Excel(name = "是否体检(0:否;1:是;)", width = 15)
    @ApiModelProperty(value = "是否体检(0:否;1:是;)")
    private Integer isPhysicalExamination;
    /**
     * 银行类型
     */
    @Excel(name = "银行类型", width = 15)
    @ApiModelProperty(value = "银行类型")
    private Integer bankType;
    /**
     * 银行卡号
     */
    @Excel(name = "银行卡号", width = 15)
    @ApiModelProperty(value = "银行卡号")
    private String bankCard;
    /**
     * 实名制卡号
     */
    @Excel(name = "实名制卡号", width = 15)
    @ApiModelProperty(value = "实名制卡号")
    private String realNameCardNumber;
    /**
     * 开户支行名称
     */
    @Excel(name = "开户支行名称", width = 15)
    @ApiModelProperty(value = "开户支行名称")
    private String bankName;
    /**
     * 开户支行代号
     */
    @Excel(name = "开户支行代号", width = 15)
    @ApiModelProperty(value = "开户支行代号")
    private String bankCode;
    /**
     * 政治面貌：1.中共党员 2.共青团团员 3.普通居民 4.其他党派人士
     */
    @Excel(name = "政治面貌：1.中共党员 2.共青团团员 3.普通居民 4.其他党派人士", width = 15)
    @ApiModelProperty(value = "政治面貌：1.中共党员 2.共青团团员 3.普通居民 4.其他党派人士")
    private Integer politicsStatus;
    /**
     * 学历
     */
    @Excel(name = "学历", width = 15)
    @ApiModelProperty(value = "学历")
    private Integer educationLevel;
    /**
     * 学位
     */
    @Excel(name = "学位", width = 15)
    @ApiModelProperty(value = "学位")
    private Integer academicDegree;
    /**
     * 是否有重大病史
     */
    @Excel(name = "是否有重大病史", width = 15)
    @ApiModelProperty(value = "是否有重大病史")
    private Integer haveMedicalHistory;
    /**
     * 户口性质(1:非农户口;2:农业户口;)
     */
    @Excel(name = "户口性质(1:非农户口;2:农业户口;)", width = 15)
    @ApiModelProperty(value = "户口性质(1:非农户口;2:农业户口;)")
    private Integer natureOfAccount;
    /**
     * 婚姻状况
     */
    @Excel(name = "婚姻状况", width = 15)
    @ApiModelProperty(value = "婚姻状况")
    private Integer maritalStatus;
    /**
     * 紧急联系人
     */
    @Excel(name = "紧急联系人", width = 15)
    @ApiModelProperty(value = "紧急联系人")
    private String contacts;
    /**
     * 紧急联系电话
     */
    @Excel(name = "紧急联系电话", width = 15)
    @ApiModelProperty(value = "紧急联系电话")
    private String contactsTel;
    /**
     * 开始工作时间
     */
    @Excel(name = "开始工作时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "开始工作时间")
    private Date entryTime;
    /**
     * 岗前培训时间
     */
    @Excel(name = "岗前培训时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "岗前培训时间")
    private Date trainingTime;
    /**
     * 邮箱
     */
    @Excel(name = "邮箱", width = 15)
    @ApiModelProperty(value = "邮箱")
    private String personEmail;
    /**
     * 工程sn
     */
    @Excel(name = "工程sn", width = 15)
    @ApiModelProperty(value = "工程sn")
    private String engineeringSn;
    /**
     * 项目sn
     */
    @Excel(name = "项目sn", width = 15)
    @ApiModelProperty(value = "项目sn")
    private String projectSn;
    /**
     * 人员状态  1在场  2离场
     */
    @Excel(name = "人员状态  1在场  2离场", width = 15)
    @ApiModelProperty(value = "人员状态  1在场  2离场")
    private Integer inServiceType;
    /**
     * 退场时间
     */
    @Excel(name = "退场时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "退场时间")
    private Date exitTime;
}
