This is an automated email from the ASF dual-hosted git repository.
kerwin 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 4938470d20 [Fix-14907]Fix click to view the history in the task node
of the workflow instance (#14909)
4938470d20 is described below
commit 4938470d205dba485798112fea748b0bdb1ea061
Author: Kerwin <[email protected]>
AuthorDate: Wed Sep 13 11:17:10 2023 +0800
[Fix-14907]Fix click to view the history in the task node of the workflow
instance (#14909)
---
docs/docs/en/guide/project/workflow-instance.md | 2 +-
docs/docs/zh/guide/project/workflow-instance.md | 2 +-
.../api/controller/TaskInstanceController.java | 9 ++++++---
.../api/controller/v2/TaskInstanceV2Controller.java | 4 +++-
.../dto/taskInstance/TaskInstanceQueryRequest.java | 3 +++
.../api/service/TaskInstanceService.java | 2 ++
.../api/service/impl/TaskInstanceServiceImpl.java | 4 ++++
.../api/controller/TaskInstanceControllerTest.java | 5 +++--
.../controller/v2/TaskInstanceV2ControllerTest.java | 3 ++-
.../api/service/TaskInstanceServiceTest.java | 20 +++++++++++++-------
.../dao/mapper/TaskInstanceMapper.java | 2 ++
.../dao/mapper/TaskInstanceMapper.xml | 6 ++++++
.../dao/mapper/TaskInstanceMapperTest.java | 1 +
dolphinscheduler-ui/src/locales/en_US/project.ts | 1 +
dolphinscheduler-ui/src/locales/zh_CN/project.ts | 1 +
.../projects/task/components/node/detail-modal.tsx | 5 ++---
.../src/views/projects/task/instance/batch-task.tsx | 15 +++++++++++++++
.../src/views/projects/task/instance/use-table.ts | 9 +++++++--
18 files changed, 73 insertions(+), 21 deletions(-)
diff --git a/docs/docs/en/guide/project/workflow-instance.md
b/docs/docs/en/guide/project/workflow-instance.md
index 6ef391ee67..b608c8df8d 100644
--- a/docs/docs/en/guide/project/workflow-instance.md
+++ b/docs/docs/en/guide/project/workflow-instance.md
@@ -24,7 +24,7 @@ Click "View Log", a log window pops up, as shown in the
figure below, you can al
Click `Project Management -> Workflow -> Workflow Instance` to enter the
workflow instance page, click the workflow name to enter the workflow DAG page;
-Double-click the task node, click `View History` to jump to the task instance
page, and display the list of task instances run by the workflow instance.
+Double-click the task node, click `View History` to jump to the task instance
page, and display the list of task instances run by the task definition.

diff --git a/docs/docs/zh/guide/project/workflow-instance.md
b/docs/docs/zh/guide/project/workflow-instance.md
index 8aeff32dc2..141d7d4c47 100644
--- a/docs/docs/zh/guide/project/workflow-instance.md
+++ b/docs/docs/zh/guide/project/workflow-instance.md
@@ -23,7 +23,7 @@
## 查看任务历史记录
- 点击项目管理->工作流->工作流实例,进入工作流实例页面,点击工作流名称,进入工作流 DAG 页面;
-- 双击任务节点,如下图所示,点击"查看历史",跳转到任务实例页面,并展示该工作流实例运行的任务实例列表
+- 双击任务节点,如下图所示,点击"查看历史",跳转到任务实例页面,并展示该任务定义运行的任务实例列表

diff --git
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/TaskInstanceController.java
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/TaskInstanceController.java
index 071ecfe8ba..1136e06afe 100644
---
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/TaskInstanceController.java
+++
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/TaskInstanceController.java
@@ -81,16 +81,17 @@ public class TaskInstanceController extends BaseController {
*/
@Operation(summary = "queryTaskListPaging", description =
"QUERY_TASK_INSTANCE_LIST_PAGING_NOTES")
@Parameters({
- @Parameter(name = "processInstanceId", description =
"PROCESS_INSTANCE_ID", required = false, schema = @Schema(implementation =
int.class, example = "100")),
- @Parameter(name = "processInstanceName", description =
"PROCESS_INSTANCE_NAME", required = false, schema = @Schema(implementation =
String.class)),
+ @Parameter(name = "processInstanceId", description =
"PROCESS_INSTANCE_ID", schema = @Schema(implementation = int.class, example =
"100")),
+ @Parameter(name = "processInstanceName", description =
"PROCESS_INSTANCE_NAME", schema = @Schema(implementation = String.class)),
@Parameter(name = "searchVal", description = "SEARCH_VAL", schema
= @Schema(implementation = String.class)),
@Parameter(name = "taskName", description = "TASK_NAME", schema =
@Schema(implementation = String.class)),
+ @Parameter(name = "taskCode", description = "TASK_CODE", schema =
@Schema(implementation = Long.class)),
@Parameter(name = "executorName", description = "EXECUTOR_NAME",
schema = @Schema(implementation = String.class)),
@Parameter(name = "stateType", description = "EXECUTION_STATUS",
schema = @Schema(implementation = TaskExecutionStatus.class)),
@Parameter(name = "host", description = "HOST", schema =
@Schema(implementation = String.class)),
@Parameter(name = "startDate", description = "START_DATE", schema
= @Schema(implementation = String.class)),
@Parameter(name = "endDate", description = "END_DATE", schema =
@Schema(implementation = String.class)),
- @Parameter(name = "taskExecuteType", description =
"TASK_EXECUTE_TYPE", required = false, schema = @Schema(implementation =
TaskExecuteType.class, example = "STREAM")),
+ @Parameter(name = "taskExecuteType", description =
"TASK_EXECUTE_TYPE", schema = @Schema(implementation = TaskExecuteType.class,
example = "STREAM")),
@Parameter(name = "pageNo", description = "PAGE_NO", required =
true, schema = @Schema(implementation = int.class, example = "1")),
@Parameter(name = "pageSize", description = "PAGE_SIZE", required
= true, schema = @Schema(implementation = int.class, example = "20")),
})
@@ -104,6 +105,7 @@ public class TaskInstanceController extends BaseController {
@RequestParam(value =
"processDefinitionName", required = false) String processDefinitionName,
@RequestParam(value = "searchVal",
required = false) String searchVal,
@RequestParam(value = "taskName",
required = false) String taskName,
+ @RequestParam(value = "taskCode",
required = false) Long taskCode,
@RequestParam(value = "executorName",
required = false) String executorName,
@RequestParam(value = "stateType",
required = false) TaskExecutionStatus stateType,
@RequestParam(value = "host", required =
false) String host,
@@ -124,6 +126,7 @@ public class TaskInstanceController extends BaseController {
processInstanceName,
processDefinitionName,
taskName,
+ taskCode,
executorName,
startTime,
endTime,
diff --git
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/v2/TaskInstanceV2Controller.java
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/v2/TaskInstanceV2Controller.java
index 1f2f1db5d0..ca956374a3 100644
---
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/v2/TaskInstanceV2Controller.java
+++
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/v2/TaskInstanceV2Controller.java
@@ -77,6 +77,7 @@ public class TaskInstanceV2Controller extends BaseController {
@Parameter(name = "processInstanceName", description =
"PROCESS_INSTANCE_NAME", schema = @Schema(implementation = String.class)),
@Parameter(name = "searchVal", description = "SEARCH_VAL", schema
= @Schema(implementation = String.class)),
@Parameter(name = "taskName", description = "TASK_NAME", schema =
@Schema(implementation = String.class)),
+ @Parameter(name = "taskCode", description = "TASK_CODE", schema =
@Schema(implementation = Long.class)),
@Parameter(name = "executorName", description = "EXECUTOR_NAME",
schema = @Schema(implementation = String.class)),
@Parameter(name = "stateType", description = "EXECUTION_STATUS",
schema = @Schema(implementation = TaskExecutionStatus.class)),
@Parameter(name = "host", description = "HOST", schema =
@Schema(implementation = String.class)),
@@ -100,7 +101,8 @@ public class TaskInstanceV2Controller extends
BaseController {
result = taskInstanceService.queryTaskListPaging(loginUser,
projectCode,
taskInstanceQueryReq.getProcessInstanceId(),
taskInstanceQueryReq.getProcessInstanceName(),
taskInstanceQueryReq.getProcessDefinitionName(),
- taskInstanceQueryReq.getTaskName(),
taskInstanceQueryReq.getExecutorName(),
+ taskInstanceQueryReq.getTaskName(),
taskInstanceQueryReq.getTaskCode(),
+ taskInstanceQueryReq.getExecutorName(),
taskInstanceQueryReq.getStartTime(),
taskInstanceQueryReq.getEndTime(), searchVal,
taskInstanceQueryReq.getStateType(),
taskInstanceQueryReq.getHost(),
taskInstanceQueryReq.getTaskExecuteType(),
taskInstanceQueryReq.getPageNo(),
diff --git
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/dto/taskInstance/TaskInstanceQueryRequest.java
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/dto/taskInstance/TaskInstanceQueryRequest.java
index 8181b3916c..b2f5d717ca 100644
---
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/dto/taskInstance/TaskInstanceQueryRequest.java
+++
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/dto/taskInstance/TaskInstanceQueryRequest.java
@@ -50,6 +50,9 @@ public class TaskInstanceQueryRequest extends PageQueryDto {
@Schema(name = "taskName", example = "TASK-NAME")
String taskName;
+ @Schema(name = "taskCode", example = "TASK-CODE")
+ Long taskCode;
+
@Schema(name = "executorName", example = "EXECUTOR-NAME")
String executorName;
diff --git
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/TaskInstanceService.java
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/TaskInstanceService.java
index b9d7e91e98..86e5396dbe 100644
---
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/TaskInstanceService.java
+++
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/TaskInstanceService.java
@@ -37,6 +37,7 @@ public interface TaskInstanceService {
* @param processInstanceId process instance id
* @param searchVal search value
* @param taskName task name
+ * @param taskCode task code
* @param stateType state type
* @param host host
* @param startDate start time
@@ -52,6 +53,7 @@ public interface TaskInstanceService {
String processInstanceName,
String processDefinitionName,
String taskName,
+ Long taskCode,
String executorName,
String startDate,
String endDate,
diff --git
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskInstanceServiceImpl.java
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskInstanceServiceImpl.java
index a381a07d49..67f200d443 100644
---
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskInstanceServiceImpl.java
+++
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskInstanceServiceImpl.java
@@ -117,6 +117,7 @@ public class TaskInstanceServiceImpl extends
BaseServiceImpl implements TaskInst
* @param processInstanceId process instance id
* @param searchVal search value
* @param taskName task name
+ * @param taskCode task code
* @param stateType state type
* @param host host
* @param startDate start time
@@ -132,6 +133,7 @@ public class TaskInstanceServiceImpl extends
BaseServiceImpl implements TaskInst
String processInstanceName,
String processDefinitionName,
String taskName,
+ Long taskCode,
String executorName,
String startDate,
String endDate,
@@ -162,6 +164,7 @@ public class TaskInstanceServiceImpl extends
BaseServiceImpl implements TaskInst
processDefinitionName,
searchVal,
taskName,
+ taskCode,
executorName,
statusArray,
host,
@@ -176,6 +179,7 @@ public class TaskInstanceServiceImpl extends
BaseServiceImpl implements TaskInst
processInstanceName,
searchVal,
taskName,
+ taskCode,
executorName,
statusArray,
host,
diff --git
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/TaskInstanceControllerTest.java
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/TaskInstanceControllerTest.java
index 961f828c8d..7ebe5bf757 100644
---
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/TaskInstanceControllerTest.java
+++
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/TaskInstanceControllerTest.java
@@ -66,11 +66,12 @@ public class TaskInstanceControllerTest extends
AbstractControllerTest {
result.setCode(Status.SUCCESS.getCode());
result.setMsg(Status.SUCCESS.getMsg());
- when(taskInstanceService.queryTaskListPaging(any(), eq(1L), eq(1),
eq(""), eq(""), eq(""), eq(""), any(), any(),
+ when(taskInstanceService.queryTaskListPaging(any(), eq(1L), eq(1),
eq(""), eq(""), eq(""), any(), eq(""), any(),
+ any(),
eq(""), Mockito.any(), eq("192.168.xx.xx"),
eq(TaskExecuteType.BATCH), any(), any()))
.thenReturn(result);
Result taskResult = taskInstanceController.queryTaskListPaging(null,
1L, 1, "", "", "",
- "", "", TaskExecutionStatus.SUCCESS, "192.168.xx.xx",
"2020-01-01 00:00:00", "2020-01-02 00:00:00",
+ "", 1L, "", TaskExecutionStatus.SUCCESS, "192.168.xx.xx",
"2020-01-01 00:00:00", "2020-01-02 00:00:00",
TaskExecuteType.BATCH, pageNo, pageSize);
Assertions.assertEquals(Integer.valueOf(Status.SUCCESS.getCode()),
taskResult.getCode());
}
diff --git
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/v2/TaskInstanceV2ControllerTest.java
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/v2/TaskInstanceV2ControllerTest.java
index c5472c5bf9..cc70f200e1 100644
---
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/v2/TaskInstanceV2ControllerTest.java
+++
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/v2/TaskInstanceV2ControllerTest.java
@@ -74,7 +74,8 @@ public class TaskInstanceV2ControllerTest extends
AbstractControllerTest {
when(taskInstanceService.queryTaskListPaging(any(), eq(1L),
eq(taskInstanceQueryReq.getProcessInstanceId()),
eq(taskInstanceQueryReq.getProcessInstanceName()),
eq(taskInstanceQueryReq.getProcessInstanceName()),
- eq(taskInstanceQueryReq.getTaskName()),
eq(taskInstanceQueryReq.getExecutorName()), any(), any(),
+ eq(taskInstanceQueryReq.getTaskName()), Mockito.any(),
eq(taskInstanceQueryReq.getExecutorName()),
+ any(), any(),
eq(taskInstanceQueryReq.getSearchVal()), Mockito.any(),
eq(taskInstanceQueryReq.getHost()),
eq(taskInstanceQueryReq.getTaskExecuteType()), any(),
any())).thenReturn(result);
Result taskResult = taskInstanceV2Controller.queryTaskListPaging(null,
1L, taskInstanceQueryReq);
diff --git
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TaskInstanceServiceTest.java
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TaskInstanceServiceTest.java
index 761e556f17..2c912f4103 100644
---
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TaskInstanceServiceTest.java
+++
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TaskInstanceServiceTest.java
@@ -117,6 +117,7 @@ public class TaskInstanceServiceTest {
"",
"",
"",
+ null,
"test_user",
"2019-02-26 19:48:00",
"2019-02-26 19:48:22",
@@ -137,6 +138,7 @@ public class TaskInstanceServiceTest {
"",
"",
"",
+ null,
"test_user",
"20200101 00:00:00",
"2020-01-02 00:00:00",
@@ -174,6 +176,7 @@ public class TaskInstanceServiceTest {
Mockito.any(),
Mockito.any(),
Mockito.any(),
+ Mockito.any(),
Mockito.any()))
.thenReturn(pageReturn);
when(usersService.queryUser(processInstance.getExecutorId())).thenReturn(loginUser);
@@ -181,18 +184,19 @@ public class TaskInstanceServiceTest {
.thenReturn(Optional.of(processInstance));
Result successRes = taskInstanceService.queryTaskListPaging(loginUser,
projectCode, 1, "", "", "",
- "test_user", "2020-01-01 00:00:00", "2020-01-02 00:00:00", "",
TaskExecutionStatus.SUCCESS,
+ null, "test_user", "2020-01-01 00:00:00", "2020-01-02
00:00:00", "", TaskExecutionStatus.SUCCESS,
"192.168.xx.xx", TaskExecuteType.BATCH, 1, 20);
Assertions.assertEquals(Status.SUCCESS.getCode(), (int)
successRes.getCode());
// executor name empty
when(taskInstanceMapper.queryTaskInstanceListPaging(
Mockito.any(Page.class), eq(project.getCode()), eq(1),
- eq(""), eq(""), eq(""),
+ eq(""), eq(""), eq(""), eq(null),
eq(""), Mockito.any(), eq("192.168.xx.xx"),
eq(TaskExecuteType.BATCH), eq(start), eq(end)))
.thenReturn(pageReturn);
Result executorEmptyRes =
taskInstanceService.queryTaskListPaging(loginUser, projectCode, 1, "", "", "",
- "", "2020-01-01 00:00:00", "2020-01-02 00:00:00", "",
TaskExecutionStatus.SUCCESS, "192.168.xx.xx",
+ null, "", "2020-01-01 00:00:00", "2020-01-02 00:00:00", "",
TaskExecutionStatus.SUCCESS,
+ "192.168.xx.xx",
TaskExecuteType.BATCH, 1, 20);
Assertions.assertEquals(Status.SUCCESS.getCode(), (int)
executorEmptyRes.getCode());
@@ -201,22 +205,22 @@ public class TaskInstanceServiceTest {
when(usersService.getUserIdByName(loginUser.getUserName())).thenReturn(-1);
Result executorNullRes =
taskInstanceService.queryTaskListPaging(loginUser, projectCode, 1, "", "", "",
- "test_user", "2020-01-01 00:00:00", "2020-01-02 00:00:00", "",
TaskExecutionStatus.SUCCESS,
+ null, "test_user", "2020-01-01 00:00:00", "2020-01-02
00:00:00", "", TaskExecutionStatus.SUCCESS,
"192.168.xx.xx", TaskExecuteType.BATCH, 1, 20);
Assertions.assertEquals(Status.SUCCESS.getCode(), (int)
executorNullRes.getCode());
// start/end date null
when(taskInstanceMapper.queryTaskInstanceListPaging(Mockito.any(Page.class),
eq(project.getCode()), eq(1),
- eq(""), eq(""), eq(""),
+ eq(""), eq(""), eq(""), eq(null),
eq(""), Mockito.any(), eq("192.168.xx.xx"),
eq(TaskExecuteType.BATCH), any(), any()))
.thenReturn(pageReturn);
Result executorNullDateRes =
taskInstanceService.queryTaskListPaging(loginUser, projectCode, 1, "", "", "",
- "", null, null, "", TaskExecutionStatus.SUCCESS,
"192.168.xx.xx", TaskExecuteType.BATCH, 1, 20);
+ null, "", null, null, "", TaskExecutionStatus.SUCCESS,
"192.168.xx.xx", TaskExecuteType.BATCH, 1, 20);
Assertions.assertEquals(Status.SUCCESS.getCode(), (int)
executorNullDateRes.getCode());
// start date error format
when(taskInstanceMapper.queryTaskInstanceListPaging(Mockito.any(Page.class),
eq(project.getCode()), eq(1),
- eq(""), eq(""), eq(""),
+ eq(""), eq(""), eq(""), eq(null),
eq(""), Mockito.any(), eq("192.168.xx.xx"),
eq(TaskExecuteType.BATCH), any(), any()))
.thenReturn(pageReturn);
@@ -227,6 +231,7 @@ public class TaskInstanceServiceTest {
"",
"",
"",
+ null,
"",
"error date",
null,
@@ -244,6 +249,7 @@ public class TaskInstanceServiceTest {
"",
"",
"",
+ null,
"",
null,
"error date",
diff --git
a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/TaskInstanceMapper.java
b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/TaskInstanceMapper.java
index 27e4eb4650..bcf6f056f8 100644
---
a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/TaskInstanceMapper.java
+++
b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/TaskInstanceMapper.java
@@ -136,6 +136,7 @@ public interface TaskInstanceMapper extends
BaseMapper<TaskInstance> {
@Param("processInstanceName") String processInstanceName,
@Param("searchVal") String
searchVal,
@Param("taskName") String
taskName,
+ @Param("taskCode") Long
taskCode,
@Param("executorName")
String executorName,
@Param("states") int[]
statusArray,
@Param("host") String host,
@@ -148,6 +149,7 @@ public interface TaskInstanceMapper extends
BaseMapper<TaskInstance> {
@Param("processDefinitionName") String processDefinitionName,
@Param("searchVal")
String searchVal,
@Param("taskName")
String taskName,
+ @Param("taskCode")
Long taskCode,
@Param("executorName") String executorName,
@Param("states")
int[] statusArray,
@Param("host")
String host,
diff --git
a/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/TaskInstanceMapper.xml
b/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/TaskInstanceMapper.xml
index cb45014dc7..cd9c36ed12 100644
---
a/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/TaskInstanceMapper.xml
+++
b/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/TaskInstanceMapper.xml
@@ -267,6 +267,9 @@
<if test="taskName != null and taskName != ''">
and name = #{taskName}
</if>
+ <if test="taskCode != null">
+ and task_code = #{taskCode}
+ </if>
<if test="states != null and states.length != 0">
and state in
<foreach collection="states" index="index" item="i" open="("
separator="," close=")">
@@ -304,6 +307,9 @@
<if test="taskName != null and taskName != ''">
and name=#{taskName}
</if>
+ <if test="taskCode != null">
+ and task_code = #{taskCode}
+ </if>
<if test="states != null and states.length != 0">
and state in
<foreach collection="states" index="index" item="i" open="("
separator="," close=")">
diff --git
a/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/TaskInstanceMapperTest.java
b/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/TaskInstanceMapperTest.java
index 0a6382e0d5..fbdaf482cb 100644
---
a/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/TaskInstanceMapperTest.java
+++
b/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/TaskInstanceMapperTest.java
@@ -375,6 +375,7 @@ public class TaskInstanceMapperTest extends BaseDaoTest {
"",
"",
"",
+ null,
"",
new int[0],
"",
diff --git a/dolphinscheduler-ui/src/locales/en_US/project.ts
b/dolphinscheduler-ui/src/locales/en_US/project.ts
index b38462563b..1f146b6772 100644
--- a/dolphinscheduler-ui/src/locales/en_US/project.ts
+++ b/dolphinscheduler-ui/src/locales/en_US/project.ts
@@ -243,6 +243,7 @@ export default {
online: 'Online',
offline: 'Offline',
task_name: 'Task Name',
+ task_code: 'Task Code',
task_type: 'Task Type',
create_task: 'Create Task',
workflow_instance: 'Workflow Instance',
diff --git a/dolphinscheduler-ui/src/locales/zh_CN/project.ts
b/dolphinscheduler-ui/src/locales/zh_CN/project.ts
index efbd813c0a..16f205accf 100644
--- a/dolphinscheduler-ui/src/locales/zh_CN/project.ts
+++ b/dolphinscheduler-ui/src/locales/zh_CN/project.ts
@@ -241,6 +241,7 @@ export default {
online: '已上线',
offline: '已下线',
task_name: '任务名称',
+ task_code: '任务编码',
task_type: '任务类型',
task_instance: '任务实例',
create_task: '创建任务',
diff --git
a/dolphinscheduler-ui/src/views/projects/task/components/node/detail-modal.tsx
b/dolphinscheduler-ui/src/views/projects/task/components/node/detail-modal.tsx
index 6643d91796..f609c8d16c 100644
---
a/dolphinscheduler-ui/src/views/projects/task/components/node/detail-modal.tsx
+++
b/dolphinscheduler-ui/src/views/projects/task/components/node/detail-modal.tsx
@@ -158,9 +158,8 @@ const NodeDetailModal = defineComponent({
action: () => {
router.push({
name: 'task-instance',
- params: {
- processInstanceId: processInstance.id,
- taskName: props.data.name
+ query: {
+ taskCode: props.data.code
}
})
},
diff --git
a/dolphinscheduler-ui/src/views/projects/task/instance/batch-task.tsx
b/dolphinscheduler-ui/src/views/projects/task/instance/batch-task.tsx
index 2ba8c31d77..03ca177df2 100644
--- a/dolphinscheduler-ui/src/views/projects/task/instance/batch-task.tsx
+++ b/dolphinscheduler-ui/src/views/projects/task/instance/batch-task.tsx
@@ -54,6 +54,7 @@ const BatchTaskInstance = defineComponent({
pageSize: variables.pageSize,
pageNo: variables.page,
searchVal: variables.searchVal,
+ taskCode: variables.taskCode,
processInstanceId: variables.processInstanceId,
host: variables.host,
stateType: variables.stateType,
@@ -73,6 +74,11 @@ const BatchTaskInstance = defineComponent({
requestTableData()
}
+ const onClearSearchTaskCode = () => {
+ variables.taskCode = null
+ onSearch()
+ }
+
const onClearSearchTaskName = () => {
variables.searchVal = ''
onSearch()
@@ -182,6 +188,7 @@ const BatchTaskInstance = defineComponent({
requestTableData,
onUpdatePageSize,
onSearch,
+ onClearSearchTaskCode,
onClearSearchTaskName,
onClearSearchProcessInstanceName,
onClearSearchExecutorName,
@@ -208,6 +215,14 @@ const BatchTaskInstance = defineComponent({
<NSpace vertical>
<Card>
<NSpace justify='end' wrap={false}>
+ <NInput
+ allowInput={this.trim}
+ v-model={[this.taskCode, 'value']}
+ size='small'
+ placeholder={t('project.task.task_code')}
+ clearable
+ onClear={this.onClearSearchTaskCode}
+ />
<NInput
allowInput={this.trim}
v-model={[this.searchVal, 'value']}
diff --git a/dolphinscheduler-ui/src/views/projects/task/instance/use-table.ts
b/dolphinscheduler-ui/src/views/projects/task/instance/use-table.ts
index 88ba8f5222..dd8c944af0 100644
--- a/dolphinscheduler-ui/src/views/projects/task/instance/use-table.ts
+++ b/dolphinscheduler-ui/src/views/projects/task/instance/use-table.ts
@@ -44,9 +44,11 @@ export function useTable() {
const { t } = useI18n()
const route = useRoute()
const router: Router = useRouter()
+
const projectCode = Number(route.params.projectCode)
- const processInstanceId = Number(route.params.processInstanceId)
- const taskName = route.params.taskName
+ const processInstanceId = Number(route.query.processInstanceId)
+ const taskName = route.query.taskName
+ const taskCode = route.query.taskCode
const variables = reactive({
columns: [],
@@ -55,6 +57,7 @@ export function useTable() {
page: ref(1),
pageSize: ref(10),
searchVal: ref(taskName || null),
+ taskCode: ref(taskCode || null),
processInstanceId: ref(processInstanceId ? processInstanceId : null),
host: ref(null),
stateType: ref(null),
@@ -293,6 +296,7 @@ export function useTable() {
? variables.page - 1
: variables.page,
searchVal: variables.searchVal,
+ taskCode: variables.taskCode,
processInstanceId: variables.processInstanceId,
host: variables.host,
stateType: variables.stateType,
@@ -310,6 +314,7 @@ export function useTable() {
pageSize: params.pageSize,
pageNo: params.pageNo,
searchVal: params.searchVal,
+ taskCode: params.taskCode,
processInstanceId: params.processInstanceId,
host: params.host,
stateType: params.stateType,