Skip to content

Commit 5aa2345

Browse files
authored
[Fix-17189][UI] Dependent task result status icon error (#17191)
1 parent e53ec09 commit 5aa2345

3 files changed

Lines changed: 23 additions & 22 deletions

File tree

dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowInstanceServiceImpl.java

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,6 @@
7474
import org.apache.dolphinscheduler.dao.mapper.WorkflowDefinitionLogMapper;
7575
import org.apache.dolphinscheduler.dao.mapper.WorkflowDefinitionMapper;
7676
import org.apache.dolphinscheduler.dao.mapper.WorkflowInstanceMapper;
77-
import org.apache.dolphinscheduler.dao.model.ITaskInstanceContext;
7877
import org.apache.dolphinscheduler.dao.repository.TaskInstanceContextDao;
7978
import org.apache.dolphinscheduler.dao.repository.TaskInstanceDao;
8079
import org.apache.dolphinscheduler.dao.repository.WorkflowInstanceDao;
@@ -470,7 +469,7 @@ public Map<String, Object> queryTaskListByWorkflowInstanceId(User loginUser, lon
470469
List<TaskInstance> taskInstanceList =
471470
taskInstanceDao.queryValidTaskListByWorkflowInstanceId(workflowInstanceId,
472471
workflowInstance.getTestFlag());
473-
List<TaskInstanceDependentDetails<ITaskInstanceContext>> taskInstanceDependentDetailsList =
472+
List<TaskInstanceDependentDetails<AbstractTaskInstanceContext>> taskInstanceDependentDetailsList =
474473
setTaskInstanceDependentResult(taskInstanceList);
475474

476475
Map<String, Object> resultMap = new HashMap<>();
@@ -482,11 +481,11 @@ public Map<String, Object> queryTaskListByWorkflowInstanceId(User loginUser, lon
482481
return result;
483482
}
484483

485-
private List<TaskInstanceDependentDetails<ITaskInstanceContext>> setTaskInstanceDependentResult(List<TaskInstance> taskInstanceList) {
486-
List<TaskInstanceDependentDetails<ITaskInstanceContext>> taskInstanceDependentDetailsList =
484+
private List<TaskInstanceDependentDetails<AbstractTaskInstanceContext>> setTaskInstanceDependentResult(List<TaskInstance> taskInstanceList) {
485+
List<TaskInstanceDependentDetails<AbstractTaskInstanceContext>> taskInstanceDependentDetailsList =
487486
taskInstanceList.stream()
488487
.map(taskInstance -> {
489-
TaskInstanceDependentDetails<ITaskInstanceContext> taskInstanceDependentDetails =
488+
TaskInstanceDependentDetails<AbstractTaskInstanceContext> taskInstanceDependentDetails =
490489
new TaskInstanceDependentDetails<>();
491490
BeanUtils.copyProperties(taskInstance, taskInstanceDependentDetails);
492491
return taskInstanceDependentDetails;
@@ -497,14 +496,10 @@ private List<TaskInstanceDependentDetails<ITaskInstanceContext>> setTaskInstance
497496
taskInstanceContextDao.batchQueryByTaskInstanceIdsAndContextType(taskInstanceIdList,
498497
ContextType.DEPENDENT_RESULT_CONTEXT);
499498
for (TaskInstanceContext taskInstanceContext : taskInstanceContextList) {
500-
for (AbstractTaskInstanceContext dependentResultTaskInstanceContext : taskInstanceContext
501-
.getTaskInstanceContext()) {
502-
for (TaskInstanceDependentDetails<ITaskInstanceContext> taskInstanceDependentDetails : taskInstanceDependentDetailsList) {
503-
if (taskInstanceDependentDetails.getId().equals(taskInstanceContext.getTaskInstanceId())) {
504-
taskInstanceDependentDetails
505-
.setTaskInstanceDependentResult(
506-
dependentResultTaskInstanceContext);
507-
}
499+
for (TaskInstanceDependentDetails<AbstractTaskInstanceContext> taskInstanceDependentDetails : taskInstanceDependentDetailsList) {
500+
if (taskInstanceDependentDetails.getId().equals(taskInstanceContext.getTaskInstanceId())) {
501+
taskInstanceDependentDetails
502+
.setTaskInstanceDependentResults(taskInstanceContext.getTaskInstanceContext());
508503
}
509504
}
510505
}

dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/TaskInstanceDependentDetails.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,15 @@
1717

1818
package org.apache.dolphinscheduler.dao.entity;
1919

20-
import org.apache.dolphinscheduler.dao.model.ITaskInstanceContext;
20+
import java.util.List;
2121

2222
import lombok.Data;
2323
import lombok.EqualsAndHashCode;
2424

2525
@EqualsAndHashCode(callSuper = true)
2626
@Data
27-
public class TaskInstanceDependentDetails<T extends ITaskInstanceContext> extends TaskInstance {
27+
public class TaskInstanceDependentDetails<T extends AbstractTaskInstanceContext> extends TaskInstance {
2828

29-
private T taskInstanceDependentResult;
29+
private List<T> taskInstanceDependentResults;
3030

3131
}

dolphinscheduler-ui/src/views/projects/workflow/components/dag/use-node-status.ts

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -77,16 +77,22 @@ export function useNodeStatus(options: Options) {
7777
window.$message.success(t('project.workflow.refresh_status_succeeded'))
7878
taskList.value = res.taskList
7979
if (taskList.value) {
80-
const taskInstanceDependentResult: { [key: string]: any } = {}
80+
const newTaskInstanceDependentResult: { [key: string]: any } = {}
8181
taskList.value.forEach((taskInstance: any) => {
8282
setNodeStatus(taskInstance.taskCode, taskInstance.state, taskInstance)
83-
if (taskInstance.taskInstanceDependentResult) {
84-
const key = `${taskInstance.taskInstanceDependentResult.projectCode}-${taskInstance.taskInstanceDependentResult.workflowDefinitionCode}-${taskInstance.taskInstanceDependentResult.taskDefinitionCode}-${taskInstance.taskInstanceDependentResult.dateCycle}`
85-
taskInstanceDependentResult[key] =
86-
taskInstance.taskInstanceDependentResult.dependentResult
83+
if (taskInstance.taskInstanceDependentResults) {
84+
const taskInstanceDependentResultList =
85+
taskInstance.taskInstanceDependentResults
86+
taskInstanceDependentResultList.forEach(
87+
(taskInstanceDependentResult: any) => {
88+
const key = `${taskInstanceDependentResult.projectCode}-${taskInstanceDependentResult.workflowDefinitionCode}-${taskInstanceDependentResult.taskDefinitionCode}-${taskInstanceDependentResult.dateCycle}`
89+
newTaskInstanceDependentResult[key] =
90+
taskInstanceDependentResult.dependentResult
91+
}
92+
)
8793
}
8894
})
89-
nodeStore.updateDependentResult(taskInstanceDependentResult)
95+
nodeStore.updateDependentResult(newTaskInstanceDependentResult)
9096
}
9197
})
9298
}

0 commit comments

Comments
 (0)