update - 调整审批日志中的 NodeType 和 NodeMode 两个字段的生成逻辑

This commit is contained in:
wangli 2024-01-08 15:50:12 +08:00
parent c511c18b3d
commit e961f254e0

View File

@ -85,7 +85,6 @@ import static cn.axzo.workflow.common.enums.BpmnFlowNodeMode.OR;
import static cn.axzo.workflow.common.enums.BpmnFlowNodeType.NODE_BUSINESS;
import static cn.axzo.workflow.common.enums.BpmnFlowNodeType.NODE_CARBON_COPY;
import static cn.axzo.workflow.common.enums.BpmnFlowNodeType.NODE_STARTER;
import static cn.axzo.workflow.common.enums.BpmnFlowNodeType.NODE_TASK;
import static cn.axzo.workflow.core.common.code.BpmnInstanceRespCode.PROCESS_INSTANCE_ID_NOT_EXISTS;
import static cn.axzo.workflow.core.common.code.BpmnInstanceRespCode.PROCESS_INSTANCE_NOT_EXISTS;
import static cn.axzo.workflow.core.common.code.BpmnProcessDefinitionRespCode.PROCESS_DEFINITION_ID_NOT_EXISTS;
@ -568,12 +567,14 @@ public class BpmnProcessInstanceServiceImpl implements BpmnProcessInstanceServic
node.setId(userTask.getId())
.setName(userTask.getName())
.setFormKey(userTask.getFormKey())
.setNodeType(NODE_TASK)
.setNodeMode(GENERAL);//兜底设置
// 获取最原始节点类型, 部分节点会根据功能更变运行时的节点类型,在这里统一获取变更前的原类型
BpmnMetaParserHelper.getNodeType(i).ifPresent(node::setNodeType);
if (Objects.equals(NODE_STARTER.getType(), i.getId())) {
node.setNodeType(NODE_STARTER);
}
// 处理一些特殊节点模式
getApprovalMethod(userTask).ifPresent(approvalMethod -> {
switch (approvalMethod) {
case autoPassed:
@ -602,7 +603,8 @@ public class BpmnProcessInstanceServiceImpl implements BpmnProcessInstanceServic
});
// 推测当前节点的审批人
List<BpmnTaskDelegateAssigner> forecastAssigners = springProcessEngineConfiguration.getCommandExecutor()
List<BpmnTaskDelegateAssigner> forecastAssigners =
springProcessEngineConfiguration.getCommandExecutor()
.execute(new CustomForecastUserTaskAssigneeCmd(processInstanceId, userTask,
engineExecutionStartListener));
node.setForecastAssigners(forecastAssigners);