/*
 * 该类为数据库表实体类
 */
package com.blueland.bpm.identity.model;

import com.blueland.bpm.common.base.BaseEntity;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;

import javax.persistence.Id;
import java.util.Date;
import java.util.List;


/**
 * @author lw
 * @version 1.0
 * @since  
 */


public class Org extends BaseEntity implements java.io.Serializable{
	private static final long serialVersionUID = 5454155825314635342L;
	//columns START
    /**
     * 组织编码       数据字段: ORG_ID 
     */ 	
	private String orgId;
    /**
     * 组织简称       数据字段: ORG_NAME 
     */ 	
	private String orgName;
    /**
     * 组织全称       数据字段: ORG_FULL_NAME 
     */ 	
	private String orgFullName;
    /**
     * 组织全路径名称，如组织1/部门1/科室1       数据字段: ORG_FULL_PATH_NAME 
     */ 	
	private String orgFullPathName;
    /**
     * 组织全路径ID，如1/2/3       数据字段: ORG_FULL_PATH_ID 
     */ 	
	private String orgFullPathId;
	   /**
     * 上级组织编码       数据字段: ORG_PARENT_ID 
     */ 	
	private String orgParentId;
    /**
     * 组织类型，如单位：UNIT、部门：DEPT、其他：OTHER       数据字段: ORG_TYPE 
     */ 	
	private String orgType;
    /**
     * 组织级别，顶层组织：0、一级组织：1、二级组织：2、三级组织：3、四级组织：4       数据字段: ORG_LEVEL 
     */ 	
	private Integer orgLevel;
    /**
     * 政府单位区域类别，省级：SJ，地市：DS，县：QX，乡镇：XZ，街道：JD       数据字段: ORG_AREA_TYPE 
     */ 	
	private String orgAreaType;
    /**
     * 组织排序号       数据字段: ORG_SORT 
     */ 	
	private Integer orgSort;
    /**
     * 组织办公电话       数据字段: ORG_WORK_PHONE 
     */ 	
	private String orgWorkPhone;
    /**
     * 组织办公地址       数据字段: ORG_WORK_ADDRESS 
     */ 	
	private String orgWorkAddress;
    /**
     * 组织负责人       数据字段: ORG_PRINCIPAL 
     */ 	
	private String orgPrincipal;
    /**
     * 组织状态，（启用:QY、禁用:JY）       数据字段: ORG_STATUS 
     */ 	
	private String orgStatus;
	/**
	 * 分管领导Id       数据字段: ORG_BRANCH_LEADER 
	 */ 	
	private String orgBranchLeader;
	/**
	 * 分管领导姓名       冗余字段
	 */ 	
	private String orgBranchLeaderName;
    /**
     * 备注       数据字段: REMARK 
     */ 	
	private String remark;
	
	/**
     * 创建时间       数据字段: ORG_CREATE_TIME 
     */ 
	private Date orgCreateTime;

	/**
	 * 公司ID
	 */
	private String companyId;
	
	/**
	 * 公司名称
	 */
	private String companyName;
	
	/**
	 * 部门ID
	 */
	private String deptId;
	/**
	 * 部门名称
	 */
	private String deptName;
	
	private List<String> orgIds;

	public List<String> getOrgIds() {
		return orgIds;
	}

	public void setOrgIds(List<String> orgIds) {
		this.orgIds = orgIds;
	}

	public Org(){
	}

	public Org(
			String orgId
	){
		this.orgId = orgId;
	}

	@Id
	public String getOrgId() {
		return this.orgId;
	}
	
	public void setOrgId(String value) {
		this.orgId = value;
	}
	
	public String getOrgName() {
		return this.orgName;
	}
	
	public void setOrgName(String value) {
		this.orgName = value;
	}
	
	public String getOrgFullName() {
		return this.orgFullName;
	}
	
	public void setOrgFullName(String value) {
		this.orgFullName = value;
	}
	
	public String getOrgFullPathName() {
		return this.orgFullPathName;
	}
	
	public void setOrgFullPathName(String value) {
		this.orgFullPathName = value;
	}
	
	public String getOrgFullPathId() {
		return this.orgFullPathId;
	}
	
	public void setOrgFullPathId(String value) {
		this.orgFullPathId = value;
	}
	
	public String getOrgParentId() {
		return this.orgParentId;
	}
	
	public void setOrgParentId(String value) {
		this.orgParentId = value;
	}
	
	public String getOrgType() {
		return this.orgType;
	}
	
	public void setOrgType(String value) {
		this.orgType = value;
	}
	
	public Integer getOrgLevel() {
		return this.orgLevel;
	}
	
	public void setOrgLevel(Integer value) {
		this.orgLevel = value;
	}
	
	public String getOrgAreaType() {
		return this.orgAreaType;
	}
	
	public void setOrgAreaType(String value) {
		this.orgAreaType = value;
	}
	
	public Integer getOrgSort() {
		return this.orgSort;
	}
	
	public void setOrgSort(Integer value) {
		this.orgSort = value;
	}
	
	public String getOrgWorkPhone() {
		return this.orgWorkPhone;
	}
	
	public void setOrgWorkPhone(String value) {
		this.orgWorkPhone = value;
	}
	
	public String getOrgWorkAddress() {
		return this.orgWorkAddress;
	}
	
	public void setOrgWorkAddress(String value) {
		this.orgWorkAddress = value;
	}
	
	public String getOrgPrincipal() {
		return this.orgPrincipal;
	}
	
	public void setOrgPrincipal(String value) {
		this.orgPrincipal = value;
	}
	
	public String getOrgStatus() {
		return this.orgStatus;
	}
	
	public void setOrgStatus(String value) {
		this.orgStatus = value;
	}
	
	public String getRemark() {
		return this.remark;
	}
	
	public void setRemark(String value) {
		this.remark = value;
	}
	


	public String getCompanyId() {
		return companyId;
	}

	public void setCompanyId(String companyId) {
		this.companyId = companyId;
	}

	public String getCompanyName() {
		return companyName;
	}

	public void setCompanyName(String companyName) {
		this.companyName = companyName;
	}

	public String getDeptId() {
		return deptId;
	}

	public void setDeptId(String deptId) {
		this.deptId = deptId;
	}

	public String getDeptName() {
		return deptName;
	}

	public void setDeptName(String deptName) {
		this.deptName = deptName;
	}

	public Date getOrgCreateTime() {
		return orgCreateTime;
	}

	public void setOrgCreateTime(Date orgCreateTime) {
		this.orgCreateTime = orgCreateTime;
	}

	public String getOrgBranchLeader() {
		return orgBranchLeader;
	}

	public void setOrgBranchLeader(String orgBranchLeader) {
		this.orgBranchLeader = orgBranchLeader;
	}

	public String getOrgBranchLeaderName() {
		return orgBranchLeaderName;
	}

	public void setOrgBranchLeaderName(String orgBranchLeaderName) {
		this.orgBranchLeaderName = orgBranchLeaderName;
	}

	public String toString() {
		return ToStringBuilder.reflectionToString(this,ToStringStyle.MULTI_LINE_STYLE);
	}
	
	public int hashCode() {
		return new HashCodeBuilder()
			.append(getOrgId())
			.toHashCode();
	}
	
	public boolean equals(Object obj) {
		if(obj instanceof Org == false) return false;
		if(this == obj) return true;
		Org other = (Org)obj;
		return new EqualsBuilder()
			.append(getOrgId(),other.getOrgId())
			.isEquals();
	}
	
	
}

