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

zhongjiajie pushed a commit to branch 3.0.0-beta-prepare
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git

commit e663043c91125869e2cdbc1d39aaefdb5328fd50
Author: Jiajie Zhong <[email protected]>
AuthorDate: Wed May 25 16:33:23 2022 +0800

    [fix] Task group queue query all list error (#10237)
    
    Add support query all task queue by not given specific groupId
    
    close: #10102
    (cherry picked from commit d8db2b57d22ed853232d60a6b33462fa442b838b)
---
 .../api/controller/TaskGroupController.java        | 17 +++++++---
 .../api/service/TaskGroupQueueService.java         | 11 ++++---
 .../dao/mapper/TaskGroupQueueMapper.xml            | 36 ++++++++++++----------
 3 files changed, 39 insertions(+), 25 deletions(-)

diff --git 
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/TaskGroupController.java
 
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/TaskGroupController.java
index 87977b3638..ca65ac78fe 100644
--- 
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/TaskGroupController.java
+++ 
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/TaskGroupController.java
@@ -297,14 +297,21 @@ public class TaskGroupController extends BaseController {
     /**
      * query task group queue list paging
      *
-     * @param loginUser login user
-     * @param pageNo    page number
-     * @param pageSize  page size
+     * @param groupId     ID for task group
+     * @param taskName    Task Name
+     * @param processName Process instance name
+     * @param status      Task queue status
+     * @param loginUser   login user
+     * @param pageNo      page number
+     * @param pageSize    page size
      * @return queue list
      */
     @ApiOperation(value = "queryTasksByGroupId", notes = 
"QUERY_ALL_TASKS_NOTES")
     @ApiImplicitParams({
-        @ApiImplicitParam(name = "groupId", value = "GROUP_ID", required = 
true, dataType = "Int", example = "1"),
+        @ApiImplicitParam(name = "groupId", value = "GROUP_ID", required = 
false, dataType = "Int", example = "1", defaultValue = "-1"),
+        @ApiImplicitParam(name = "taskInstanceName", value = 
"TASK_INSTANCE_NAME", required = false, dataType = "String", example = 
"taskName"),
+        @ApiImplicitParam(name = "processInstanceName", value = 
"PROCESS_INSTANCE_NAME", required = false, dataType = "String", example = 
"processName"),
+        @ApiImplicitParam(name = "status", value = "STATUS", required = false, 
dataType = "Int", example = "1"),
         @ApiImplicitParam(name = "pageNo", value = "PAGE_NO", required = true, 
dataType = "Int", example = "1"),
         @ApiImplicitParam(name = "pageSize", value = "PAGE_SIZE", required = 
true, dataType = "Int", example = "20")
     })
@@ -313,7 +320,7 @@ public class TaskGroupController extends BaseController {
     @ApiException(QUERY_TASK_GROUP_QUEUE_LIST_ERROR)
     @AccessLogAnnotation(ignoreRequestArgs = "loginUser")
     public Result queryTasksByGroupId(@ApiIgnore @RequestAttribute(value = 
Constants.SESSION_USER) User loginUser,
-                                      @RequestParam("groupId") Integer groupId,
+                                      @RequestParam(value = "groupId", 
required = false, defaultValue = "-1") Integer groupId,
                                       @RequestParam(value = 
"taskInstanceName",required = false) String taskName,
                                       @RequestParam(value = 
"processInstanceName",required = false) String processName,
                                       @RequestParam(value = "status",required 
= false) Integer status,
diff --git 
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/TaskGroupQueueService.java
 
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/TaskGroupQueueService.java
index 651267ebb2..e6e81d950b 100644
--- 
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/TaskGroupQueueService.java
+++ 
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/TaskGroupQueueService.java
@@ -28,10 +28,13 @@ public interface TaskGroupQueueService {
 
     /**
      * query tasks in task group queue by group id
-     * @param loginUser login user
-     * @param groupId group id
-     * @param pageNo page no
-     * @param pageSize page size
+     * @param loginUser   login user
+     * @param groupId     group id
+     * @param taskName    Task Name
+     * @param processName Process instance name
+     * @param status      Task queue status
+     * @param pageNo      page no
+     * @param pageSize    page size
 
      * @return tasks list
      */
diff --git 
a/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/TaskGroupQueueMapper.xml
 
b/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/TaskGroupQueueMapper.xml
index a780270bfd..5eacbea9b8 100644
--- 
a/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/TaskGroupQueueMapper.xml
+++ 
b/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/TaskGroupQueueMapper.xml
@@ -134,22 +134,26 @@
         left join t_ds_process_definition p_f on 
process.process_definition_code = p_f.code
         and process.process_definition_version = p_f.version
         join t_ds_project as p on p_f.project_code = p.code
-        where queue.group_id = #{groupId}
-        <if test="taskName != null and taskName != ''">
-            and task_name like concat('%', #{taskName}, '%')
-        </if>
-        <if test="processName != null and processName != ''">
-            and process.name like concat('%', #{processName}, '%')
-        </if>
-        <if test="status != null">
-            and queue.status =#{status}
-        </if>
-        <if test="projects != null and projects.size() > 0">
-            and p.code in
-            <foreach collection="projects" index="index" item="i" open="(" 
separator="," close=")">
-                #{i.code}
-            </foreach>
-        </if>
+        <where>
+            <if test="groupId != null and groupId != -1">
+                queue.group_id = #{groupId}
+            </if>
+            <if test="taskName != null and taskName != ''">
+                and task_name like concat('%', #{taskName}, '%')
+            </if>
+            <if test="processName != null and processName != ''">
+                and process.name like concat('%', #{processName}, '%')
+            </if>
+            <if test="status != null">
+                and queue.status =#{status}
+            </if>
+            <if test="projects != null and projects.size() > 0">
+                and p.code in
+                <foreach collection="projects" index="index" item="i" open="(" 
separator="," close=")">
+                    #{i.code}
+                </foreach>
+            </if>
+        </where>
         order by queue.update_time desc
     </select>
 

Reply via email to