跳转至

流程历史(WorkflowHistory)

用于查询流程相关的历史记录与运行时待办/经办数据,包括文档流程历史、流程图、跨软件的我的待办/经办、流程催办历史以及抄送数据。

  • 接口类型:REST 资源
  • 基址/api/rest/bpmproduces=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「统一响应结构」)。 dataList<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
}

失败示例

{
  "errcode": 404,
  "errmsg": "文档不存在",
  "data": null,
  "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)

请求示例

GET /api/rest/bpm/history/flowPhoto?accessToken=xxx&applicationId=xxx&instanceId=xxx HTTP/1.1

响应

响应类型:本端点**不返回 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),响应示例形如:

{
  "errcode": 50001,
  "errmsg": "该流程为自由流程,没有流程图。",
  "data": null,
  "errors": null
}

说明:客户端消费时应当先判断 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「统一响应结构」)。 dataDataPackage<WorkVO>,包含分页元数据与待办列表: - datasList<WorkVO>,当前页待办任务集合 - rowCountint,跨软件聚合后的总条数 - pageNoint,当前页码 - linesPerPageint,每页条数

成功示例

{
  "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
}

失败示例

{
  "errcode": 40035,
  "errmsg": "用户不存在",
  "data": null,
  "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

请求示例

GET /api/rest/bpm/myProcessing?userCode=admin&accessToken=xxx&pageNo=1&linesPerPage=5 HTTP/1.1

响应

结构:统一 Resource(见 ../index.md「统一响应结构」)。 dataDataPackage<WorkVO>,结构与「我的待办」一致: - datasList<WorkVO>,当前页经办任务集合 - rowCountint,跨软件聚合后的总条数 - pageNoint,当前页码 - linesPerPageint,每页条数

成功示例

{
  "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
}

失败示例

{
  "errcode": 40035,
  "errmsg": "用户不存在",
  "data": null,
  "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「统一响应结构」)。 dataList<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
}

失败示例

{
  "errcode": 404,
  "errmsg": "流程实例不存在",
  "data": null,
  "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「统一响应结构」)。 dataMap,分页封装结构,字段如下: - datasList<Map>,抄送记录集合,每项包含: - docIdsubjectflowIdflowNameformIdformName(取表单描述,缺省取表单名称) - initiatorId/initiatorinitiatorDeptId/initiatorDept(发起人信息) - auditorList(JSONArray)、auditorNames - firstProcessTimelastProcessTimelastFlowOperation - read(是否已读)、stateLabelapplicationId - rowCountint,总条数 - pageNoint,当前页码 - linesPerPageint,每页条数 - pageCountint,总页数

成功示例

{
  "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
}

失败示例

{
  "errcode": 40035,
  "errmsg": "用户不存在",
  "data": null,
  "errors": null
}