组织组件概述
业务需求
企业系统开发中,经常需要维护企业的组织结构,业务会根据企业的组织进行管理,因此我们提供基本的组织组件,业务可以根据自己的需要进行扩张使用。
整体设计
依赖环境
组件采用Maven进行编译和打包发布,其对外提供的依赖方式如下:
<dependency>
<groupId>com.yonyou.iuap</groupId>
<artifactId>iuap-organization</artifactId>
<version>${iuap.modules.version}</version>
</dependency>
${iuap.modules.version} 为平台在maven私服上发布的组件的version。
功能说明
组织组件主要是提供组织的核心模型和基本服务,支持通过组织职能的方式对组织进行扩展。
- 提供组织的核心模型和基本服务
- 提供组织基本信息的管理;
- 提供组织职能的管理;
- 支持通过组织职能的方式对组织进行扩展;
- 支持对组织基本信息和组织职能的扩展;
使用说明
使用方法
1. 配置spring文件,参考示例工程:organization-applicationContext.xml
2. 执行数据库脚本
依次执行examples项目下sql目录中的dll.sql、index.sql、dml.sql建立数据库并初始化数据
3. 组织表结构说明:
(1)组织表org_orgs
名称 | 代码 | 注释 |
组织Id | id | |
组织编码 | code | |
组织名称 | name | |
上级组织Id | fatherid | |
组织描述 | description | 对组织的简要描述 |
租户Id | tenantid | |
应用系统Id | sysid | |
内部编码 | innercode | 构建编码树,用于查询某个组织的所有下级 |
组织类型一 | orgtype1 | 组织类型,目前是十个,支持扩展 |
组织类型二 | orgtype2 | |
组织类型三 | orgtype3 | |
组织类型四 | orgtype4 | |
组织类型五 | orgtype5 | |
组织类型六 | orgtype6 | |
组织类型七 | orgtype7 | |
组织类型八 | orgtype8 | |
组织类型九 | orgtype9 | |
组织类型十 | orgtype10 |
(2)组织类型表org_type
名称 | 代码 | 注释 |
组织类型id | id | |
组织类型编码 | code | |
组织类型名称 | name | |
租户id | tenantid | |
应用系统id | sysid | |
组织类型的字段名 | fieldname | 字段名代码的是组织的类型,如orgtype1 |
组织类型的服务类 | serviceclass | 每个组织类型扩展一张表,这个字段用于注册服务类 |
组织类型的实体类 | entityclassname | 每个组织类型的实体类,若是组织类型为公司,就是公司的实体类 |
API接口
IOrgService,主要提供组织相关的接口:
保存组织基本信息
描述
保存组织基本信息
请求方法
com.yonyou.iuap.org.service.IOrgService.save(OrgEntity orgEntity)
请求方式
服务调用
请求参数说明
参数字段 | 必选 | 类型 | 长度限制 | 说明 |
---|---|---|---|---|
orgEntity | True | String | 无 | 组织实体,详见OrgEntity |
返回参数说明
无
删除组织基本信息
描述
根据主键删除组织基本信息
请求方法
com.yonyou.iuap.org.service.IOrgService.deleteById(String id);
请求方式
服务调用
请求参数说明
参数字段 | 必选 | 类型 | 长度限制 | 说明 |
---|---|---|---|---|
id | True | String | 无 | 组织基本信息主键 |
返回参数说明
无
根据主键查询组织基本信息
描述
根据主键查询组织基本信息
请求方法
com.yonyou.iuap.org.service.IOrgService.queryById(String id);
请求方式
服务调用
请求参数说明
参数字段 | 必选 | 类型 | 长度限制 | 说明 |
---|---|---|---|---|
id | True | String | 无 | 组织基本信息主键 |
返回参数说明
组织实体 :OrgEntity
根据组织类型字段查询组织基本信息
描述
根据组织类型字段查询组织基本信息
请求方法
com.yonyou.iuap.org.service.IOrgService.queryOrgsByOrgType(String orgtype);
请求方式
服务调用
请求参数说明
参数字段 | 必选 | 类型 | 长度限制 | 说明 |
---|---|---|---|---|
orgtype | True | String | 无 | 组织类型 |
返回参数说明
组织实体列表:List
根据多个组织类型字段查询组织基本信息
描述
根据多个组织类型字段查询组织基本信息
请求方法
com.yonyou.iuap.org.service.IOrgService.queryOrgsByOrgTypeArray(String[] orgtypeArray);
请求方式
服务调用
请求参数说明
参数字段 | 必选 | 类型 | 长度限制 | 说明 |
---|---|---|---|---|
orgtype | True | String[] | 无 | 组织类型数组,例如:{"orgtype1","orgtype2",...} |
返回参数说明
组织实体列表:List
查询上级组织基本信息
描述
根据组织基本信息主键查询上级组织基本信息
请求方法
com.yonyou.iuap.org.service.IOrgService.queryParentOrg(String id);
请求方式
服务调用
请求参数说明
参数字段 | 必选 | 类型 | 长度限制 | 说明 |
---|---|---|---|---|
id | True | String | 无 | 组织基本信息主键 |
返回参数说明
上级组织实体:OrgEntity
查询下级组织基本信息
描述
根据组织基本信息主键查询下级组织基本信息
请求方法
com.yonyou.iuap.org.service.IOrgService.queryChildrenOrgs(String id);
请求方式
服务调用
请求参数说明
参数字段 | 必选 | 类型 | 长度限制 | 说明 |
---|---|---|---|---|
id | True | String | 无 | 组织基本信息主键 |
返回参数说明
包含本级的全部下级组织基本信息:List
查询全部组织基本信息
描述
查询全部组织基本信息
请求方法
com.yonyou.iuap.org.service.IOrgService.queryAllOrgs();
请求方式
服务调用
请求参数说明
无
返回参数说明
全部组织基本信息:List
根据ID批量查询组织基本信息
描述
根据ID批量查询组织基本信息
请求方法
com.yonyou.iuap.org.service.IOrgService.queryOrgsByIds(String[] ids);
请求方式
服务调用
请求参数说明
参数字段 | 必选 | 类型 | 长度限制 | 说明 |
---|---|---|---|---|
ids | True | String[] | 无 | 组织基本信息主键数组 |
返回参数说明
织基本信息列表:List
IOrgTypeService,主要提供组织职能的相关接口:
保存组织职能
描述
保存组织职能
请求方法
com.yonyou.iuap.org.service.IOrgTypeService.save(OrgTypeEntity orgTypeEntity);
请求方式
服务调用
请求参数说明
参数字段 | 必选 | 类型 | 长度限制 | 说明 |
---|---|---|---|---|
OrgTypeEntity | True | String | 无 | 组织职能实体,详见OrgTypeEntity |
返回参数说明
无
删除组织职能
描述
根据ID删除组织职能
请求方法
com.yonyou.iuap.org.service.IOrgTypeService.deleteById(String id);
请求方式
服务调用
请求参数说明
参数字段 | 必选 | 类型 | 长度限制 | 说明 |
---|---|---|---|---|
id | True | String | 无 | 组织职能主键 |
返回参数说明
无
根据ID查询组织职能
描述
根据ID查询组织职能
请求方法
com.yonyou.iuap.org.service.IOrgTypeService.queryOrgTypebyId(String id);
请求方式
服务调用
请求参数说明
参数字段 | 必选 | 类型 | 长度限制 | 说明 |
---|---|---|---|---|
id | True | String | 无 | 组织职能主键 |
返回参数说明
组织职能实体 OrgTypeEntity
根据编码查询组织职能
描述
根据编码查询组织职能
请求方法
com.yonyou.iuap.org.service.IOrgTypeService.queryOrgTypeByCode(String code);
请求方式
服务调用
请求参数说明
参数字段 | 必选 | 类型 | 长度限制 | 说明 |
---|---|---|---|---|
code | True | String | 无 | 组织职能编码 |
返回参数说明
组织职能实体 OrgTypeEntity
根据名称查询组织职能
描述
根据名称查询组织职能
请求方法
com.yonyou.iuap.org.service.IOrgTypeService.queryOrgTypeByName(String name);
请求方式
服务调用
请求参数说明
参数字段 | 必选 | 类型 | 长度限制 | 说明 |
---|---|---|---|---|
name | True | String | 无 | 组织职能名称 |
返回参数说明
组织职能实体 OrgTypeEntity
根据组织基本信息职能字段查询组织职能
描述
根据组织基本信息职能字段查询组织职能
请求方法
com.yonyou.iuap.org.service.IOrgTypeService.queryOrgTypeByFieldName(String fieldname);
请求方式
服务调用
请求参数说明
参数字段 | 必选 | 类型 | 长度限制 | 说明 |
---|---|---|---|---|
fieldname | True | String | 无 | 组织职能在基本信息中的字段名称 |
返回参数说明
组织职能实体 OrgTypeEntity
根据组织职能的实体类查询组织职能
描述
根据组织职能的实体类查询组织职能
请求方法
com.yonyou.iuap.org.service.IOrgTypeService.queryOrgTypeByEntityClassName(String entityclassname);
请求方式
服务调用
请求参数说明
参数字段 | 必选 | 类型 | 长度限制 | 说明 |
---|---|---|---|---|
entityclassname | True | String | 无 | 组织职能的对应的实体类的全类名 |
返回参数说明
组织职能实体 OrgTypeEntity
根据组织职能服务类查询拥有的组织职能
描述
根据组织基本信息查询组织职能
请求方法
com.yonyou.iuap.org.service.IOrgTypeService.queryOrgTypeByServiceClassName(String serviceclass);
请求方式
服务调用
请求参数说明
参数字段 | 必选 | 类型 | 长度限制 | 说明 |
---|---|---|---|---|
serviceclass | True | String[] | 无 | 组织职能中注册的服务类 |
返回参数说明
组织职能实体 OrgTypeEntity
根据组织职能主键批量查询组织职能
描述
根据组织职能主键批量查询组织职能
请求方法
com.yonyou.iuap.org.service.IOrgTypeService.queryOrgTypesByIds(String[] ids);
请求方式
服务调用
请求参数说明
参数字段 | 必选 | 类型 | 长度限制 | 说明 |
---|---|---|---|---|
ids | True | String[] | 无 | 组织职能主键数组 |
返回参数说明
组织职能实体列表 List
根据组织基本信息查询拥有的组织职能
描述
根据组织基本信息查询组织职能
请求方法
com.yonyou.iuap.org.service.IOrgTypeService.queryOrgTypeByOrg(OrgEntity orgEntity);
请求方式
服务调用
请求参数说明
参数字段 | 必选 | 类型 | 长度限制 | 说明 |
---|---|---|---|---|
orgEntity | True | String[] | 无 | 组织基本信息实体 |
返回参数说明
组织职能实体列表 List
根据组织基本信息主键查询拥有的组织职能
描述
根据组织基本信息主键查询组织职能
请求方法
com.yonyou.iuap.org.service.IOrgTypeService.queryOrgTypeByOrgID(String orgId);
请求方式
服务调用
请求参数说明
参数字段 | 必选 | 类型 | 长度限制 | 说明 |
---|---|---|---|---|
id | True | String[] | 无 | 组织基本信息主键 |
返回参数说明
组织职能实体列表 List
根据组织基本信息判断是否拥有指定的组织职能
描述
根据组织基本信息判断是否拥有指定的组织职能
请求方法
com.yonyou.iuap.org.service.IOrgTypeService.isTypeOf(OrgEntity orgEntity, String orgtypeId);
请求方式
服务调用
请求参数说明
参数字段 | 必选 | 类型 | 长度限制 | 说明 |
---|---|---|---|---|
orgEntity | True | String[] | 无 | 组织基本信息实体 |
orgtypeId | True | String[] | 无 | 组织职能主键 |
返回参数说明
boolean
根据组织基本信息主键判断是否拥有指定的组织职能
描述
根据组织基本信息主键判断是否拥有指定的组织职能
请求方法
com.yonyou.iuap.org.service.IOrgTypeService.isTypeOfByOrgId(String orgId, String orgtypeId);
请求方式
服务调用
请求参数说明
参数字段 | 必选 | 类型 | 长度限制 | 说明 |
---|---|---|---|---|
orgId | True | String[] | 无 | 组织基本信息主键 |
orgtypeId | True | String[] | 无 | 组织职能主键 |
返回参数说明
boolean
扩展开发说明
1,扩展组织基本信息
例如,我们想要增加描述组织信息的字段,可以扩展组织表org_orgs,修改服务IOrgService的默认实现,在spring中配置即可。
也可在具体的组织类型上增加相应组织类型特有的字段,对应的服务类和实体类自己实现,参照组织职能扩展,对应的pk_org存为该数据同步到组织表中的主键。
2,组织职能扩展
例如,我们想要增加公司这一主职职能,应在org_type中注册一条组织职能的相关信息,注册组织类型对应的服务类与实体类,并进行相应的实现。
组织类型id(id) | 组织类型编码(code) | 组织类型名称(name) | 租户id(tenantid) | 应用系统id(sysid) | 组织类型的字段名(fieldname) | 组织类型的服务类(serviceclass) | 组织类型的实体类(entityclassname) |
00229d33-2807-4ee9-9aca-ef9e4311ef46 | corp | 公司(name) | orgtype1 | com.yonyou.iuap.org.service.ICorpService | com.yonyou.iuap.org.entity.CorpEntity |
最后,要将扩展的组织数据同步到org_orgs中,pk相同,组织表中的orgtype1字段存为'Y'