OThinker.Organization.IOrganization

说明:组织结构接口,用于增删改查组织结构信息,整个组织结构的索引是完全建立在内存索引的基础上的,所以相应会非常快

 

方法名称:Reload

方法说明

装载必须装载全部数据,因为其他的判断包括Alias是否存在的判断都是判断内存中的数据

输入参数

名称

类型

说明

返回值

 

方法名称:GetUnit(System.String)

方法说明

根据ID获得Unit

输入参数

名称

类型

说明

ID

System.String

组织的ID

返回值

组织对象

 

方法名称:GetUnits(System.String[])

方法说明

通过ID批量获得组织

输入参数

名称

类型

说明

Ids

System.String[]

组织的ID

返回值

组织对象

 

方法名称:GetUnitsByCodes(System.String[])

方法说明

通过Code批量获得组织

输入参数

名称

类型

说明

Codes

System.String[]

组织的Code

返回值

组织对象

 

方法名称:GetUnitFullNameTable(System.String[])

方法说明

通过ID批量获得组织的全名。执行该方法不需要锁定组织结构服务。

输入参数

名称

类型

说明

Ids

System.String[]

组织的ID

返回值

如果参数是Null,那么返回Null;否则按照每个ID获得名称,不获取重复的记录,然后返回一个(ID, 全名称)的表

 

方法名称:GetUnitPathTable(System.String[])

方法说明

通过ID批量获得组织的全名。执行该方法不需要锁定组织结构服务。

输入参数

名称

类型

说明

Ids

System.String[]

组织的ID

返回值

如果参数是Null,那么返回Null;否则按照每个ID获得名称,不获取重复的记录,然后返回一个(ID, 全路径)的表

 

方法名称:GetUnitCopy(System.String)

方法说明

根据ID获得Unit的一个副本,这个副本中的属性跟Unit本身完全一样,只是并不在组织结构的缓存中,外部程序可以对这个副本进行编辑,然后再通过UpdateUnit方法,更新到系统缓存和数据库中。如果不使用副本直接进行编辑的话,那么可能会影响内存中的对象。

输入参数

名称

类型

说明

ID

System.String

组织的ID

返回值

组织对象

 

方法名称:GetCompanyUnits(OThinker.Organization.State)

方法说明

获得公司下的所有单元

输入参数

名称

类型

说明

State

OThinker.Organization.State

组织的状态条件

返回值

公司下面的所有符合状态条件的组织对象

 

方法名称:AddUnit(System.String,OThinker.Organization.Unit)

方法说明

添加一个Unit

输入参数

名称

类型

说明

Modifier

System.String

请求变更的人

Unit

OThinker.Organization.Unit

要添加的对象

返回值

返回ID

 

方法名称:UpdateUnit(System.String,OThinker.Organization.Unit)

方法说明

更新一个Unit

输入参数

名称

类型

说明

Modifier

System.String

请求变更的人

Unit

OThinker.Organization.Unit

具有新属性的Unit

返回值

错误代码

 

方法名称:RemoveUnit(System.String,System.String)

方法说明

删除一个组织

输入参数

名称

类型

说明

Modifier

System.String

请求变更的人

ID

System.String

要删除的组织的ID

返回值

删除的Unit的数量

 

方法名称:Sync(System.String,System.String[],System.String,System.String,System.DateTime,OThinker.Organization.RootMode,OThinker.Organization.ADUserRemovingPolicy,System.Boolean)

方法说明

同步AD

输入参数

名称

类型

说明

Modifier

System.String

修改人员

ADPathes

System.String[]

AD路径

ADUser

System.String

AD登录名

ADPassword

System.String

AD密码

UTCLastSyncTime

System.DateTime

上一次同步时间

RootMode

OThinker.Organization.RootMode

根目录模式。如果要同步的对象是某一个OU,那么允许两种模式:1、将OU作为一个节点同步到公司节点下面;2、将OU下面的子对象直接同步到公司下面。

ADUserRemovingPolicy

OThinker.Organization.ADUserRemovingPolicy

AD用户被删除之后的同步策略

LoginNameIncludeDomain

System.Boolean

用户的登陆名是否包含域名

返回值


 

方法名称:CreateUser(System.String,System.String[],System.String,System.String,System.String,System.Boolean,OThinker.Organization.HandleResult@)

方法说明

根据活动目录中的用户信息新建一个用户对象

输入参数

名称

类型

说明

ADPath

System.String

AD路径

ReferenceADPathes

System.String[]


ADUser

System.String

AD登录名

ADPassword

System.String

AD密码

UserAlias

System.String

要创建的用户的登录名

LoginNameIncludeDomain

System.Boolean

用户的登陆名是否包含域名

Result

OThinker.Organization.HandleResult@

如果成功则返回SUCCESS,否则返回错误代码

返回值

新建的用户

 

方法名称:QueryADUsers(System.String[],System.String,System.String,System.String)

方法说明

按照登陆名前缀条件来查找AD用户

输入参数

名称

类型

说明

ADPathes

System.String[]

所有需要遍历的LADP

ADUser

System.String

登陆名

ADPassword

System.String

登陆密码

UserAlias

System.String

账号前缀

返回值

(LDAP, 用户不带域前缀的登陆名数组)

 

方法名称:QueryADUsersByDate(System.String[],System.String,System.String,System.DateTime)

方法说明

按照修改日期条件来查找AD用户

输入参数

名称

类型

说明

ADPathes

System.String[]

所有需要遍历的LADP

ADUser

System.String

登陆名

ADPassword

System.String

登陆密码

UTCBenchDate

System.DateTime

基准时间

返回值

(LDAP, 用户不带域前缀的登陆名数组)

 

方法名称:QueryLog(System.DateTime,System.DateTime)

方法说明

用于查找修改日志,取的日志范围是小于To并且大于等于From

输入参数

名称

类型

说明

From

System.DateTime

查询的开始时间

To

System.DateTime

查询的结束时间

返回值

搜索到的日志

 

方法名称:IsAdministrator(System.String)

方法说明

判断该用户是否是管理员

输入参数

名称

类型

说明

ID

System.String


返回值


 

方法名称:IsAdministratorByIds(System.String[])

方法说明

如果其中任何一个对象是管理员,那么返回true

输入参数

名称

类型

说明

Ids

System.String[]

组织的ID

返回值

如果其中任何一个对象是管理员,那么返回true,否则返回false

 

方法名称:GetManager(System.String)

方法说明

获得用户//OU/公司的经理。但是不能获得群的经理

输入参数

名称

类型

说明

ID

System.String

组织的ID

返回值

这个组织的经理

 

方法名称:GetManagers(System.String[])

方法说明

获得用户//OU/公司/群的经理,如果是群的话,那么需要自动展开,然后分别获得每个组织的经理

输入参数

名称

类型

说明

Units

System.String[]

用户//OU/公司/群的ID数组

返回值

组织的经理

 

方法名称:GetDirectManager(System.String)

方法说明

获得用户的直接经理

输入参数

名称

类型

说明

ID

System.String

组织的ID

返回值

组织的经理经理的ID

 

方法名称:GetRecursiveManagers(System.String)

方法说明

获得用户的递归的经理,从直接经理依次往上递归

输入参数

名称

类型

说明

ID

System.String

组织的ID

返回值

组织的经理的ID数组

 

方法名称:GetManagerByInterval(System.String,System.Int32)

方法说明

获得某个组织的跨级经理。

输入参数

名称

类型

说明

UnitId

System.String

组织ID。如果组织是群,那么获得群的子对象,并针对各个子对象获得相应的跨级经理;如果是非群,那么直接获得跨级经理

Interval

System.Int32

跨级的级别,0表示自己,1表示父对象,依次类推

返回值

返回的经理没有重复值

 

方法名称:GetUnitsManagersByInterval(System.String[],System.Int32)

方法说明

获得某个组织的跨级经理。

输入参数

名称

类型

说明

Units

System.String[]

组织ID。如果组织是群,那么获得群的子对象,并针对各个子对象获得相应的跨级经理;如果是非群,那么直接获得跨级经理

Interval

System.Int32

跨级的级别,0表示自己,1表示父对象,依次类推

返回值

返回的经理没有重复值

 

方法名称:GetManagerByLevel(System.String,System.Int32)

方法说明

获得某个级别的经理

输入参数

名称

类型

说明

UnitId

System.String

组织ID。如果组织是群,那么获得群的子对象,并针对各个子对象获得相应的跨级经理;如果是非群,那么直接获得跨级经理

Level

System.Int32

级别,0表示公司,1表示公司的直接下属OU,依次类推

返回值

如果对象不存在或者不存在那么多的级别父对象,那么返回Null

 

方法名称:GetManagerByEmployeeRank(System.String,System.Int32)

方法说明

获取指定员工级别的经理

输入参数

名称

类型

说明

UnitId

System.String

组织ID。如果组织是群,那么获得群的子对象,并针对各个子对象获得相应的跨级经理;如果是非群,那么直接获得跨级经理

Level

System.Int32

级别,0表示公司,1表示公司的直接下属OU,依次类推

返回值

如果对象不存在或者不存在那么多的级别父对象,那么返回Null

 

方法名称:GetManagersByLevel(System.String[],System.Int32)

方法说明

获得某个组织的跨级经理。

输入参数

名称

类型

说明

Units

System.String[]

组织ID。如果组织是群,那么获得群的子对象,并针对各个子对象获得相应的跨级经理;如果是非群,那么直接获得跨级经理

Level

System.Int32

级别,0表示公司,1表示公司的直接下属OU,依次类推

返回值

返回的经理没有重复值

 

方法名称:GetManagersByEmployeeRank(System.String[],System.Int32)

方法说明

获取指定员工级别的经理

输入参数

名称

类型

说明

Units

System.String[]

组织ID。如果组织是群,那么获得群的子对象,并针对各个子对象获得相应的跨级经理;如果是非群,那么直接获得跨级经理

Level

System.Int32

员工级别

返回值

如果对象不存在或者不存在那么多的级别父对象,那么返回Null

 

方法名称:GetName(System.String)

方法说明

获得单元的实际名称,比如张三,李四之类的。

输入参数

名称

类型

说明

ID

System.String

组织的ID

返回值

如果返回null,那么表示该单元不存在

 

方法名称:GetFullName(System.String)

方法说明

通过单元ID获得某个单元的全名称

输入参数

名称

类型

说明

ID

System.String

组织的ID

返回值

如果单元为用户,则返回User[Alias];否则,则返回路径形式,比如/Company1/Dept1/Dept1_G1

 

方法名称:GetPath(System.String)

方法说明

获得单元的全路径。注意:路径不能唯一确定某个单元

输入参数

名称

类型

说明

ID

System.String

组织的ID

返回值

返回路径形式,比如/Company1/Dept1/Dept1_G1或者/Company1/User1的形式,路径中所有元素均为单元的名称

 

方法名称:GetParent(System.String)

方法说明

获得父节点ID

输入参数

名称

类型

说明

ID

System.String

组织的ID

返回值

父组织的ID

 

方法名称:GetParentUnit(System.String)

方法说明

获得父对象

输入参数

名称

类型

说明

ID

System.String

组织的ID

返回值

父组织

 

方法名称:GetParentByLevel(System.String,System.Int32)

方法说明

通过层次获得父对象的ID

输入参数

名称

类型

说明

ID

System.String

子对象ID

Level

System.Int32

层次

返回值

父对象

 

方法名称:GetParentByInterval(System.String,System.Int32)

方法说明

获取跨级上级对象

输入参数

名称

类型

说明

ID

System.String

子对象ID

Level

System.Int32

跨度层级,0表示自己

返回值

父对象

 

方法名称:GetParentUnitByLevel(System.String,System.Int32)

方法说明

通过层次获得父对象

输入参数

名称

类型

说明

ID

System.String

子对象ID

Level

System.Int32

层次

返回值

父对象

 

方法名称:GetUnitLevel(System.String)

方法说明

获取组织层级

输入参数

名称

类型

说明

ID

System.String

组织ID

返回值


 

方法名称:GetParents(System.String,OThinker.Organization.UnitType,System.Boolean,OThinker.Organization.State)

方法说明

获得父/祖先Unit数组

输入参数

名称

类型

说明

ID

System.String

Unit

ParentUnitType

OThinker.Organization.UnitType

要获得的父/祖先的类型

Recursive

System.Boolean

是否递归

State

OThinker.Organization.State

状态条件,如果要所有状态的组织,可以使用Unspecified

返回值

/祖先集合

 

方法名称:GetParentUnits(System.String,OThinker.Organization.UnitType,System.Boolean,OThinker.Organization.State)

方法说明

获得父/祖先Unit数组

输入参数

名称

类型

说明

ID

System.String

Unit

ParentUnitType

OThinker.Organization.UnitType

要获得的父/祖先的类型

Recursive

System.Boolean

是否递归

State

OThinker.Organization.State

状态条件,如果要所有状态的组织,可以使用Unspecified

返回值

/祖先集合

 

方法名称:GetMembers(System.String[])

方法说明

如果Parents的某个Parent为用户,则返回他自己,如果Receiver为组或组织单元,则返回他下面的递归用户列表。

输入参数

名称

类型

说明

Parents

System.String[]

父组织的ID

返回值

隶属于父组织的成员

 

方法名称:GetMembersByState(System.String[],OThinker.Organization.State)

方法说明

如果Parents的某个Parent为用户,则返回他自己,如果Receiver为组或组织单元,则返回他下面的递归用户列表。

输入参数

名称

类型

说明

Parents

System.String[]

父组织的ID

State

OThinker.Organization.State

状态条件,如果要所有状态的组织,可以使用Unspecified

返回值

隶属于父组织的成员

 

方法名称:GetMemberUsers(System.String[])

方法说明

获得用户成员。;如果UnitCompanyOrganizationUnit,则递归获得他们下面的所有User成员;如果UnitGroup,则获得该Group下的所有User成员;如果UnitUser,则直接返回string[]{ User }

输入参数

名称

类型

说明

Units

System.String[]

父组织的ID

返回值

父组织中的所有用户子成员

 

方法名称:GetChildren(System.String,OThinker.Organization.UnitType,System.Boolean,OThinker.Organization.State)

方法说明

获得子Unit

输入参数

名称

类型

说明

ID

System.String

祖先的ID

ChildUnitType

OThinker.Organization.UnitType

作为一个过滤条件,只返回这种类型的Unit

Recursive

System.Boolean

是否递归

State

OThinker.Organization.State

状态条件,如果要所有状态的组织,可以使用Unspecified

返回值

如果祖先是Company或者OrganizationUnit类型,那么递归/不递归返回下面的所有ChildUnitType类型的Unit;如果是Group,则不递归只返回他的下属成员;如果是User,则不递归返回Manager指向该UserUnit

 

方法名称:GetChildUnits(System.String,OThinker.Organization.UnitType,System.Boolean,OThinker.Organization.State)

方法说明

获得子Unit

输入参数

名称

类型

说明

ID

System.String

祖先的ID

ChildUnitType

OThinker.Organization.UnitType

作为一个过滤条件,只返回这种类型的Unit

Recursive

System.Boolean

是否递归

返回值

如果祖先是Company或者OrganizationUnit类型,那么递归/不递归返回下面的所有ChildUnitType类型的Unit;如果是Group,则不递归只返回他的下属成员;如果是User,则不递归返回Manager指向该UserUnit

 

方法名称:GetChildUnitsByIds(System.String[],OThinker.Organization.UnitType,System.Boolean,OThinker.Organization.State)

方法说明

获得子Unit

输入参数

名称

类型

说明

IDs

System.String[]

祖先的ID

ChildUnitType

OThinker.Organization.UnitType

作为一个过滤条件,只返回这种类型的Unit

Recursive

System.Boolean

是否递归

State

OThinker.Organization.State

状态条件,如果要所有状态的组织,可以使用Unspecified

返回值

如果祖先是Company或者OrganizationUnit类型,那么递归/不递归返回下面的所有ChildUnitType类型的Unit;如果是Group,则不递归只返回他的下属成员;如果是User,则不递归返回Manager指向该UserUnit

 

方法名称:GetChildrenByLevel(System.String,OThinker.Organization.UnitType,System.Int32,OThinker.Organization.State)

方法说明

根据层级获得子对象

输入参数

名称

类型

说明

ID

System.String

父对象

ChildUnitType

OThinker.Organization.UnitType

子对象类型

Level

System.Int32

层级

State

OThinker.Organization.State

状态条件,如果要所有状态的组织,可以使用Unspecified

返回值

该层级的子组织

 

方法名称:GetChildUnitsByLevel(System.String,OThinker.Organization.UnitType,System.Int32,OThinker.Organization.State)

方法说明

根据层级获得子对象

输入参数

名称

类型

说明

ID

System.String

父对象

ChildUnitType

OThinker.Organization.UnitType

子对象类型

Level

System.Int32

层级

State

OThinker.Organization.State

状态条件,如果要所有状态的组织,可以使用Unspecified

返回值

该层级的子组织

 

方法名称:IsAncestor(System.String,System.String)

方法说明

判断某一个单元是否是另外一个单元的祖先

输入参数

名称

类型

说明

ChildID

System.String

子孙ID

AncestorID

System.String

祖先ID

返回值

如果是祖先关系则返回true,否则返回false

 

方法名称:GetUserManagedUnits(System.String,OThinker.Organization.UnitType)

方法说明

用户的直接下属

输入参数

名称

类型

说明

UserID

System.String

用户

UnitType

OThinker.Organization.UnitType

单元的类型

返回值

该用户管理的对象

 

方法名称:GetUserEmail(System.String)

方法说明

获得用户的电子邮件地址

输入参数

名称

类型

说明

UserID

System.String

用户ID

返回值

用户的邮件地址

 

方法名称:GetUserAddress(System.String)

方法说明

获得用户的地址

输入参数

名称

类型

说明

UserID

System.String

用户ID

返回值

用户的地址

 

方法名称:GetUserTitle(System.String)

方法说明

获得用户头衔

输入参数

名称

类型

说明

UserID

System.String


返回值


 

方法名称:GetUserMobile(System.String)

方法说明

获得用户的移动电话

输入参数

名称

类型

说明

UserID

System.String

用户ID

返回值

用户的移动电话

 

方法名称:GetUserOfficePhone(System.String)

方法说明

获得用户的办公电话

输入参数

名称

类型

说明

UserID

System.String

用户ID

返回值

用户的办公电话

 

方法名称:GetUserIpPhone(System.String)

方法说明

获得用户的IP电话

输入参数

名称

类型

说明

UserID

System.String

用户ID

返回值

用户的IP电话

 

方法名称:GetParentGroups(System.String,OThinker.Organization.VisibleType,OThinker.Organization.State)

方法说明

获得用户所属于的组

输入参数

名称

类型

说明

ID

System.String

组成员的ID

Type

OThinker.Organization.VisibleType

可见类型

State

OThinker.Organization.State

状态过滤条件

返回值

用户隶属于的组

 

方法名称:Sort(System.String[])

方法说明

通过排序键升序排序

输入参数

名称

类型

说明

Units

System.String[]

组织的ID

返回值

排序号的组织的ID,按照排序码升序排列

 

方法名称:GetUserDept(System.String)

方法说明

获得用户所属于的部门

输入参数

名称

类型

说明

UserID

System.String

用户ID

返回值

用户所属于的部门

 

方法名称:QueryUser(System.String,OThinker.Organization.State)

方法说明

查找用户

输入参数

名称

类型

说明

Keyword

System.String

要查询的关键字

State

OThinker.Organization.State

状态条件,如果要所有状态的组织,可以使用Unspecified

返回值

查询出的用户表

 

方法名称:QueryByName(System.String,OThinker.Organization.UnitType,OThinker.Organization.State)

方法说明

获得所有以某个字符串为开头的组织,其中对于用户会匹配用户名和登录名两个字段,其他类型的组织只匹配名称

输入参数

名称

类型

说明

StartWith

System.String

打头的字符串,禁止为Null,不区分大小写

UnitType

OThinker.Organization.UnitType

要求返回的类型

State

OThinker.Organization.State

状态条件,如果要所有状态的组织,可以使用Unspecified

返回值

返回的对象

 

方法名称:AddSignature(OThinker.Organization.Signature)

方法说明

添加签章

输入参数

名称

类型

说明

Signature

OThinker.Organization.Signature

签章

返回值

如果添加成功,则返回true,否则返回false

 

方法名称:RemoveSignature(System.String)

方法说明

删除签章

输入参数

名称

类型

说明

SignatureId

System.String

签章的ID

返回值

 

方法名称:SetSignatureState(System.String,OThinker.Organization.State)

方法说明

设置签章的状态

输入参数

名称

类型

说明

SignatureId

System.String

签章ID

State

OThinker.Organization.State

状态

返回值

 

方法名称:GetSignature(System.String)

方法说明

获得签章

输入参数

名称

类型

说明

SignatureId

System.String

签章的ID

返回值

签章信息

 

方法名称:GetSignatures(System.String[])

方法说明

获得签章

输入参数

名称

类型

说明

SignatureIds

System.String[]

签章的ID

返回值

签章

 

方法名称:GetSignaturesByUnit(System.String)

方法说明

获得用户的所有签章

输入参数

名称

类型

说明

UnitId

System.String

组织的ID

返回值

签章

 

方法名称:GetSignatureByName(System.String,System.String)

方法说明

通过名字获得签章

输入参数

名称

类型

说明

UnitId

System.String

组织的ID

Name

System.String

签章名称

返回值

签章

 

方法名称:GetSignatureNames(System.String)

方法说明

获得用户所有签章的名称

输入参数

名称

类型

说明

UnitId

System.String

组织的ID

返回值

签章

 

方法名称:GetDefaultSignature(System.String)

方法说明

获得默认的签章

输入参数

名称

类型

说明

UnitId

System.String

组织的ID

返回值

默认签章的ID

 

方法名称:SetDefaultSignature(System.String,System.Boolean)

方法说明

设置为默认的签章

输入参数

名称

类型

说明

SignatureId

System.String

签章的ID

Default

System.Boolean

是否是默认的

返回值

 

方法名称:AddCategory(OThinker.Organization.Category)

方法说明

添加类型定义

输入参数

名称

类型

说明

Category

OThinker.Organization.Category

类型定义

返回值

如果添加成功,则返回true,否则返回false

 

方法名称:RemoveCategory(System.String)

方法说明

删除类型

输入参数

名称

类型

说明

CategoryId

System.String

类型定义的ID

返回值

 

方法名称:GetCategory(System.String)

方法说明

根据类型定义的ID获得类型

输入参数

名称

类型

说明

CategoryId

System.String

类型的ID

返回值

类型定义

 

方法名称:GetCategoryNames

方法说明

获得用户所有类型的名称

输入参数

名称

类型

说明

返回值

类型的名称

 

方法名称:GetCategoryCodes

方法说明

获得用户所有类型的编码

输入参数

名称

类型

说明

返回值

所有类型的编码

 

方法名称:GetCategoryByCode(System.String)

方法说明

通过编码获得分类

输入参数

名称

类型

说明

Code

System.String

类型的编码

返回值

类型定义

 

方法名称:GetByUnitType(OThinker.Organization.UnitType)

方法说明

通过类型获得可选择的分类

输入参数

名称

类型

说明

Type

OThinker.Organization.UnitType

组织的类型

返回值

支持这种组织类型的类型定义

 

方法名称:SaveCategory(OThinker.Organization.Category)

方法说明

保存类型

输入参数

名称

类型

说明

Category

OThinker.Organization.Category

类型定义

返回值

如果保存成功,则返回true,否则返回false

 

方法名称:UpdateCategory(OThinker.Organization.Category)

方法说明

保存类型

输入参数

名称

类型

说明

Category

OThinker.Organization.Category

类型定义

返回值

如果保存成功,则返回true,否则返回false

 

方法名称:GetCategoryByUnitId(System.String)

方法说明

通过单元ID获得分类

输入参数

名称

类型

说明

UnitId

System.String

组织的ID

返回值

类型定义

 

方法名称:GetCategoryIdsByCodes(System.String[])

方法说明

通过分类的编码获得分类的ID

输入参数

名称

类型

说明

Codes

System.String[]

类型编码

返回值

类型的ID

 

方法名称:GetUnitCategoryCode(System.String)

方法说明

获得单元的类型编码

输入参数

名称

类型

说明

UnitId

System.String

组织的ID

返回值

类型编码

 

方法名称:GetUnitCategoryName(System.String)

方法说明

获得单元的类型名称

输入参数

名称

类型

说明

UnitId

System.String

组织的ID

返回值

类型名称

 

方法名称:FilterByCategoryCodes(System.String[],System.String[])

方法说明

通过分类的编码过滤组织

输入参数

名称

类型

说明

Units

System.String[]

组织

Codes

System.String[]

类型编码

返回值

过滤的组织的ID

 

方法名称:FindRole(System.String,System.String,System.Boolean)

方法说明

通过名称查找某个组织对应的角色。应用场景比如查找张三对应的报销审批专员。先在该组织的直接子成员上查找,如果找到则返回第一个;否则检查是否遍历父节点,如果需要遍历父节点,则遍历父节点;否则返回Null

输入参数

名称

类型

说明

StartUnit

System.String

起始组织。必须是用户//OU

UnitName

System.String

名称

LookForAnsestor

System.Boolean

如果没有找到,是否是向父节点遍历

返回值

返回找到的第一个组织的ID

 

方法名称:FindRoles(System.String,System.String)

方法说明

通过名称查找某个组织对应的角色。应用场景比如查找张三对应的报销审批专员。先在该组织的直接子成员上查找,如果找到则返回第一个;否则检查是否遍历父节点,如果需要遍历父节点,则遍历父节点;否则返回Null

输入参数

名称

类型

说明

StartUnit

System.String

起始组织。必须是用户//OU/

UnitName

System.String

名称

返回值

返回找到的第一个组织的ID

 

方法名称:FindRolesByUnits(System.String[],System.String)

方法说明

查找组织对应的角色。比如要查找研发部门对应的审计人员

输入参数

名称

类型

说明

StartUnits

System.String[]

要查找的组织的ID。如果是群,那么会自动展开下面的子对象

RoleName

System.String

名称

返回值

每个组织会返回第一个找到的对象

 

方法名称:FindRoleUnits(System.String[],System.String)

方法说明

查找组织对应的角色。比如要查找研发部门对应的审计人员

输入参数

名称

类型

说明

StartUnits

System.String[]

要查找的组织的ID。如果是群,那么会自动展开下面的子对象

RoleName

System.String

角色的名称

返回值

找到的组织

 

方法名称:GetReferences(System.String)

方法说明

获得某个对象的引用。注意:该方法是逐一遍历所有组织对象,会非常占用服务器CPU,但是不会锁定组织结构服务对象

输入参数

名称

类型

说明

UnitId

System.String

被引用的对象的ID

返回值

如果参数为Null或者"",那么返回False;如果参数为this.UnitId,那么返回true;否则检查其他属性是否等于该值。

 

方法名称:GetWorkflowCode(System.String)

方法说明

获得某个组织对应的流程编码

输入参数

名称

类型

说明

UnitId

System.String

组织的ID

返回值

流程实例的流水号的编码

 

方法名称:GetUnitByCode(System.String)

方法说明

通过编码来查找组织对象

输入参数

名称

类型

说明

Code

System.String

编码

返回值

编号相匹配的组织对象

 

方法名称:GetUserByEmployeeNumber(System.String)

方法说明

通过员工编号来查找组织对象

输入参数

名称

类型

说明

EmployeeNumber

System.String

员工编号

返回值

员工编号相匹配的用户对象

 

方法名称:AddOrgJob(System.String,OThinker.Organization.OrgJob)

方法说明

添加一个职务

输入参数

名称

类型

说明

Modifier

System.String

请求变更的用户

Job

OThinker.Organization.OrgJob

要添加的职务

返回值

 

方法名称:RemoveOrgJob(System.String,System.String)

方法说明

删除一个职务

输入参数

名称

类型

说明

Modifier

System.String

请求变更的用户

OrgJobId

System.String

职务ID

返回值

 

方法名称:GetOrgJobById(System.String)

方法说明

根据职务ID获得职务

输入参数

名称

类型

说明

OrgJobId

System.String

职务Id

返回值

职务

 

方法名称:GetOrgJobByCode(System.String)

方法说明

根据职务编码获得职务

输入参数

名称

类型

说明

OrgJobCode

System.String

职务编码

返回值

职务

 

方法名称:GetOrgJobs

方法说明

获得所有的职务

输入参数

名称

类型

说明

返回值

所有的职务

 

方法名称:UpdateOrgJob(System.String,OThinker.Organization.OrgJob)

方法说明

更新一个职务

输入参数

名称

类型

说明

Modifier

System.String

更新用户

Job

OThinker.Organization.OrgJob

职务

返回值

如果出现重复的编码或者空的编码,则返回false;否则返回true

 

方法名称:FindPost(System.String,System.String,System.Boolean)

方法说明

找到某个组织机构下面最直接的

输入参数

名称

类型

说明

OrgId

System.String

组织的ID,这个不能使群

OrgJobCode

System.String

职务

Recursive

System.Boolean

是否递归查找

返回值

岗位

 

方法名称:FindPosts(System.String[],System.String)

方法说明

找到某个组织机构下面最直接的岗位

输入参数

名称

类型

说明

OrgIds

System.String[]

组织的ID

OrgJobCode

System.String

职务

返回值

岗位

 

方法名称:FindPostMembers(System.String[],System.String)

方法说明

找到某个组织机构下面最直接的岗位的成员

输入参数

名称

类型

说明

OrgIds

System.String[]

组织的ID

OrgJobCode

System.String

职务编码

返回值

岗位人员

 

方法名称:FindPostMembersByCode(System.String[],System.String)

方法说明

找到某个组织机构下面最的岗位成员(包含编制中的用户)

输入参数

名称

类型

说明

OrgIds

System.String[]

组织的ID

PostCode

System.String

岗位编码

返回值

岗位人员

 

方法名称:GetPostsByOrgJobCode(System.String)

方法说明

根据职位的编码获得所有的岗位

输入参数

名称

类型

说明

OrgJobCode

System.String

职位编码

返回值

某个职位的所有岗位

 

方法名称:FindSuperiorPost(System.String,System.Boolean)

方法说明

获得岗位的上级岗位,当上级岗位不存在的时候,自动向上遍历更高的上级岗位

输入参数

名称

类型

说明

PostId

System.String

岗位ID

RequiredMembers

System.Boolean

是否要求返回的岗位必须包含至少一名成员

返回值

上级岗位

 

方法名称:FindSuperiorPostMembers(System.String)

方法说明

获得岗位的上级岗位

输入参数

名称

类型

说明

PostId

System.String

岗位ID

返回值

上级岗位的成员,如果直接上级岗位不存在成员,则自动向上遍历

 

方法名称:FindRecursiveParentPost(System.String,System.Int32)

方法说明

查找上级岗位到满足某个指定的级别,返回该岗位中的用户

输入参数

名称

类型

说明

PostId

System.String

查找的起始岗位ID

Rank

System.Int32

岗位级别

返回值


 

方法名称:GetPostStaffByPost(System.String)

方法说明

根据岗位编码获取所有的编制信息

输入参数

名称

类型

说明

PostId

System.String


返回值


 

方法名称:GetParentPostByLevel(System.String,System.Int32)

方法说明

获取指定岗位级别的上级岗位

输入参数

名称

类型

说明

PostId

System.String

起始岗位ID

Level

System.Int32

岗位级别

返回值


 

方法名称:GetParentPost(System.String)

方法说明

获取指定岗位的上级岗位用户

输入参数

名称

类型

说明

PostId

System.String

岗位ID

返回值


 

方法名称:GetCalendarId(System.String)

方法说明

获得某个组织机构的工作日历

输入参数

名称

类型

说明

UnitId

System.String

组织结构对象ID

返回值

该组织结构对象对应的工作日历,如果该组织结构对象引用的工作日历为空,则自动向上遍历

 

方法名称:GetCalendarReferences(System.String)

方法说明

获得哪些组织结构对象引用了该工作日历

输入参数

名称

类型

说明

CalendarId

System.String

工作日历的对象ID,不区分大小写

返回值

引用该工作日历的组织结构对象

 

方法名称:FindManagersByLevelRange(System.String,System.Int32)

方法说明

查找上级经理到满足某个指定的级别 例如职级是从小到大,当A职级是3时,找到职级是6的经理,那么会返回用户上级经理中职级是456的人员,当6级经理不存在,则返回职级是7的经理 职级是从大到小时,那么A的职级是3,找到职级是1的经理时,返回上级经理中职级是21的经理,如果1没有找到,那么返回职级是0的经理

输入参数

名称

类型

说明

UserId

System.String

查找的组织范围起点

EndLevel

System.Int32

用户职级

返回值


 

方法名称:InitOrganizationDim

方法说明

/初始化平铺

输入参数

名称

类型

说明

返回值

 

方法名称:it.Update(OThinker.Organization.IOrganization,System.DirectoryServices.DirectoryEntry,System.DirectoryServices.DirectoryEntry[],System.DirectoryServices.DirectoryEntry,System.Boolean)

方法说明

更新属性

输入参数

名称

类型

说明

Organization

OThinker.Organization.IOrganization

组织结构对象

Root

System.DirectoryServices.DirectoryEntry

AD中的根目录

Entry

System.DirectoryServices.DirectoryEntry[]

AD中的对象

LoginNameIncludeDomain

System.DirectoryServices.DirectoryEntry

登陆名中是否包含域名称

返回值

 

方法名称:it.Validate(OThinker.Organization.IOrganization)

方法说明

验证是否合法

输入参数

名称

类型

说明

Organization

OThinker.Organization.IOrganization

组织结构接口,用来获得人员、OU、组等信息

返回值

如果合法则返回SUCCESS,否则返回错误代码

 

方法名称:hinker.Organization.IOrganization,System.DirectoryServices.DirectoryEntry,System.DirectoryServices.DirectoryEntry[],System.DirectoryServices.DirectoryEntry,System.Boolean)

方法说明

跟活动目录同步的时候,调用更新属性方法,以活动目录中用户的属性为准

输入参数

名称

类型

说明

Organization

hinker.Organization.IOrganization

组织结构对象

Root

System.DirectoryServices.DirectoryEntry

AD中的根目录

Entry

System.DirectoryServices.DirectoryEntry[]

AD中的对象

LoginNameIncludeDomain

System.DirectoryServices.DirectoryEntry

登陆名中是否包含域名称,如果包含的话,那么登录名的格式是domain1\user2这样的形式

返回值

 

方法名称:OThinker.Organization.IOrganization)

方法说明

验证是否合法

输入参数

名称

类型

说明

Organization

OThinker.Organization.IOrganization

组织结构接口,用来获得人员、OU、组等信息

返回值

如果合法则返回SUCCESS,否则返回错误代码