You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dolphinscheduler.apache.org by le...@apache.org on 2021/12/31 05:39:25 UTC
[dolphinscheduler] branch dev updated: [Feature][workflow list edit] add task list page api (#7743)
This is an automated email from the ASF dual-hosted git repository.
leonbao 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 d7d13f7 [Feature][workflow list edit] add task list page api (#7743)
d7d13f7 is described below
commit d7d13f7f51c5a2d6fd19076018ff5528f140c49a
Author: JinYong Li <42...@users.noreply.github.com>
AuthorDate: Fri Dec 31 13:39:20 2021 +0800
[Feature][workflow list edit] add task list page api (#7743)
* fix 7597
* fix copy bug
* add task list page api
* fix total
* fix total
---
.../api/controller/TaskDefinitionController.java | 24 +--
.../api/service/TaskDefinitionService.java | 11 +-
.../service/impl/ProcessDefinitionServiceImpl.java | 3 +-
.../service/impl/TaskDefinitionServiceImpl.java | 53 +++---
.../dolphinscheduler/dao/entity/TaskMainInfo.java | 189 +++++++++++++++++++++
.../dao/mapper/TaskDefinitionMapper.java | 23 ++-
.../dao/mapper/TaskDefinitionMapper.xml | 25 +--
7 files changed, 267 insertions(+), 61 deletions(-)
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/TaskDefinitionController.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/TaskDefinitionController.java
index f485bff..56af2ac 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/TaskDefinitionController.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/TaskDefinitionController.java
@@ -34,6 +34,7 @@ import org.apache.dolphinscheduler.api.service.TaskDefinitionService;
import org.apache.dolphinscheduler.api.utils.Result;
import org.apache.dolphinscheduler.common.Constants;
import org.apache.dolphinscheduler.common.enums.ReleaseState;
+import org.apache.dolphinscheduler.common.enums.TaskType;
import org.apache.dolphinscheduler.common.utils.ParameterUtils;
import org.apache.dolphinscheduler.dao.entity.User;
@@ -257,18 +258,19 @@ public class TaskDefinitionController extends BaseController {
*
* @param loginUser login user
* @param projectCode project code
+ * @param searchWorkflowName searchWorkflowName
+ * @param searchTaskName searchTaskName
* @param taskType taskType
- * @param searchVal search value
- * @param userId user id
* @param pageNo page number
* @param pageSize page size
* @return task definition page
*/
@ApiOperation(value = "queryTaskDefinitionListPaging", notes = "QUERY_TASK_DEFINITION_LIST_PAGING_NOTES")
@ApiImplicitParams({
- @ApiImplicitParam(name = "taskType", value = "TASK_TYPE", required = false, type = "String"),
- @ApiImplicitParam(name = "searchVal", value = "SEARCH_VAL", required = false, type = "String"),
- @ApiImplicitParam(name = "userId", value = "USER_ID", required = false, dataType = "Int", example = "100"),
+ @ApiImplicitParam(name = "projectCode", value = "PROJECT_CODE", required = false, type = "Long"),
+ @ApiImplicitParam(name = "searchWorkflowName", value = "SEARCH_WORKFLOW_NAME", required = false, type = "String"),
+ @ApiImplicitParam(name = "searchTaskName", value = "SEARCH_TASK_NAME", required = false, type = "String"),
+ @ApiImplicitParam(name = "taskType", value = "TASK_TYPE", required = true, dataType = "TaskType", example = "SHELL"),
@ApiImplicitParam(name = "pageNo", value = "PAGE_NO", required = true, dataType = "Int", example = "1"),
@ApiImplicitParam(name = "pageSize", value = "PAGE_SIZE", required = true, dataType = "Int", example = "10")
})
@@ -278,18 +280,18 @@ public class TaskDefinitionController extends BaseController {
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
public Result queryTaskDefinitionListPaging(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
- @RequestParam(value = "taskType", required = false) String taskType,
- @RequestParam(value = "searchVal", required = false) String searchVal,
- @RequestParam(value = "userId", required = false, defaultValue = "0") Integer userId,
+ @RequestParam(value = "searchWorkflowName", required = false) String searchWorkflowName,
+ @RequestParam(value = "searchTaskName", required = false) String searchTaskName,
+ @RequestParam(value = "taskType", required = true) TaskType taskType,
@RequestParam("pageNo") Integer pageNo,
@RequestParam("pageSize") Integer pageSize) {
Result result = checkPageParams(pageNo, pageSize);
if (!result.checkResult()) {
return result;
}
- taskType = ParameterUtils.handleEscapes(taskType);
- searchVal = ParameterUtils.handleEscapes(searchVal);
- return taskDefinitionService.queryTaskDefinitionListPaging(loginUser, projectCode, taskType, searchVal, userId, pageNo, pageSize);
+ searchWorkflowName = ParameterUtils.handleEscapes(searchWorkflowName);
+ searchTaskName = ParameterUtils.handleEscapes(searchTaskName);
+ return taskDefinitionService.queryTaskDefinitionListPaging(loginUser, projectCode, searchWorkflowName, searchTaskName, taskType, pageNo, pageSize);
}
/**
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/TaskDefinitionService.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/TaskDefinitionService.java
index 192bf16..b1661c8 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/TaskDefinitionService.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/TaskDefinitionService.java
@@ -19,6 +19,7 @@ package org.apache.dolphinscheduler.api.service;
import org.apache.dolphinscheduler.api.utils.Result;
import org.apache.dolphinscheduler.common.enums.ReleaseState;
+import org.apache.dolphinscheduler.common.enums.TaskType;
import org.apache.dolphinscheduler.dao.entity.User;
import java.util.Map;
@@ -134,18 +135,18 @@ public interface TaskDefinitionService {
*
* @param loginUser login user
* @param projectCode project code
+ * @param searchWorkflowName searchWorkflowName
+ * @param searchTaskName searchTaskName
* @param taskType taskType
- * @param searchVal search value
- * @param userId user id
* @param pageNo page number
* @param pageSize page size
* @return task definition page
*/
Result queryTaskDefinitionListPaging(User loginUser,
long projectCode,
- String taskType,
- String searchVal,
- Integer userId,
+ String searchWorkflowName,
+ String searchTaskName,
+ TaskType taskType,
Integer pageNo,
Integer pageSize);
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionServiceImpl.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionServiceImpl.java
index 5023c7e..55e73e1 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionServiceImpl.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionServiceImpl.java
@@ -77,8 +77,6 @@ import org.apache.dolphinscheduler.service.process.ProcessService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
-import org.apache.hadoop.mapred.TaskLog.LogName;
-import org.apache.yetus.audience.InterfaceAudience.Public;
import java.io.BufferedOutputStream;
import java.io.IOException;
@@ -1398,6 +1396,7 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
putMsg(result, Status.NOT_SUPPORT_COPY_TASK_TYPE, taskDefinitionLog.getTaskType());
throw new ServiceException(Status.NOT_SUPPORT_COPY_TASK_TYPE);
}
+ taskDefinitionLog.setProjectCode(targetProjectCode);
taskDefinitionLog.setCode(0L);
taskDefinitionLog.setVersion(0);
taskDefinitionLog.setName(taskDefinitionLog.getName() + "_copy_" + DateUtils.getCurrentTimeStamp());
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskDefinitionServiceImpl.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskDefinitionServiceImpl.java
index 7f8512e..7ddff44 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskDefinitionServiceImpl.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskDefinitionServiceImpl.java
@@ -28,6 +28,7 @@ import org.apache.dolphinscheduler.common.Constants;
import org.apache.dolphinscheduler.common.enums.AuthorizationType;
import org.apache.dolphinscheduler.common.enums.Flag;
import org.apache.dolphinscheduler.common.enums.ReleaseState;
+import org.apache.dolphinscheduler.common.enums.TaskType;
import org.apache.dolphinscheduler.common.utils.CodeGenerateUtils;
import org.apache.dolphinscheduler.common.utils.CodeGenerateUtils.CodeGenerateException;
import org.apache.dolphinscheduler.common.utils.JSONUtils;
@@ -36,6 +37,7 @@ import org.apache.dolphinscheduler.dao.entity.ProcessTaskRelationLog;
import org.apache.dolphinscheduler.dao.entity.Project;
import org.apache.dolphinscheduler.dao.entity.TaskDefinition;
import org.apache.dolphinscheduler.dao.entity.TaskDefinitionLog;
+import org.apache.dolphinscheduler.dao.entity.TaskMainInfo;
import org.apache.dolphinscheduler.dao.entity.User;
import org.apache.dolphinscheduler.dao.mapper.ProcessTaskRelationLogMapper;
import org.apache.dolphinscheduler.dao.mapper.ProcessTaskRelationMapper;
@@ -65,6 +67,7 @@ import org.springframework.transaction.annotation.Transactional;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.google.common.collect.Lists;
/**
* task definition service impl
@@ -440,9 +443,9 @@ public class TaskDefinitionServiceImpl extends BaseServiceImpl implements TaskDe
@Override
public Result queryTaskDefinitionListPaging(User loginUser,
long projectCode,
- String taskType,
- String searchVal,
- Integer userId,
+ String searchWorkflowName,
+ String searchTaskName,
+ TaskType taskType,
Integer pageNo,
Integer pageSize) {
Result result = new Result();
@@ -454,24 +457,36 @@ public class TaskDefinitionServiceImpl extends BaseServiceImpl implements TaskDe
putMsg(result, resultStatus);
return result;
}
- if (StringUtils.isNotBlank(taskType)) {
- taskType = taskType.toUpperCase();
- }
- Page<TaskDefinition> page = new Page<>(pageNo, pageSize);
- IPage<TaskDefinition> taskDefinitionIPage = taskDefinitionMapper.queryDefineListPaging(
- page, projectCode, taskType, searchVal, userId, isAdmin(loginUser));
- if (StringUtils.isNotBlank(taskType)) {
- List<TaskDefinition> records = taskDefinitionIPage.getRecords();
- for (TaskDefinition pd : records) {
- TaskDefinitionLog taskDefinitionLog = taskDefinitionLogMapper.queryByDefinitionCodeAndVersion(pd.getCode(), pd.getVersion());
- User user = userMapper.selectById(taskDefinitionLog.getOperator());
- pd.setModifyBy(user.getUserName());
+ Page<TaskMainInfo> page = new Page<>(pageNo, pageSize);
+ IPage<TaskMainInfo> taskMainInfoIPage = taskDefinitionMapper.queryDefineListPaging(page, projectCode, searchWorkflowName,
+ searchTaskName, taskType == null ? StringUtils.EMPTY : taskType.getDesc());
+ List<TaskMainInfo> records = taskMainInfoIPage.getRecords();
+ if (!records.isEmpty()) {
+ Map<Long, TaskMainInfo> taskMainInfoMap = new HashMap<>();
+ for (TaskMainInfo info : records) {
+ taskMainInfoMap.compute(info.getTaskCode(), (k, v) -> {
+ if (v == null) {
+ Map<Long, String> upstreamTaskMap = new HashMap<>();
+ if (info.getUpstreamTaskCode() != 0) {
+ upstreamTaskMap.put(info.getUpstreamTaskCode(), info.getUpstreamTaskName());
+ info.setUpstreamTaskCode(0L);
+ info.setUpstreamTaskName(StringUtils.EMPTY);
+ }
+ info.setUpstreamTaskMap(upstreamTaskMap);
+ v = info;
+ }
+ if (info.getUpstreamTaskCode() != 0) {
+ v.getUpstreamTaskMap().put(info.getUpstreamTaskCode(), info.getUpstreamTaskName());
+ }
+ return v;
+ });
}
- taskDefinitionIPage.setRecords(records);
+ taskMainInfoIPage.setRecords(Lists.newArrayList(taskMainInfoMap.values()));
+ taskMainInfoIPage.setTotal(taskMainInfoMap.values().size());
}
- PageInfo<TaskDefinition> pageInfo = new PageInfo<>(pageNo, pageSize);
- pageInfo.setTotal((int) taskDefinitionIPage.getTotal());
- pageInfo.setTotalList(taskDefinitionIPage.getRecords());
+ PageInfo<TaskMainInfo> pageInfo = new PageInfo<>(pageNo, pageSize);
+ pageInfo.setTotal((int) taskMainInfoIPage.getTotal());
+ pageInfo.setTotalList(taskMainInfoIPage.getRecords());
result.setData(pageInfo);
putMsg(result, Status.SUCCESS);
return result;
diff --git a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/TaskMainInfo.java b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/TaskMainInfo.java
new file mode 100644
index 0000000..580c683
--- /dev/null
+++ b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/TaskMainInfo.java
@@ -0,0 +1,189 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.dolphinscheduler.dao.entity;
+
+import org.apache.dolphinscheduler.common.enums.ReleaseState;
+
+import java.util.Date;
+import java.util.Map;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+/**
+ * task main info
+ */
+public class TaskMainInfo {
+
+ /**
+ * task name
+ */
+ private String taskName;
+
+ /**
+ * task code
+ */
+ private long taskCode;
+
+ /**
+ * task version
+ */
+ private int taskVersion;
+
+ /**
+ * create time
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date taskCreateTime;
+
+ /**
+ * update time
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date taskUpdateTime;
+
+ /**
+ * processDefinitionCode
+ */
+ private long processDefinitionCode;
+
+ /**
+ * processDefinitionVersion
+ */
+ private int processDefinitionVersion;
+
+ /**
+ * processDefinitionName
+ */
+ private String processDefinitionName;
+
+ /**
+ * processReleaseState
+ */
+ private ReleaseState processReleaseState;
+
+ /**
+ * upstreamTaskMap(k:code,v:name)
+ */
+ private Map<Long, String> upstreamTaskMap;
+
+ /**
+ * upstreamTaskCode
+ */
+ private long upstreamTaskCode;
+
+ /**
+ * upstreamTaskName
+ */
+ private String upstreamTaskName;
+
+ public String getTaskName() {
+ return taskName;
+ }
+
+ public void setTaskName(String taskName) {
+ this.taskName = taskName;
+ }
+
+ public long getTaskCode() {
+ return taskCode;
+ }
+
+ public void setTaskCode(long taskCode) {
+ this.taskCode = taskCode;
+ }
+
+ public int getTaskVersion() {
+ return taskVersion;
+ }
+
+ public void setTaskVersion(int taskVersion) {
+ this.taskVersion = taskVersion;
+ }
+
+ public Date getTaskCreateTime() {
+ return taskCreateTime;
+ }
+
+ public void setTaskCreateTime(Date taskCreateTime) {
+ this.taskCreateTime = taskCreateTime;
+ }
+
+ public Date getTaskUpdateTime() {
+ return taskUpdateTime;
+ }
+
+ public void setTaskUpdateTime(Date taskUpdateTime) {
+ this.taskUpdateTime = taskUpdateTime;
+ }
+
+ public long getProcessDefinitionCode() {
+ return processDefinitionCode;
+ }
+
+ public void setProcessDefinitionCode(long processDefinitionCode) {
+ this.processDefinitionCode = processDefinitionCode;
+ }
+
+ public int getProcessDefinitionVersion() {
+ return processDefinitionVersion;
+ }
+
+ public void setProcessDefinitionVersion(int processDefinitionVersion) {
+ this.processDefinitionVersion = processDefinitionVersion;
+ }
+
+ public String getProcessDefinitionName() {
+ return processDefinitionName;
+ }
+
+ public void setProcessDefinitionName(String processDefinitionName) {
+ this.processDefinitionName = processDefinitionName;
+ }
+
+ public ReleaseState getProcessReleaseState() {
+ return processReleaseState;
+ }
+
+ public void setProcessReleaseState(ReleaseState processReleaseState) {
+ this.processReleaseState = processReleaseState;
+ }
+
+ public Map<Long, String> getUpstreamTaskMap() {
+ return upstreamTaskMap;
+ }
+
+ public void setUpstreamTaskMap(Map<Long, String> upstreamTaskMap) {
+ this.upstreamTaskMap = upstreamTaskMap;
+ }
+
+ public long getUpstreamTaskCode() {
+ return upstreamTaskCode;
+ }
+
+ public void setUpstreamTaskCode(long upstreamTaskCode) {
+ this.upstreamTaskCode = upstreamTaskCode;
+ }
+
+ public String getUpstreamTaskName() {
+ return upstreamTaskName;
+ }
+
+ public void setUpstreamTaskName(String upstreamTaskName) {
+ this.upstreamTaskName = upstreamTaskName;
+ }
+}
diff --git a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/TaskDefinitionMapper.java b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/TaskDefinitionMapper.java
index 6840099..a12887d 100644
--- a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/TaskDefinitionMapper.java
+++ b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/TaskDefinitionMapper.java
@@ -20,6 +20,7 @@ package org.apache.dolphinscheduler.dao.mapper;
import org.apache.dolphinscheduler.dao.entity.DefinitionGroupByUser;
import org.apache.dolphinscheduler.dao.entity.TaskDefinition;
import org.apache.dolphinscheduler.dao.entity.TaskDefinitionLog;
+import org.apache.dolphinscheduler.dao.entity.TaskMainInfo;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;
@@ -102,20 +103,18 @@ public interface TaskDefinitionMapper extends BaseMapper<TaskDefinition> {
int batchInsert(@Param("taskDefinitions") List<TaskDefinitionLog> taskDefinitions);
/**
- * task definition page
+ * task main info page
*
* @param page page
- * @param taskType taskType
- * @param searchVal searchVal
- * @param userId userId
* @param projectCode projectCode
- * @param isAdmin isAdmin
- * @return task definition IPage
+ * @param searchWorkflowName searchWorkflowName
+ * @param searchTaskName searchTaskName
+ * @param taskType taskType
+ * @return task main info IPage
*/
- IPage<TaskDefinition> queryDefineListPaging(IPage<TaskDefinition> page,
- @Param("projectCode") long projectCode,
- @Param("taskType") String taskType,
- @Param("searchVal") String searchVal,
- @Param("userId") int userId,
- @Param("isAdmin") boolean isAdmin);
+ IPage<TaskMainInfo> queryDefineListPaging(IPage<TaskMainInfo> page,
+ @Param("projectCode") long projectCode,
+ @Param("searchWorkflowName") String searchWorkflowName,
+ @Param("searchTaskName") String searchTaskName,
+ @Param("taskType") String taskType);
}
diff --git a/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/TaskDefinitionMapper.xml b/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/TaskDefinitionMapper.xml
index f6185c8..e21d608 100644
--- a/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/TaskDefinitionMapper.xml
+++ b/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/TaskDefinitionMapper.xml
@@ -86,22 +86,23 @@
#{taskDefinition.delayTime},#{taskDefinition.resourceIds},#{taskDefinition.createTime},#{taskDefinition.updateTime}, #{taskDefinition.taskGroupId})
</foreach>
</insert>
- <select id="queryDefineListPaging" resultType="org.apache.dolphinscheduler.dao.entity.TaskDefinition">
- select td.id, td.code, td.name, td.version, td.description, td.project_code, td.user_id, td.task_type, td.task_params, td.flag,
- td.task_priority, td.worker_group, td.environment_code, td.fail_retry_times, td.fail_retry_interval, td.timeout_flag, td.timeout_notify_strategy,
- td.timeout, td.delay_time, td.resource_ids, td.create_time, td.update_time, u.user_name,p.name as project_name
+ <select id="queryDefineListPaging" resultType="org.apache.dolphinscheduler.dao.entity.TaskMainInfo">
+ select td.name task_name,td.code task_code,td.version task_version,td.create_time task_create_time,td.update_time task_update_time,
+ pd.code process_definition_code,pd.version process_definition_version,pd.name process_definition_name,pd.release_state process_release_state,
+ pt.pre_task_code upstream_task_code,up.name upstream_task_name
from t_ds_task_definition td
- JOIN t_ds_user u ON td.user_id = u.id
- JOIN t_ds_project p ON td.project_code = p.code
- where td.project_code = #{projectCode}
- <if test=" taskType != null and taskType != ''">
+ LEFT JOIN t_ds_process_task_relation pt ON td.code = pt.post_task_code and td.version=pt.post_task_version
+ LEFT JOIN t_ds_process_definition pd ON pt.process_definition_code = pd.code and pt.process_definition_version=pd.version
+ LEFT JOIN t_ds_task_definition up on pt.pre_task_code=up.code and pt.pre_task_version=up.version
+ WHERE td.project_code = #{projectCode}
+ <if test="taskType != ''">
and td.task_type = #{taskType}
</if>
- <if test=" searchVal != null and searchVal != ''">
- and td.name like concat('%', #{searchVal}, '%')
+ <if test="searchWorkflowName != null and searchWorkflowName != ''">
+ and pd.name like concat('%', #{searchWorkflowName}, '%')
</if>
- <if test=" userId != 0">
- and td.user_id = #{userId}
+ <if test="searchTaskName != null and searchTaskName != ''">
+ and td.name like concat('%', #{searchTaskName}, '%')
</if>
order by td.update_time desc
</select>