package cn.ey.biz.module.system.dal.dataobject.user;

import cn.ey.biz.framework.mybatis.core.dataobject.BaseDO;
import cn.ey.biz.module.system.enums.common.SexEnum;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;

import java.math.BigDecimal;

/**
 * HR 同步数据临时表
 *
 */
@TableName(value = "system_users_sync_temp", autoResultMap = true) // 由于 SQL Server 的 system_user 是关键字，所以使用 system_users
@Data
@EqualsAndHashCode(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class UserSyncTempDO extends BaseDO {

    /**
     * 用户ID
     */
    @TableId
    private Long id;


    /**
     * 用户个人邮箱
     */
    @TableField("private_email")
    private String email;
    /**
     * 手机号码
     */
    private String mobile;
    /**
     * 用户性别
     *
     * 枚举类 {@link SexEnum}
     */
    @TableField("gender")
    private String sex;

    /**
     * GUI
     */
    private String gui;
    /**
     * 用户编码-GPN
     */
    private String gpn;
    /**
     * LPN
     */
    private String lpn;
    /**
     * 英文名
     */
    private String enFirstName;
    /**
     * 英文姓
     */
    private String enLastName;

    /**
     * 中间名
     */
    private String enMiddleName;
    /**
     * 中国姓
     */
    private String cnFirstName;
    /**
     * 中国名
     */
    private String cnLastName;
    /**
     * 名字全称
     */
    private String displayName;
    /**
     * 国籍
     */
    private String citizenship;

    /**
     * 第二国籍
     */
    private String secondCitizenship;
    /**
     * 公司邮箱
     */
    private String businessEmail;
    /**
     * 个人电话
     */
    private String privatePhone;
    /**
     * 公司电话
     */
    private String businessPhone;
    /**
     * 员工状态
     */
    private String employeeStatus;
    /**
     * 员工分类
     */
    private String employeeClass;
    /**
     * 员工分类
     */
    private String employeeType;
    /**
     * base 地
     */
    private String baseLocation;
    /**
     * 上级员工id
     */
    private String conseloerGpn;

    /**
     * 职业级别
     */
    private String rankCode;
    /**
     * 出生日期
     */
    private String dateOfBirth;
    /**
     * 出生国家
     */
    private String countryOfBirth;

    /**
     * 出生地
     */
    private String regionOfBirth;
    /**
     * 区域
     */
    private String region;
    /**
     * 国家
     */
    private String country;
    /**
     * 地理区域
     */
    private String geoRegion;

    /**
     * 法人名称
     */
    private String legalName;
    /**
     * 所属公司主体
     */
    private String legalEntity;

    /**
     * buesinessUnit
     */
    private String buesinessUnit;
    /**
     * mgmtRegion
     */
    private String mgmtRegion;

    /**
     * operatingUnit
     */
    private String operatingUnit;
    /**
     * mgmtUnit
     */
    private String mgmtUnit;
    /**
     * subMgmtUnit
     */
    private String subMgmtUnit;
    /**
     * 关联财务组织
     */
    private String codeBlock;

    /**
     * 加班资格
     */
    private String overtimeRlihiniliyy;
    /**
     * 生效日期
     */
    private String effictiveDate;
    /**
     * 资源类型
     */
    private String resourceType;


    /**
     * 办公地点
     */
    private String workLocation;

    /**
     * 工资类型
     */
    private String payType;


    /**
     * 子公司主体
     */
    private String subLegalEntity;
    /**
     * serviceLine
     */
    private String serviceLine;
    /**
     * subServiceLine
     */
    private String subServiceLine;
    /**
     * 合同工标识
     */
    private Integer isContractWorker;

    /**
     * 标准小时数
     */
    private Double standardHours;


    /**
     * partnerGpnName
     */
    private String partnerGpnName;


    /**
     * 部门负责人-GPN
     */
    private String supervisor;

    /**
     * 等级
     */
    private Long gradeId;

    /**
     * competency
     */
    private String competency;

    /**
     * 能力
     */
    private String speciality;

    /**
     * 上游主键
     */
    private String personId;


    /**
     * 关联财务组织
     */
    private String costCenter;

    /**
     * 离职日期
     */
    private String quitDate;

    /**
     * 每周工作天数
     */
    private Double weeklyDays;

    /**
     * 所属大区
     */
    private String marketSegment;
    /**
     * 币种
     */
    private String currency;
    /**
     * 生效时间
     */
    private String effectiveTime;

    /**
     * 失效时间
     */
    private String failureTime;

    /**
     * 版本号
     */
    private String version;

    /**
     * 部门id
     */
    private String departmentId;

    /**
     * hr user id
     */
    private String userIdHr;

    /**
     * 中文名
     */
    private String cnName;

    /**
     * 员工职级
     */
    private String employeeActivityType;
    /**
     * 同步批次号
     */
    private String batchNo;
    /**
     * 处理次数：默认处理失败的重复处理3次
     */
    private Integer handleNum;

    /**
     * 加工后数据同步状态，默认：-1:未同步，0:同步成功 ，1同步失败
     */
    private Integer handleAfterSyncStatus;
    /**
     * 加工后数据同步结果描述
     */
    private String handleAfterSyncResult;

    /**
     * 根据CodeBlock数据加工状态，默认：-1:未处理，0:处理成功 ，1处理失败
     */
    private Integer handleCodeBlockStatus;
    /**
     * 根据CodeBlock处理结果描述
     */
    private String handleCodeBlockResult;

    /**
     * rate数据加工状态，默认：-1:未处理，0:处理成功 ，1处理失败
     */
    private Integer handleRateStatus;
    /**
     * rate处理结果描述
     */
    private String  handleRateResult;



}
