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)
}
})
}