1. 组织架构
1.1. 组织架构说明
1.1.1. 组织架构的定义
组织结构说明
| 字段 | 类型 | 是否必须 | 描述 | 
|---|---|---|---|
| id | LONG | 否 | 自增 id | 
| name | STRING | 是 | 名称 | 
| code | STRING | 是 | 组织编码,全局唯一 | 
| source | STRING | 是 | 组织来源,api创建固定值为internal | 
| createdAt | DATETIME | 否 | 创建的时间 | 
| createdBy | INTEGER | 否 | 创建用户的 id | 
| updatedAt | DATETIME | 否 | 最后更新的时间 | 
| updatedBy | INTEGER | 否 | 最后修改用户的 id | 
| STRING | 否 | 组织邮箱 | |
| parentId | STRING | 否 | 上级组织id | 
| orderNo | INTEGER | 否 | 组织排序号 | 
| parentCode | INTEGER | 否 | 上级组织编码,新增修改时不是必须传递 | 
1.2. 接口说明
1.2.1. 创建组织
创建组织。
请求URL
POST /api/v1/orgs
请求参数
URL 参数
无
request body 参数
说明
返回对象的格式说明
接口示例1: 创建组织
POST /api/v1/orgs
{
  "name": "组织名称",
  "description": "",
  "parentId": 29,
  "code": "112233",
  "orderNo": 1
}
返回
{
  "version": "",
  "code": 0,
  "msg": "success",
  "data": {
    "id": 31,
    "name": "组织名称",
    "description": "",
    "createdBy": 2,
    "createdAt": "2022-08-09 15:23:05",
    "updatedBy": 2,
    "updatedAt": "2022-08-09 15:23:05",
    "parentId": 29,
    "source": "internal",
    "code": "112233",
    "parentCode": "1122",
    "orderNo": 1
  }
}
1.2.2. 修改组织
修改组织。
请求URL
PUT /api/v1/orgs/{orgId}
请求参数
URL 参数
| 字段 | 类型 | 是否必须 | 说明 | 
|---|---|---|---|
| orgId | LONG | 是 | 修改组织的 id | 
request body 参数
说明
返回对象的格式说明
接口示例1: 修改组织
PUT /api/v1/orgs/{orgId}
{
  "id":31,
  "name": "组织名称updated",
  "description": "",
  "parentId": 29,
  "code": "112233",
  "orderNo": 1
}
返回
{
  "version": "4.1-SNAPSHOT@@git.commit.id.abbrev@#dd51249",
  "code": 0,
  "msg": "success",
  "data": {
    "id": 31,
    "name": "组织名称updated",
    "description": "",
    "updatedBy": 2,
    "updatedAt": "2022-08-09 15:25:54",
    "parentId": 29,
    "source": "internal",
    "code": "112233",
    "parentCode": "1122",
    "orderNo": 1
  }
}
1.2.3. 删除组织
删除组织。
请求URL
DELETE /api/v1/orgs/{orgId}
请求参数
URL 参数
| 字段 | 类型 | 是否必须 | 说明 | 
|---|---|---|---|
| orgId | LONG | 是 | 组织的 id | 
request body 参数
无
说明
组织有下级组织无法删除,组织中有用户无法删除。需要删除下级组织和用户才能删除该组织。
返回对象的格式说明
接口示例1: 删除组织
DELETE /api/v1/orgs/{orgId}
返回
{
  "version": "",
  "code": 0,
  "msg": "success"
}
1.2.4. 通过id查询组织
通过id查询组织。
请求URL
GET /api/v1/orgs/{orgId}
请求参数
URL 参数
| 字段 | 类型 | 是否必须 | 说明 | 
|---|---|---|---|
| orgId | LONG | 是 | 组织的 id | 
request body 参数
无
说明
返回对象的格式说明
接口示例1: 通过id查询组织
GET /api/v1/orgs/{orgId}
返回
{
  "version": "",
  "code": 0,
  "msg": "success",
  "data": {
    "id": 31,
    "name": "组织名称updated",
    "description": "",
    "createdBy": 2,
    "createdAt": "2022-08-09 15:23:05",
    "updatedBy": 2,
    "updatedAt": "2022-08-09 15:25:54",
    "parentId": 29,
    "source": "internal",
    "code": "112233",
    "parentCode": "1122",
    "orderNo": 1
  }
}
1.2.5. 通过code查询组织
通过code查询组织。
请求URL
GET /api/v1/orgs/code/{orgCode}
请求参数
URL 参数
| 字段 | 类型 | 是否必须 | 说明 | 
|---|---|---|---|
| orgCode | STRING | 是 | 组织的 code | 
request body 参数
无
说明
返回对象的格式说明
接口示例1: 通过code查询组织
GET /api/v1/orgs/code/{orgCode}
返回
{
    "version": "",
    "code": 0,
    "msg": "success",
    "data": {
        "id": 31,
        "name": "组织名称updated",
        "description": "",
        "createdBy": 2,
        "createdAt": "2022-08-09 15:23:05",
        "updatedBy": 2,
        "updatedAt": "2022-08-09 15:25:54",
        "parentId": 29,
        "source": "internal",
        "code": "112233",
        "parentCode": "1122",
        "orderNo": 1,
        "delete": false
    }
}
1.2.6. 通过 code 修改组织
通过 code 修改组织。
请求URL
PUT /api/v1/orgs/code/{orgCode}
请求参数
URL 参数
| 字段 | 类型 | 是否必须 | 说明 | 
|---|---|---|---|
| orgCode | STRING | 是 | 修改组织的 code | 
request body 参数
说明
返回对象的格式说明
接口示例1: 通过 code 修改组织
PUT /api/v1/orgs/code/{orgCode}
{
  "name": "组织名称updated",
  "description": "",
  "parentId": 29,
  "code": "112233",
  "parentCode": "1122",
  "orderNo": 1
}
返回
{
  "version": "",
  "code": 0,
  "msg": "success",
  "data": {
    "id": 31,
    "name": "组织名称updated",
    "description": "",
    "updatedBy": 2,
    "updatedAt": "2022-08-09 15:25:54",
    "parentId": 29,
    "source": "internal",
    "code": "112233",
    "parentCode": "1122",
    "orderNo": 1
  }
}
1.2.7. 通过 code 删除组织
通过 code 删除组织。
请求URL
DELETE /api/v1/orgs/code/{orgCode}
请求参数
URL 参数
| 字段 | 类型 | 是否必须 | 说明 | 
|---|---|---|---|
| orgCode | STRING | 是 | 组织的 code | 
request body 参数
无
说明
组织有下级组织无法删除,组织中有用户无法删除。需要删除下级组织和用户才能删除该组织。
返回对象的格式说明
接口示例1: 通过 code 删除组织
DELETE /api/v1/orgs/code/{orgCode}
返回
{
  "version": "",
  "code": 0,
  "msg": "success"
}
1.2.8. 查询组织列表
查询组织列表。
请求URL
GET /api/v1/orgs
请求参数
URL 参数
| 字段 | 类型 | 是否必须 | 说明 | 
|---|---|---|---|
| parentId | LONG | 否 | 组织的父级 id ,不传则从根结点查询 | 
| fetchChild | BOOLEAN | 否 | 是否递归查询所有下级组织,默认为false | 
request body 参数
无
说明
返回对象的格式说明
接口示例1: 查询组织列表
GET /api/v1/orgs
返回
{
    "version": "",
    "code": 0,
    "msg": "success",
    "data": [
        {
            "id": 1,
            "name": "第一级组织",
            "description": "",
            "createdBy": 2,
            "createdAt": "2022-08-09 10:37:35",
            "updatedBy": 2,
            "updatedAt": "2022-08-09 10:37:35",
            "source": "internal",
            "code": "1",
            "orderNo": 0,
            "delete": false
        }
    ]
}
1.2.9. 查询子部门及用户
查询组织列表。
请求URL
GET /api/v1/orgs/depts-users?parentId={parentId}
请求参数
URL Query 参数
| 字段 | 类型 | 是否必须 | 说明 | 
|---|---|---|---|
| parentId | LONG | 否 | 组织的父级 id ,不传则从根结点查询 | 
无
说明
返回对象的格式说明
| 字段 | 类型 | 说明 | 
|---|---|---|
| version | STRING | 当前系统版本哈希值 | 
| data.subOrgs | JSON ARRAY | 组织结构说明 | 
| data.users | JSON ARRAY | 用户结构说明 | 
接口示例1: 查询子部门及用户
GET /api/v1/orgs/depts-users?parentId={parentId}
返回
{
  "version":"4.5-SNAPSHOT@a9e6115#2178061",
  "code":0,
  "msg":"success",
  "data":{
    "subOrgs":[
      {
        "id":23,
        "name":"开发部",
        "description":"",
        "createdBy":11630,
        "createdAt":"2023-07-12 15:23:48",
        "updatedBy":11630,
        "updatedAt":"2023-07-12 15:23:48",
        "parentId":1,
        "code":"490058140",
        "parentCode":"1",
        "orderNo":1,
        "delete":false
      }
    ],
    "users":[
      {
        "id":159,
        "name":"test",
        "email":"zhangjunjie@hengshi.com",
        "description":"user import from LDAP.",
        "isDelete":false,
        "loginName":"test"
      }
    ]
  }
}