跳转至

流程仪表(AnalyzerController)

流程仪表盘查询接口:按日期范围、展示模式等条件统计流程耗时数据,供仪表盘前端渲染。

  • 接口类型:REST 资源(@Component 继承 AbstractRuntimeController;类级 produces = MediaType.APPLICATION_JSON_VALUE,方法返回类型为 Resource,由 Spring Jackson 序列化为 JSON,据源码)
  • 基址${myapps.context-path.runtime:}/api/runtime/{applicationId}
  • Tag:流程仪表模块

公共说明

  • 鉴权(据源码):类级基址位于 /api/runtime/**,在 RestSecurityHandlerInterceptor 覆盖范围内,且不在豁免名单(豁免仅覆盖 /api/runtime/login.*/api/runtime/dingding/authlogin/api/runtime/synchronization.*、URI 以 /showjrxml 结尾、含 /getCustomColumnsInfos、含 /accessToken、含 /macro、以 /clear 结尾、含 /pages/ 等,详见 login.md「公共说明 · 鉴权」)。拦截器走 Security.getUserIdFromToken(request),未取到再尝试 Security.getDebugUserIdFromToken(request),两者皆无则拒绝。故需 accessToken(或 debugToken),可通过 Cookie / 请求头 / query 参数任一方式传递。控制器内 getUser()(继承自 AbstractRuntimeController)必须能取到非空 WebUser,否则在 DesUtil.decryptTextByUserId(applicationId, getUser().getId()) 时即抛 NPE。
  • 路径变量 {applicationId}:必填,经 DES 加密(按当前执行用户密钥),服务端在方法入口处 DesUtil.decryptTextByUserId(applicationId, getUser().getId()) 解密。
  • 响应结构:本控制器响应使用统一 Resource(见 ../index.md「统一响应结构」)。注意失败时源码用 success(e.getLocalizedMessage(), null) 包裹(仍为 errcode=0),错误信息出现在 errmsg 中,据源码如实记录。

1. 流程仪表盘查询

按日期区间、展示模式、统计维度等条件查询流程耗时统计数据(AnalyzerProcess.getConsuming)。

  • 接口类型:REST 资源
  • 请求方式POST
  • 请求路径/Consuming(完整:{runtime-context}/api/runtime/{applicationId}/Consuming
  • 鉴权:是(需 accessToken,据源码)
  • Tag:流程仪表模块

请求参数

参数名 位置 类型 必填 说明
applicationId path string 应用Id(DES 加密密文)
content body string(JSON) 请求体 JSON,见下方「请求体」
请求体

JSON 对象,源码解析如下字段(多余字段被忽略):

字段 类型 必填 说明
select string 统计维度选择(透传给 AnalyzerProcess
startdate string 起始日期
enddate string 截止日期
showMode string 展示模式(如 day/month 等)
dateRange string 日期范围(透传给 AnalyzerProcess.getConsuming

请求示例

POST /api/runtime/__APPID__/Consuming HTTP/1.1
Content-Type: application/json
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9...

{
  "showMode": "day",
  "dateRange": "2026-01-01至2026-08-01",
  "select": "FLOW",
  "startdate": "2026-01-01",
  "enddate": "2026-08-01"
}

响应

结构:统一 Resource(见 ../index.md「统一响应结构」)。 dataCollection<HashMap>,每条记录为流程耗时统计行(由 AnalyzerProcess.getConsuming 返回,字段视 showMode/select 而定)。

成功示例

{
  "errcode": 0,
  "errmsg": "success",
  "data": [
    { "name": "请假流程", "avgConsuming": "2d", "count": 12 }
  ],
  "errors": null
}

失败示例(异常被吞,仍以 errcode=0 返回,错误信息在 errmsg):

{ "errcode": 0, "errmsg": "<异常LocalizedMessage>", "data": null, "errors": null }