diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/conf/FlowableConfiguration.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/conf/FlowableConfiguration.java index 7d407a1c8..053e2a28d 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/conf/FlowableConfiguration.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/conf/FlowableConfiguration.java @@ -2,6 +2,7 @@ package cn.axzo.workflow.core.conf; import cn.axzo.workflow.core.engine.behavior.CustomActivityBehaviorFactory; import cn.axzo.workflow.core.engine.id.DistributedTimeBasedIdGenerator; +import cn.axzo.workflow.core.service.ExtAxHiTaskInstService; import com.google.common.collect.Lists; import org.flowable.common.engine.api.delegate.event.FlowableEventListener; import org.flowable.common.engine.impl.history.HistoryLevel; @@ -48,7 +49,9 @@ public class FlowableConfiguration { } @Bean - public CustomActivityBehaviorFactory customActivityBehaviorFactory() { - return new CustomActivityBehaviorFactory(); + public CustomActivityBehaviorFactory customActivityBehaviorFactory(ExtAxHiTaskInstService hiTaskInstService) { + CustomActivityBehaviorFactory customActivityBehaviorFactory = new CustomActivityBehaviorFactory(); + customActivityBehaviorFactory.setHiTaskInstService(hiTaskInstService); + return customActivityBehaviorFactory; } } diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/behavior/CustomActivityBehaviorFactory.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/behavior/CustomActivityBehaviorFactory.java index 8df70b5fe..b67e22c9a 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/behavior/CustomActivityBehaviorFactory.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/behavior/CustomActivityBehaviorFactory.java @@ -1,5 +1,6 @@ package cn.axzo.workflow.core.engine.behavior; +import cn.axzo.workflow.core.service.ExtAxHiTaskInstService; import org.flowable.bpmn.model.Activity; import org.flowable.bpmn.model.ReceiveTask; import org.flowable.bpmn.model.UserTask; @@ -19,6 +20,7 @@ import org.flowable.engine.impl.bpmn.parser.factory.DefaultActivityBehaviorFacto * @since 2023/7/29 00:34 */ public class CustomActivityBehaviorFactory extends DefaultActivityBehaviorFactory { + private ExtAxHiTaskInstService hiTaskInstService; @Override public ParallelMultiInstanceBehavior createParallelMultiInstanceBehavior(Activity activity, AbstractBpmnActivityBehavior innerActivityBehavior) { @@ -38,6 +40,10 @@ public class CustomActivityBehaviorFactory extends DefaultActivityBehaviorFactor @Override public ReceiveTaskActivityBehavior createReceiveTaskActivityBehavior(ReceiveTask receiveTask) { - return new CustomReceiveTaskActivityBehavior(receiveTask); + return new CustomReceiveTaskActivityBehavior(receiveTask, hiTaskInstService); + } + + public void setHiTaskInstService(ExtAxHiTaskInstService hiTaskInstService) { + this.hiTaskInstService = hiTaskInstService; } } diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/behavior/CustomReceiveTaskActivityBehavior.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/behavior/CustomReceiveTaskActivityBehavior.java index 370b62234..8e9a5dc15 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/behavior/CustomReceiveTaskActivityBehavior.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/behavior/CustomReceiveTaskActivityBehavior.java @@ -2,6 +2,8 @@ package cn.axzo.workflow.core.engine.behavior; import cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum; import cn.axzo.workflow.core.engine.event.ReceiveTaskExtInstCreateEventImpl; +import cn.axzo.workflow.core.repository.entity.ExtAxHiTaskInst; +import cn.axzo.workflow.core.service.ExtAxHiTaskInstService; import lombok.extern.slf4j.Slf4j; import org.flowable.bpmn.model.ReceiveTask; import org.flowable.common.engine.api.delegate.event.FlowableEventDispatcher; @@ -27,9 +29,11 @@ import java.util.Objects; @Slf4j public class CustomReceiveTaskActivityBehavior extends ReceiveTaskActivityBehavior { protected ReceiveTask receiveTask; + protected ExtAxHiTaskInstService hiTaskInstService; - public CustomReceiveTaskActivityBehavior(ReceiveTask receiveTask) { + public CustomReceiveTaskActivityBehavior(ReceiveTask receiveTask, ExtAxHiTaskInstService hiTaskInstService) { this.receiveTask = receiveTask; + this.hiTaskInstService = hiTaskInstService; } @Override @@ -46,6 +50,14 @@ public class CustomReceiveTaskActivityBehavior extends ReceiveTaskActivityBehavi task.setPropagatedStageInstanceId(execution.getPropagatedStageInstanceId()); task.setName(receiveTask.getName()); TaskHelper.insertTask(task, (ExecutionEntity) execution, false, false); + + // 添加 taskInst 扩展表数据 + ExtAxHiTaskInst entity = new ExtAxHiTaskInst(); + entity.setProcInstId(execution.getProcessInstanceId()); + entity.setTaskDefinitionKey(execution.getCurrentActivityId()); + entity.setTaskId(task.getId()); + entity.setStatus(BpmnProcessInstanceResultEnum.PROCESSING.getStatus()); + hiTaskInstService.save(entity); } @Override