package com.blueland.bo;

import java.util.*;

import com.blueland.model.Query;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.Email;

import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;

@Data
@EqualsAndHashCode(callSuper=true)
public class TucStaffEntity extends Query {
	private static final long serialVersionUID = 1L;
	//alias
	public static final String TABLE_ALIAS = "TucStaff";
	
		
	//可以直接使用: @Length(max=50,message="用户名长度不能大于50")显示错误消息
	//columns START
	/**
	* 员工ID-唯一标识员工对象id        db_column: staff_id 
	*/	
	@Length(max=100)
	private String staffId;
	/**
	* 姓名       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=1000)
	private String positionId;
	/**
	* 岗位名称       db_column: position_name 
	*/	
	@Length(max=1000)
	private String positionName;
	/**
	* 性别-N:男，V:女        db_column: staff_sex 
	*/	
	@Length(max=100)
	private String staffSex;
	/**
	* 年龄       db_column: staff_age 
	*/	
	
	private Integer staffAge;
	/**
	* 证件类型,SFZ：身份证、JZ：驾照、HZ:护照       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 
	*/	
	@Email @Length(max=100)
	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;
	/**
	* 员工类型,GYGS：工业公司,，SYGS：商业公司， LSH：零售户(场所) ，XFZ：消费者 ，GYS：供应商       db_column: staff_type 
	*/	
	@Length(max=100)
	private String staffType;
	/**
	* 员工类型,GYGS：工业公司,，SYGS：商业公司， LSH：零售户(场所) ，XFZ：消费者 ，GYS：供应商       db_column: staff_sub_type 
	*/	
	@Length(max=100)
	private String staffSubType;
	/**
	* 创建人-创建人        db_column: staff_creator 
	*/	
	@Length(max=100)
	private String staffCreator;
	/**
	* 创建时间-创建时间        db_column: staff_create_time 
	*/	
	
	private Date staffCreateTime;
	/**
	* 修改人-修改人        db_column: staff_updator 
	*/	
	@Length(max=100)
	private String staffUpdator;
	/**
	* 最后修改时间-最后修改时间        db_column: staff_lastupdate_time 
	*/	
	
	private Date staffLastupdateTime;
	/**
	* 员工类型-1、编制内员工 2、编制外员工       db_column: staff_work_type 
	*/	
	@Length(max=20)
	private String staffWorkType;
	/**
	* 公司ID       db_column: company_id 
	*/	
	@Length(max=100)
	private String companyId;
	/**
	* 公司名称       db_column: company_name 
	*/	
	@Length(max=100)
	private String companyName;
	/**
	* deptId       db_column: dept_id 
	*/	
	@Length(max=32)
	private String deptId;
	/**
	* deptName       db_column: dept_name 
	*/	
	@Length(max=100)
	private String deptName;
	/**
	* HR编码       db_column: staff_hr_id 
	*/	
	@Length(max=100)
	private String staffHrId;
	/**
	* 员工编码--登录账号       db_column: staff_code 
	*/	
	@Length(max=100)
	private String staffCode;
	/**
	* 人员生日       db_column: staff_birthday 
	*/
	private String staffBirthday;
	/**
	* 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-小学       db_column: staff_education 
	*/	
	@Length(max=500)
	private String staffEducation;
	/**
	* 退休时间       db_column: staff_retired_time 
	*/	
	
	private Date staffRetiredTime;
	/**
	* 员工状态       db_column: staff_job_status 
	*/	
	@Length(max=100)
	private String staffJobStatus;
	/**
	* 账号类型，正常：ZC，临时：LS       db_column: staff_account_type 
	*/	
	@Length(max=50)
	private String staffAccountType;
	/**
	 * 20200528 用作设备码
	* staffPhoneBak       db_column: staff_phone_bak 
	*/	
	@Length(max=50)
	private String staffPhoneBak;
	
	// 冗余字段（查询条件），只查询该组织下主身份的员工
	private String mainIdentityStaff;
	
	// 冗余字段（查询条件）
	private String queryStaff ;
	
	// 冗余字段
	private String queryOrgId;////轮询查询
	// 冗余字段
	private String queryDeptId;//模糊查询
	
	private String[] orgIds;
	// 冗余字段（当前员工的职位）
	private String currentPositionId;
	
	// 20200827 add 冗余字段（当前员工全部门）
	private String fulldeptname;

	/**
	 * 任岗编码
	 */
	private String staffPostCode;

	/**
	 * 任岗类型
	 */
	private String staffPostType;

	/**
	 * 租户id
	 */
	private String appId;
	//columns END

	private String sortColumns;

	private List<String> postCodes;

	private List<String> staffCodes;

	private String likeDeptId;
}

