/**
* 获取流程节点
*
* @param definitionId 流程定义ID
* @param processId 流程ID(可能为子流程),也就是流程定义Key
* @return
*/
protected List<FlowElement> getProcessDefinitionNodes(String definitionId, String processId) {
BpmnModel bpmnModel = repositoryService.getBpmnModel(definitionId);
List<Process> processes = Lists.newArrayList();
if (StrUtil.isNotEmpty(processId)) {
processes.add(bpmnModel.getProcessById(processId));
} else {
processes = bpmnModel.getProcesses();
}
List<FlowElement> flowElements = Lists.newArrayList();
processes.forEach(process -> flowElements.addAll(process.getFlowElements()));
return flowElements;
}
@GetMapping(value = "process/def/nodes/userTask")
public AppResult getUserTaskNodes(
@RequestParam(value = "id") String definitionId,
@RequestParam(value = "processId", required = false) String processId) {
List<FlowElement> flowElements = getProcessDefinitionNodes(definitionId, processId);
List<UserTask> userTasks = Lists.newArrayList();
flowElements.forEach(
node -> {
if (node instanceof UserTask) {
userTasks.add((UserTask) node);
}
});
return buildSuccess(userTasks);
}
// 返回数据格式(节点)
{
"code": 200,
"message": "操作成功",
"data": [
{
"id": "Activity_14xmp0o",
"xmlRowNumber": 7,
"xmlColumnNumber": 5,
"name": "一级审批",
"asynchronous": false,
"notExclusive": false,
"incomingFlows": [
{
"id": "Flow_1s2ypsj",
"xmlRowNumber": 20,
"xmlColumnNumber": 5,
"sourceRef": "StartEvent_1",
"targetRef": "Activity_14xmp0o",
"waypoints": [
238,
470,
350,
470
]
}
],
"outgoingFlows": [
{
"id": "Flow_1xbbtsl",
"xmlRowNumber": 21,
"xmlColumnNumber": 5,
"sourceRef": "Activity_14xmp0o",
"targetRef": "Gateway_0astncq",
"waypoints": [
450,
470,
555,
470
]
}
],
"forCompensation": false,
"formKey": "one-level",
"candidateGroups": [
"one-approval"
],
"extended": false,
"exclusive": true
},
{
"id": "Activity_19kus41",
"xmlRowNumber": 11,
"xmlColumnNumber": 5,
"name": "二级审批",
"asynchronous": false,
"notExclusive": false,
"incomingFlows": [
{
"id": "Flow_101i5h2",
"xmlRowNumber": 34,
"xmlColumnNumber": 5,
"name": "通过",
"conditionExpression": "${gateway==true}",
"sourceRef": "Gateway_0astncq",
"targetRef": "Activity_19kus41",
"waypoints": [
580,
445,
580,
340,
670,
340
]
}
],
"outgoingFlows": [
{
"id": "Flow_0zdqnmv",
"xmlRowNumber": 42,
"xmlColumnNumber": 5,
"sourceRef": "Activity_19kus41",
"targetRef": "Gateway_0jvvxgy",
"waypoints": [
770,
340,
875,
340
]
}
],
"forCompensation": false,
"formKey": "two-level",
"candidateGroups": [
"two-approval"
],
"extended": false,
"exclusive": true
}
]
}
正好看到了,你可以这样做