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

SbloodyS 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 673b361582 [Improvement-18249][DAO] Route WorkflowTaskRelationMapper 
access through WorkflowTaskRelationDao (#18260)
673b361582 is described below

commit 673b3615824c7e01d7435163e72509706b2e1605
Author: Wenjun Ruan <[email protected]>
AuthorDate: Sun May 17 22:28:02 2026 +0800

    [Improvement-18249][DAO] Route WorkflowTaskRelationMapper access through 
WorkflowTaskRelationDao (#18260)
---
 .../api/service/impl/ExecutorServiceImpl.java      |  6 +-
 .../service/impl/TaskDefinitionServiceImpl.java    | 26 +++---
 .../impl/WorkflowDefinitionServiceImpl.java        | 14 ++--
 .../impl/WorkflowTaskRelationServiceImpl.java      |  8 +-
 .../api/service/TaskDefinitionServiceImplTest.java | 10 ++-
 .../api/service/WorkflowDefinitionServiceTest.java | 10 +--
 .../dao/repository/WorkflowTaskRelationDao.java    | 47 +++++++++++
 .../impl/WorkflowTaskRelationDaoImpl.java          | 93 ++++++++++++++++++++++
 8 files changed, 178 insertions(+), 36 deletions(-)

diff --git 
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ExecutorServiceImpl.java
 
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ExecutorServiceImpl.java
index 458b5eea10..70d3f084ec 100644
--- 
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ExecutorServiceImpl.java
+++ 
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ExecutorServiceImpl.java
@@ -53,9 +53,9 @@ import 
org.apache.dolphinscheduler.dao.entity.WorkflowTaskRelation;
 import org.apache.dolphinscheduler.dao.mapper.TaskDefinitionLogMapper;
 import org.apache.dolphinscheduler.dao.mapper.TaskDefinitionMapper;
 import org.apache.dolphinscheduler.dao.mapper.TaskGroupQueueMapper;
-import org.apache.dolphinscheduler.dao.mapper.WorkflowTaskRelationMapper;
 import org.apache.dolphinscheduler.dao.repository.WorkflowDefinitionDao;
 import org.apache.dolphinscheduler.dao.repository.WorkflowInstanceDao;
+import org.apache.dolphinscheduler.dao.repository.WorkflowTaskRelationDao;
 import org.apache.dolphinscheduler.plugin.task.api.utils.TaskTypeUtils;
 import org.apache.dolphinscheduler.service.command.CommandService;
 import org.apache.dolphinscheduler.service.process.ProcessService;
@@ -102,7 +102,7 @@ public class ExecutorServiceImpl extends BaseServiceImpl 
implements ExecutorServ
     private TaskDefinitionMapper taskDefinitionMapper;
 
     @Autowired
-    private WorkflowTaskRelationMapper workflowTaskRelationMapper;
+    private WorkflowTaskRelationDao workflowTaskRelationDao;
 
     @Autowired
     private TaskGroupQueueMapper taskGroupQueueMapper;
@@ -197,7 +197,7 @@ public class ExecutorServiceImpl extends BaseServiceImpl 
implements ExecutorServ
     public boolean checkSubWorkflowDefinitionValid(WorkflowDefinition 
workflowDefinition) {
         // query all sub workflows under the current workflow
         List<WorkflowTaskRelation> workflowTaskRelations =
-                
workflowTaskRelationMapper.queryDownstreamByWorkflowDefinitionCode(workflowDefinition.getCode());
+                
workflowTaskRelationDao.queryDownstreamByWorkflowDefinitionCode(workflowDefinition.getCode());
         if (workflowTaskRelations.isEmpty()) {
             return true;
         }
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 f5fb12dc2a..be2764c873 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
@@ -51,10 +51,10 @@ import 
org.apache.dolphinscheduler.dao.entity.WorkflowTaskRelationLog;
 import org.apache.dolphinscheduler.dao.mapper.TaskDefinitionLogMapper;
 import org.apache.dolphinscheduler.dao.mapper.TaskDefinitionMapper;
 import org.apache.dolphinscheduler.dao.mapper.WorkflowDefinitionLogMapper;
-import org.apache.dolphinscheduler.dao.mapper.WorkflowTaskRelationMapper;
 import org.apache.dolphinscheduler.dao.repository.ProjectDao;
 import org.apache.dolphinscheduler.dao.repository.TaskDefinitionDao;
 import org.apache.dolphinscheduler.dao.repository.WorkflowDefinitionDao;
+import org.apache.dolphinscheduler.dao.repository.WorkflowTaskRelationDao;
 import org.apache.dolphinscheduler.dao.repository.WorkflowTaskRelationLogDao;
 import org.apache.dolphinscheduler.service.process.ProcessService;
 
@@ -104,7 +104,7 @@ public class TaskDefinitionServiceImpl extends 
BaseServiceImpl implements TaskDe
     private TaskDefinitionLogMapper taskDefinitionLogMapper;
 
     @Autowired
-    private WorkflowTaskRelationMapper workflowTaskRelationMapper;
+    private WorkflowTaskRelationDao workflowTaskRelationDao;
 
     @Autowired
     private WorkflowTaskRelationLogDao workflowTaskRelationLogDao;
@@ -270,7 +270,7 @@ public class TaskDefinitionServiceImpl extends 
BaseServiceImpl implements TaskDe
                 "Update task definition and definitionLog complete, 
projectCode:{}, taskDefinitionCode:{}, newTaskVersion:{}.",
                 projectCode, taskCode, taskDefinitionToUpdate.getVersion());
         // update workflow task relation
-        List<WorkflowTaskRelation> workflowTaskRelations = 
workflowTaskRelationMapper
+        List<WorkflowTaskRelation> workflowTaskRelations = 
workflowTaskRelationDao
                 
.queryWorkflowTaskRelationByTaskCodeAndTaskVersion(taskDefinitionToUpdate.getCode(),
                         taskDefinition.getVersion());
         if (CollectionUtils.isNotEmpty(workflowTaskRelations)) {
@@ -290,9 +290,7 @@ public class TaskDefinitionServiceImpl extends 
BaseServiceImpl implements TaskDe
                         workflowTaskRelation.setPostTaskVersion(version);
                     }
                     
workflowTaskRelation.setWorkflowDefinitionVersion(workflowDefinitionVersion);
-                    int updateWorkflowDefinitionVersionCount =
-                            
workflowTaskRelationMapper.updateWorkflowTaskRelationTaskVersion(workflowTaskRelation);
-                    if (updateWorkflowDefinitionVersionCount != 1) {
+                    if 
(!workflowTaskRelationDao.updateWorkflowTaskRelationTaskVersion(workflowTaskRelation))
 {
                         log.error("batch update workflow task relation error, 
projectCode:{}, taskDefinitionCode:{}.",
                                 projectCode, taskCode);
                         throw new 
ServiceException(Status.WORKFLOW_TASK_RELATION_BATCH_UPDATE_ERROR);
@@ -344,7 +342,7 @@ public class TaskDefinitionServiceImpl extends 
BaseServiceImpl implements TaskDe
         TaskDefinitionLog taskDefinitionToUpdate =
                 updateTask(loginUser, projectCode, taskCode, 
taskDefinitionJsonObj);
         List<WorkflowTaskRelation> upstreamTaskRelations =
-                workflowTaskRelationMapper.queryUpstreamByCode(projectCode, 
taskCode);
+                workflowTaskRelationDao.queryUpstreamByCode(projectCode, 
taskCode);
         Set<Long> upstreamCodeSet =
                 
upstreamTaskRelations.stream().map(WorkflowTaskRelation::getPreTaskCode).collect(Collectors.toSet());
         Set<Long> upstreamTaskCodes = Collections.emptySet();
@@ -374,7 +372,7 @@ public class TaskDefinitionServiceImpl extends 
BaseServiceImpl implements TaskDe
         if (MapUtils.isNotEmpty(queryUpStreamTaskCodeMap)) {
             WorkflowTaskRelation taskRelation = upstreamTaskRelations.get(0);
             List<WorkflowTaskRelation> workflowTaskRelations =
-                    
workflowTaskRelationMapper.queryByWorkflowDefinitionCode(taskRelation.getWorkflowDefinitionCode());
+                    
workflowTaskRelationDao.queryByWorkflowDefinitionCode(taskRelation.getWorkflowDefinitionCode());
 
             // set upstream code list
             updateUpstreamTask(new 
HashSet<>(queryUpStreamTaskCodeMap.keySet()),
@@ -413,7 +411,7 @@ public class TaskDefinitionServiceImpl extends 
BaseServiceImpl implements TaskDe
     private void updateUpstreamTask(Set<Long> allPreTaskCodeSet, long 
taskCode, long projectCode,
                                     long workflowDefinitionCode, User 
loginUser) {
         // query all workflow task relation
-        List<WorkflowTaskRelation> hadWorkflowTaskRelationList = 
workflowTaskRelationMapper
+        List<WorkflowTaskRelation> hadWorkflowTaskRelationList = 
workflowTaskRelationDao
                 .queryUpstreamByCode(projectCode, taskCode);
         // remove pre
         Set<Long> removePreTaskSet = new HashSet<>();
@@ -470,11 +468,11 @@ public class TaskDefinitionServiceImpl extends 
BaseServiceImpl implements TaskDe
         int log = 0;
         // insert workflow task relation table data
         if (CollectionUtils.isNotEmpty(addPreTaskList)) {
-            insert = workflowTaskRelationMapper.batchInsert(addPreTaskList);
+            insert = workflowTaskRelationDao.batchInsert(addPreTaskList);
         }
         if (CollectionUtils.isNotEmpty(removePreTaskList)) {
             for (WorkflowTaskRelation workflowTaskRelation : 
removePreTaskList) {
-                remove += 
workflowTaskRelationMapper.updateById(workflowTaskRelation);
+                remove += 
workflowTaskRelationDao.updateById(workflowTaskRelation) ? 1 : 0;
             }
         }
         if (CollectionUtils.isNotEmpty(workflowTaskRelationLogList)) {
@@ -533,14 +531,14 @@ public class TaskDefinitionServiceImpl extends 
BaseServiceImpl implements TaskDe
             throw new 
ServiceException(Status.SWITCH_TASK_DEFINITION_VERSION_ERROR);
         }
         List<WorkflowTaskRelation> taskRelationList =
-                workflowTaskRelationMapper.queryUpstreamByCode(projectCode, 
taskCode);
+                workflowTaskRelationDao.queryUpstreamByCode(projectCode, 
taskCode);
         if (CollectionUtils.isNotEmpty(taskRelationList)) {
             log.info(
                     "Task definition has upstream tasks, start handle them 
after switch task, taskDefinitionCode:{}.",
                     taskCode);
             long workflowDefinitionCode = 
taskRelationList.get(0).getWorkflowDefinitionCode();
             List<WorkflowTaskRelation> workflowTaskRelations =
-                    
workflowTaskRelationMapper.queryByWorkflowDefinitionCode(workflowDefinitionCode);
+                    
workflowTaskRelationDao.queryByWorkflowDefinitionCode(workflowDefinitionCode);
             updateDag(loginUser, workflowDefinitionCode, workflowTaskRelations,
                     Lists.newArrayList(taskDefinitionUpdate));
         } else {
@@ -613,7 +611,7 @@ public class TaskDefinitionServiceImpl extends 
BaseServiceImpl implements TaskDe
             log.error("Task definition does not exist, 
taskDefinitionCode:{}.", taskCode);
             throw new ServiceException(Status.TASK_DEFINE_NOT_EXIST, 
String.valueOf(taskCode));
         }
-        List<WorkflowTaskRelation> taskRelationList = 
workflowTaskRelationMapper
+        List<WorkflowTaskRelation> taskRelationList = workflowTaskRelationDao
                 .queryByCode(projectCode, 0, 0, taskCode);
         if (CollectionUtils.isNotEmpty(taskRelationList)) {
             taskRelationList = taskRelationList.stream()
diff --git 
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowDefinitionServiceImpl.java
 
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowDefinitionServiceImpl.java
index 54a165be05..e883fe99c3 100644
--- 
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowDefinitionServiceImpl.java
+++ 
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowDefinitionServiceImpl.java
@@ -81,7 +81,6 @@ import 
org.apache.dolphinscheduler.dao.mapper.TaskDefinitionLogMapper;
 import org.apache.dolphinscheduler.dao.mapper.TaskDefinitionMapper;
 import org.apache.dolphinscheduler.dao.mapper.WorkflowDefinitionLogMapper;
 import org.apache.dolphinscheduler.dao.mapper.WorkflowTaskRelationLogMapper;
-import org.apache.dolphinscheduler.dao.mapper.WorkflowTaskRelationMapper;
 import org.apache.dolphinscheduler.dao.model.PageListingResult;
 import org.apache.dolphinscheduler.dao.repository.ProjectDao;
 import org.apache.dolphinscheduler.dao.repository.ScheduleDao;
@@ -90,6 +89,7 @@ import 
org.apache.dolphinscheduler.dao.repository.TaskInstanceDao;
 import org.apache.dolphinscheduler.dao.repository.UserDao;
 import org.apache.dolphinscheduler.dao.repository.WorkflowDefinitionDao;
 import org.apache.dolphinscheduler.dao.repository.WorkflowDefinitionLogDao;
+import org.apache.dolphinscheduler.dao.repository.WorkflowTaskRelationDao;
 import 
org.apache.dolphinscheduler.plugin.task.api.model.ConditionDependentItem;
 import 
org.apache.dolphinscheduler.plugin.task.api.model.ConditionDependentTaskModel;
 import org.apache.dolphinscheduler.plugin.task.api.model.DependentItem;
@@ -181,7 +181,7 @@ public class WorkflowDefinitionServiceImpl extends 
BaseServiceImpl implements Wo
     private TaskDefinitionLogDao taskDefinitionLogDao;
 
     @Autowired
-    private WorkflowTaskRelationMapper workflowTaskRelationMapper;
+    private WorkflowTaskRelationDao workflowTaskRelationDao;
 
     @Autowired
     private WorkflowTaskRelationLogMapper workflowTaskRelationLogMapper;
@@ -668,7 +668,7 @@ public class WorkflowDefinitionServiceImpl extends 
BaseServiceImpl implements Wo
     private void taskUsedInOtherTaskValid(WorkflowDefinition 
workflowDefinition,
                                           List<WorkflowTaskRelationLog> 
taskRelationList) {
         List<WorkflowTaskRelation> oldWorkflowTaskRelationList =
-                
workflowTaskRelationMapper.queryByWorkflowDefinitionCode(workflowDefinition.getCode());
+                
workflowTaskRelationDao.queryByWorkflowDefinitionCode(workflowDefinition.getCode());
         Set<WorkflowTaskRelationLog> oldWorkflowTaskRelationSet =
                 
oldWorkflowTaskRelationList.stream().map(WorkflowTaskRelationLog::new).collect(Collectors.toSet());
         StringBuilder sb = new StringBuilder();
@@ -1325,7 +1325,7 @@ public class WorkflowDefinitionServiceImpl extends 
BaseServiceImpl implements Wo
         diffCode.forEach(code -> failedWorkflowList.add(code + "[null]"));
         for (WorkflowDefinition workflowDefinition : workflowDefinitionList) {
             List<WorkflowTaskRelation> workflowTaskRelations =
-                    
workflowTaskRelationMapper.queryByWorkflowDefinitionCode(workflowDefinition.getCode());
+                    
workflowTaskRelationDao.queryByWorkflowDefinitionCode(workflowDefinition.getCode());
             List<WorkflowTaskRelationLog> taskRelationList =
                     
workflowTaskRelations.stream().map(WorkflowTaskRelationLog::new).collect(Collectors.toList());
             workflowDefinition.setProjectCode(targetProjectCode);
@@ -1586,7 +1586,7 @@ public class WorkflowDefinitionServiceImpl extends 
BaseServiceImpl implements Wo
             throw new 
ServiceException(Status.SWITCH_WORKFLOW_DEFINITION_VERSION_ERROR);
         }
 
-        List<WorkflowTaskRelation> workflowTaskRelationList = 
workflowTaskRelationMapper
+        List<WorkflowTaskRelation> workflowTaskRelationList = 
workflowTaskRelationDao
                 
.queryWorkflowTaskRelationsByWorkflowDefinitionCode(workflowDefinitionLog.getCode(),
                         workflowDefinitionLog.getVersion());
         List<TaskCodeVersionDto> taskDefinitionList = 
getTaskCodeVersionDtos(workflowTaskRelationList);
@@ -1806,7 +1806,7 @@ public class WorkflowDefinitionServiceImpl extends 
BaseServiceImpl implements Wo
 
         Set<Long> taskCodeSet = new TreeSet<>();
 
-        
workflowTaskRelationMapper.queryByWorkflowDefinitionCode(workflowDefinition.getCode())
+        
workflowTaskRelationDao.queryByWorkflowDefinitionCode(workflowDefinition.getCode())
                 .forEach(processTaskRelation -> {
                     if (processTaskRelation.getPreTaskCode() > 0) {
                         taskCodeSet.add(processTaskRelation.getPreTaskCode());
@@ -1836,7 +1836,7 @@ public class WorkflowDefinitionServiceImpl extends 
BaseServiceImpl implements Wo
     private void checkWorkflowDefinitionIsValidated(Long 
workflowDefinitionCode) {
         // todo: build dag check if the dag is validated
         List<WorkflowTaskRelation> workflowTaskRelations =
-                
workflowTaskRelationMapper.queryByWorkflowDefinitionCode(workflowDefinitionCode);
+                
workflowTaskRelationDao.queryByWorkflowDefinitionCode(workflowDefinitionCode);
         if (CollectionUtils.isEmpty(workflowTaskRelations)) {
             throw new ServiceException(Status.WORKFLOW_DAG_IS_EMPTY);
         }
diff --git 
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowTaskRelationServiceImpl.java
 
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowTaskRelationServiceImpl.java
index 620a04eafe..760a5f02fa 100644
--- 
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowTaskRelationServiceImpl.java
+++ 
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowTaskRelationServiceImpl.java
@@ -19,7 +19,7 @@ package org.apache.dolphinscheduler.api.service.impl;
 
 import org.apache.dolphinscheduler.api.service.WorkflowTaskRelationService;
 import org.apache.dolphinscheduler.dao.entity.WorkflowTaskRelation;
-import org.apache.dolphinscheduler.dao.mapper.WorkflowTaskRelationMapper;
+import org.apache.dolphinscheduler.dao.repository.WorkflowTaskRelationDao;
 
 import java.util.List;
 
@@ -33,18 +33,18 @@ import org.springframework.stereotype.Service;
 public class WorkflowTaskRelationServiceImpl extends BaseServiceImpl 
implements WorkflowTaskRelationService {
 
     @Autowired
-    private WorkflowTaskRelationMapper workflowTaskRelationMapper;
+    private WorkflowTaskRelationDao workflowTaskRelationDao;
 
     @Override
     public List<WorkflowTaskRelation> queryByWorkflowDefinitionCode(long 
workflowDefinitionCode,
                                                                     int 
workflowDefinitionVersion) {
-        return 
workflowTaskRelationMapper.queryWorkflowTaskRelationsByWorkflowDefinitionCode(workflowDefinitionCode,
+        return 
workflowTaskRelationDao.queryWorkflowTaskRelationsByWorkflowDefinitionCode(workflowDefinitionCode,
                 workflowDefinitionVersion);
     }
 
     @Override
     public void deleteByWorkflowDefinitionCode(long workflowDefinitionCode, 
int workflowDefinitionVersion) {
-        
workflowTaskRelationMapper.deleteByWorkflowDefinitionCodeAndVersion(workflowDefinitionCode,
+        
workflowTaskRelationDao.deleteByWorkflowDefinitionCodeAndVersion(workflowDefinitionCode,
                 workflowDefinitionVersion);
     }
 
diff --git 
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TaskDefinitionServiceImplTest.java
 
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TaskDefinitionServiceImplTest.java
index a82cf6e1a5..a8affea832 100644
--- 
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TaskDefinitionServiceImplTest.java
+++ 
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TaskDefinitionServiceImplTest.java
@@ -53,6 +53,7 @@ import 
org.apache.dolphinscheduler.dao.mapper.WorkflowTaskRelationLogMapper;
 import org.apache.dolphinscheduler.dao.mapper.WorkflowTaskRelationMapper;
 import org.apache.dolphinscheduler.dao.repository.ProjectDao;
 import org.apache.dolphinscheduler.dao.repository.WorkflowDefinitionDao;
+import org.apache.dolphinscheduler.dao.repository.WorkflowTaskRelationDao;
 import org.apache.dolphinscheduler.dao.repository.WorkflowTaskRelationLogDao;
 import org.apache.dolphinscheduler.plugin.task.api.TaskPluginManager;
 import org.apache.dolphinscheduler.service.process.ProcessService;
@@ -110,6 +111,9 @@ public class TaskDefinitionServiceImplTest {
     @Mock
     private WorkflowTaskRelationMapper workflowTaskRelationMapper;
 
+    @Mock
+    private WorkflowTaskRelationDao workflowTaskRelationDao;
+
     @Mock
     private WorkflowDefinitionMapper workflowDefinitionMapper;
 
@@ -364,12 +368,12 @@ public class TaskDefinitionServiceImplTest {
             when(taskDefinitionMapper.queryByCodeList(Mockito.anySet()))
                     .thenReturn(Arrays.asList(taskDefinition, 
taskDefinitionSecond));
 
-            when(workflowTaskRelationMapper.queryUpstreamByCode(PROJECT_CODE, 
TASK_CODE))
+            when(workflowTaskRelationDao.queryUpstreamByCode(PROJECT_CODE, 
TASK_CODE))
                     .thenReturn(getProcessTaskRelationListV2());
             when(workflowDefinitionDao.queryByCode(PROCESS_DEFINITION_CODE))
                     .thenReturn(Optional.of(getProcessDefinition()));
-            
when(workflowTaskRelationMapper.batchInsert(Mockito.anyList())).thenReturn(1);
-            
when(workflowTaskRelationMapper.updateById(Mockito.any())).thenReturn(1);
+            
when(workflowTaskRelationDao.batchInsert(Mockito.anyList())).thenReturn(1);
+            
when(workflowTaskRelationDao.updateById(Mockito.any())).thenReturn(true);
             
when(workflowTaskRelationLogDao.batchInsert(Mockito.anyList())).thenReturn(2);
             // success
             Long updatedTaskCode = 
taskDefinitionService.updateTaskWithUpstream(user, PROJECT_CODE, TASK_CODE,
diff --git 
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/WorkflowDefinitionServiceTest.java
 
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/WorkflowDefinitionServiceTest.java
index 168d9876bc..b7654c5427 100644
--- 
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/WorkflowDefinitionServiceTest.java
+++ 
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/WorkflowDefinitionServiceTest.java
@@ -64,7 +64,6 @@ import 
org.apache.dolphinscheduler.dao.mapper.TaskDefinitionLogMapper;
 import org.apache.dolphinscheduler.dao.mapper.TaskDefinitionMapper;
 import org.apache.dolphinscheduler.dao.mapper.WorkflowDefinitionLogMapper;
 import org.apache.dolphinscheduler.dao.mapper.WorkflowTaskRelationLogMapper;
-import org.apache.dolphinscheduler.dao.mapper.WorkflowTaskRelationMapper;
 import org.apache.dolphinscheduler.dao.model.PageListingResult;
 import org.apache.dolphinscheduler.dao.repository.ProjectDao;
 import org.apache.dolphinscheduler.dao.repository.ScheduleDao;
@@ -73,6 +72,7 @@ import 
org.apache.dolphinscheduler.dao.repository.TaskInstanceDao;
 import org.apache.dolphinscheduler.dao.repository.UserDao;
 import org.apache.dolphinscheduler.dao.repository.WorkflowDefinitionDao;
 import org.apache.dolphinscheduler.dao.repository.WorkflowDefinitionLogDao;
+import org.apache.dolphinscheduler.dao.repository.WorkflowTaskRelationDao;
 import org.apache.dolphinscheduler.dao.utils.WorkerGroupUtils;
 import 
org.apache.dolphinscheduler.plugin.task.api.model.ConditionDependentItem;
 import 
org.apache.dolphinscheduler.plugin.task.api.model.ConditionDependentTaskModel;
@@ -150,7 +150,7 @@ public class WorkflowDefinitionServiceTest extends 
BaseServiceTestTool {
     private WorkflowDefinitionLogMapper workflowDefinitionLogMapper;
 
     @Mock
-    private WorkflowTaskRelationMapper workflowTaskRelationMapper;
+    private WorkflowTaskRelationDao workflowTaskRelationDao;
 
     @Mock
     private WorkflowTaskRelationLogMapper workflowTaskRelationLogMapper;
@@ -289,7 +289,7 @@ public class WorkflowDefinitionServiceTest extends 
BaseServiceTestTool {
         Mockito.doNothing().when(projectService)
                 .checkProjectAndAuthThrowException(user, project, 
WORKFLOW_BATCH_COPY);
         
when(workflowDefinitionDao.queryByCodes(definitionCodes)).thenReturn(workflowDefinitionList);
-        
when(workflowTaskRelationMapper.queryByWorkflowDefinitionCode(Long.parseLong(codes)))
+        
when(workflowTaskRelationDao.queryByWorkflowDefinitionCode(Long.parseLong(codes)))
                 .thenReturn(workflowTaskRelations);
         
when(taskDefinitionLogDao.queryTaskDefineLogList(workflowTaskRelations)).thenReturn(taskDefinitionLogs);
         when(processService.saveTaskDefine(user, projectCode, 
taskDefinitionLogs, true)).thenReturn(1);
@@ -524,7 +524,7 @@ public class WorkflowDefinitionServiceTest extends 
BaseServiceTestTool {
         }
         
when(workflowDefinitionDao.queryByCodes(definitionCodes)).thenReturn(workflowDefinitionList);
         when(processService.saveWorkflowDefine(user, definition, Boolean.TRUE, 
Boolean.TRUE)).thenReturn(2);
-        
when(workflowTaskRelationMapper.queryByWorkflowDefinitionCode(processDefinitionCode))
+        
when(workflowTaskRelationDao.queryByWorkflowDefinitionCode(processDefinitionCode))
                 .thenReturn(getProcessTaskRelation());
 
         Assertions.assertDoesNotThrow(() -> 
workflowDefinitionService.batchMoveWorkflowDefinition(
@@ -858,7 +858,7 @@ public class WorkflowDefinitionServiceTest extends 
BaseServiceTestTool {
         when(processService.saveTaskDefine(eq(user), eq(projectCode), 
anyList(), eq(Boolean.TRUE))).thenReturn(1);
         when(processService.saveWorkflowDefine(any(User.class), 
any(WorkflowDefinition.class), eq(Boolean.TRUE),
                 eq(Boolean.TRUE))).thenReturn(2);
-        
when(workflowTaskRelationMapper.queryByWorkflowDefinitionCode(processDefinitionCode))
+        
when(workflowTaskRelationDao.queryByWorkflowDefinitionCode(processDefinitionCode))
                 .thenReturn(Collections.emptyList());
         when(processService.saveTaskRelation(eq(user), eq(projectCode), 
eq(processDefinitionCode), eq(2), anyList(),
                 anyList(), 
eq(Boolean.TRUE))).thenReturn(Constants.EXIT_CODE_SUCCESS);
diff --git 
a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/repository/WorkflowTaskRelationDao.java
 
b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/repository/WorkflowTaskRelationDao.java
new file mode 100644
index 0000000000..d84dd0c796
--- /dev/null
+++ 
b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/repository/WorkflowTaskRelationDao.java
@@ -0,0 +1,47 @@
+/*
+ * 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.repository;
+
+import org.apache.dolphinscheduler.dao.entity.WorkflowTaskRelation;
+
+import java.util.List;
+
+public interface WorkflowTaskRelationDao extends IDao<WorkflowTaskRelation> {
+
+    List<WorkflowTaskRelation> queryByWorkflowDefinitionCode(long 
workflowDefinitionCode);
+
+    int batchInsert(List<WorkflowTaskRelation> taskRelationList);
+
+    List<WorkflowTaskRelation> queryUpstreamByCode(long projectCode, long 
taskCode);
+
+    List<WorkflowTaskRelation> queryUpstreamByCodes(long projectCode, long 
taskCode, Long[] preTaskCodes);
+
+    List<WorkflowTaskRelation> 
queryWorkflowTaskRelationsByWorkflowDefinitionCode(long workflowDefinitionCode,
+                                                                               
   Integer workflowDefinitionVersion);
+
+    List<WorkflowTaskRelation> queryDownstreamByWorkflowDefinitionCode(long 
workflowDefinitionCode);
+
+    boolean updateWorkflowTaskRelationTaskVersion(WorkflowTaskRelation 
workflowTaskRelation);
+
+    void deleteByWorkflowDefinitionCodeAndVersion(long workflowDefinitionCode, 
int workflowDefinitionVersion);
+
+    List<WorkflowTaskRelation> 
queryWorkflowTaskRelationByTaskCodeAndTaskVersion(long taskCode, long 
postTaskVersion);
+
+    List<WorkflowTaskRelation> queryByCode(long projectCode, long 
workflowDefinitionCode, long preTaskCode,
+                                           long postTaskCode);
+}
diff --git 
a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/repository/impl/WorkflowTaskRelationDaoImpl.java
 
b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/repository/impl/WorkflowTaskRelationDaoImpl.java
new file mode 100644
index 0000000000..79d84f84c1
--- /dev/null
+++ 
b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/repository/impl/WorkflowTaskRelationDaoImpl.java
@@ -0,0 +1,93 @@
+/*
+ * 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.repository.impl;
+
+import org.apache.dolphinscheduler.dao.entity.WorkflowTaskRelation;
+import org.apache.dolphinscheduler.dao.mapper.WorkflowTaskRelationMapper;
+import org.apache.dolphinscheduler.dao.repository.BaseDao;
+import org.apache.dolphinscheduler.dao.repository.WorkflowTaskRelationDao;
+
+import java.util.List;
+
+import lombok.NonNull;
+
+import org.springframework.stereotype.Repository;
+
+@Repository
+public class WorkflowTaskRelationDaoImpl extends BaseDao<WorkflowTaskRelation, 
WorkflowTaskRelationMapper>
+        implements
+            WorkflowTaskRelationDao {
+
+    public WorkflowTaskRelationDaoImpl(@NonNull WorkflowTaskRelationMapper 
workflowTaskRelationMapper) {
+        super(workflowTaskRelationMapper);
+    }
+
+    @Override
+    public List<WorkflowTaskRelation> queryByWorkflowDefinitionCode(long 
workflowDefinitionCode) {
+        return 
mybatisMapper.queryByWorkflowDefinitionCode(workflowDefinitionCode);
+    }
+
+    @Override
+    public int batchInsert(List<WorkflowTaskRelation> taskRelationList) {
+        return mybatisMapper.batchInsert(taskRelationList);
+    }
+
+    @Override
+    public List<WorkflowTaskRelation> queryUpstreamByCode(long projectCode, 
long taskCode) {
+        return mybatisMapper.queryUpstreamByCode(projectCode, taskCode);
+    }
+
+    @Override
+    public List<WorkflowTaskRelation> queryUpstreamByCodes(long projectCode, 
long taskCode, Long[] preTaskCodes) {
+        return mybatisMapper.queryUpstreamByCodes(projectCode, taskCode, 
preTaskCodes);
+    }
+
+    @Override
+    public List<WorkflowTaskRelation> 
queryWorkflowTaskRelationsByWorkflowDefinitionCode(long workflowDefinitionCode,
+                                                                               
          Integer workflowDefinitionVersion) {
+        return 
mybatisMapper.queryWorkflowTaskRelationsByWorkflowDefinitionCode(workflowDefinitionCode,
+                workflowDefinitionVersion);
+    }
+
+    @Override
+    public List<WorkflowTaskRelation> 
queryDownstreamByWorkflowDefinitionCode(long workflowDefinitionCode) {
+        return 
mybatisMapper.queryDownstreamByWorkflowDefinitionCode(workflowDefinitionCode);
+    }
+
+    @Override
+    public boolean updateWorkflowTaskRelationTaskVersion(WorkflowTaskRelation 
workflowTaskRelation) {
+        return 
mybatisMapper.updateWorkflowTaskRelationTaskVersion(workflowTaskRelation) > 0;
+    }
+
+    @Override
+    public void deleteByWorkflowDefinitionCodeAndVersion(long 
workflowDefinitionCode, int workflowDefinitionVersion) {
+        
mybatisMapper.deleteByWorkflowDefinitionCodeAndVersion(workflowDefinitionCode, 
workflowDefinitionVersion);
+    }
+
+    @Override
+    public List<WorkflowTaskRelation> 
queryWorkflowTaskRelationByTaskCodeAndTaskVersion(long taskCode,
+                                                                               
         long postTaskVersion) {
+        return 
mybatisMapper.queryWorkflowTaskRelationByTaskCodeAndTaskVersion(taskCode, 
postTaskVersion);
+    }
+
+    @Override
+    public List<WorkflowTaskRelation> queryByCode(long projectCode, long 
workflowDefinitionCode, long preTaskCode,
+                                                  long postTaskCode) {
+        return mybatisMapper.queryByCode(projectCode, workflowDefinitionCode, 
preTaskCode, postTaskCode);
+    }
+}

Reply via email to