/*
 *    Copyright (c) 2018-2025, lengleng All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * Redistributions of source code must retain the above copyright notice,
 * this list of conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright
 * notice, this list of conditions and the following disclaimer in the
 * documentation and/or other materials provided with the distribution.
 * Neither the name of the yifu4cloud.com developer nor the names of its
 * contributors may be used to endorse or promote products derived from
 * this software without specific prior written permission.
 * Author: lengleng (wangiegie@gmail.com)
 */
package com.yifu.cloud.plus.v1.yifu.archives.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;

/**
 * 项目档案表
 *
 * @author huyc
 * @date 2022-06-20 09:19:40
 */
@Data
@TableName("t_employee_project")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "项目档案表")
public class TEmployeeProject extends BaseEntity {

    /**
     * 主键
     */
    @TableId(type = IdType.ASSIGN_ID)
    @Schema(description ="主键")
    private String id;

    /**
     * 人员档案主表id
     */
    @Schema(description ="人员档案主表id")
    private String empId;

    /**
     * 员工主码（系统自动生成：ZM+年月日+5位数字）
     */
    @Schema(description ="员工主码（系统自动生成：ZM+年月日+5位数字）")
    private String empCode;

    /**
     * 员工类型（字典值，0外包1派遣2代理）
     */
    @Schema(description ="员工类型（字典值，0外包1派遣2代理）")
    private String empNatrue;

    /**
     * 员工姓名
     */
    @Schema(description ="员工姓名")
    private String empName;

    /**
     * 身份证号码
     */
    @Schema(description ="身份证号码")
    private String empIdcard;

    /**
     * 开户行
     */
    @Schema(description ="开户行")
    private String bankName;

    /**
     * 支行
     */
    @Schema(description ="支行")
    private String bankSubName;

    /**
     * 银行卡号
     */
    @Schema(description ="银行卡号")
    private String bankNo;

    /**
     * 减项操作人id
     */
    @Schema(description ="减项操作人id")
    private String leaveUser;

    /**
     * 减项时间
     */
    @Schema(description ="减项时间")
    private LocalDateTime leaveTime;

    /**
     * 减项原因
     */
    @Schema(description ="减项原因")
    private String leaveReason;

    /**
     * 减项备注
     */
    @Schema(description ="减项备注")
    private String leaveRemark;

    /**
     * 是否同步减档（0否；1是）
     */
    @Schema(description ="是否同步减档（0否；1是）")
    private Integer isLeaveEmployee;

    /**
     * 员工编码
     */
    @Schema(description ="员工编码")
    private String empNo;

    /**
     * 客户id
     */
    @Schema(description ="客户id")
    private String unitId;

    /**
     * 客户名称
     */
    @Schema(description ="客户名称")
    private String unitName;

    /**
     * 客户编码
     */
    @Schema(description ="客户编码")
    private String unitNo;

    /**
     * 项目id
     */
    @Schema(description ="项目id")
    private String deptId;

    /**
     * 项目名称
     */
    @Schema(description ="项目名称")
    private String deptName;

    /**
     * 项目编码
     */
    @Schema(description ="项目编码")
    private String deptNo;

    /**
     * 业务类型一级分类
     */
    @Schema(description ="业务类型一级分类")
    private String businessPrimaryType;

    /**
     * 业务类型二级分类
     */
    @Schema(description ="业务类型二级分类")
    private String businessSecondType;

    /**
     * 业务类型三级分类
     */
    @Schema(description ="业务类型三级分类")
    private String businessThirdType;

    /**
     * 合同类型（字典值）
     */
    @Schema(description ="合同类型（字典值）")
    private String contractType;

    /**
     * 工时制
     */
    @Schema(description ="工时制")
    private String workingHours;

    /**
     * 就职岗位
     */
    @Schema(description ="就职岗位")
    private String post;

    /**
     * 入职日期
     */
    @Schema(description ="入职日期")
    private LocalDateTime enjoinDate;

    /**
     * 试用期（单位月）
     */
    @Schema(description ="试用期（单位月）")
    private String tryPeriod;

    /**
     * 项目档案来源（字典：4人员档案新建、5项目档案新建、1社保/公积金、3商险、2薪酬）
     */
    @Schema(description ="项目档案来源（字典：4人员档案新建、5项目档案新建、1社保/公积金、3商险、2薪酬）")
    private String projectSource;

    /**
     * 计税月份
     */
    @Schema(description ="计税月份")
    private String taxMonth;

    /**
     * 项目档案状态（0草稿、1已审核）
     */
    @Schema(description ="项目档案状态（0草稿、1已审核）")
    private Integer status;

    /**
     * 项目状态（0正常；1已减项）
     */
    @Schema(description ="项目状态（0正常；1已减项）")
    private Integer projectStatus;

    /**
     * 是否删除 0否/1是
     */
    @Schema(description ="是否删除 0否/1是")
    private String deleteFlag;

    /**
     * 创建人id
     */
    @Schema(description ="创建人id")
    private String createBy;

    /**
     * 创建人姓名
     */
    @Schema(description ="创建人姓名")
    private String createName;

    /**
     * 创建时间
     */
    @Schema(description ="创建时间")
    private LocalDateTime createTime;

    /**
     * 更新人id
     */
    @Schema(description ="更新人id")
    private String updateBy;

    /**
     * 更新时间
     */
    @Schema(description ="更新时间")
    private LocalDateTime updateTime;

    /**
     * 备注
     */
    @Schema(description ="备注")
    private String remark;


}
