update - 业务节点创建时,添加默认的 ext_taskInst 数据,保障日志中该节点的状态是进行中

This commit is contained in:
wangli 2024-03-05 09:31:36 +08:00
parent ca9547ae49
commit ee5da87fdc
3 changed files with 25 additions and 4 deletions

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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