update - 优化流程实例推测 API 的执行可过滤一些节点的查询人
This commit is contained in:
parent
2f92461d47
commit
c01718265b
@ -785,7 +785,6 @@ public class BpmnProcessInstanceServiceImpl implements BpmnProcessInstanceServic
|
|||||||
List<ProcessNodeDetailVO> resultList = new ArrayList<>(flowElements.size());
|
List<ProcessNodeDetailVO> resultList = new ArrayList<>(flowElements.size());
|
||||||
// 发起人节点,也是一个 UserTask 节点, 所以这里默认就包含了发起人节点
|
// 发起人节点,也是一个 UserTask 节点, 所以这里默认就包含了发起人节点
|
||||||
flowElements.stream()
|
flowElements.stream()
|
||||||
.filter(i -> !nodeDefinitionKeys.contains(i.getId()))
|
|
||||||
.filter(i -> (i instanceof UserTask || i instanceof ReceiveTask || i instanceof ServiceTask))
|
.filter(i -> (i instanceof UserTask || i instanceof ReceiveTask || i instanceof ServiceTask))
|
||||||
.forEach(i -> {
|
.forEach(i -> {
|
||||||
ProcessNodeDetailVO node = new ProcessNodeDetailVO();
|
ProcessNodeDetailVO node = new ProcessNodeDetailVO();
|
||||||
@ -801,18 +800,21 @@ public class BpmnProcessInstanceServiceImpl implements BpmnProcessInstanceServic
|
|||||||
node.setNodeMode(GENERAL);
|
node.setNodeMode(GENERAL);
|
||||||
node.setId(i.getId()).setName(i.getName());
|
node.setId(i.getId()).setName(i.getName());
|
||||||
if (i instanceof UserTask) {
|
if (i instanceof UserTask) {
|
||||||
parseUserTask(processInstanceId, (UserTask) i, node);
|
parseUserTask(processInstanceId, (UserTask) i, node, nodeDefinitionKeys);
|
||||||
} else if (i instanceof ServiceTask) {
|
} else if (i instanceof ServiceTask) {
|
||||||
parseServiceTask(processInstanceId, (ServiceTask) i, node);
|
parseServiceTask(processInstanceId, (ServiceTask) i, node, nodeDefinitionKeys);
|
||||||
}
|
}
|
||||||
resultList.add(node);
|
resultList.add(node);
|
||||||
});
|
});
|
||||||
return resultList;
|
return resultList;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void parseServiceTask(String processInstanceId, ServiceTask i, ProcessNodeDetailVO node) {
|
private void parseServiceTask(String processInstanceId, ServiceTask i, ProcessNodeDetailVO node, List<String> skipTaskDefinitionKeys) {
|
||||||
// ServiceTask 主要作用于抄送
|
// ServiceTask 主要作用于抄送
|
||||||
node.setId(i.getId()).setName(i.getName());
|
node.setId(i.getId()).setName(i.getName());
|
||||||
|
if (skipTaskDefinitionKeys.contains(i.getId())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
getCarbonCopyConfigs(i).ifPresent(carbons ->
|
getCarbonCopyConfigs(i).ifPresent(carbons ->
|
||||||
node.setForecastAssigners(springProcessEngineConfiguration.getCommandExecutor()
|
node.setForecastAssigners(springProcessEngineConfiguration.getCommandExecutor()
|
||||||
.execute(new CustomCarbonCopyUserSelectorCmd(processInstanceId, carbons,
|
.execute(new CustomCarbonCopyUserSelectorCmd(processInstanceId, carbons,
|
||||||
@ -820,7 +822,7 @@ public class BpmnProcessInstanceServiceImpl implements BpmnProcessInstanceServic
|
|||||||
historicTaskInstanceConverter, serviceVersion))));
|
historicTaskInstanceConverter, serviceVersion))));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void parseUserTask(String processInstanceId, UserTask i, ProcessNodeDetailVO node) {
|
private void parseUserTask(String processInstanceId, UserTask i, ProcessNodeDetailVO node, List<String> skipTaskDefinitionKeys) {
|
||||||
node.setFormKey(i.getFormKey());
|
node.setFormKey(i.getFormKey());
|
||||||
// 设置审批模式,
|
// 设置审批模式,
|
||||||
if (i.getBehavior() instanceof MultiInstanceActivityBehavior) {
|
if (i.getBehavior() instanceof MultiInstanceActivityBehavior) {
|
||||||
@ -833,6 +835,9 @@ public class BpmnProcessInstanceServiceImpl implements BpmnProcessInstanceServic
|
|||||||
node.setNodeMode(BpmnFlowNodeMode.GENERAL);
|
node.setNodeMode(BpmnFlowNodeMode.GENERAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (skipTaskDefinitionKeys.contains(i.getId())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (Objects.equals(node.getApprovalMethod(), human)) {
|
if (Objects.equals(node.getApprovalMethod(), human)) {
|
||||||
// 推测当前节点的审批人,并且如果审批人为空,也会根据审批人为空的策略去找人
|
// 推测当前节点的审批人,并且如果审批人为空,也会根据审批人为空的策略去找人
|
||||||
List<BpmnTaskDelegateAssigner> forecastAssigners =
|
List<BpmnTaskDelegateAssigner> forecastAssigners =
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user