流程历史(WorkflowHistory)¶
用于查询流程相关的历史记录与运行时待办/经办数据,包括文档流程历史、流程图、跨软件的我的待办/经办、流程催办历史以及抄送数据。
- 接口类型:REST 资源
- 基址:
/api/rest/bpm(produces=APPLICATION_JSON_VALUE,仅/history/flowPhoto返回二进制图片) - Tag:流程历史模块
公共说明¶
- 鉴权:所有端点均需在 query 中携带
accessToken(访问令牌)和userCode(执行用户账号)。鉴权机制详见 ../index.md。 - 应用 ID 加密:
applicationId参数需经 **DES 加密**后以密文形式传入,服务端按当前执行用户解密(DesUtil.decryptTextByUserId);请勿传明文 applicationId。 - 响应:除
/history/flowPhoto返回二进制图片字节外,其余端点统一返回Resource结构(见 ../index.md「统一响应结构」)。 - 分页参数:
pageNo(页码,选填,默认1)、linesPerPage(每页条数,选填,默认5)。 - 状态码:除
/history/flowPhoto外,所有端点成功返回 HTTP 200;业务错误通过errcode体现(错误码表见 ../index.md)。
1. 流程历史¶
根据文档 Id 获取该文档的流程处理历史记录列表。
- 接口类型:REST 资源
- 请求方式:
GET - 请求路径:
/history/flowHistory(完整:/api/rest/bpm/history/flowHistory) - 鉴权:是(需 accessToken)
- Tag:流程历史模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| accessToken | query | string | 是 | 访问令牌 |
| applicationId | query | string | 是 | 应用Id(DES 加密密文) |
| id | query | string | 是 | 报文Id(文档Id) |
| userCode | query | string | 是 | 用户编码(用户账号) |
请求示例¶
GET /api/rest/bpm/history/flowHistory?accessToken=xxx&applicationId=xxx&id=__8Z4wBAAAAAC3Z6QAA&userCode=admin HTTP/1.1
响应¶
结构:统一 Resource(见 ../index.md「统一响应结构」)。
data:List<FlowHistoryVO>,流程历史记录集合,按处理时间顺序列出每个节点的处理人、处理时间、动作、意见等。
成功示例:
{
"errcode": 0,
"errmsg": "success",
"data": [
{
"nodeid": "node-start",
"nodeName": "开始",
"processorId": "u001",
"processorName": "李伟",
"action": "提交",
"remark": "发起申请",
"processTime": "2026-08-01 09:30:00"
},
{
"nodeid": "node-a",
"nodeName": "部门审批",
"processorId": "u002",
"processorName": "张敏",
"action": "审批通过",
"remark": "同意",
"processTime": "2026-08-01 14:20:00"
}
],
"errors": null
}
失败示例:
2. 获取流程图¶
根据流程实例 Id 生成并返回该实例的流程图图片(jpg 二进制字节),可直接作为 <img>/下载流消费。
- 接口类型:REST 资源(二进制响应,非 JSON)
- 请求方式:
GET - 请求路径:
/history/flowPhoto(完整:/api/rest/bpm/history/flowPhoto) - 鉴权:是(需 accessToken)
- Tag:流程历史模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| accessToken | query | string | 是 | 访问令牌 |
| applicationId | query | string | 是 | 应用Id(DES 加密密文) |
| instanceId | query | string | 是 | 流程实例Id(取最后一个 - 之前部分作为文档Id) |
请求示例¶
响应¶
响应类型:本端点**不返回 JSON Resource**,而是返回 ResponseEntity<byte[]>,body 为 jpg 图片字节流。
| 响应头 | 取值 | 说明 |
|---|---|---|
Content-Type |
application/octet-stream |
二进制流 |
Content-Disposition |
attachment; filename=<instanceId>.jpg |
附件下载文件名(仅当 instanceId 不含特殊符号时设置) |
- 成功时返回 jpg 图片字节(HTTP 状态码
201 CREATED,由ResponseEntity显式指定)。 - 自由流程无流程图:当目标流程为自由流程或图片文件不存在时,抛出异常
该流程为自由流程,没有流程图。,按平台统一异常处理返回错误响应。
失败情形(自由流程无图):
由服务端抛出 Exception("该流程为自由流程,没有流程图。"),最终按平台错误处理链路返回失败结果(非 0 errcode),响应示例形如:
说明:客户端消费时应当先判断
Content-Type是否为application/octet-stream;若返回 JSON,则表示生成流程图失败。
3. 我的待办(多软件)¶
前台 Widget 使用的「我的待办」接口,聚合当前登录用户在**多个软件**下的待办任务,并按 pageNo/linesPerPage 分页返回。当传入 applicationId 时仅查询该软件。
- 接口类型:REST 资源
- 请求方式:
GET - 请求路径:
/myPending(完整:/api/rest/bpm/myPending) - 鉴权:是(需 accessToken)
- Tag:流程历史模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| userCode | query | string | 是 | 用户账号 |
| accessToken | query | string | 是 | 访问令牌 |
| applicationId | query | string | 否 | 软件Id(DES 加密密文);不传时聚合用户所有可见软件 |
| pageNo | query | int | 否 | 页码,默认 1 |
| linesPerPage | query | int | 否 | 每页条数,默认 5 |
请求示例¶
GET /api/rest/bpm/myPending?userCode=admin&accessToken=xxx&applicationId=xxx&pageNo=1&linesPerPage=5 HTTP/1.1
响应¶
结构:统一 Resource(见 ../index.md「统一响应结构」)。
data:DataPackage<WorkVO>,包含分页元数据与待办列表:
- datas:List<WorkVO>,当前页待办任务集合
- rowCount:int,跨软件聚合后的总条数
- pageNo:int,当前页码
- linesPerPage:int,每页条数
成功示例:
{
"errcode": 0,
"errmsg": "ok",
"data": {
"datas": [
{
"id": "work-001",
"docId": "__8Z4wBAAAAAC3Z6QAA",
"flowName": "差旅报销流程",
"subject": "差旅报销申请",
"initiator": "李伟",
"auditorNames": "张敏",
"firstProcessTime": "2026-08-01 09:30:00"
}
],
"rowCount": 12,
"pageNo": 1,
"linesPerPage": 5
},
"errors": null
}
失败示例:
4. 我的经办(多软件)¶
前台 Widget 使用的「我的经办」接口,聚合当前登录用户在**多个软件**下已经处理过、流程仍在运行中的任务(已办未结),按 pageNo/linesPerPage 分页返回。
- 接口类型:REST 资源
- 请求方式:
GET - 请求路径:
/myProcessing(完整:/api/rest/bpm/myProcessing) - 鉴权:是(需 accessToken)
- Tag:流程历史模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| userCode | query | string | 是 | 用户账号 |
| accessToken | query | string | 是 | 访问令牌 |
| pageNo | query | int | 否 | 页码,默认 1 |
| linesPerPage | query | int | 否 | 每页条数,默认 5 |
请求示例¶
响应¶
结构:统一 Resource(见 ../index.md「统一响应结构」)。
data:DataPackage<WorkVO>,结构与「我的待办」一致:
- datas:List<WorkVO>,当前页经办任务集合
- rowCount:int,跨软件聚合后的总条数
- pageNo:int,当前页码
- linesPerPage:int,每页条数
成功示例:
{
"errcode": 0,
"errmsg": "ok",
"data": {
"datas": [
{
"id": "work-002",
"docId": "__8Z4wBAAAAAC3Z6QAA",
"flowName": "差旅报销流程",
"subject": "差旅报销申请",
"initiator": "李伟",
"lastProcessTime": "2026-08-01 14:20:00",
"lastFlowOperation": "审批通过"
}
],
"rowCount": 3,
"pageNo": 1,
"linesPerPage": 5
},
"errors": null
}
失败示例:
5. 流程催办历史¶
根据流程实例 Id 获取该流程的催办(提醒)历史记录列表。
- 接口类型:REST 资源
- 请求方式:
GET - 请求路径:
/history/remindhis(完整:/api/rest/bpm/history/remindhis) - 鉴权:是(需 accessToken)
- Tag:流程历史模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| accessToken | query | string | 是 | 访问令牌 |
| applicationId | query | string | 是 | 应用Id(DES 加密密文) |
| instanceId | query | string | 是 | 流程实例Id |
| userCode | query | string | 是 | 用户编码(用户账号) |
请求示例¶
GET /api/rest/bpm/history/remindhis?accessToken=xxx&applicationId=xxx&instanceId=xxx&userCode=admin HTTP/1.1
响应¶
结构:统一 Resource(见 ../index.md「统一响应结构」)。
data:List<FlowReminderHistory>,催办历史记录集合(每次催办的时间、催办人、被催办人、催办内容等)。
成功示例:
{
"errcode": 0,
"errmsg": "ok",
"data": [
{
"id": "rh-001",
"remindorId": "u002",
"remindorName": "张敏",
"remindedId": "u003",
"remindedName": "王芳",
"content": "请尽快审批",
"remindTime": "2026-08-02 10:00:00"
}
],
"errors": null
}
失败示例:
6. 抄送数据¶
获取抄送给当前用户的文档列表,分页返回,并补齐表单名称等展示信息。
- 接口类型:REST 资源
- 请求方式:
GET - 请求路径:
/carboncopy(完整:/api/rest/bpm/carboncopy) - 鉴权:是(需 accessToken)
- Tag:流程历史模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| accessToken | query | string | 是 | 访问令牌 |
| applicationId | query | string | 是 | 应用Id(DES 加密密文) |
| userCode | query | string | 是 | 用户编码(用户账号) |
| pageNo | query | int | 否 | 页码,默认 1 |
| linesPerPage | query | int | 否 | 每页条数,默认 5 |
请求示例¶
GET /api/rest/bpm/carboncopy?accessToken=xxx&applicationId=xxx&userCode=admin&pageNo=1&linesPerPage=5 HTTP/1.1
响应¶
结构:统一 Resource(见 ../index.md「统一响应结构」)。
data:Map,分页封装结构,字段如下:
- datas:List<Map>,抄送记录集合,每项包含:
- docId、subject、flowId、flowName、formId、formName(取表单描述,缺省取表单名称)
- initiatorId/initiator、initiatorDeptId/initiatorDept(发起人信息)
- auditorList(JSONArray)、auditorNames
- firstProcessTime、lastProcessTime、lastFlowOperation
- read(是否已读)、stateLabel、applicationId
- rowCount:int,总条数
- pageNo:int,当前页码
- linesPerPage:int,每页条数
- pageCount:int,总页数
成功示例:
{
"errcode": 0,
"errmsg": "ok",
"data": {
"datas": [
{
"docId": "__8Z4wBAAAAAC3Z6QAA",
"subject": "差旅报销申请",
"flowId": "flow-001",
"flowName": "差旅报销流程",
"formId": "form-001",
"formName": "报销单",
"initiatorId": "u001",
"initiator": "李伟",
"initiatorDeptId": "d-001",
"initiatorDept": "研发部",
"auditorList": ["u002"],
"auditorNames": "张敏",
"firstProcessTime": "2026-08-01 09:30:00",
"lastProcessTime": "2026-08-01 14:20:00",
"lastFlowOperation": "审批通过",
"read": false,
"stateLabel": "审批中",
"applicationId": "app-001"
}
],
"rowCount": 8,
"pageNo": 1,
"linesPerPage": 5,
"pageCount": 2
},
"errors": null
}
失败示例: