update - 获取流程实例的同时,获取当前实例运行到的节点标识
This commit is contained in:
parent
ce4c0c62c3
commit
daa7c7f75b
@ -109,6 +109,15 @@ public class BpmnProcessInstanceVO {
|
||||
@ApiModelProperty(value = "租户 ID")
|
||||
private String tenantId;
|
||||
|
||||
/**
|
||||
* 当前待处理的节点标识
|
||||
* <p>
|
||||
* 如果是运行中的实例,有值
|
||||
* 否则没值
|
||||
*/
|
||||
@ApiModelProperty(value = "当前待处理的节点标识")
|
||||
private String currentDefinitionKey;
|
||||
|
||||
/**
|
||||
* 数据产生版本
|
||||
*/
|
||||
|
||||
@ -7,10 +7,13 @@ import cn.axzo.workflow.common.model.response.bpmn.process.BpmnProcessDefinition
|
||||
import cn.axzo.workflow.common.model.response.bpmn.process.BpmnProcessInstanceVO;
|
||||
import cn.axzo.workflow.common.model.response.category.CategoryItemVO;
|
||||
import org.flowable.engine.history.HistoricProcessInstance;
|
||||
import org.flowable.task.api.Task;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mapping;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
import static org.mapstruct.NullValueCheckStrategy.ALWAYS;
|
||||
@ -46,7 +49,8 @@ public interface BpmnProcessInstanceConverter extends EntityConverter<BpmnProces
|
||||
Optional<BpmnButtonConf> defaultButtonConf,
|
||||
BpmnTaskDelegateAssigner assigner,
|
||||
String version,
|
||||
Optional<CategoryItemVO> category) {
|
||||
Optional<CategoryItemVO> category,
|
||||
List<Task> runningTasks) {
|
||||
BpmnProcessInstanceVO vo = toVo(processInstance);
|
||||
vo.setCategory(processDefinition.getCategory());
|
||||
vo.setProcessDefinitionId(processDefinition.getId());
|
||||
@ -55,6 +59,9 @@ public interface BpmnProcessInstanceConverter extends EntityConverter<BpmnProces
|
||||
vo.setWorkflowEngineVersion(version);
|
||||
defaultButtonConf.ifPresent(vo::setDefaultButtonConf);
|
||||
category.ifPresent(i -> vo.setWorkspaceType(WorkspaceType.getType(Integer.valueOf(i.getWorkspaceTypeCode()))));
|
||||
if (!CollectionUtils.isEmpty(runningTasks)) {
|
||||
vo.setCurrentDefinitionKey(runningTasks.get(0).getTaskDefinitionKey());
|
||||
}
|
||||
return vo;
|
||||
}
|
||||
|
||||
|
||||
@ -54,6 +54,7 @@ import org.flowable.engine.HistoryService;
|
||||
import org.flowable.engine.ManagementService;
|
||||
import org.flowable.engine.RepositoryService;
|
||||
import org.flowable.engine.RuntimeService;
|
||||
import org.flowable.engine.TaskService;
|
||||
import org.flowable.engine.history.HistoricActivityInstance;
|
||||
import org.flowable.engine.history.HistoricProcessInstance;
|
||||
import org.flowable.engine.history.HistoricProcessInstanceQuery;
|
||||
@ -67,6 +68,7 @@ import org.flowable.engine.runtime.ProcessInstance;
|
||||
import org.flowable.engine.runtime.ProcessInstanceQuery;
|
||||
import org.flowable.form.api.FormInfo;
|
||||
import org.flowable.spring.SpringProcessEngineConfiguration;
|
||||
import org.flowable.task.api.Task;
|
||||
import org.flowable.variable.api.history.HistoricVariableInstance;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
@ -125,6 +127,8 @@ public class BpmnProcessInstanceServiceImpl implements BpmnProcessInstanceServic
|
||||
@Resource
|
||||
private RuntimeService runtimeService;
|
||||
@Resource
|
||||
private TaskService taskService;
|
||||
@Resource
|
||||
private BpmnProcessDefinitionService processDefinitionService;
|
||||
@Resource
|
||||
private HistoryService historyService;
|
||||
@ -548,11 +552,16 @@ public class BpmnProcessInstanceServiceImpl implements BpmnProcessInstanceServic
|
||||
version = FLOW_SERVER_VERSION_121;
|
||||
}
|
||||
|
||||
;
|
||||
List<Task> runningTasks = taskService.createTaskQuery().processInstanceId(processInstance.getId())
|
||||
.active()
|
||||
.orderByTaskCreateTime()
|
||||
.desc()
|
||||
.list();
|
||||
|
||||
BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinition.getId());
|
||||
return instanceConverter.toVo(processInstance, processDefinition, getButtonConfig(bpmnModel.getMainProcess())
|
||||
, assigner, version, categoryService.get(BPM_MODEL_CATEGORY,
|
||||
processInstance.getProcessDefinitionKey()));
|
||||
processInstance.getProcessDefinitionKey()), runningTasks);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user