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.
 
 ![instance-history](../../../../img/new_ui/dev/project/instance-history.png)
 
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 页面;
-- 双击任务节点,如下图所示,点击"查看历史",跳转到任务实例页面,并展示该工作流实例运行的任务实例列表
+- 双击任务节点,如下图所示,点击"查看历史",跳转到任务实例页面,并展示该任务定义运行的任务实例列表
 
 ![instance-history](../../../../img/new_ui/dev/project/instance-history.png)
 
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,

Reply via email to