class Organization extends Object
机构
| Modifiers | Name | Description |
|---|---|---|
static Integer |
HAS_EMPLOYEES_ALL |
|
static Integer |
HAS_EMPLOYEES_DIRECT |
|
static Integer |
HAS_EMPLOYEES_INDIRECT |
|
static Integer |
HAS_EMPLOYEES_NONE |
|
static Integer |
LEVEL_MAX |
|
static Integer |
LEVEL_MIN |
|
static Byte |
TYPE_EXTERNAL |
|
static Byte |
TYPE_FORMAL |
|
static Byte |
TYPE_TEMPORARY |
|
static Byte |
TYPE_VIRTUAL |
| Type | Name and description |
|---|---|
static Object |
belongsTo |
String |
business1所属业务专业1:在数据字典中定义 |
String |
business2所属业务专业2:在数据字典中定义 |
SortedSet<Organization> |
children下级机构 |
String |
code机构的唯一编码标识:通过后台管理用于开发调用 |
static Object |
constraints |
String |
createdBy |
Date |
dateCreated时间戳... |
Boolean |
department是否为部门 |
Integer |
disabled是否禁用:0为启用,其它为禁用 |
Domain |
domain关联域 |
SortedSet<EmployeeIdentity> |
employees员工身份 |
String |
ext1自定义属性:在数据字典中定义 |
String |
ext2 |
String |
fullIds机构ID列表(含所有上级和自己的ID):冗余数据,多个ID间以分号分隔,顺序与 fullName 一致,但字符串开始结尾都有分号 |
String |
fullName机构全名:只读,根据机构的层次结构自动生成,每层之间用 “/” 分隔,但首尾没有分隔符 |
String |
fullSequence全局排序号:暂时只考虑20级(0~19),即长度为60的字符串 |
Integer |
hasEmployees是否有下级员工:0=没有,1=有直属下级员工,2=有非直属下级员工,3=有直属及非直属下级员工 |
static Object |
hasMany |
Date |
lastUpdated |
Integer |
level机构级别:默认从0级开始依次+1,即等同于自然层级 |
Boolean |
levelFixed机构级别是否固定的:如果是固定的,则机构移动后级别不变化 |
Integer |
levelNatural机构级别:自然层级,从0开始依次+1 |
static Map |
listFields |
String |
location位置:如地市名称等 |
String |
longName机构全名:如中国XXXXX之类的长名称 |
static Object |
mapping |
Long |
matrixParentId所属公司的基本信息 |
String |
name机构名称 |
String |
notes备注 |
Organization |
parent上级机构 |
String |
poi地理位置:格式为 {lng: xxx, lat: xxx, bounds: [[x1,y1],[x2,y2]], id: xxx} 的 json 字符串 |
SortedSet<Position> |
positions岗位 |
Integer |
sequence排序号:最多三位 - 1~999 |
String |
shortName机构代字:可以重复,但需提示;形如:代字[|业务编码1];代字2[|业务编码2] |
String |
syncId同步ID:如果是从其他系统同步过来的,可以在这里记录一个同步ID |
String |
syncSequence同步序号:其他系统的序号规则可能不满足0~999的规则,可以在这里记录,并重新计算一个新的值保存在 sequance 中 |
Byte |
type机构类别:行政上的正式机构、临时机构、虚拟组织、外部机构(合作伙伴),具体作用由业务自己定义 |
String |
updatedBy |
| Type | Name and description |
|---|---|
static List |
availableList(Map options = null)可用的机构列表,默认按全名排序 |
int |
compareTo(Object obj) |
static Organization |
createIfNotExists(String fullName, List<Map> employees = null, Map props = null)创建机构、员工信息 |
List<EmployeeIdentity> |
employees()未被禁用的员工身份列表 |
static List<Organization> |
getAllKeepOrder(List ids)根据ID获得机构列表,并保持ID的顺序 |
static List<Map> |
getBusinesses() |
static String |
getDisplayBusiness(String business) |
static String |
getDisplayExt1(String ext1) |
static String |
getDisplayExt2(String ext2) |
static String |
getDisplayLevel(Integer level) |
static List<Map> |
getExt1s() |
static List<Map> |
getExt2s() |
static List<Map> |
getLevels() |
static List<Organization> |
getRoots(Map options = null)获得所有根机构 |
Organization |
parentByLevel(Integer level, boolean isNatural = false)根据级别,获得对应的上级机构 |
List |
shortNames(boolean keepBizCode = false)取机构代字列表 |
static String |
splitName(String fullName, int policy)按照策略拆分全名,并返回对应的字符串 |
String |
toString() |
| Methods inherited from class | Name |
|---|---|
class Object |
Object#wait(long, int), Object#wait(long), Object#wait(), Object#equals(Object), Object#toString(), Object#hashCode(), Object#getClass(), Object#notify(), Object#notifyAll() |
所属业务专业1:在数据字典中定义
所属业务专业2:在数据字典中定义
下级机构
机构的唯一编码标识:通过后台管理用于开发调用
时间戳...
是否为部门
是否禁用:0为启用,其它为禁用
关联域
员工身份
自定义属性:在数据字典中定义
机构ID列表(含所有上级和自己的ID):冗余数据,多个ID间以分号分隔,顺序与 fullName 一致,但字符串开始结尾都有分号
机构全名:只读,根据机构的层次结构自动生成,每层之间用 “/” 分隔,但首尾没有分隔符
全局排序号:暂时只考虑20级(0~19),即长度为60的字符串
是否有下级员工:0=没有,1=有直属下级员工,2=有非直属下级员工,3=有直属及非直属下级员工
机构级别:默认从0级开始依次+1,即等同于自然层级
机构级别是否固定的:如果是固定的,则机构移动后级别不变化
机构级别:自然层级,从0开始依次+1
位置:如地市名称等
机构全名:如中国XXXXX之类的长名称
所属公司的基本信息
机构名称
备注
上级机构
地理位置:格式为 {lng: xxx, lat: xxx, bounds: [[x1,y1],[x2,y2]], id: xxx} 的 json 字符串
岗位
排序号:最多三位 - 1~999
机构代字:可以重复,但需提示;形如:代字[|业务编码1];代字2[|业务编码2]
同步ID:如果是从其他系统同步过来的,可以在这里记录一个同步ID
同步序号:其他系统的序号规则可能不满足0~999的规则,可以在这里记录,并重新计算一个新的值保存在 sequance 中
机构类别:行政上的正式机构、临时机构、虚拟组织、外部机构(合作伙伴),具体作用由业务自己定义
可用的机构列表,默认按全名排序
options.department - 如果为 true,则仅返回部门列表;如果为 false 则仅返回组织列表;否则返回所有options.parent - 上级机构对象或上级机构的 IDoptions.types - 表示机构性质的字符串或数字,若字符串则多值之间用逗号分隔,默认为null,即所有类型的机构options.result - 返回值类型,"map" 或 "bean";默认为 "map",即返回常用字段的 Map 列表,性能相对较好(10倍)。options.orderBy - 排序参数,包括 sort 和 order,默认为 [sort: 'fullName', order: 'asc']options.stripParentFullname - 当结果是 map、且有 parent 时,每条数据中的 fulName 是否删除 parent 上级的全名前缀创建机构、员工信息
如果机构已存在,则不会更新参数 props 中的属性。但任然会根据 username 来创建不存在的员工。
示例:
// 例1:创建一级单位、用户,并为用户设置岗位 “单位领导”
Organization.createIfNotExists("博瑞开源", [[name:"张三", username:"zhangsan", position:"单位领导"]])
// 例2:创建一级部门,并设置用户岗位 “部门领导”
Organization.createIfNotExists("博瑞开源/综合部", [[name:"李四", username:"lisi", position:"部门领导"], [name:"王五", username:"wangwu"], [name:"赵六", username:"zhaoliu"]])
Organization.createIfNotExists("博瑞开源/人资部", [[name:"钱七", username:"qianqi"]])
// 例3:创建 O1、O2、O3,分别设置 O2、O3 的 code 为 o2 和 o3,统一设置三个机构的 notes 为 x
Organization.createIfNotExists("O1/O2/O3", null, ["O1/O2": [code: "o2"], "O1/O2/O3": [code: o3], notes: "x"])
fullName - 机构全名,如果不存在,则会依次创建employees - 自动创建的员工Map列表,必须包含 name、username 属性,可以包含 position 或 positions 表示本机构下的岗位名称或编码props - 机构的其他属性,如 code、shortName 等。可以为二维 Map,以全名为 key、分别设置多个机构的属性,如上面的示例3。未被禁用的员工身份列表
根据ID获得机构列表,并保持ID的顺序
ids - 机构ID列表获得所有根机构
options.disabled - 是否包含被禁用的机构,默认为否根据级别,获得对应的上级机构
level - 机构级别isNatural - 自然级别(从0顺序下来的,取机构的levelNatural字段进行比较),或者是手动设置的级别(和level字段比较)取机构代字列表
keepBizCode - 是否保留业务编码,默认为false,不保留按照策略拆分全名,并返回对应的字符串
fullName - 某机构全名policy - 拆分策略:1=返回最低一级名称,2=返回不包括根机构名称的机构全名(如果本身就是根机构则直接返回),其他=返回完整的机构全名