use of org.apache.inlong.manager.dao.entity.WorkflowProcessEntity in project incubator-inlong by apache.
the class StartEventProcessor method saveProcessEntity.
private WorkflowProcessEntity saveProcessEntity(String applicant, WorkflowProcess process, ProcessForm form) {
WorkflowProcessEntity processEntity = new WorkflowProcessEntity();
processEntity.setName(process.getName());
processEntity.setDisplayName(process.getDisplayName());
processEntity.setType(process.getType());
processEntity.setTitle(form.getTitle());
processEntity.setInlongGroupId(form.getInlongGroupId());
processEntity.setApplicant(applicant);
processEntity.setStatus(ProcessStatus.PROCESSING.name());
processEntity.setFormData(JsonUtils.toJson(form));
processEntity.setStartTime(new Date());
processEntity.setHidden(process.getHidden());
processEntityMapper.insert(processEntity);
Preconditions.checkNotNull(processEntity.getId(), "process saved failed");
return processEntity;
}
use of org.apache.inlong.manager.dao.entity.WorkflowProcessEntity in project incubator-inlong by apache.
the class EndEventProcessor method complete.
@Override
public boolean complete(WorkflowContext context) {
WorkflowProcessEntity processEntity = context.getProcessEntity();
List<WorkflowTaskEntity> tasks = taskEntityMapper.selectByProcess(processEntity.getId(), TaskStatus.PENDING);
// If there are unfinished tasks, the process cannot be ended
if (!CollectionUtils.isEmpty(tasks)) {
log.warn("have pending task, end event not execute");
return true;
}
WorkflowContext.ActionContext actionContext = context.getActionContext();
processEntity.setStatus(getProcessStatus(actionContext.getAction()).name());
processEntity.setEndTime(new Date());
processEntityMapper.update(processEntity);
processEventNotifier.notify(mapToEvent(actionContext.getAction()), context);
return true;
}
use of org.apache.inlong.manager.dao.entity.WorkflowProcessEntity in project incubator-inlong by apache.
the class WorkflowServiceImpl method addShowInListForEachTask.
private void addShowInListForEachTask(List<TaskResponse> taskList) {
if (CollectionUtils.isEmpty(taskList)) {
return;
}
PageHelper.clearPage();
List<Integer> list = taskList.stream().map(TaskResponse::getProcessId).distinct().collect(Collectors.toList());
ProcessQuery query = new ProcessQuery();
query.setIdList(list);
List<WorkflowProcessEntity> processEntities = queryService.listProcessEntity(query);
Map<Integer, Map<String, Object>> processShowInListMap = Maps.newHashMap();
processEntities.forEach(entity -> processShowInListMap.put(entity.getId(), getShowInList(entity)));
taskList.forEach(task -> task.setShowInList(processShowInListMap.get(task.getProcessId())));
}
use of org.apache.inlong.manager.dao.entity.WorkflowProcessEntity in project incubator-inlong by apache.
the class WorkflowServiceImpl method listProcess.
@Override
public PageInfo<ProcessResponse> listProcess(ProcessQuery query) {
PageHelper.startPage(query.getPageNum(), query.getPageSize());
Page<WorkflowProcessEntity> result = (Page<WorkflowProcessEntity>) queryService.listProcessEntity(query);
PageInfo<ProcessResponse> pageInfo = result.toPageInfo(entity -> {
ProcessResponse response = WorkflowBeanUtils.fromProcessEntity(entity);
if (query.getIncludeShowInList()) {
response.setShowInList(getShowInList(entity));
}
return response;
});
pageInfo.setTotal(result.getTotal());
if (query.getIncludeCurrentTask()) {
TaskQuery taskQuery = TaskQuery.builder().type(UserTask.class.getSimpleName()).statusSet(Collections.singleton(TaskStatus.PENDING)).build();
PageHelper.startPage(0, 100);
pageInfo.getList().forEach(this.addCurrentTask(taskQuery));
}
return pageInfo;
}
use of org.apache.inlong.manager.dao.entity.WorkflowProcessEntity in project incubator-inlong by apache.
the class WorkflowServiceImpl method listTaskExecuteLogs.
@Override
public PageInfo<WorkflowExecuteLog> listTaskExecuteLogs(TaskExecuteLogQuery query) {
Preconditions.checkNotNull(query, "task execute log query params cannot be null");
String groupId = query.getInlongGroupId();
List<String> processNameList = query.getProcessNames();
Preconditions.checkNotEmpty(groupId, "inlong group id cannot be null");
Preconditions.checkNotEmpty(processNameList, "process name list cannot be null");
ProcessQuery processRequest = new ProcessQuery();
processRequest.setInlongGroupId(groupId);
processRequest.setNameList(processNameList);
processRequest.setHidden(1);
// Paging query process instance, construct process execution log
PageHelper.startPage(query.getPageNum(), query.getPageSize());
Page<WorkflowProcessEntity> entityPage = (Page<WorkflowProcessEntity>) queryService.listProcessEntity(processRequest);
PageInfo<WorkflowExecuteLog> pageInfo = entityPage.toPageInfo(inst -> WorkflowExecuteLog.builder().processId(inst.getId()).processDisplayName(inst.getDisplayName()).status(inst.getStatus()).startTime(inst.getStartTime()).endTime(inst.getEndTime()).build());
// According to the process execution log, query the execution log of each task in the process
for (WorkflowExecuteLog executeLog : pageInfo.getList()) {
TaskQuery taskQuery = new TaskQuery();
taskQuery.setProcessId(executeLog.getProcessId());
taskQuery.setType(taskQuery.getType());
List<TaskExecutorLog> executorLogs = queryService.listTaskEntity(taskQuery).stream().map(TaskExecutorLog::buildFromTaskInst).collect(Collectors.toList());
// Set the execution log of the task's listener
for (TaskExecutorLog taskExecutorLog : executorLogs) {
EventLogQuery eventLogQuery = new EventLogQuery();
eventLogQuery.setTaskId(taskExecutorLog.getTaskId());
List<ListenerExecutorLog> logs = queryService.listEventLog(eventLogQuery).stream().map(ListenerExecutorLog::fromEventLog).collect(Collectors.toList());
taskExecutorLog.setListenerExecutorLogs(logs);
}
executeLog.setTaskExecutorLogs(executorLogs);
}
LOGGER.info("success to page list task execute logs for " + query);
pageInfo.setTotal(entityPage.getTotal());
return pageInfo;
}
Aggregations