审批流使用说明书

1、 流程周期

1.1. 定义流程

定义一个流程bpmn文件。

1.2. 发布流程

发布一个流程即将bpmn文件发布到数据库中使用activiti默认的表存储。

1.3. 流程挂起、激活

发布的流程文件可以启动,也可以挂起操作,当挂起时流程将不会被使用启动成为为一个流程,当流程文件激活时才可以继续使用该流程

1.4. 流程启动

当发起一个流程时,会选定一个激活的流程bpmn文件进行启动,会自动生成一个独一的流程id,并且将会自动流转到第一个人员操作节点

1.5. 审核节点

每个审核节点完成时,可以对该条流程进行传参,我们默认为number,提前在流程流转线上设定好当number为0,1,2等时流转到哪个节点,

1.6. 流程流转

根据number值的不同进行选择流程流转的方向进行流程流转

1.7. 流程结束

使用流程监听类对流程结束进行监听,当流程结束时,根据审批参数的不同对业务表单的审核结果进行改变完成流程

2、 示例:以一个审批节点为例

2.1.定义流程

登录时空大数据管理中心,进入右上角系统管理中心,选择系统工具——》流程定义——》在线绘制流程

2.1.1. 点击流程开启组件

在右侧表单里可以修改编号和名称,即节点编号和名称,供后续流程操作使用

点击组件周围出现的名为AppendServiceTask新建一个人员审批节点

2.1.1.1 点击审批节点

1点击常规,修改以下项:

1.1“编号” 为 deptLeaderVerify

1.2“名称” 为 管理员审批

1.3“候选用户”

多个角色审批

“候选用户” 为 ${role1},${role104} 此处以逗号分割,代表拥有角色id为 1 和 104 的用户进行审批,

如果是一个角色审批则修改

“候选用户” 为 ${role1} 代表角色id为1的用户可以审批,这是通用接口的默认审批方式。

2.1.2. 添加排他网关

点击人员审批节点在周围出现组件中选择 追加网关进行增加一个排他网关

2.1.2.1 添加流程线路

排他网关标识只要其中一条线的条件满足就会流转到下一节点,这里用来引出通过和不通过两条线。

2.1.3. 添加结束事件

点击网关在周围出现的组件中选择 追加结束事件进行增加一个结束事件

2.1.3.1 审核通过

1、添加走这条线的流转判断条件

点击网关指向结束事件的线,在右侧选择常规、详情、条件类型选择表达式,表达式中填写 ${number == 0} 意思是当代码传的值number==0 的时候走这条线

2、添加结束事件监听器

因为走完这个审批节点流程就结束了,所以要同时添加结束事件监听器
如果流程走到这条线就会触发监听器
点击监听器,在执行监听 点击 “+”添加一个 take:Java 类
例如 com.geovis.activiti.workflow.linstener.ResourceEndStateListener

3在字段注入中点击“+”添加一个字段注入:

例如 名称为 state
类型为 String
值为 1

将state的值保存进该条审批记录,1代表审批通过,2代表审批不通过

如果审批通过==》审批者选择通过按钮==》前端传给后端的参数如下

1
2
3
4
5
{
"controlId": "number",
"controlSuggestion": "通过",
"controlValue": 0
}
字段 备注
controlId 默认为number 即流程流转到下一节点到哪个节点,是审批通过还是不通过的判定条件参数名称
controlSuggestion 审批意见
controlValue number的值,用来判断是否审批成功 例如0为通过 1为不通过

后端将前端传过来的number和值 0 保存在variables里传给bpmn工作流

1
variables.put(awf.getControlId(), awf.getControlValue());

bpmn中对number的值进行了判定 如果${number == 0},则走这条线,
走这条线就会注入一个参数 state 为1,在监听器读取state,如果state为1,则审批结果为通过,进行在业务表单中保留审批成功操作

监听器代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@Slf4j
public class ResourceEndStateListener implements ExecutionListener {

private Expression state;

@Override
public void notify(DelegateExecution delegateExecution) {
ResourceApplication resourceApplication = new ResourceApplication();
resourceApplication.setId(delegateExecution.getProcessInstanceBusinessKey());
resourceApplication.setState(state.getValue(delegateExecution).toString());
SpringUtils.getBean(IResourceApplicationService.class).updateResourceApplication(resourceApplication);

ResourceApplication resourceApplication1 = SpringUtils.getBean(IResourceApplicationService.class).selectResourceApplicationById(resourceApplication.getId());
try {
HttpUtils.instance.jsonPost(resourceApplication1.getCallbackUrl(), null, JSON.toJSONString(resourceApplication1));
log.info("http callback:{},{}", resourceApplication1.getCallbackUrl(), JSON.toJSONString(resourceApplication1));
} catch (IOException e) {
e.printStackTrace();
log.error("回调失败:{}", e.getMessage());
}
}
}

2.1.3.2 审核不通过

1、点击网关,点击周围的 使用顺序/消息流或者关联连接 指向结束组件

2、可以拖拽这条线让其不再与上面通过的线重合

3、点击这条线,在右侧窗口选择监听器,在执行监听 点击 “+”添加一个take:Java类

与上面通过的Java类是同一个 com.geovis.activiti.workflow.linstener.ResourceEndStateListener

4、在字段注入中点击“+”添加一个字段注入:

例如:

  • 名称为: state
  • 类型为: String
  • 值为: 2

可以在代码中读取state的值来了解审批结果,例如设置审批值为number =1,也可以是不为0的其他值,则走这条线,该操作注入一个参数state为2,在监听器读取state,如果state为2,则审批结果为拒绝,进行在业务表单中保留审批失败操作。

2.1.4. 查看流程文件基本信息

点击空白区域,在右侧表单可以编写这个bpmn的基本信息

属性 注释
编号 例如 resource_example 是流程key ,部署bpmn文件后会保存到act_re_procdef表中的KEY_字段
名称 例如 示例流程表单 是流程名称,部署bpmn文件后会保存到act_re_procdef表中的NAME_字段
描述 例如 资源申请流程示例 是流程描述,部署bpmn文件后会保存到act_re_procdef表中的DESCRIPTION_字段

2.2. 发布流程

2.2.1 直接部署

上面画好的流程图,可以点击 部署 按钮直接部署到数据库,部署后会在流程列表中展示

2.2.2 选择文件部署

也可以再流程定义界面点击 部署流程 按钮,选择需要部署的流程文件进行部署,可以上传含有bpmn文件的zip文件进行部署,也可以直接部署bpmn文件

2.2.3 查看已经发布的流程

发布的流程可以在act_re_procdef 表中看到流程文件的信息,查看所有的已经发布的流程接口:

http://localhost:8089/processDefinition/list?pageNum=1&pageSize=10

2.2.4 查看流程

可以根据 DEPLOYMENT_ID_ 和RESOURCE_NAME_ 读取bpmn的xml文件,展示在前端页面上

http://localhost:8089/processDefinition/getDefinitionXML

get接口传参如下:

KEY VALUE
deploymentId 507ce6d4-d10f-11ec-8fbe-005056c00001
resourceName resource_js.bpmn

可以列出所有发布的流程信息

2.3. 流程挂起、激活

2.3.1 在发布流程展示界面点击挂起、激活可以改变流程的状态,接口如下:

http://localhost:8089/processDefinition/suspendOrActiveApply

post接口 传参如下:

1
2
3
4
{
"id":"leave:1:db821b75-ed56-11ec-9869-72bdf190b8a1",
"suspendState":"1"
}
字段 注释
id 流程部署后在act_re_procdef表中生成的id
suspendState 流程状态 1为正在使用 2为挂起

返回值

1
2
3
4
{
"code": 200,
"data": "流程定义的启动挂起状态被改变==》leave:1:012b231a-f129-11ec-9869-72bdf190b8a1"
}

2.3.2 挂起和激活的含义

当挂起时流程将不会被使用启动成为为一个流程,当流程文件激活时才可以继续使用该流程

2.4. 流程启动

2.4.1 保存草稿

http://localhost:8089/common/addDraft

post接口 传参如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
"type": "data_sharing",
"title": "草稿测试1",
"reason": "{\"id\":70,\"accesskeyId\":\"v5gim64kv4uwoi0m\",\"accesskeySecret\":\"ca3bed236b63ce314d356008ce0315f5\",\"status\":\"2\",\"startTime\":\"2022-06-09 00:00\",\"endTime\":\"2022-06-20 00:00\",\"applyBy\":\"二级管理员\",\"menuIds\":[2060,2061],\"scopeId\":8200,\"userUnit\":\"智慧创新研究院\",\"contactNumber\":\"18686596407\",\"activitiType\":\"data_sharing\",\"activitiTitle\":\"测试气象数据申请\",\"menuNames\":\"非空间数据\",\"createBy\":\"geoadmin\",\"remark\":\"测试申请气象数据\",\"params\":{}}",
"state": "4",
"createName": "二级管理员",
"createBy": "geoadmin",
"callbackUrl": "http://192.168.131.26:38081/system/access/callbackurl",
"cause": "测试申请气象数据",
"userUnit": "智慧创新研究院",
"phone": "18686596407",
"urge": "0",
"reKey": "resource_ty",
"reId": "resource_ty:1:59394b21-ed56-11ec-9869-72bdf190b8a1"
}
字段 注释 备注
type 申请类型:如数据共享、数据订阅,可以约定好英文和中文的映射关系,保存在数据字典中 在业务表单填写时保存进来
title 标题 在业务表单填写时保存进来
reason 存放业务表单所有数据的json 将整个业务表单转化为json存进去有利于后续操作 在业务表单填写时保存进来
state 表单状态 默认为4 4 未执行(第一步流程表单数据暂存草稿,未启动时),
0 进行中(流程启动后但是未全部执行完成时)
1 已办结-审核通过(流程全部节点审核通过,到达结束节点)
2 已办结-审核不通过(流程在任何节点审核不通过时)
3 已删除 (在流程未流转完成时,由管理员或发起人删除的流程
callbackUrl 回调地址,用来提示业务表单流程已经走完 流程结束回调的接口,告诉业务流程已经走完并且附带审批结果
cause 申请原因 在业务表单填写时保存进来
userUnit 申请者单位 在业务表单填写时保存进来
phone 申请者联系电话 在业务表单填写时保存进来
urge 是否催办 默认为 0 不催办
1催办 催办的会在审批者待办中优先展示
rekey 流程key 编辑草稿之前选择一个流程时从选择的信息中读取并保存进来
reid 流程id 在act_re_procdef中为KEY_字段 编辑草稿之前选择一个流程时从选择的信息中读取并保存进来
createName 流程发起人姓名 流程启动的时候后端读取登录用户自动保存
createBy 流程发起人username 流程启动的时候后端读取登录用户自动保存

返回值

1
2
3
4
{
"code": 200,
"data": 1
}

2.4.2 查看本人创建草稿

http://localhost:8089/common/getDrafts

post接口 传参如下:

1
2
3
4
{
"title":"草稿",
"type" :"data_sharing"
}

可以根据标题模糊查询或者其他字段精确查询.

可以查看本人创建的草稿,查询后结果例如:

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
{
"total": 2,
"data": [
{
"id": "8e7c0cae-32ac-45f6-a05f-181705136464",
"authorizedAccount": "v5gim64kv4uwoi0m",
"type": "data_sharing",
"title": "草稿测试1",
"reason": "{\"id\":70,\"accesskeyId\":\"v5gim64kv4uwoi0m\",\"accesskeySecret\":\"ca3bed236b63ce314d356008ce0315f5\",\"status\":\"2\",\"startTime\":\"2022-06-09 00:00\",\"endTime\":\"2022-06-20 00:00\",\"applyBy\":\"二级管理员\",\"menuIds\":[2060,2061],\"scopeId\":8200,\"userUnit\":\"智慧创新研究院\",\"contactNumber\":\"18686596407\",\"activitiType\":\"data_sharing\",\"activitiTitle\":\"测试气象数据申请\",\"menuNames\":\"非空间数据\",\"createBy\":\"geoadmin\",\"remark\":\"测试申请气象数据\",\"params\":{}}",
"state": "4",
"createName": "超级管理员",
"createBy": "superadmin",
"callbackUrl": "http://192.168.131.26:38081/system/access/callbackurl",
"cause": "测试申请气象数据",
"userUnit": "智慧创新研究院",
"phone": "18686596407",
"urge": "0",
"reKey": "resource_ty",
"reId": "resource_ty:1:59394b21-ed56-11ec-9869-72bdf190b8a1"
},
{
"id": "fa2d2ba3-5e21-41b0-b3d6-f23a90d71ed3",
"authorizedAccount": "v5gim64kv4uwoi0m",
"type": "data_sharing",
"title": "草稿测试1",
"reason": "{\"id\":70,\"accesskeyId\":\"v5gim64kv4uwoi0m\",\"accesskeySecret\":\"ca3bed236b63ce314d356008ce0315f5\",\"status\":\"2\",\"startTime\":\"2022-06-09 00:00\",\"endTime\":\"2022-06-20 00:00\",\"applyBy\":\"二级管理员\",\"menuIds\":[2060,2061],\"scopeId\":8200,\"userUnit\":\"智慧创新研究院\",\"contactNumber\":\"18686596407\",\"activitiType\":\"data_sharing\",\"activitiTitle\":\"测试气象数据申请\",\"menuNames\":\"非空间数据\",\"createBy\":\"geoadmin\",\"remark\":\"测试申请气象数据\",\"params\":{}}",
"state": "4",
"createName": "超级管理员",
"createBy": "superadmin",
"callbackUrl": "http://192.168.131.26:38081/system/access/callbackurl",
"cause": "测试申请气象数据",
"userUnit": "智慧创新研究院",
"phone": "18686596407",
"urge": "0",
"reKey": "resource_ty",
"reId": "resource_ty:1:59394b21-ed56-11ec-9869-72bdf190b8a1"
}
],
"code": 200,
"msg": "查询成功"
}

2.4.3 编辑草稿根据id

http://localhost:8089/common/updateDrafts

post接口 传参如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"id": "8e7c0cae-32ac-45f6-a05f-181705136464",
"authorizedAccount": "v5gim64kv4uwoi0m",
"type": "data_sharing",
"title": "草稿测试1编辑编辑编辑编辑编辑编辑",
"reason": "{\"id\":70,\"accesskeyId\":\"v5gim64kv4uwoi0m\",\"accesskeySecret\":\"ca3bed236b63ce314d356008ce0315f5\",\"status\":\"2\",\"startTime\":\"2022-06-09 00:00\",\"endTime\":\"2022-06-20 00:00\",\"applyBy\":\"二级管理员\",\"menuIds\":[2060,2061],\"scopeId\":8200,\"userUnit\":\"智慧创新研究院\",\"contactNumber\":\"18686596407\",\"activitiType\":\"data_sharing\",\"activitiTitle\":\"测试气象数据申请\",\"menuNames\":\"非空间数据\",\"createBy\":\"geoadmin\",\"remark\":\"测试申请气象数据\",\"params\":{}}",
"state": "4",
"createName": "超级管理员",
"createBy": "superadmin",
"callbackUrl": "http://192.168.131.26:38081/system/access/callbackurl",
"cause": "测试申请气象数据",
"userUnit": "智慧创新研究院",
"phone": "18686596407",
"urge": "0",
"reKey": "resource_ty",
"reId": "resource_ty:1:59394b21-ed56-11ec-9869-72bdf190b8a1"
}

返回值

1
2
3
4
{
"code": 200,
"data": 1
}

可以在流程未启动之前根据草稿的id进行编辑草稿

2.4.4 删除草稿根据ids

http://localhost:8089/common/deleteDrafts

post接口 传参为一个数组,例如:

1
["9c178184-5afb-4cfd-9db1-bbfa0102143f","fa2d2ba3-5e21-41b0-b3d6-f23a90d71ed3"]

可以多个删除也可以单个删除自己创建的草稿,删除后数据库中将删除该条记录
返回值:

1
2
3
4
{
"code": 200,
"data": 2
}

2.4.5 草稿开启流程

http://localhost:8089/common/startDraft

post接口 开启流程传的参数为4.2查看本人草稿中的草稿

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"id": "8e7c0cae-32ac-45f6-a05f-181705136464",
"authorizedAccount": "v5gim64kv4uwoi0m",
"type": "data_sharing",
"title": "草稿测试1编辑编辑编辑编辑编辑编辑",
"reason": "{\"id\":70,\"accesskeyId\":\"v5gim64kv4uwoi0m\",\"accesskeySecret\":\"ca3bed236b63ce314d356008ce0315f5\",\"status\":\"2\",\"startTime\":\"2022-06-09 00:00\",\"endTime\":\"2022-06-20 00:00\",\"applyBy\":\"二级管理员\",\"menuIds\":[2060,2061],\"scopeId\":8200,\"userUnit\":\"智慧创新研究院\",\"contactNumber\":\"18686596407\",\"activitiType\":\"data_sharing\",\"activitiTitle\":\"测试气象数据申请\",\"menuNames\":\"非空间数据\",\"createBy\":\"geoadmin\",\"remark\":\"测试申请气象数据\",\"params\":{}}",
"state": "4",
"createName": "超级管理员",
"createBy": "superadmin",
"callbackUrl": "http://192.168.131.26:38081/system/access/callbackurl",
"cause": "测试申请气象数据",
"userUnit": "智慧创新研究院",
"phone": "18686596407",
"urge": "0",
"reKey": "resource_ty",
"reId": "resource_ty:1:59394b21-ed56-11ec-9869-72bdf190b8a1"
}

返回值

1
2
3
4
{
"code": 200,
"data": 1
}

根据草稿中的rekey和reId进行确定一个部署的流程进行开启流程

2.5. 审核节点

会根据bpmn文件中配置的${role1},${role104}来判断审批人名单进行流程开始,并且自动流转到第一个审核节点,每个审核节点完成时,可以对该条流程进行传参,我们默认为number,提前在流程流转线上设定好当number为0,1,2等时流转到哪个节点

2.5.1 待办列表查询(我的待办)

http://localhost:8089/task/list?pageNum=1&pageSize=10

可以根据流程创建人昵称、流程标题进行模糊查询,精确到某一天进行查询当天创建的流程
post接口 传参例如:

1
2
3
4
5
{
"createName": "超级",
"title": "编辑",
"createTime": "2022-06-21 17:27:41"
}

返回值:

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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
{
"total": 2,
"data": [
{
"params": {},
"id": "51b903fe-f12b-11ec-b53d-005056c00001",
"name": "管理员审批",
"status": "CREATED",
"createdDate": "2022-06-21 14:28:09",
"instanceName": "草稿测试1编辑编辑编辑编辑编辑编辑",
"definitionKey": "resource_ty",
"businessKey": "8e7c0cae-32ac-45f6-a05f-181705136464",
"startUserId": "superadmin",
"startUserName": "超级管理员",
"business": {
"scopeId": 8200,
"activitiTitle": "测试气象数据申请",
"remark": "测试申请气象数据",
"accesskeySecret": "ca3bed236b63ce314d356008ce0315f5",
"params": {},
"activitiType": "data_sharing",
"menuNames": "非空间数据",
"accesskeyId": "v5gim64kv4uwoi0m",
"userUnit": "智慧创新研究院",
"createBy": "geoadmin",
"contactNumber": "18686596407",
"startTime": "2022-06-09 00:00",
"id": 70,
"endTime": "2022-06-20 00:00",
"menuIds": [
2060,
2061
],
"applyBy": "二级管理员",
"status": "2"
},
"resourceApplication": {
"id": "8e7c0cae-32ac-45f6-a05f-181705136464",
"authorizedAccount": "v5gim64kv4uwoi0m",
"type": "data_sharing",
"title": "草稿测试1编辑编辑编辑编辑编辑编辑",
"reason": "{\"id\":70,\"accesskeyId\":\"v5gim64kv4uwoi0m\",\"accesskeySecret\":\"ca3bed236b63ce314d356008ce0315f5\",\"status\":\"2\",\"startTime\":\"2022-06-09 00:00\",\"endTime\":\"2022-06-20 00:00\",\"applyBy\":\"二级管理员\",\"menuIds\":[2060,2061],\"scopeId\":8200,\"userUnit\":\"智慧创新研究院\",\"contactNumber\":\"18686596407\",\"activitiType\":\"data_sharing\",\"activitiTitle\":\"测试气象数据申请\",\"menuNames\":\"非空间数据\",\"createBy\":\"geoadmin\",\"remark\":\"测试申请气象数据\",\"params\":{}}",
"instanceId": "d7cc710e-f12b-11ec-b53d-005056c00001",
"state": "0",
"createName": "超级管理员",
"createBy": "superadmin",
"createTime": "2022-06-21 14:31:55",
"updateTime": "2022-06-21 14:31:21",
"callbackUrl": "http://192.168.131.26:38081/system/access/callbackurl",
"updateBy": "superadmin",
"cause": "测试申请气象数据",
"userUnit": "智慧创新研究院",
"phone": "18686596407",
"updateName": "超级管理员",
"urge": "0",
"reKey": "resource_ty",
"reId": "resource_ty:1:59394b21-ed56-11ec-9869-72bdf190b8a1",
"transferTime": "2022-06-21T14:31:55.000+08:00"
}
},
{
"params": {},
"id": "d7cc7117-f12b-11ec-b53d-005056c00001",
"name": "管理员审批",
"status": "CREATED",
"createdDate": "2022-06-21 14:31:54",
"instanceName": "草稿测试1编辑编辑编辑编辑编辑编辑",
"definitionKey": "resource_ty",
"businessKey": "8e7c0cae-32ac-45f6-a05f-181705136464",
"startUserId": "superadmin",
"startUserName": "超级管理员",
"business": {
"scopeId": 8200,
"activitiTitle": "测试气象数据申请",
"remark": "测试申请气象数据",
"accesskeySecret": "ca3bed236b63ce314d356008ce0315f5",
"params": {},
"activitiType": "data_sharing",
"menuNames": "非空间数据",
"accesskeyId": "v5gim64kv4uwoi0m",
"userUnit": "智慧创新研究院",
"createBy": "geoadmin",
"contactNumber": "18686596407",
"startTime": "2022-06-09 00:00",
"id": 70,
"endTime": "2022-06-20 00:00",
"menuIds": [
2060,
2061
],
"applyBy": "二级管理员",
"status": "2"
},
"resourceApplication": {
"id": "8e7c0cae-32ac-45f6-a05f-181705136464",
"authorizedAccount": "v5gim64kv4uwoi0m",
"type": "data_sharing",
"title": "草稿测试1编辑编辑编辑编辑编辑编辑",
"reason": "{\"id\":70,\"accesskeyId\":\"v5gim64kv4uwoi0m\",\"accesskeySecret\":\"ca3bed236b63ce314d356008ce0315f5\",\"status\":\"2\",\"startTime\":\"2022-06-09 00:00\",\"endTime\":\"2022-06-20 00:00\",\"applyBy\":\"二级管理员\",\"menuIds\":[2060,2061],\"scopeId\":8200,\"userUnit\":\"智慧创新研究院\",\"contactNumber\":\"18686596407\",\"activitiType\":\"data_sharing\",\"activitiTitle\":\"测试气象数据申请\",\"menuNames\":\"非空间数据\",\"createBy\":\"geoadmin\",\"remark\":\"测试申请气象数据\",\"params\":{}}",
"instanceId": "d7cc710e-f12b-11ec-b53d-005056c00001",
"state": "0",
"createName": "超级管理员",
"createBy": "superadmin",
"createTime": "2022-06-21 14:31:55",
"updateTime": "2022-06-21 14:31:21",
"callbackUrl": "http://192.168.131.26:38081/system/access/callbackurl",
"updateBy": "superadmin",
"cause": "测试申请气象数据",
"userUnit": "智慧创新研究院",
"phone": "18686596407",
"updateName": "超级管理员",
"urge": "0",
"reKey": "resource_ty",
"reId": "resource_ty:1:59394b21-ed56-11ec-9869-72bdf190b8a1",
"transferTime": "2022-06-21T14:31:55.000+08:00"
}
}
],
"code": 200,
"msg": "查询成功"
}

可以根据申请者昵称、流程名称模糊查询,根据创建时间进行精确到某一天进行查询

2.5.2 审批

http://localhost:8089/task/formDataSave/51b903fe-f12b-11ec-b53d-005056c00001

post接口 传参如下:

1
2
3
4
5
{
"controlId": "number",
"controlSuggestion": "通过",
"controlValue": 0
}
字段 备注
controlId 默认为number 即流程流转到下一节点到哪个节点,是审批通过还是不通过的判定条件参数名称
controlSuggestion 审批意见
controlValue number的值,用来判断是否审批成功 例如0为通过 1为不通过

返回值

1
2
3
4
{
"code": 200,
"data": 1
}

2.5.3 已办列表查询(查看我审批完的所有流程)

http://localhost:8089/workflow/resource/listAll?pageNum=1&pageSize=10

post接口 传参如下:

1
2
3
4
5
{
"createName": "超级",
"title": "数",
"createTime": "2022-06-16 17:27:41"
}
字段 备注 查询类型
createName 创建人昵称 模糊查询
title 事件名称 模糊查询
createTime 创建时间 精确到某一天

返回值

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
82
83
84
85
86
87
88
89
90
{
"total": 2,
"data": [
{
"id": "1f7f7310-7555-4137-ae86-7b35118c12d8",
"authorizedAccount": "slmcb5q53wvut20s",
"type": "data_sharing",
"title": "数据共享测试一",
"reason": "{\"id\":97,\"accesskeyId\":\"slmcb5q53wvut20s\",\"accesskeySecret\":\"9a01ca9706774d56b4728a28d6869aa3\",\"status\":\"2\",\"startTime\":\"2022-05-30 00:00\",\"endTime\":\"2022-07-13 00:00\",\"applyBy\":\"超级管理员\",\"menuIds\":[2043],\"userUnit\":\"中科星图\",\"contactNumber\":\"15888888888\",\"activitiType\":\"data_sharing\",\"activitiTitle\":\"数据共享测试一\",\"menuNames\":\"影像服务WMS\",\"createBy\":\"superadmin\",\"remark\":\"描述\",\"params\":{}}",
"instanceId": "fe2673fe-ed1d-11ec-a97b-5e79c29df956",
"state": "1",
"createName": "超级管理员",
"createBy": "superadmin",
"suggestion": "ok",
"createTime": "2022-06-16 10:42:42",
"updateTime": "2022-06-16 10:43:51",
"callbackUrl": "http://192.168.131.26:38081/system/access/callbackurl",
"business": {
"activitiTitle": "数据共享测试一",
"remark": "描述",
"accesskeySecret": "9a01ca9706774d56b4728a28d6869aa3",
"params": {},
"activitiType": "data_sharing",
"menuNames": "影像服务WMS",
"accesskeyId": "slmcb5q53wvut20s",
"userUnit": "中科星图",
"createBy": "superadmin",
"contactNumber": "15888888888",
"startTime": "2022-05-30 00:00",
"id": 97,
"endTime": "2022-07-13 00:00",
"menuIds": [
2043
],
"applyBy": "超级管理员",
"status": "2"
},
"updateBy": "超级管理员",
"cause": "描述",
"userUnit": "中科星图",
"phone": "15888888888",
"updateName": "超级管理员",
"urge": "1",
"urgeReason": "还不给办??撒大声地22222222222222222",
"transferTime": "2022-06-16T10:43:50.000+08:00"
},
{
"id": "1fa5c674-527b-43fc-967b-630981bfce88",
"authorizedAccount": "u6anstu585po96lq",
"type": "data_subscription",
"title": "数据订阅测试通",
"reason": "{\"id\":96,\"accesskeyId\":\"u6anstu585po96lq\",\"accesskeySecret\":\"6847ab87565e6f88aa26a6fd61a82e4d\",\"status\":\"2\",\"startTime\":\"2022-06-22 00:00\",\"endTime\":\"2022-07-26 00:00\",\"applyBy\":\"超级管理员\",\"topics\":\"SocketData01\",\"topicNames\":\"示例数据处理任务02###TCP协议传感器数据01\",\"userUnit\":\"中科星图\",\"contactNumber\":\"15888888888\",\"activitiType\":\"data_subscription\",\"activitiTitle\":\"数据订阅测试通\",\"createBy\":\"superadmin\",\"remark\":\"一\",\"params\":{}}",
"instanceId": "ceb5ad6f-ed1d-11ec-a97b-5e79c29df956",
"state": "1",
"createName": "超级管理员",
"createBy": "superadmin",
"suggestion": "ok",
"createTime": "2022-06-16 10:41:22",
"updateTime": "2022-06-16 10:43:27",
"callbackUrl": "http://192.168.131.26:38081/system/access/callbackurl",
"business": {
"topics": "SocketData01",
"activitiTitle": "数据订阅测试通",
"remark": "一",
"accesskeySecret": "6847ab87565e6f88aa26a6fd61a82e4d",
"params": {},
"activitiType": "data_subscription",
"accesskeyId": "u6anstu585po96lq",
"userUnit": "中科星图",
"createBy": "superadmin",
"topicNames": "示例数据处理任务02###TCP协议传感器数据01",
"contactNumber": "15888888888",
"startTime": "2022-06-22 00:00",
"id": 96,
"endTime": "2022-07-26 00:00",
"applyBy": "超级管理员",
"status": "2"
},
"updateBy": "超级管理员",
"cause": "一",
"userUnit": "中科星图",
"phone": "15888888888",
"updateName": "超级管理员",
"urge": "0",
"transferTime": "2022-06-16T10:43:27.000+08:00"
}
],
"code": 200,
"msg": "查询成功"
}

2.5.4 我提交的流程列表查询(查看我提交的流程列表)

http://localhost:8089/workflow/resource/listPersonal?pageNum=1&pageSize=10

post接口 传参如下

1
2
3
4
5
{
"createName": "超级",
"title": "数",
"createTime": "2022-06-16 17:27:41"
}
字段 备注 查询类型
createName 创建人昵称 模糊查询
title 事件名称 模糊查询
createTime 创建时间 精确到某一天

返回值

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
{
"total": 1,
"data": [
{
"id": "8e7c0cae-32ac-45f6-a05f-181705136464",
"authorizedAccount": "v5gim64kv4uwoi0m",
"type": "data_sharing",
"title": "草稿测试1编辑编辑编辑编辑编辑编辑",
"reason": "{\"id\":70,\"accesskeyId\":\"v5gim64kv4uwoi0m\",\"accesskeySecret\":\"ca3bed236b63ce314d356008ce0315f5\",\"status\":\"2\",\"startTime\":\"2022-06-09 00:00\",\"endTime\":\"2022-06-20 00:00\",\"applyBy\":\"二级管理员\",\"menuIds\":[2060,2061],\"scopeId\":8200,\"userUnit\":\"智慧创新研究院\",\"contactNumber\":\"18686596407\",\"activitiType\":\"data_sharing\",\"activitiTitle\":\"测试气象数据申请\",\"menuNames\":\"非空间数据\",\"createBy\":\"geoadmin\",\"remark\":\"测试申请气象数据\",\"params\":{}}",
"instanceId": "d7cc710e-f12b-11ec-b53d-005056c00001",
"taskName": "管理员审批",
"state": "1",
"createName": "超级管理员",
"createBy": "superadmin",
"suggestion": "通过",
"createTime": "2022-06-21 14:31:55",
"updateTime": "2022-06-21 14:33:58",
"callbackUrl": "http://192.168.131.26:38081/system/access/callbackurl",
"business": {
"scopeId": 8200,
"activitiTitle": "测试气象数据申请",
"remark": "测试申请气象数据",
"accesskeySecret": "ca3bed236b63ce314d356008ce0315f5",
"params": {},
"activitiType": "data_sharing",
"menuNames": "非空间数据",
"accesskeyId": "v5gim64kv4uwoi0m",
"userUnit": "智慧创新研究院",
"createBy": "geoadmin",
"contactNumber": "18686596407",
"startTime": "2022-06-09 00:00",
"id": 70,
"endTime": "2022-06-20 00:00",
"menuIds": [
2060,
2061
],
"applyBy": "二级管理员",
"status": "2"
},
"updateBy": "超级管理员",
"cause": "测试申请气象数据",
"userUnit": "智慧创新研究院",
"phone": "18686596407",
"updateName": "超级管理员",
"urge": "0",
"reKey": "resource_ty",
"reId": "resource_ty:1:59394b21-ed56-11ec-9869-72bdf190b8a1",
"transferTime": "2022-06-21T14:31:55.000+08:00"
}
],
"code": 200,
"msg": "查询成功"
}

2.5.5 流程催办

http://localhost:8089/common/urge

post接口 传参如下

1
2
3
4
5
{
"id":"8e7c0cae-32ac-45f6-a05f-181705136464",
"urge":"1",
"urgeReason":"还不给办??快点的222222222222222"
}
字段 备注
id 是在我提交的流程列表查询 中查询出的申请记录id
urge 1为催办,0为不催办 催办的会在5.1 待办列表查询中优先展示

返回值

1
2
3
4
{
"code": 200,
"data": 1
}

2.5.6 流程删除

http://localhost:8089/workflow/resource/deleteByIds

post接口 传参为数组

1
["ce0b33c7-b28a-458f-881c-9e07aaf692d5"]

参数为在 我提交的流程列表查询 中查询出的申请记录id,用户删除会撤回正在审批的记录,在数据库中会将状态state设置为3,这条申请记录不会在数据库中消失,但是管理员待办会查不到。

返回值

1
2
3
4
{
"code": 200,
"data": 1
}

2.5.7 根据角色ID查询属于该角色的所有用户信息

2.5.7.1 获取审批人信息根据任务里的审批人组

http://localhost:8089/common/getExamine

post接口 传参如下

1
2
3
{
"examine":"role1,role104,"
}

返回值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"code": 200,
"data": [
{
"id": "1",
"name": "超级管理员",
"phonenumber": "15888888888",
"address": "中科星图"
},
{
"id": "108",
"name": "二级管理员",
"phonenumber": "18686596407",
"address": "中科星图"
}
]
}

examine为任务里的审批人组

2.5.7.2 获取审批人信息通过用户id

http://localhost:8089/common/getExamineById

post接口 传参如下

1
2
3
{
"id":"1"
}

id为用户id

返回值

1
2
3
4
5
6
7
8
9
{
"code": 200,
"data": {
"id": "1",
"name": "超级管理员",
"phonenumber": "15888888888",
"address": "中科星图"
}
}

2.5.8 已发布的流程根据执行工作流程ID查询所有执行节点信息

http://localhost:8089/common/getTasks

post接口 传参如下

1
2
3
{
"instanceId":"02a26f07-f042-11ec-ae05-005056c00001"
}

instanceId 为 执行工作流程ID

返回值

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
{
"total": 1,
"data": [
{
"createBy": "superadmin",
"createTime": "2022-06-21T14:30:40.000+08:00",
"params": {},
"id": 259,
"businessKey": "37a1334c-7cc5-4e33-8669-dbf143e151ee",
"formKey": "deptLeaderVerify",
"controlId": "number",
"controlSuggestion": "通过",
"controlValue": "0",
"taskNodeName": "管理员审批",
"createName": "超级管理员",
"roleId": "1",
"createId": "1",
"runState": "1",
"arriveTime": "2022-06-20T10:38:04.000+08:00",
"examine": "role1,role104,"
}
],
"code": 200,
"msg": "查询成功"
}

2.5.9 根据流程ID和流程节点ID查询节点信息

http://localhost:8089/common/getTasksByFormKey

post接口 传参如下

1
2
3
4
{
"instanceId":"02a26f07-f042-11ec-ae05-005056c00001",
"formKey":"deptLeaderVerify"
}
字段 备注
instanceId 执行工作流程ID
formKey 流程节点id

2.5.10 流程信息查询

http://localhost:8089/workflow/resource/list?pageNum=1&pageSize=9

post接口 传参如下:

1
2
3
4
5
{
"title": "一",
"createName": "超级管理员",
"state": "1"
}
字段 备注
title 事项名称
createName 申请人昵称
state 审核状态,这里是流程状态
4 未执行(第一步流程表单数据暂存草稿,未启动时)
0 进行中(流程启动后但是未全部执行完成时)
1 已办结-审核通过(流程全部节点审核通过,到达结束节点)
2 已办结-审核不通过(流程在任何节点审核不通过时)
3 已删除 (在流程未流转完成时,由管理员或发起人删除的流程

返回值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{
"code": 200,
"data": {
"createBy": "superadmin",
"createTime": "2022-06-21T14:30:40.000+08:00",
"params": {},
"id": 259,
"businessKey": "37a1334c-7cc5-4e33-8669-dbf143e151ee",
"formKey": "deptLeaderVerify",
"controlId": "number",
"controlSuggestion": "通过",
"controlValue": "0",
"taskNodeName": "管理员审批",
"createName": "超级管理员",
"roleId": "1",
"createId": "1",
"runState": "1",
"arriveTime": "2022-06-20T10:38:04.000+08:00",
"examine": "role1,role104,"
}
}

2.6. 流程流转

2.6.1 流程图概览

调接口下载并展示一张图 能看到流程所有节点等信息的图,和当前进行节点高亮。

2.6.1.1 获取流程部署id和name通过 正在运行 的流程instanceId

http://localhost:8089/processDefinition/getDefinitions/d7cc710e-f12b-11ec-b53d-005056c00001

get接口 返回结果:

1
2
3
4
5
6
7
{
"code": 200,
"data": {
"deploymentID": "5934902f-ed56-11ec-9869-72bdf190b8a1",
"resourceName": "resource_ty.bpmn"
}
}

2.6.1.2 获取流程图通过部署id和name

http://localhost:8089/processDefinition/getDefinitionXML

get接口 请求参数为form表单 传参为2.6.1查询出的结果

KEY VALUE
deploymentId 5934902f-ed56-11ec-9869-72bdf190b8a1
resourceName resource_ty.bpmn

返回值为流程bpmn的xml文件

2.6.1.3 流程图高亮

http://localhost:8089/activitiHistory/gethighLine

get请求 请求参数为form表单
传参为

1
instanceId  d7cc710e-f12b-11ec-b53d-005056c00001
KEY VALUE
instanceId 要查询的 流程id

返回值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
"code": 200,
"data": {
"highPoint": [
"starteventresource"
],
"highLine": [
null,
"flow2"
],
"waitingToDo": [
"deptLeaderVerify"
],
"iDo": []
}
}

2.6.2 统计接口统计接口

根据流程分类过滤后按流程状态统计各状态的流程数量。

http://localhost:8089/common/getNumbersOfWorkflow

post请求 请求参数如下:

1
2
3
{
"type":"data_sharing"
}

返回结果

1
2
3
4
5
6
7
8
{
"code": 200,
"data": {
"wait": 1,
"refuse": 0,
"pass": 2
}
}
字段 备注
wait 正在运行的流程
refuse 被拒绝的流程
pass 通过的流程

2.6.3 流程流转到哪个相邻的节点见2.5.2

http://localhost:8089/task/formDataSave/91bf0cfd-ed56-11ec-9ad7-005056c00001

post接口 传参如下

1
2
3
4
5
{
"controlId": "number",
"controlSuggestion": "通过",
"controlValue": 0
}
字段 备注
controlId 默认为number 即流程流转到下一节点到哪个节点,是审批通过还是不通过的判定条件参数名称
controlSuggestion 审批意见
controlValue number的值,用来判断是否审批成功 例如0为通过 1为不通过

2.7. 流程结束

流程结束详细原理请见2.1.3