diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessTaskServiceImpl.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessTaskServiceImpl.java index ef7cbf2cc..f2a7c828d 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessTaskServiceImpl.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessTaskServiceImpl.java @@ -54,6 +54,7 @@ import org.flowable.engine.impl.cfg.ProcessEngineConfigurationImpl; import org.flowable.engine.impl.persistence.entity.ExecutionEntity; import org.flowable.engine.impl.util.CommandContextUtil; import org.flowable.engine.impl.util.ProcessDefinitionUtil; +import org.flowable.engine.runtime.Execution; import org.flowable.engine.runtime.ProcessInstance; import org.flowable.engine.task.Attachment; import org.flowable.engine.task.Comment; @@ -455,9 +456,14 @@ public class BpmnProcessTaskServiceImpl implements BpmnProcessTaskService { task.setProcessInstanceId(parentTask.getProcessInstanceId()); task.setTaskDefinitionKey(parentTask.getTaskDefinitionKey()); task.setTaskDefinitionId(parentTask.getTaskDefinitionId()); - task.setExecutionId(parentTask.getExecutionId()); task.setPriority(parentTask.getPriority()); task.setCreateTime(new Date()); + + Execution subExecution = runtimeService.createExecutionQuery() + .parentId(parentTask.getExecutionId()) // 将新执行实例设置为当前执行实例的子实例 + .activityId(parentTask.getTaskDefinitionKey()) // 指定活动ID + .singleResult(); + task.setExecutionId(subExecution.getId()); log.info("流程加签父任务:{},正在创建加签子任务:{},", parentTaskId, JSONUtil.toJsonStr(Lists.newArrayList(task))); taskService.saveTask(task);