update - 记录发起人在扩展中的数据
This commit is contained in:
parent
8643486275
commit
5a98b1ee44
@ -1,17 +1,22 @@
|
||||
package cn.axzo.workflow.core.listener.impl;
|
||||
|
||||
import cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskDelegateAssigner;
|
||||
import cn.axzo.workflow.core.listener.BpmnTaskEventListener;
|
||||
import cn.axzo.workflow.core.repository.entity.ExtAxHiTaskInst;
|
||||
import cn.axzo.workflow.core.service.ExtAxHiTaskInstService;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.flowable.engine.RuntimeService;
|
||||
import org.flowable.task.service.delegate.DelegateTask;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.INTERNAL_INITIATOR;
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.OLD_INTERNAL_INITIATOR;
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.TASK_COMPLETE_OPERATION_TYPE;
|
||||
import static cn.axzo.workflow.common.enums.BpmnFlowNodeType.NODE_STARTER;
|
||||
import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.DELETED;
|
||||
|
||||
/**
|
||||
@ -23,8 +28,9 @@ import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.DELETE
|
||||
@Slf4j
|
||||
@Component
|
||||
@AllArgsConstructor
|
||||
public class InternalTaskEventListener implements BpmnTaskEventListener {
|
||||
public class InternalExtAxTaskInstEventListener implements BpmnTaskEventListener {
|
||||
private final ExtAxHiTaskInstService hiTaskInstService;
|
||||
private final RuntimeService runtimeService;
|
||||
|
||||
@Override
|
||||
public int getOrder() {
|
||||
@ -38,7 +44,20 @@ public class InternalTaskEventListener implements BpmnTaskEventListener {
|
||||
entity.setTaskDefinitionKey(delegateTask.getTaskDefinitionKey());
|
||||
entity.setTaskId(delegateTask.getId());
|
||||
entity.setStatus(BpmnProcessInstanceResultEnum.PROCESSING.getStatus());
|
||||
entity.setAssignee(delegateTask.getAssignee());
|
||||
// 记录发起人
|
||||
if (Objects.equals(delegateTask.getTaskDefinitionKey(), NODE_STARTER.getType())) {
|
||||
BpmnTaskDelegateAssigner assigner =
|
||||
(BpmnTaskDelegateAssigner) runtimeService.getVariable(delegateTask.getProcessInstanceId(),
|
||||
INTERNAL_INITIATOR);
|
||||
if (Objects.isNull(assigner)) {
|
||||
// 兼容历史数据
|
||||
assigner = (BpmnTaskDelegateAssigner) runtimeService.getVariable(delegateTask.getProcessInstanceId(),
|
||||
OLD_INTERNAL_INITIATOR);
|
||||
}
|
||||
entity.setAssignee(assigner.buildAssigneeId());
|
||||
} else {
|
||||
entity.setAssignee(delegateTask.getAssignee());
|
||||
}
|
||||
hiTaskInstService.save(entity);
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user