组织树
系统使用组织树反映企业组织架构,它从上至下形象地反映了组织内各机构、部门、岗位、人员相互之间的关系,如下图所示
组织类型
组织架构中包括各级组织和人员。组织大致可以分为:机构、部门、岗位。人员隶属于组织。
系统提供五种基础组织类型,分别是:机构、部门、岗位、人员成员和虚节点。提供基于基础组织类型扩展组织类型的能力。例如,在机构下可以扩展出集团、公司,如下图所示
其中
- 虚节点:用来在组织树上添加一个虚拟组织
- 人员成员:是对分配到某个组织下面的人员的称呼,区别于人员
- 基础组织类型的 ID:机构 ogn、部门 dpt、岗位 pos、人员成员 psm、虚节点 vir
- 扩展组织类型的 ID 是有规则的,长度4位,后3位是基础组织类型的 ID,例如上图中,集团的 ID 为0ogn,公司的 ID 为1ogn
- 系统通过对组织类型后3位的判断,了解组织所属的基础组织类型,系统内部处理使用
- 扩展组织类型时,系统先使用数字作为第一位,数字用完了,再使用字母作为第一位
人员和人员成员的区别
区别 | 人员 | 人员成员 |
---|---|---|
存储 | 用户表 users | 组织表 orgs |
数量 | 一个人员一条记录 | 隶属于几个组织,就有几条记录 |
主键 | 人员 ID | 人员 ID @ 组织 ID |
状态 | 有两个状态:都是1表示有效,0表示无效 用户状态:无效时用户不能登录,且组织树上不显示此人 账号状态:无效时用户不能登录,但组织树上显示此人 |
状态:1表示有效,0表示无效。无效时组织树上不显示,且用户登录后亦不显示此岗位(组织) |
组织和用户
组织树上包括组织和用户
组织
- 自身有4个属性:ID、编码、名称、类型
- ID:系统自动生成,使用 postOrgs 导入组织时,可以指定组织 ID
- 编码:默认自动生成,在组织配置中开启输入编码后,支持输入组织编码。人员成员的编码就是用户名
- 类型:基础组织类型,机构 ogn、部门 dpt、岗位 pos、人员成员 psm、虚节点 vir
- 作为父子树有3个属性:父ID、层级、叶子(是否末级节点)
- 父ID:根组织的父 ID 为空
- 层级:第一级组织为1,第二级组织为2,以此类推
- 叶子:1 表示末级节点,0 表示有下级节点
- 作为编码树有3个属性:全路径ID、全路径编码、全路径名称
- 全路径ID:当前组织及所有上级组织的ID,加上组织类型,以 / 作为分隔符,形成的字符串
- 全路径编码:当前组织及所有上级组织的编码,以 / 作为分隔符,形成的字符串
- 全路径名称:当前组织及所有上级组织的名称,默认以 / 作为分隔符(在组织配置中可以配置组织全路径名称分隔符),形成的字符串
- 上面3个全路径字符串,都是以分隔符开头的
- 排序有2个属性:序号 seq、全路径序号 sequence
- 序号:默认自动生成,如果明确给出,则使用该值。序号可用于人员全局排序,在组织配置中开启人员全局排序,添加用户时即可输入序号
- 全路径序号:当前组织及所有上级组织的序号,以 / 作为分隔符,形成的字符串。全路径序号用于按层级排序
- 序号位数:默认为4位,可在组织配置中设置组织序号位数
组织数据样例见下表
组织 ID | 组织编码 | 组织名称 | 父组织 ID | 组织全路径 ID | 组织全路径编码 | 组织全路径名称 | 组织类型 | 全路径序号 sequence | 序号 seq |
---|---|---|---|---|---|---|---|---|---|
1 | 2 | 阳光集团 | NULL | /1.ogn | /2 | /阳光集团 | 机构 ogn | /0001 | 0001 |
3 | 4 | 领导办公室 | 1 | /1.ogn/3.dpt | /2/4 | /阳光集团/领导办公室 | 部门 dpt | /0001/0006 | 0006 |
5 | 6 | 总裁办 | 3 | /1.ogn/3.dpt/5.pos | /2/4/6 | /阳光集团/领导办公室/总裁办 | 岗位 pos | /0001/0006/0003 | 0003 |
7@5 | zongcai1 | 总裁1 | 5 | /1.ogn/3.dpt/5.pos/7.psm | /2/4/6/zongcai1 | /阳光集团/领导办公室/总裁办/总裁1 | 人员成员 psm | /0001/0006/0003/0001 | 0001 |
用户
用户主要有7个属性:ID、用户名、姓名、手机号、用户状态、账号状态、类型、主岗组织 ID
- 用户名、手机号:可用于登录系统
- 用户状态:无效时用户不能登录,且组织树上不显示此人
- 账号状态:无效时用户不能登录,但组织树上显示此人
- 类型:org 表示组织内用户,空表示外部用户
- 主岗组织 ID:用户主岗组织的 ID
用户数据样例见下表
用户 ID | 用户名 | 姓名 | 用户状态 active | 账号状态 verified | 类型 | 主岗组织 ID |
---|---|---|---|---|---|---|
7 | zongcai1 | 总裁1 | 有效 1 | 有效 1 | org | 5 |
用户一人多岗
系统支持一人多岗,即一个用户可以隶属于多个组织,在每个组织下有各自的权限。如下图所示,李云即属于北京公司-开发部,又属于上海公司
一个用户只有一个主岗,其余都是副岗
李云登录系统后,显示其中一个岗位,可以切换其他岗位,如下图所示
一人多岗时,组织表中一个用户有多条记录,见下表
组织 ID | 用户 ID | 组织编码 | 组织名称 | 父组织 ID | 组织全路径 ID | 组织全路径编码 | 组织全路径名称 | 组织类型 |
---|---|---|---|---|---|---|---|---|
8@9 | 8 | liyun | 李云 | 9 | /1.ogn/9.ogn/8.psm | /2/10/liyun | /阳光集团/上海公司/李云 | psm |
8@11 | 8 | liyun | 李云 | 11 | /1.ogn/12.ogn/11.dpt/8.psm | /2/13/14/liyun | /阳光集团/北京公司/开发部/李云 | psm |
组织及用户扩展
参考《组织及用户扩展》