package com.blueland.bo;

import java.util.Date;
import java.util.List;

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

import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 组织信息entity
 * @作者 lw
 * @创建时间 2017年11月15日 下午7:18:12
 * @版本 1.0
 */
@Data
@EqualsAndHashCode(callSuper=false)
public class Org extends Query {
	private static final long serialVersionUID = 1L;
	//alias
	public static final String TABLE_ALIAS = "Org";

	private String id;
	
		
	//可以直接使用: @Length(max=50,message="用户名长度不能大于50")显示错误消息
	//columns START
	/**
	* 组织ID-唯一标识组织对象id        db_column: org_id 
	*/	
	@Length(max=100)
	private String orgId;
	/**
	* 组织名称-组织名称        db_column: org_full_name 
	*/	
	@Length(max=1000)
	private String orgFullName;
	/**
	* 组织短名称-组织短名称        db_column: org_name 
	*/	
	@Length(max=1000)
	private String orgName;
	/**
	* 全拼-        db_column: org_full_spells 
	*/	
	@Length(max=200)
	private String orgFullSpells;
	/**
	* 简拼-        db_column: org_spells 
	*/	
	@Length(max=200)
	private String orgSpells;
	
	/**
	* 组织联盟分类-工业公司、商业公司、零售户、供应商        db_column: org_type 
	*/	
	@Length(max=10)
	private String orgType;
	/**
	* 组织管理类型-GS：公司BM：部门KS：科室QT：其他
        db_column: org_Mgr_type 
	*/	
	@Length(max=10)
	private String orgMgrType;
	
	/**
	* 组织级别-1、2、3、4层级        db_column: org_level 
	*/	
	
	private Integer orgLevel;
	/**
	* 上级组织ID-上级组织UUID        db_column: org_parent_id 
	*/	
	@Length(max=100)
	private String orgParentId;
	/**
	* 上级组织名称-上级组织名称        db_column: org_parent_name 
	*/	
	@Length(max=100)
	private String orgParentName;
	/**
	* 所属组织ID-所属组织UUID        db_column: company_id 
	*/	
	@Length(max=100)
	private String companyId;
	
	/**
	* 所属组织ID-所属组织名称        db_column: company_id 
	*/	
	@Length(max=100)
	private String companyName;
	
	/**
	* 组织负责人ID-组织负责人UUID        db_column: org_branch_leader 
	*/	
	@Length(max=100)
	private String orgBranchLeader;
	
	/**
	* 组织负责人ID-组织负责人姓名        db_column: org_branch_leader_name 
	*/	
	@Length(max=100)
	private String orgBranchLeaderName;
	
	/**
	* 办公地址-办公地址        db_column: org_work_address 
	*/	
	@Length(max=1000)
	private String orgWorkAddress;
	/**
	* 办公电话-办公电话        db_column: org_work_phone 
	*/	
	@Length(max=100)
	private String orgWorkPhone;
	/**
	* 组织状态-启用、禁用        db_column: org_status 
	*/	
	@Length(max=10)
	private String orgStatus;
	/**
	* 组织排序-组织排序        db_column: org_sort 
	*/	
	
	private Integer orgSort;
	/**
	* 删除标识-组织单元的删除标识 删除 ： y、未删除： n        db_column: org_del_status 
	*/	
	//@Length(max=10)
	//private String orgDelStatus;
	/**
	* 创建时间-创建时间        db_column: org_create_time 
	*/	
	
	private Date orgCreateTime;
	/**
	* 创建人-创建人ID        db_column: org_creator 
	*/	
	@Length(max=100)
	private String orgCreator;
	/**
	* 最近修改时间-最近修改时间        db_column: org_update_time 
	*/	
	
	private Date orgUpdateTime;
	/**
	* 最近修改人-最近修改人ID        db_column: org_updator 
	*/	
	@Length(max=100)
	private String orgUpdator;
	//columns END
	/**
	* 部门ID        db_column: dept_id 
	*/	
	@Length(max=100)
	private String deptId;
	/**
	* 部门名称        db_column: dept_name 
	*/	
	@Length(max=100)
	private String deptName;
	//组织子分类
	@Length(max=20)
	private String orgSubType;
	/**
	* 组织编制类型  编制内：BZN，编制外：BZW       db_column: org_work_type 
	*/	
	@Length(max=50)
	private String orgWorkType;
	
	private Staff staffInfo;
	//编制数量
	private String staffing;
	
	// 冗余字段（查询条件）
	private String queryOrg;
	//组织hrId
	@Length(max=100)
	private String orgHrId;
	private List<String> orgIdlist;

	private List<String> companyIdList;
	
	//数据库不存在此字段，用来做权限判断
	private String orgBtn;

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

	private String sortColumns;

	private List<String> deptIds;

	private List<String> erpCodes;

	private String likeDeptId;

	/**
	 * 上级部门code
	 */
	private String parentDeptCode;
}

