事务中台提供接口,由业务方将数据推送到事务中台;接口包含待办创建、办理、终止、撤回等操作;待办的状态流转由业务方调用接口实现。

# 事务中心设计结构

描述:
事务创建前置条件:第三方申请注册事务办理接口(可选)

事务办理中心过程:
1.发起者创建实例,第三方通过任务发起接口(接口API 实例发起),产生包括:实例记录主表,任务记录表,办理者规则表;
2.办理者可以通过办理者规则,追寻到任务,包括 待办、已办、发起、传阅等;
3.办理者通过办理、查阅接口进行内容访问,访问形式包括有:流程表单访问,第三方表单,第三方事务等(以流程表单事务为第一视角);
4.办理者办理业务,第三方通过任务办理接口(接口API 实例改变),改变原任务状态,并根据参数判定是否产生新的任务;

图片

实例创建 - 任务发起

图片

任务变更

图片

# POA对接

详细参考-事务POA文档

图片

  • 所有“time”结尾参数,都是时间类型,请准确 yyyy-MM-dd HH:mm:ss

  • 注意修改域名为实际学校环境域名

# 事务中心对接

  1. 直接调用事务中心api

  2. 所有接口都要带请求头 X-FORWARD-ID-TOKEN,请求头值,请参阅。https://poa-docsify.dev2.supwisdom.com/#/consumer/index

  3. (可选 2无法完成情况下必选)固定请求头(setHeader)参数值 formflowUserName 请求值为poa userid(若未接入poa,传递执行者学/工号即可)

# 接口响应值说明

图片

# POST 创建实例与任务

请求参数名称:json (字段类型:JsonObject.toString())

请求参数方式:post

下列参数中,除keys属于分配外,无任何固定值.

assignee、candidate、groupId三种办理人指定参数取其一,请勿指定多种类型。

地址:/v1/poa/instance

参数名 类型 是否必填 说明
keys string (64) 事务中心分配,第三方接入凭证
TtcInfoList array 实例数据集合
createTime datetime 创建时间 格式 yyyy-MM-dd HH:mm:ss
createName string(128) 创建人姓名
creator string (64) 创建人 (学工号/ID,根据userPoaFlag传参决定)
name string (255) 实例名称
serialNumber string(12) 流水号
userPoaFlag string 0/1 0标识传递学工号 1标识为ID
processRoleName string( 64) 事务所属分类(预留)
TtcDetailList array 明细数据集合(任务)
id string 为了避免重复的可能性,第三方接入不需填写
appId string( 64) 应用服务id(也是服务id或流程id,由第三方提供,与代理的应用服务相关联)
taskId string( 64) 任务id
taskName string( 255) 任务名称
transName string( 255) 事务名称
transTypeName string( 255) 事务类型名称,为空会取transName作为类型名称
transResource string( 255) 事务来源
serialNumber string( 12) 流水号 (业务字段)
applyTime datetime 申请时间 格式 yyyy-MM-dd HH:mm:ss
assignee string( 64) 办理人-用户(学工号/ID,根据userPoaFlag传参决定) (候选/用户/用户组 三选一 )
candidate array 办理人-候选(学工号/ID,根据userPoaFlag传参决定)
groupId string( 64) 办理人-用户组 (该组id是属于用户中心的组id,第三方未接入勿用)
createTime datetime 创建时间 格式 yyyy-MM-dd HH:mm:ss
formUrl string( 2000) 查阅地址,这个地址会在界面打开并传递jwt token
mobileUrl string( 2000) 移动端查阅地址,这个地址会在界面打开并传递jwt token
handleUrl string( 2000) 处理地址,这个地址会在界面打开并传递jwt token
mobileHandleUrl string( 2000) 移动端处理地址,这个地址会在界面打开并传递jwt token
handleUrl string( 2000) 处理地址,这个地址会在界面打开并传递jwt token
organization string( 255) 发起人机构名称
userId string( 64) 发起人 (学工号/ID,根据userPoaFlag传参决定)
userName string( 64) 发起人姓名
timeout number 超过x小时时间计为超时(单位:小时,默认未空或0,)
canDelegate number 是否允许被代理(被代理的操作为事务中心操作 0/1)
f1url string 接口地址1(一般第1个我们设置为催办,按需,非必填)
f1method string 接口1方式 post/get ,非必填
f1task_name string 接口1显示的名称 ,非必填
f2url string 接口地址2(一般第2个我们设置为撤回,按需) ,非必填
f2method string 接口2方式 post/get ,非必填
f2task_name string 接口3显示的名称 ,非必填
f3url string 接口地址3(一般第3个我们设置为终止,按需) ,非必填
f3method string 接口3方式 post/get ,非必填
f3task_name string 接口3显示的名称 ,非必填
funclist array 方法集合 ,非必填
operation 办理名称(显示的接口名称) ,非必填
url 接口地址 ,非必填
method 接口请求方式 post/get/。。。 ,非必填
flag 标记 ,非必填
actions array 自定义操作按钮 ,非必填
name 按钮名称 ,非必填
url 请求地址 ,非必填
method 接口请求方式 post/get/。。。 ,非必填
type 类型, HANDLE办理、BREAK_UP终止、REVOKE撤回、HANG_UP挂起、ACTIVE激活、CIRCULARIZE传阅、TRANSFER转办、PROMOTER发起人操作、HANDLEDR待办人操作、DEAL待办人操作、ALL所有人操作;对应的类型有对应的发送消息机制、以及后续的事务处理机制。可以参考下方操作接口,非必填
allowMerge 是否允许批量,默认0; 允许批量的按钮,在点击批量操作时,展示出来,任务下没有可批量按钮,该任务不可进行批量操作 ,非必填
nextNodeKey 导致节点变动的操作,需要传下一个节点关键词,点击按钮时,需要将该参数传过去 ,非必填
optType 操作类型: 1:page页面 0:api接口(表示快速处理)
{
    "keys": "xxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "TtcInfoList": 
    [
        {
            "createTime":"2020-05-18 15:28:31",
            "createName":"智慧校园管理员",
            "creator":"smartadmin",
            "name":"实例名称",
            "serialNumber":"123456",
            "userPoaFlag":"0",
            "TtcDetailList":
            [
                {
                 "id": "2",
                 "appId":"11111111",
                 "applyTime": "2020-05-18 15:28:31",
                 "assignee":"smartadmin",
                 "candidate":["2008010074","2009010030","1995000088"],
                 "groupId":"123456789",
                 "createTime":"2020-05-18 15:28:31",
                 "formUrl":"http://www.baidu.com",
                 "handleUrl":"http://www.baidu.com",
                  "mobileUrl":"http://www.baidu.com",
                 "mobileHandleUrl":"http://www.baidu.com",
                 "organization":"",
                 "processRoleName":"业务组名称-如无可不填",
                 "taskId":"123456789",
                 "taskName":"任务名称-如xxx-请假管理",
                 "timeout":"1",
                 "transName":"事务名称-如请假管理",
                 "transTypeName":"事务类型名称",
                 "transResource":"事务来源",
                 "userId":"smartadmin",
                 "userName":"智慧校园管理员",
                 "serialNumber":"XX1000001",
                 "f1url": "http://www.baidu.com",
                 "f1method": "post",
                 "f1task_name": "催办",
                 "f2url":  "http://www.baidu.com",
                 "f2method": "post",
                 "f2task_name": "撤回",
                 "f3url":  "http://www.baidu.com",
                 "f3method": "post",
                 "f3task_name": "终止",
                 "funclist":[
                      {
                      "operation": "操作方法名称",
                      "url":  "http://www.baidu.com",
                      "method": "post",
                      "flag":"(1办理,2查看,3终止,4撤回,5挂起,6激活,7催办,8其他)"
                    }
                  ],
                "actions":[ 
                    {
                        "name": "", 
                        "url": "", 
                        "allowMerge": 1, 
                        "type": "",
                        "optType": 0, 
                        "method": "post", 
                        "nextNodeKey": "" 
                    }
                  ]
                }
            ]
        }
    ]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69

# POST 任务办理

请求参数名称:json (字段类型:JsonObject.toString())

请求参数方式:post

下列参数中,除keys属于分配外,无任何固定值. assignee、candidate、groupId三种办理人指定参数取其一,请勿指定多种类型。

地址:/v1/poa/task

{
  "keys": "xxxxxxxxxxxxxxxxxxxxxxxx",   (必填)
  "TtcDetailList": [
      {
          "userPoaFlag": "0/1” , (必填。参数值010传工号,1传用户id)
          "sign": "0/1 ",(必填,是否会签,0否,1是且非最后一签)
          "oldTaskId": "被办理的任务id号",  (必填)
          "handlerId": "办理人id",   (必填。根据userPoaFlag传值决定)
          "handlerName": "办理人姓名", (必填)
          "handlerTime": "办理时间",  yyyy-MM-dd HH:mm:ss(必填)
          "handleStatus": "SUCCESS",  办理状态
           "final_time": "办结时间",  yyyy-MM-dd HH:mm:ss(非必填。但当lastFlag传入为 1时,需要此参数) 
          "lastFlag": "0/1" (必填。 是否最终办理节点,0否/1是,1是代表不再产生后续任务,新任务参数可不再填")
          "id": "2",  (非必填)
          "appId": "应用id,用于标识所属哪个应用", (必填。标识应用的id)
          "applyTime": "申请时间",  yyyy-MM-dd HH:mm:ss(必填,申请时间)
          "assignee": "下个办理人", (必填。但此参数与candidate、group 选择一个必填即可。根据userPoaFlag传值决定)
          "candidate": [
              "候选办理2008010074",
              "候选办理2009010030",
              "候选办理1995000088"
          ], (候选办理人,数组形式。遵照assignee字段解释。)
          "groupId": "办理用户组", (用户组id。遵照assignee字段解释)
          "createTime": "任务创建时间", yyyy-MM-dd HH:mm:ss(必填,任务创建时间)
          "formUrl": "查阅表单地址 如:http://www.baidu.com", (必填,查看表单地址)
          "handleUrl": "待办表单地址 如:http://www.baidu.com", (必填,办理表单地址)
           "mobileUrl":"移动端查阅表单地址 如:http://www.baidu.com", (必填,移动端查看表单地址)
           "mobileHandleUrl":"移动段待办表单地址 如:http://www.baidu.com", (必填,移动端办理表单地址)
          "organization": "申请人组织机构描述", (非必填)
          "processRoleName": "业务组名称-如无可不填",  (非必填)
          "taskId": "任务id",  (必填。任务id)
          "taskName": "任务名称-如胡卫-请假管理",  (必填,任务名称)
          "timeout": "1", (非必填,超时标志)
          "transName": "事务名称-如请假管理",  (必填)
          "transResource": "事务来源", (必填。比如:OA系统)
          "userId": "1", (必填。发起人的id或工号。根据userPoaFlag传入值决定)
          "serialNumber": "XX1000001", (必填,流水号。同一个实例的流水号不变)
          "userName": "", (必填。发起人姓名)
          "f1url": "http://www.baidu.com", (非必填)
          "f1method": "post", (非必填)
          "f1task_name": "催办", (非必填)
          "f2url": "http://www.baidu.com",  (非必填)
          "f2method": "post",  (非必填)
          "f2task_name": "撤回",  (非必填)
          "f3url": "http://www.baidu.com",  (非必填)
          "f3method": "post",  (非必填)
          "f3task_name": "终止",  (非必填)
          "funclist": [
              {
                  "operation": "操作方法名称",
                  "url": "http://www.baidu.com",
                  "method": "post",
                  "flag": "(1办理,2查看,3终止,4撤回,5挂起,6激活,7催办,8其他)"
              }
          ],  (非必填)
          "actions":[ // 下一条待办自定义操作按钮
              {
                  "name": "", // 按钮名称
                  "url": "", // 请求地址
                  "allowMerge": 1, // 是否允许批量,默认0; 允许批量的按钮,在点击批量操作时,展示出来,任务下没有可批量按钮,该任务不可进行批量操作
                  "type": "",// 类型,  HANDLE办理、BREAK_UP终止、REVOKE撤回、HANG_UP挂起、ACTIVE激活、CIRCULARIZE传阅、TRANSFER转办、PROMOTER发起人操作、HANDLEDR待办人操作、DEAL待办人操作、ALL所有人操作;对应的类型有对应的发送消息机制、以及后续的事务处理机制。可以参考下方操作接口
                  "optType": 0, // 操作类型: 1:page页面  0:api接口(表示快速处理) 
                  "method": "post", // 请求方式 ,optType为api 必填,get 、 post 、 put
                  "nextNodeKey": "", // 导致节点变动的操作,需要传下一个节点关键词,点击按钮时,需要将该参数传过去
              }
          ],(非必填)
          "oldActions":[ // 当前办理待办自定义操作按钮
              {
                  "name": "", // 按钮名称
                  "url": "", // 请求地址
                  "allowMerge": 1, // 是否允许批量,默认0; 允许批量的按钮,在点击批量操作时,展示出来,任务下没有可批量按钮,该任务不可进行批量操作
                  "type": "",// 类型,  HANDLE办理、BREAK_UP终止、REVOKE撤回、HANG_UP挂起、ACTIVE激活、CIRCULARIZE传阅、TRANSFER转办、PROMOTER发起人操作、HANDLEDR待办人操作、DEAL待办人操作、ALL所有人操作;对应的类型有对应的发送消息机制、以及后续的事务处理机制。可以参考下方操作接口
                  "optType": 0, // 操作类型: 1:page页面  0:api接口(表示快速处理) 
                  "method": "post", // 请求方式 ,optType为api 必填,get 、 post 、 put
                  "nextNodeKey": "", // 导致节点变动的操作,需要传下一个节点关键词,点击按钮时,需要将该参数传过去
                  "times": 1, // 按钮执行次数,null不限制次数
              }
          ],(非必填)
      }
  ]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81

# POST 传阅事务

请求参数名称:json (字段类型:JsonObject.toString())

请求参数方式:post

下列参数中,除keys属于分配外,无任何固定值.

地址:/v1/poa/read

{
    "keys": "MLSEexyO9521yfp78bDgO-UWlK6PwOyAE ",  (必填)
    "TtcDetailList": [
        {
            "taskId": "任务id",  (必填。任务id)
            "createTime": "传阅时间", yyyy-MM-dd HH:mm:ss (必填。传阅时间)
            "createBy": "创建人id",  (必填。传阅人id)
            "creatorName": "创建人姓名",  (必填。传阅人姓名)
            "creatorOrg": "创建人部门",  (必填。传阅人部门)
            "creatorAcc": "创建人工号、学号",  (必填。传阅人工号或学号)
            "userId": "被传阅人id",  (必填。被传阅人id)
            "userName": "被传阅人姓名",  (必填。被传阅人姓名)
            "userOrg": "被传阅人部门",  (必填。被传阅人部门)
            "userAcc": "被传阅人工号、学号"  (必填。被传阅人工号)
        }
    ]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# POST 催办事务

请求参数名称:json (字段类型:JsonObject.toString())

请求参数方式:post

下列参数中,除keys属于分配外,无任何固定值.

地址:/v1/poa/urged

{
    "keys": "MLSEexyO9521yfp78bDgO-UWlK6PwOyAE ",  (必填)
    "TtcDetailList": [
        {
            "taskId": "任务id",  (必填。任务id)
            "appId": "应用id",  (必填。应用id)
            "urgentcCreator": "催办人id",  (必填。催办人id)
            "massage": "催办消息"  (必填。催办消息语)
        }
    ]
}
1
2
3
4
5
6
7
8
9
10
11

# POST 转办事务

请求参数名称:json (字段类型:JsonObject.toString())

请求参数方式:post

下列参数中,除keys属于分配外,无任何固定值.

地址:/v1/poa/turn

{
    "keys": "MLSEexyO9521yfp78bDgO-UWlK6PwOyAE ",  (必填)
    "TtcDetailList": [
        {
            "taskId": "任务id",  (必填。任务id)
            "appId": "应用id",  (必填。应用id)
            "handlerId": "转办人id",  (必填。操作人或转办人id)
            "handlerName": "转办人姓名",  (必填。操作人或转办人姓名)
            "handlerTime": "转办时间", yyyy-MM-dd HH:mm:ss (必填。转办时间)
            "assignee": "被转办人id",  (必填。被转办人的id)
            "candidate": "被转办候选人id", (非必填,)
            "groupId": "被转办组id"  (非必填)
        }
    ]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# POST 改变已读

请求参数名称:json (字段类型:JsonObject.toString())

请求参数方式:post

下列参数中,除keys属于分配外,无任何固定值.

地址:/v1/poa/changeR

{
    "keys": "MLSEexyO9521yfp78bDgO-UWlK6PwOyAE ",  (必填)
    "TtcDetailList": [
        {
            "id": "ids - 传阅的id值 -传阅给我的 trid"  (必填。传阅的id)
        }
    ]
}
1
2
3
4
5
6
7
8

# POST 转阅已读事务

请求参数名称:json (字段类型:JsonObject.toString())

请求参数方式:post

下列参数中,除keys属于分配外,无任何固定值.

地址:/v1/poa/changeR

{
    "keys": "MLSEexyO9521yfp78bDgO-UWlK6PwOyAE ",  (必填)
    "TtcDetailList": [
        {
            "id": "传阅事务的id"  (必填。传阅的id)
        }
    ]
}
1
2
3
4
5
6
7
8

# POST 挂起事务

请求参数名称:json (字段类型:JsonObject.toString())

请求参数方式:post

下列参数中,除keys属于分配外,无任何固定值.

地址:/v1/poa/hang

{
    "keys": "MLSEexyO9521yfp78bDgO-UWlK6PwOyAE ",  (必填)
    "TtcDetailList": [
        {
            "taskId": "任务id",  (必填。任务id)
            "appId": "应用id",  (必填。应用id)
            "createTime": "挂起事务时间",  yyyy-MM-dd HH:mm:ss(必填。操作时间)
            "creator": "挂起事务操作人id"  (必填。操作人id)
        }
    ]
}
1
2
3
4
5
6
7
8
9
10
11

# POST 激活事务(撤销挂起)

请求参数名称:json (字段类型:JsonObject.toString())

请求参数方式:post

下列参数中,除keys属于分配外,无任何固定值.

地址:/v1/poa/disHang

{
    "keys": "MLSEexyO9521yfp78bDgO-UWlK6PwOyAE ",  (必填)
    "TtcDetailList": [
        {
            "taskId": "任务id",  (必填。任务id)
            "appId": "应用id",  (必填。应用id)
            "endTime": "撤销挂起事务时间/激活时间"  yyyy-MM-dd HH:mm:ss(必填。操作时间)
        }
    ]
}
1
2
3
4
5
6
7
8
9
10

# POST 终止事务

请求参数名称:json (字段类型:JsonObject.toString())

请求参数方式:post

下列参数中,除keys属于分配外,无任何固定值.

地址:/v1/poa/finals

{
    "keys": "MLSEexyO9521yfp78bDgO-UWlK6PwOyAE ",  (必填)
    "TtcDetailList": [
        {
            "taskId": "任务id",  (必填。任务id)
            "appId": "应用id"   (必填。应用id)
        }
    ]
}
1
2
3
4
5
6
7
8
9

# POST 撤回事务

请求参数名称:json (字段类型:JsonObject.toString())

请求参数方式:post

下列参数中,除keys属于分配外,无任何固定值.

撤回逻辑:

撤回逻辑有两种,一种为撤回后产生新的待办,一种为撤回后,实例被终结

地址:/v1/poa/finals

第一种
{
    "keys": "MLSEexyO9521yfp78bDgO-UWlK6PwOyAE ",  (必填)
    "TtcDetailList": [
        {
            "oldTaskId": "任务id",  (必填。老任务id)
            "appId": "应用id",  (必填。应用id)
            "newInstance": "0--是否新的情况,0为不产生新的任务,1或空为新任务,参照第二种情况数据" (必填)
        }
    ]
}
第二种
{
    "keys": "MLSEexyO9521yfp78bDgO-UWlK6PwOyAE ",  (必填)
    "TtcDetailList": [
        {
            "oldTaskId": "任务id",  (必填。老任务id)
            "appId": "",  (必填。应用id)
            "newInstance": "1--1或空为新任务,新任务参照第二种情况数据",  (必填)
            "taskId": "",  (必填。新任务id)
            "applyTime": "yyyy-MM-dd HH:mm:ss",  (必填。发起时间)
            "assignee": "用户id",  (必填。办理人id。与candidate group 择一)
            "candidate": "用户id",
            "groupId": "用户组id", 
            "formUrl": "",  (必填。查看表单地址)
            "handleUrl": "",  (必填。办理表单地址)
            "createTime": "yyyy-MM-dd HH:mm:ss",  (必填。任务创建时间)
            "organization": "行政机构",  (非必填,发起人所在组织机构中文名称)
            "processRoleName": "",  (非必填)
            "taskName": "",  (必填。任务名称)
            "timeout": "超过x小时时间计为超时(单位:小时,默认未空或0,)",  (非必填)
            "transName": "",  (必填。应用名称,如:请假申请)
            "userId": "",  (必填。发起人id)
            "canDelegate": "是否允许被代理(被代理的操作为事务中心操作 0/1)",  (非必填)
            "actions":[ // 自定义操作按钮
              {
                  "name": "", // 按钮名称
                  "url": "", // 请求地址
                  "allowMerge": 1, // 是否允许批量,默认0; 允许批量的按钮,在点击批量操作时,展示出来,任务下没有可批量按钮,该任务不可进行批量操作
                  "type": "",// 类型,  HANDLE办理、BREAK_UP终止、REVOKE撤回、HANG_UP挂起、ACTIVE激活、CIRCULARIZE传阅、TRANSFER转办、PROMOTER发起人操作、HANDLEDR待办人操作、DEAL待办人操作、ALL所有人操作;对应的类型有对应的发送消息机制、以及后续的事务处理机制。可以参考下方操作接口
                  "optType": 0, // 操作类型:1:page页面  0:api接口(表示快速处理) 
                  "method": "post", // 请求方式 ,optType为api 必填,get 、 post 、 put
                  "nextNodeKey": "", // 导致节点变动的操作,需要传下一个节点关键词,点击按钮时,需要将该参数传过去
              }
          ](非必填)
        }
    ]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48

# POST 删除事务

请求参数名称:json (字段类型:JsonObject.toString())

请求参数方式:post

下列参数中,除keys属于分配外,无任何固定值.

说明:事务删除后,待办人无此条待办任务。以及相关办理过的流程审核人员,在我的办结也查不到此条记录。发起人在我的发起中,也看不到此条记录

地址: /v1/poa/delete

{
    "keys": "MLSEexyO9521yfp78bDgO-UWlK6PwOyAE ",  (必填)
    "TtcDetailList": [
        {
            "taskId":"任务ID",  (任务ID)
             "appId":"888"  (必填)
        }
    ]
}
1
2
3
4
5
6
7
8
9

# POST 恢复事务

请求参数名称:json (字段类型:JsonObject.toString())

请求参数方式:post

下列参数中,除keys属于分配外,无任何固定值.

说明:事务恢复后,流程任务会自动回到原待办人节点。相关办理,发起也可查询到此条数据

地址:/v1/poa/recover

{
    "keys": "MLSEexyO9521yfp78bDgO-UWlK6PwOyAE ",  (必填)
    "TtcDetailList": [
        {
            "taskId":"任务ID",  (任务ID)
             "appId":"888"  (必填)
        }
    ]
}
1
2
3
4
5
6
7
8
9