跳到主要内容

代办已办接口

查询已办列表接口

接口

HttpPost: api/FrontEnd/CartFinishWorkItems

按指定用户账号查询其已完成的工作流待办。结果按完成时间倒序返回,并包含表单跳转地址。路径大小写不敏感,cartFinishWorkItems 也可访问。

请求头

参数名类型是否必填说明
Authorizationstring登录令牌,格式为 Bearer {token}。令牌可通过 /Permission/GetToken 获取。
TnCodestring租户编码。
UserIdstring条件必填数据令牌计算使用的用户标识。非本机或非 IP 白名单环境调用时必填。
Timestampstring条件必填非本机或非 IP 白名单环境调用时必填。推荐使用 13 位 Unix 毫秒时间戳,例如 1786550400123
Datatokenstring条件必填非本机或非 IP 白名单环境调用时必填;64 位小写十六进制 SM3 摘要,按请求体和 Timestamp 生成,且不可重复使用。

本机或 IP 白名单环境调用时,仍必须携带 Authorization,但不需要 TimestampDatatoken

Datatoken 生成规则

对 POST 请求,服务端使用最终收到的原始请求体字符串签名。设 body 为最终发送的 UTF-8 JSON 字符串、userId 为请求头 UserIdtimestamp 为请求头 Timestamp,则:

bodyHash  = SM3(body)
Datatoken = SM3(timestamp + "zhouju@2025" + userId + bodyHash)

每个 Datatoken 只能提交一次。

以下为使用 sm-crypto 生成并发送请求的 JavaScript 示例:

import { sm3 } from "sm-crypto";

const payload = {
UserCode: "administrator",
PagingInfo: { PageIndex: 1, PageSize: 20 }
};
const body = JSON.stringify(payload);
const userId = "18f923a7-5a5e-426d-94ae-a55ad1a4b239";
const timestamp = String(Date.now());
const bodyHash = sm3(body);
const datatoken = sm3(`${timestamp}zhouju@2025${userId}${bodyHash}`);

const response = await fetch("https://example.com/baseUrl/api/FrontEnd/CartFinishWorkItems", {
method: "POST",
headers: {
Authorization: "Bearer {token}",
TnCode: "00000000",
UserId: userId,
Timestamp: timestamp,
Datatoken: datatoken,
"Content-Type": "application/json"
},
body
});

请求参数

请求体类型为 PageParams

参数名类型是否必填说明
UserCodestring要查询的用户账号编码。系统将其解析为用户 ObjectID;账号不存在时返回错误。
PagingInfoobject分页信息。当前实现会写入分页统计,不能省略。
PagingInfo.PageIndexint页码,从 1 开始。
PagingInfo.PageSizeint每页数量,应大于 0
BelongsAppstring限定所属应用编码。
SearchConditionarray筛选条件。仅处理 WorkFlowCodeSequenceNoStartTimeEndTime

SearchCondition 筛选字段

本接口按 NameValue 取值,OperationComponentKeyQueryType 不参与筛选计算。

NameValue 格式说明
WorkFlowCodecode1,code2流程/功能菜单编码,多个编码用英文逗号分隔。
SequenceNostring流程流水号,按包含关系匹配。
StartTimedate-time string接收时间大于等于该时间。
EndTimedate-time string接收时间小于等于该时间。

请求示例

POST /baseUrl/api/FrontEnd/CartFinishWorkItems HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzUxMiJ9...
TnCode: 00000000
UserId: 18f923a7-5a5e-426d-94ae-a55ad1a4b239
Timestamp: 1786550400123
Datatoken: {按上方公式计算的 64 位 SM3 十六进制值}
Content-Type: application/json
{
"UserCode": "administrator",
"PagingInfo": {
"PageIndex": 1,
"PageSize": 20
},
"BelongsApp": "app_code",
"SearchCondition": [
{
"Name": "WorkFlowCode",
"Value": "purchase_apply,leave_apply"
},
{
"Name": "StartTime",
"Value": "2026-08-01 00:00:00"
},
{
"Name": "EndTime",
"Value": "2026-08-31 23:59:59"
}
]
}

返回结果

参数名类型说明
CartTypestring固定为 havetodo,表示已办。
Datasarray已办工作项列表。
PagingInfoobject分页结果,包含 PageIndexPageSizePageCountDataCount

Datas 工作项字段

参数名类型说明
FlowItemIdstring已办工作项 ID。
FlowIdstring流程实例 ID。
DataIdstring关联业务数据 ID。
WorkFlowCodestring流程/功能菜单编码。
Titlestring表单标题。
Descriptionstring表单描述。
SequenceNostring流程流水号。
Stateint关联业务数据的状态值。
Originatorstring发起人 ID。
OriginatorNamestring发起人名称。
OriginatorUnitNamestring发起人上级组织名称。
ReceiveTimestring接收时间,格式为 yyyy-MM-dd HH:mm
FinishTimestring完成时间,格式为 yyyy-MM-dd HH:mm
OriginateTimestring流程发起时间,格式为 yyyy-MM-dd HH:mm
Participantsarray流程未结束时的当前处理人;流程已结束时可能为空。
AppIconstring所属应用图标。
AppIconIsUploadIconboolean是否为上传的应用图标。
MessageTempletstring消息模板。
MessageTempletValuestring使用业务数据解析后的消息内容。
FormLinkstring当前用户访问表单编辑页的相对地址。

返回示例

{
"CartType": "havetodo",
"Datas": [
{
"FlowItemId": "c76f48a0-6b2c-4d4a-9a3b-1be8a9e321ab",
"FlowId": "a2d398d0-87aa-47ef-8f9e-5977954f30e5",
"DataId": "6b8c060b-73b4-49f8-af2a-3c536eb9a01d",
"WorkFlowCode": "purchase_apply",
"Title": "采购申请-笔记本电脑",
"SequenceNo": "CGSQ-202608-0001",
"State": 4,
"Originator": "18f923a7-5a5e-426d-94ae-a55ad1a4b239",
"OriginatorName": "张三",
"OriginatorUnitName": "采购部",
"ReceiveTime": "2026-08-06 09:30",
"FinishTime": "2026-08-07 14:20",
"OriginateTime": "2026-08-06 09:15",
"AppIcon": "shopping-cart",
"AppIconIsUploadIcon": false,
"FormLink": "/dataform?authcode=...&formCode=purchase_apply&dataId=6b8c060b-73b4-49f8-af2a-3c536eb9a01d&formViewType=edit"
}
],
"PagingInfo": {
"PageIndex": 1,
"PageSize": 20,
"PageCount": 1,
"DataCount": 1
}
}

调用说明

  • 接口只查询 UserCode 对应用户的已办记录,不以登录用户自动替换该参数。
  • 查询结果固定按 FinishTime 降序排列,SortNameSortType 不生效。
  • FormLink 含有当前用户的临时访问参数,应仅在可信客户端使用,不应写入日志或公开传播。
  • 租户和令牌必须有效;令牌缺失或失效时服务端返回 HTTP 401。当前实现不校验 UserCode 是否与令牌用户一致,调用方应在接入层控制其数据访问范围

已阅列表查询接口

查询用户下所有已阅数据明细

支持版本:V3+;

接口

HttpPost:api/FrontEnd/cartFinishCirculateItems

请求实体

请求示例:

{
"PagingInfo": {
"PageIndex": 1,
"PageSize": 5
},
"SearchCondition": [{
"Name": "WorkFlowCode",
"Value": ""
}, {
"Name": "SequenceNo",
"Value": ""
}, {
"Name": "StartTime",
"Value": ""
}, {
"Name": "EndTime",
"Value": ""
}],
"UserCode":"Administrator"
}

返回结果

待阅列表查询接口

查询用户下所有待阅数据明细

支持版本:V3+;

接口

HttpPost:api/FrontEnd/cartUnFinishCirculateItems

请求实体

请求示例:

{
"PagingInfo": {
"PageIndex": 1,
"PageSize": 5
},
"SearchCondition": [{
"Name": "WorkFlowCode",
"Value": ""
}, {
"Name": "SequenceNo",
"Value": ""
}, {
"Name": "StartTime",
"Value": ""
}, {
"Name": "EndTime",
"Value": ""
}],
"UserCode":"Administrator"
}

返回结果

待办总数查询接口

查询用户下所有待办总数

支持版本:V3+;

接口

HttpGet:api/FrontEnd/getWorkCount/{userCode}

请求实体

请求示例:

api/FrontEnd/getWorkCount/administrator  

返回结果