流程查询(WorkflowQuery)¶
用于查询流程相关的文档详情、流程状态、各类操作面板(提交/回退/催办)、节点信息与候选审批人,以及流程模板信息等。本控制器所有端点均为只读查询,不改变流程实例的流转状态。
- 接口类型:REST 资源
- 基址:
/api/rest/bpm/query(produces=APPLICATION_JSON_VALUE) - Tag:流程查询模块
公共说明¶
- 鉴权:所有端点均需在 query 中携带
accessToken(访问令牌)和userCode(执行用户账号)。鉴权机制详见 ../index.md。 - 应用 ID 加密:
applicationId参数需经 **DES 加密**后以密文形式传入,服务端按当前执行用户解密(DesUtil.decryptTextByUserId);请勿传明文 applicationId。 - Document 请求体:
POST /submission的@RequestBody为 Document 包体(由AbstractRESTController.parseDocument()解析),结构如下:id缺失时返回 errcode=406「请求包体id属性不能为空」。 - 响应:统一返回
Resource结构(见 ../index.md「统一响应结构」)。除/document(data 为 PureDocument)、/states、/remindpanel(data 为 JSON 数组)外,其余端点data为com.alibaba.fastjson.JSONObject。 - 状态码:所有端点成功返回 HTTP 200;业务错误通过
errcode体现(错误码表见 ../index.md)。
1. 获取文档详情¶
根据文档 Id 获取流程文档详情,并绑定当前用户可审批的流程实例(含多流程判定)。
- 接口类型:REST 资源
- 请求方式:
GET - 请求路径:
/document(完整:/api/rest/bpm/query/document) - 鉴权:是(需 accessToken)
- Tag:流程查询模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| accessToken | query | string | 是 | 访问令牌 |
| applicationId | query | string | 是 | 应用Id(DES 加密密文) |
| id | query | string | 是 | 文档Id(报文Id) |
| userCode | query | string | 是 | 用户编码(用户账号) |
请求示例¶
GET /api/rest/bpm/query/document?accessToken=xxx&applicationId=xxx&id=__8Z4wBAAAAAC3Z6QAA&userCode=admin HTTP/1.1
响应¶
结构:统一 Resource(见 ../index.md「统一响应结构」)。
data:PureDocument,文档对象(含 state 当前流程实例与 mulitFlowState 是否存在多个可执行实例的标记)。
成功示例:
{
"errcode": 0,
"errmsg": "success",
"data": {
"id": "__8Z4wBAAAAAC3Z6QAA",
"summary": "差旅报销申请",
"state": { "id": "instance-001", "flowName": "差旅报销流程" },
"mulitFlowState": false
},
"errors": null
}
失败示例:
2. 流程状态¶
查询指定流程实例的当前流程状态信息。
- 接口类型:REST 资源
- 请求方式:
GET - 请求路径:
/states(完整:/api/rest/bpm/query/states) - 鉴权:是(需 accessToken)
- Tag:流程查询模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| accessToken | query | string | 是 | 访问令牌 |
| applicationId | query | string | 是 | 应用Id(DES 加密密文) |
| instanceId | query | string | 是 | 流程实例Id |
请求示例¶
响应¶
结构:统一 Resource(见 ../index.md「统一响应结构」)。
data:JSONArray,流程状态信息集合(由 service.queryWorkflow() 返回的 JSONObject 经 net.sf.json.JSONArray.fromObject(...) 转换得到)。
成功示例:
{
"errcode": 0,
"errmsg": "success",
"data": [
{ "nodeid": "node-start", "state": "completed", "label": "开始" },
{ "nodeid": "node-a", "state": "running", "label": "部门审批" }
],
"errors": null
}
失败示例:
3. 获取流程提交面板¶
根据当前文档与流程实例,计算并返回流程提交(审批下一步)面板的可选节点与审批人。
- 接口类型:REST 资源
- 请求方式:
POST - 请求路径:
/submission(完整:/api/rest/bpm/query/submission) - 鉴权:是(需 accessToken)
- Tag:流程查询模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| accessToken | query | string | 是 | 访问令牌 |
| applicationId | query | string | 是 | 应用Id(DES 加密密文) |
| userCode | query | string | 是 | 用户编码(用户账号) |
| instanceId | query | string | 是 | 流程实例Id |
| flowId | query | string | 是 | 流程定义模型Id |
| postBody | body | string(Document) | 是 | 请求包体内容(Document JSON 字符串) |
请求示例¶
POST /api/rest/bpm/query/submission?accessToken=xxx&applicationId=xxx&userCode=admin&instanceId=xxx&flowId=xxx HTTP/1.1
Content-Type: application/json
{
"id": "__8Z4wBAAAAAC3Z6QAA",
"summary": "差旅报销申请",
"items": {
"金额": "1200.00",
"事由": "客户拜访"
}
}
请求体¶
Document 结构,详见本页「公共说明 · Document 请求体」。
响应¶
结构:统一 Resource(见 ../index.md「统一响应结构」)。
data:JSONObject,提交面板信息(含可提交的下一节点及候选审批人列表,并追加 instanceId 字段)。
成功示例:
{
"errcode": 0,
"errmsg": "success",
"data": {
"instanceId": "xxx",
"nextNodes": [
{ "nodeid": "node-a", "name": "部门审批", "actors": [{ "id": "u001", "name": "李伟" }] }
]
},
"errors": null
}
失败示例:
4. 获取流程回退面板¶
根据当前流程实例,计算并返回流程回退(驳回上一步)面板的可选节点。
- 接口类型:REST 资源
- 请求方式:
POST - 请求路径:
/back(完整:/api/rest/bpm/query/back) - 鉴权:是(需 accessToken)
- Tag:流程查询模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| accessToken | query | string | 是 | 访问令牌 |
| applicationId | query | string | 是 | 应用Id(DES 加密密文) |
| userCode | query | string | 是 | 用户编码(用户账号) |
| instanceId | query | string | 是 | 流程实例Id |
说明:本端点虽为 POST,但**无请求体**(
@RequestBody缺省)。
请求示例¶
POST /api/rest/bpm/query/back?accessToken=xxx&applicationId=xxx&userCode=admin&instanceId=xxx HTTP/1.1
响应¶
结构:统一 Resource(见 ../index.md「统一响应结构」)。
data:JSONObject,回退面板信息(含可回退的目标节点列表,并追加 instanceId 字段)。
成功示例:
{
"errcode": 0,
"errmsg": "success",
"data": {
"instanceId": "xxx",
"backNodes": [
{ "nodeid": "node-start", "name": "开始" }
]
},
"errors": null
}
失败示例:
5. 获取流程催办面板¶
获取指定流程实例的催办面板,返回当前待办(运行中)节点列表,用于选择催办目标节点。
- 接口类型:REST 资源
- 请求方式:
GET - 请求路径:
/remindpanel(完整:/api/rest/bpm/query/remindpanel) - 鉴权:是(需 accessToken)
- Tag:流程查询模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| accessToken | query | string | 是 | 访问令牌 |
| applicationId | query | string | 是 | 应用Id(DES 加密密文) |
| userCode | query | string | 是 | 用户编码(用户账号) |
| instanceId | query | string | 是 | 流程实例Id |
请求示例¶
GET /api/rest/bpm/query/remindpanel?accessToken=xxx&applicationId=xxx&userCode=admin&instanceId=xxx HTTP/1.1
响应¶
结构:统一 Resource(见 ../index.md「统一响应结构」)。
data:JSONArray,每个元素为 { id, name },分别对应当前运行中节点的节点Id与节点名称。
成功示例:
{
"errcode": 0,
"errmsg": "success",
"data": [
{ "id": "node-a", "name": "部门审批" },
{ "id": "node-b", "name": "财务复核" }
],
"errors": null
}
失败示例:
6. 获取指定节点信息¶
获取当前请求发起人在指定流程实例中节点(任务)的信息。
- 接口类型:REST 资源
- 请求方式:
GET - 请求路径:
/taskInfo(完整:/api/rest/bpm/query/taskInfo) - 鉴权:是(需 accessToken)
- Tag:流程查询模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| accessToken | query | string | 是 | 访问令牌 |
| applicationId | query | string | 是 | 应用Id(DES 加密密文) |
| userCode | query | string | 是 | 用户编码(用户账号) |
| instanceId | query | string | 是 | 流程实例Id |
请求示例¶
GET /api/rest/bpm/query/taskInfo?accessToken=xxx&userCode=admin&instanceId=xxx&applicationId=xxx HTTP/1.1
响应¶
结构:统一 Resource(见 ../index.md「统一响应结构」)。
data:JSONObject,当前用户在该实例下的节点(任务)信息。
成功示例:
{
"errcode": 0,
"errmsg": "success",
"data": {
"instanceId": "xxx",
"task": { "nodeid": "node-a", "name": "部门审批", "state": "running" }
},
"errors": null
}
失败示例:
7. 获取指定节点数量¶
获取当前请求发起人在指定流程实例中节点(任务)的数量。
- 接口类型:REST 资源
- 请求方式:
GET - 请求路径:
/taskNum(完整:/api/rest/bpm/query/taskNum) - 鉴权:是(需 accessToken)
- Tag:流程查询模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| accessToken | query | string | 是 | 访问令牌 |
| applicationId | query | string | 是 | 应用Id(DES 加密密文) |
| userCode | query | string | 是 | 用户编码(用户账号) |
| instanceId | query | string | 是 | 流程实例Id |
请求示例¶
GET /api/rest/bpm/query/taskNum?accessToken=xxx&userCode=admin&instanceId=xxx&applicationId=xxx HTTP/1.1
响应¶
结构:统一 Resource(见 ../index.md「统一响应结构」)。
data:JSONObject,当前用户在该实例下的节点(任务)数量信息。
成功示例:
失败示例:
8. 获取指定实例节点审批人¶
根据流程实例与节点实例Id,获取该运行时节点的当前审批人。
- 接口类型:REST 资源
- 请求方式:
GET - 请求路径:
/nowActor(完整:/api/rest/bpm/query/nowActor) - 鉴权:是(需 accessToken)
- Tag:流程查询模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| accessToken | query | string | 是 | 访问令牌 |
| applicationId | query | string | 是 | 应用Id(DES 加密密文) |
| instanceId | query | string | 是 | 流程实例Id |
| nodeRTId | query | string | 是 | 节点实例Id(NodeRT 主键) |
请求示例¶
GET /api/rest/bpm/query/nowActor?accessToken=xxx&instanceId=xxx&nodeRTId=xxx&applicationId=xxx HTTP/1.1
响应¶
结构:统一 Resource(见 ../index.md「统一响应结构」)。
data:JSONObject,指定节点实例的当前审批人信息。
成功示例:
{
"errcode": 0,
"errmsg": "success",
"data": {
"nodeRTId": "xxx",
"actors": [
{ "id": "u001", "name": "李伟", "department": "财务部" }
]
},
"errors": null
}
失败示例:
9. 获取指定节点候选审批人¶
根据流程模板节点定义与流程实例,获取该节点的候选审批人列表(用于提交流程时选择审批人)。
- 接口类型:REST 资源
- 请求方式:
GET - 请求路径:
/allActor(完整:/api/rest/bpm/query/allActor) - 鉴权:是(需 accessToken)
- Tag:流程查询模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| accessToken | query | string | 是 | 访问令牌 |
| applicationId | query | string | 是 | 应用Id(DES 加密密文) |
| userCode | query | string | 是 | 用户编码(用户账号) |
| instanceId | query | string | 是 | 流程实例Id |
| nodeId | query | string | 是 | 节点定义Id |
| flowId | query | string | 是 | 流程模板Id |
请求示例¶
GET /api/rest/bpm/query/allActor?accessToken=xxx&applicationId=xxx&nodeId=xxx&flowId=xxx&instanceId=xxx&userCode=admin HTTP/1.1
响应¶
结构:统一 Resource(见 ../index.md「统一响应结构」)。
data:JSONObject,指定节点的候选审批人列表。
成功示例:
{
"errcode": 0,
"errmsg": "success",
"data": {
"nodeId": "xxx",
"actors": [
{ "id": "u001", "name": "李伟" },
{ "id": "u002", "name": "张敏" }
]
},
"errors": null
}
失败示例:
10. 获取流程信息¶
根据流程模板Id获取流程定义模型信息(节点、连线、表单绑定等)。
- 接口类型:REST 资源
- 请求方式:
GET - 请求路径:
/flowData(完整:/api/rest/bpm/query/flowData) - 鉴权:是(需 accessToken)
- Tag:流程查询模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| accessToken | query | string | 是 | 访问令牌 |
| applicationId | query | string | 是 | 应用Id(DES 加密密文) |
| flowId | query | string | 是 | 流程模板Id |
请求示例¶
响应¶
结构:统一 Resource(见 ../index.md「统一响应结构」)。
data:JSONObject,流程模板(定义模型)信息。
成功示例:
{
"errcode": 0,
"errmsg": "success",
"data": {
"id": "xxx",
"name": "差旅报销流程",
"subject": "差旅报销申请",
"nodes": [
{ "id": "node-start", "name": "开始", "type": "start" },
{ "id": "node-a", "name": "部门审批", "type": "task" }
]
},
"errors": null
}
失败示例: