update - 调整流程实例推测逻辑

This commit is contained in:
wangli 2024-03-25 22:22:12 +08:00
parent 73ba59e6dc
commit bccacd0321

View File

@ -745,18 +745,16 @@ public class BpmnProcessInstanceServiceImpl implements BpmnProcessInstanceServic
getButtonConfig(bpmnModel.getMainProcess(), i.getId()).ifPresent(node::setButtonConf);
// 设置审批方式
getApprovalMethod(i).ifPresent(node::setApprovalMethod);
getNodeType(i).ifPresent(node::setNodeType);
if (Objects.equals(NODE_STARTER.getType(), i.getId())) {
node.setNodeType(NODE_STARTER);
}
node.setNodeMode(GENERAL);
if (i instanceof UserTask) {
UserTask userTask = (UserTask) i;
node.setId(userTask.getId())
.setName(userTask.getName())
.setFormKey(userTask.getFormKey())
.setNodeMode(GENERAL);//兜底设置
// 获取最原始节点类型, 部分节点会根据功能更变运行时的节点类型,在这里统一获取变更前的原类型
getNodeType(i).ifPresent(node::setNodeType);
if (Objects.equals(NODE_STARTER.getType(), i.getId())) {
node.setNodeType(NODE_STARTER);
}
.setFormKey(userTask.getFormKey());
// 设置审批模式,
if (userTask.getBehavior() instanceof MultiInstanceActivityBehavior) {
MultiInstanceActivityBehavior behavior =
@ -795,14 +793,10 @@ public class BpmnProcessInstanceServiceImpl implements BpmnProcessInstanceServic
// 作用于特殊的一种业务节点, 只要是这个类型,一定是业务节点, 上面的 UserTask 可能是业务节点,也可能是一般的审批节点
ReceiveTask receiveTask = (ReceiveTask) i;
node.setId(receiveTask.getId()).setName(receiveTask.getName());
node.setNodeType(NODE_BUSINESS);
node.setNodeMode(BpmnFlowNodeMode.GENERAL);
} else {
// ServiceTask 主要作用于抄送
ServiceTask serviceTask = (ServiceTask) i;
node.setId(serviceTask.getId()).setName(serviceTask.getName());
node.setNodeType(NODE_CARBON_COPY);
node.setNodeMode(BpmnFlowNodeMode.GENERAL);
getCarbonCopyConfigs(serviceTask).ifPresent(carbons ->
node.setForecastAssigners(springProcessEngineConfiguration.getCommandExecutor()
.execute(new CustomCarbonCopyUserSelectorCmd(processInstanceId, carbons,