package com.blueland.bo;

import java.util.Date;

import javax.validation.constraints.NotNull;

import com.blueland.model.Query;
import org.hibernate.validator.constraints.Length;
import org.springframework.util.StringUtils;


import lombok.Data;
import lombok.EqualsAndHashCode;

@Data
@EqualsAndHashCode(callSuper = false)
public class Staff extends Query {
	private static final long serialVersionUID = 1L;
	// alias
	public static final String TABLE_ALIAS = "Staff";

	// 可以直接使用: @Length(max=50,message="用户名长度不能大于50")显示错误消息
	// columns START
	/**
	 * 员工ID-唯一标识员工对象id db_column: staff_id
	 */
	@Length(max = 100)
	private String staffId;

	/**
	 * 人资HR员工编号 db_column: staff_hr_id
	 */
	@Length(max = 100)
	private String staffHrId;

	/**
	 * 姓名 db_column: staff_name
	 */
	@Length(max = 100)
	private String staffName;
	/**
	 * 英文名 db_column: staff_en_name
	 */
	@Length(max = 100)
	private String staffEnName;
	/**
	 * 组织机构UUID db_column: org_id
	 */
	@Length(max = 200)
	private String orgId;
	/**
	 * 组织机构名称 db_column: org_name
	 */
	@Length(max = 200)
	private String orgName;
	/**
	 * 员工姓名的全拼 db_column: staff_spells
	 */
	@Length(max = 100)
	private String staffSpells;
	/**
	 * 员工姓名的简拼 db_column: staff_short_spells
	 */
	@Length(max = 100)
	private String staffShortSpells;
	/**
	 * 员工号-遵循湖南中烟公司的编码规范 db_column: staff_num
	 */
	@Length(max = 100)
	private String staffNum;
	/**
	 * 员工号短号-用户员工号6位 db_column: staff_short_num
	 */
	@Length(max = 100)
	private String staffShortNum;
	/**
	 * 岗位UUID db_column: position_id
	 */
	@Length(max = 100)
	private String positionId;
	/**
	 * 岗位名称 db_column: position_name
	 */
	@Length(max = 200)
	private String positionName;
	/**
	 * 性别-N:男，V:女 db_column: staff_sex
	 */
	@Length(max = 100)
	private String staffSex;
	/**
	 * 年龄-年龄 db_column: staff_age
	 */

	private Integer staffAge;
	/**
	 * 证件类型,如:身份证，驾照，护照等 db_column: staff_paperwork_type
	 */
	@Length(max = 100)
	private String staffPaperworkType;
	/**
	 * 身份证号，遵循中国身份证标准 db_column: staff_paperwork_num
	 */
	@Length(max = 100)
	private String staffPaperworkNum;
	/**
	 * 邮件地址 db_column: staff_mail
	 */
	private String staffMail;
	/**
	 * 常用手机 db_column: staff_mobile
	 */
	@Length(max = 100)
	private String staffMobile;
	/**
	 * 备用手机 db_column: staff_mobile_bak
	 */
	@Length(max = 100)
	private String staffMobileBak;
	/**
	 * 传真 db_column: staff_fax
	 */
	@Length(max = 100)
	private String staffFax;
	/**
	 * 短号码 db_column: staff_short_fax
	 */
	@Length(max = 100)
	private String staffShortFax;
	/**
	 * 微信号码 db_column: staff_wechart
	 */
	@Length(max = 200)
	private String staffWechart;
	/**
	 * 家庭住址 db_column: staff_home_address
	 */
	@Length(max = 1000)
	private String staffHomeAddress;
	/**
	 * 家庭电话 db_column: staff_home_phone
	 */
	@Length(max = 100)
	private String staffHomePhone;
	/**
	 * 办公地址 db_column: staff_work_address
	 */
	@Length(max = 1000)
	private String staffWorkAddress;
	/**
	 * 办公电话 db_column: staff_work_phone
	 */
	@Length(max = 100)
	private String staffWorkPhone;
	/**
	 * 护照号 db_column: staff_passport
	 */
	@Length(max = 100)
	private String staffPassport;
	/**
	 * 民族 db_column: staff_nation
	 */
	@Length(max = 100)
	private String staffNation;
	/**
	 * 政治面貌 db_column: staff_political_status
	 */
	@Length(max = 100)
	private String staffPoliticalStatus;
	/**
	 * 籍贯 db_column: staff_native_place
	 */
	@Length(max = 200)
	private String staffNativePlace;
	/**
	 * 排序 db_column: staff_sort
	 */

	private Integer staffSort;
	/**
	 * 员工状态-1、在职，2、离职，3、停职，4、退休 db_column: staff_status
	 */
	@Length(max = 11)
	private String staffStatus;
	/**
	 * 员工类型-1、编制内员工 2、编制外员工 db_column: staff_work_type
	 */
	@Length(max = 20)
	private String staffWorkType;
	/**
	 * 是否临时账号-正常：ZC，临时：LS  db_column: staff_account_type
	 */
	@Length(max = 20)
	private String staffAccountType;
	/**
	 * 员工类型，GYGS：工业公司, ，SYGS：商业公司， LSH：零售户(场所) ，XFZ：消费者 ，GYS：供应商 db_column:
	 * staff_type
	 */
	@Length(max = 100)
	private String staffType;
	
	/**
	 * 员工类型，GYGS：工业公司, ，SYGS：商业公司， LSH：零售户(场所) ，XFZ：消费者 ，GYS：供应商 db_column:
	 * staff_type
	 */
	@Length(max = 100)
	private String staffSubType;
	/**
	 * 创建人 db_column: staff_creator
	 */
	@Length(max = 100)
	private String staffCreator;
	/**
	 * 创建时间 db_column: staff_create_time
	 */
	@NotNull
	private Date staffCreateTime;
	/**
	 * 修改人 db_column: staff_updator
	 */
	@Length(max = 100)
	private String staffUpdator;
	/**
	 * 最后修改时间 db_column: staff_lastupdate_time
	 */
	private Date staffLastupdateTime;

	/**
	 * 职位HrId db_column: position_hr_id
	 */
	@Length(max = 100)
	private String positionHrId;

	/**
	 * 是否是主身份,Y 是、N 否 冗余字段
	 */
	private String mainIdentityStatus;

	/**
	 * 是否是当前身份,Y 是、N 否 冗余字段
	 */
	private String currentIdentityStatus;
	/**
	 * 公司ID
	 */
	private String companyId;
	/**
	 * 公司名称
	 */
	private String companyName;
	/**
	 * 部门ID
	 */
	private String deptId;
	/**
	 * 部门名称
	 */
	private String deptName;
	// columns END
	// 零售户名称
	private String retailName;
	// 省编号
	private String provinceId;
	// 市编号
	private String cityId;
	// 区编号
	private String areaId;
	// 员工登录账号，主账号
	private String staffCode;
	// 人员生日
	private Date staffBirthday;
	// 员工状态 db_column: staff_job_status
	@Length(max = 100)
	private String staffJobStatus;
	/**
	 * 学历 db_column: staff_education 11-研究生教育 12-博士研究生 13-硕士研究生 14-研究生班 15-研究生课程班
	 * 16-中央党校研究生 17-省(区、市)委党校研究生 18-本科 19-大学 20-大专及以下 21-大学普通班 22-第二学士学位班 23-中央党校大学
	 * 24-省(区、市)委党校大学 25-中央党校大专 26-省(区、市)委党校大专 27-大专专业证书 28-中等职业学校 29-中专 30-职高 31-技校
	 * 32-普通高中 33-普通高中 34-初中 35-初中 36-小学
	 */
	private String staffEducation;

	/**
	 * 退休时间 db_column: staff_retired_time
	 */
	private Date staffRetiredTime;

	/**
	 * 查询条件，冗余字段，数据库中不存在 Y代表投资公司的员工，N或者空代表非投资公司员工
	 */
	private String isTzgs;

	// 是否已经创建标识
	private String isCreate;

	// 冗余字段（查询条件），只查询该组织下主身份的员工
	private String mainIdentityStaff;
	
	// 冗余字段（查询条件）
	private String queryStaff ;
	
	private String queryOrgId;////轮询查询
	// 冗余字段（当前员工的职位）
	private String currentPositionId;



}
