This is an automated email from the ASF dual-hosted git repository.

zihaoxiang pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git


The following commit(s) were added to refs/heads/dev by this push:
     new 5aa23459e6 [Fix-17189][UI] Dependent task result status icon error 
(#17191)
5aa23459e6 is described below

commit 5aa23459e6171e03939a8f24678f7cff21448124
Author: xiangzihao <[email protected]>
AuthorDate: Mon May 19 09:36:52 2025 +0800

    [Fix-17189][UI] Dependent task result status icon error (#17191)
---
 .../service/impl/WorkflowInstanceServiceImpl.java   | 21 ++++++++-------------
 .../dao/entity/TaskInstanceDependentDetails.java    |  6 +++---
 .../workflow/components/dag/use-node-status.ts      | 18 ++++++++++++------
 3 files changed, 23 insertions(+), 22 deletions(-)

diff --git 
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowInstanceServiceImpl.java
 
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowInstanceServiceImpl.java
index f92000a3a2..dd259367ac 100644
--- 
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowInstanceServiceImpl.java
+++ 
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowInstanceServiceImpl.java
@@ -74,7 +74,6 @@ import 
org.apache.dolphinscheduler.dao.mapper.TaskInstanceMapper;
 import org.apache.dolphinscheduler.dao.mapper.WorkflowDefinitionLogMapper;
 import org.apache.dolphinscheduler.dao.mapper.WorkflowDefinitionMapper;
 import org.apache.dolphinscheduler.dao.mapper.WorkflowInstanceMapper;
-import org.apache.dolphinscheduler.dao.model.ITaskInstanceContext;
 import org.apache.dolphinscheduler.dao.repository.TaskInstanceContextDao;
 import org.apache.dolphinscheduler.dao.repository.TaskInstanceDao;
 import org.apache.dolphinscheduler.dao.repository.WorkflowInstanceDao;
@@ -470,7 +469,7 @@ public class WorkflowInstanceServiceImpl extends 
BaseServiceImpl implements Work
         List<TaskInstance> taskInstanceList =
                 
taskInstanceDao.queryValidTaskListByWorkflowInstanceId(workflowInstanceId,
                         workflowInstance.getTestFlag());
-        List<TaskInstanceDependentDetails<ITaskInstanceContext>> 
taskInstanceDependentDetailsList =
+        List<TaskInstanceDependentDetails<AbstractTaskInstanceContext>> 
taskInstanceDependentDetailsList =
                 setTaskInstanceDependentResult(taskInstanceList);
 
         Map<String, Object> resultMap = new HashMap<>();
@@ -482,11 +481,11 @@ public class WorkflowInstanceServiceImpl extends 
BaseServiceImpl implements Work
         return result;
     }
 
-    private List<TaskInstanceDependentDetails<ITaskInstanceContext>> 
setTaskInstanceDependentResult(List<TaskInstance> taskInstanceList) {
-        List<TaskInstanceDependentDetails<ITaskInstanceContext>> 
taskInstanceDependentDetailsList =
+    private List<TaskInstanceDependentDetails<AbstractTaskInstanceContext>> 
setTaskInstanceDependentResult(List<TaskInstance> taskInstanceList) {
+        List<TaskInstanceDependentDetails<AbstractTaskInstanceContext>> 
taskInstanceDependentDetailsList =
                 taskInstanceList.stream()
                         .map(taskInstance -> {
-                            TaskInstanceDependentDetails<ITaskInstanceContext> 
taskInstanceDependentDetails =
+                            
TaskInstanceDependentDetails<AbstractTaskInstanceContext> 
taskInstanceDependentDetails =
                                     new TaskInstanceDependentDetails<>();
                             BeanUtils.copyProperties(taskInstance, 
taskInstanceDependentDetails);
                             return taskInstanceDependentDetails;
@@ -497,14 +496,10 @@ public class WorkflowInstanceServiceImpl extends 
BaseServiceImpl implements Work
                 
taskInstanceContextDao.batchQueryByTaskInstanceIdsAndContextType(taskInstanceIdList,
                         ContextType.DEPENDENT_RESULT_CONTEXT);
         for (TaskInstanceContext taskInstanceContext : 
taskInstanceContextList) {
-            for (AbstractTaskInstanceContext 
dependentResultTaskInstanceContext : taskInstanceContext
-                    .getTaskInstanceContext()) {
-                for (TaskInstanceDependentDetails<ITaskInstanceContext> 
taskInstanceDependentDetails : taskInstanceDependentDetailsList) {
-                    if 
(taskInstanceDependentDetails.getId().equals(taskInstanceContext.getTaskInstanceId()))
 {
-                        taskInstanceDependentDetails
-                                .setTaskInstanceDependentResult(
-                                        dependentResultTaskInstanceContext);
-                    }
+            for (TaskInstanceDependentDetails<AbstractTaskInstanceContext> 
taskInstanceDependentDetails : taskInstanceDependentDetailsList) {
+                if 
(taskInstanceDependentDetails.getId().equals(taskInstanceContext.getTaskInstanceId()))
 {
+                    taskInstanceDependentDetails
+                            
.setTaskInstanceDependentResults(taskInstanceContext.getTaskInstanceContext());
                 }
             }
         }
diff --git 
a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/TaskInstanceDependentDetails.java
 
b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/TaskInstanceDependentDetails.java
index 2efa687ce2..89ba2ffdc4 100644
--- 
a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/TaskInstanceDependentDetails.java
+++ 
b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/TaskInstanceDependentDetails.java
@@ -17,15 +17,15 @@
 
 package org.apache.dolphinscheduler.dao.entity;
 
-import org.apache.dolphinscheduler.dao.model.ITaskInstanceContext;
+import java.util.List;
 
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
 @EqualsAndHashCode(callSuper = true)
 @Data
-public class TaskInstanceDependentDetails<T extends ITaskInstanceContext> 
extends TaskInstance {
+public class TaskInstanceDependentDetails<T extends 
AbstractTaskInstanceContext> extends TaskInstance {
 
-    private T taskInstanceDependentResult;
+    private List<T> taskInstanceDependentResults;
 
 }
diff --git 
a/dolphinscheduler-ui/src/views/projects/workflow/components/dag/use-node-status.ts
 
b/dolphinscheduler-ui/src/views/projects/workflow/components/dag/use-node-status.ts
index f1075933e3..79120673c7 100644
--- 
a/dolphinscheduler-ui/src/views/projects/workflow/components/dag/use-node-status.ts
+++ 
b/dolphinscheduler-ui/src/views/projects/workflow/components/dag/use-node-status.ts
@@ -77,16 +77,22 @@ export function useNodeStatus(options: Options) {
       window.$message.success(t('project.workflow.refresh_status_succeeded'))
       taskList.value = res.taskList
       if (taskList.value) {
-        const taskInstanceDependentResult: { [key: string]: any } = {}
+        const newTaskInstanceDependentResult: { [key: string]: any } = {}
         taskList.value.forEach((taskInstance: any) => {
           setNodeStatus(taskInstance.taskCode, taskInstance.state, 
taskInstance)
-          if (taskInstance.taskInstanceDependentResult) {
-            const key = 
`${taskInstance.taskInstanceDependentResult.projectCode}-${taskInstance.taskInstanceDependentResult.workflowDefinitionCode}-${taskInstance.taskInstanceDependentResult.taskDefinitionCode}-${taskInstance.taskInstanceDependentResult.dateCycle}`
-            taskInstanceDependentResult[key] =
-              taskInstance.taskInstanceDependentResult.dependentResult
+          if (taskInstance.taskInstanceDependentResults) {
+            const taskInstanceDependentResultList =
+              taskInstance.taskInstanceDependentResults
+            taskInstanceDependentResultList.forEach(
+              (taskInstanceDependentResult: any) => {
+                const key = 
`${taskInstanceDependentResult.projectCode}-${taskInstanceDependentResult.workflowDefinitionCode}-${taskInstanceDependentResult.taskDefinitionCode}-${taskInstanceDependentResult.dateCycle}`
+                newTaskInstanceDependentResult[key] =
+                  taskInstanceDependentResult.dependentResult
+              }
+            )
           }
         })
-        nodeStore.updateDependentResult(taskInstanceDependentResult)
+        nodeStore.updateDependentResult(newTaskInstanceDependentResult)
       }
     })
   }

Reply via email to