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 49773e580a [Improvement-18249][DAO] Route WorkflowInstanceMapper
access through WorkflowInstanceDao (#18256)
49773e580a is described below
commit 49773e580a7b40b3aa689e8e156746ebc27e124e
Author: Wenjun Ruan <[email protected]>
AuthorDate: Tue May 19 10:15:00 2026 +0800
[Improvement-18249][DAO] Route WorkflowInstanceMapper access through
WorkflowInstanceDao (#18256)
---
.../impl/WorkflowInstanceAuditOperatorImpl.java | 6 +-
.../api/service/impl/DataAnalysisServiceImpl.java | 8 +--
.../api/service/impl/TenantServiceImpl.java | 8 +--
.../api/service/impl/WorkerGroupServiceImpl.java | 6 +-
.../service/impl/WorkflowInstanceServiceImpl.java | 20 +++---
.../api/controller/WorkerGroupControllerTest.java | 10 +--
.../api/service/DataAnalysisServiceTest.java | 4 +-
.../api/service/TenantServiceTest.java | 8 +--
.../api/service/WorkerGroupServiceTest.java | 8 +--
.../api/service/WorkflowInstanceServiceTest.java | 34 +++++-----
.../dao/repository/WorkflowInstanceDao.java | 42 ++++++++++++
.../repository/impl/WorkflowInstanceDaoImpl.java | 76 ++++++++++++++++++++++
12 files changed, 170 insertions(+), 60 deletions(-)
diff --git
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/audit/operator/impl/WorkflowInstanceAuditOperatorImpl.java
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/audit/operator/impl/WorkflowInstanceAuditOperatorImpl.java
index fec46ac149..1270e42e08 100644
---
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/audit/operator/impl/WorkflowInstanceAuditOperatorImpl.java
+++
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/audit/operator/impl/WorkflowInstanceAuditOperatorImpl.java
@@ -24,7 +24,7 @@ import
org.apache.dolphinscheduler.api.audit.operator.BaseAuditOperator;
import org.apache.dolphinscheduler.common.enums.AuditOperationType;
import org.apache.dolphinscheduler.dao.entity.AuditLog;
import org.apache.dolphinscheduler.dao.entity.WorkflowInstance;
-import org.apache.dolphinscheduler.dao.mapper.WorkflowInstanceMapper;
+import org.apache.dolphinscheduler.dao.repository.WorkflowInstanceDao;
import org.apache.commons.lang3.math.NumberUtils;
@@ -38,7 +38,7 @@ import org.springframework.stereotype.Service;
public class WorkflowInstanceAuditOperatorImpl extends BaseAuditOperator {
@Autowired
- private WorkflowInstanceMapper workflowInstanceMapper;
+ private WorkflowInstanceDao workflowInstanceDao;
@Override
public void modifyAuditOperationType(AuditType auditType, Map<String,
Object> paramsMap,
@@ -64,7 +64,7 @@ public class WorkflowInstanceAuditOperatorImpl extends
BaseAuditOperator {
return "";
}
- WorkflowInstance obj = workflowInstanceMapper.queryDetailById(objId);
+ WorkflowInstance obj = workflowInstanceDao.queryDetailById(objId);
return obj == null ? "" : obj.getName();
}
}
diff --git
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/DataAnalysisServiceImpl.java
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/DataAnalysisServiceImpl.java
index 66c6ba7752..bb832170b7 100644
---
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/DataAnalysisServiceImpl.java
+++
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/DataAnalysisServiceImpl.java
@@ -36,13 +36,13 @@ import org.apache.dolphinscheduler.dao.entity.Project;
import org.apache.dolphinscheduler.dao.entity.User;
import org.apache.dolphinscheduler.dao.mapper.CommandMapper;
import org.apache.dolphinscheduler.dao.mapper.ErrorCommandMapper;
-import org.apache.dolphinscheduler.dao.mapper.WorkflowInstanceMapper;
import org.apache.dolphinscheduler.dao.model.TaskInstanceStatusCountDto;
import org.apache.dolphinscheduler.dao.model.WorkflowDefinitionCountDto;
import org.apache.dolphinscheduler.dao.model.WorkflowInstanceStatusCountDto;
import org.apache.dolphinscheduler.dao.repository.ProjectDao;
import org.apache.dolphinscheduler.dao.repository.TaskInstanceDao;
import org.apache.dolphinscheduler.dao.repository.WorkflowDefinitionDao;
+import org.apache.dolphinscheduler.dao.repository.WorkflowInstanceDao;
import org.apache.commons.collections4.CollectionUtils;
@@ -76,7 +76,7 @@ public class DataAnalysisServiceImpl extends BaseServiceImpl
implements DataAnal
private ProjectService projectService;
@Autowired
- private WorkflowInstanceMapper workflowInstanceMapper;
+ private WorkflowInstanceDao workflowInstanceDao;
@Autowired
private WorkflowDefinitionDao workflowDefinitionDao;
@@ -126,7 +126,7 @@ public class DataAnalysisServiceImpl extends
BaseServiceImpl implements DataAnal
projectService.checkProjectAndAuthThrowException(loginUser,
projectCode, PROJECT_OVERVIEW);
Date start = startDate == null ? null : transformDate(startDate);
Date end = endDate == null ? null : transformDate(endDate);
- List<WorkflowInstanceStatusCountDto> workflowInstanceStatusCountDtos =
workflowInstanceMapper
+ List<WorkflowInstanceStatusCountDto> workflowInstanceStatusCountDtos =
workflowInstanceDao
.countWorkflowInstanceStateByProjectCodes(start, end,
Lists.newArrayList(projectCode));
return WorkflowInstanceCountVO.of(workflowInstanceStatusCountDtos);
}
@@ -143,7 +143,7 @@ public class DataAnalysisServiceImpl extends
BaseServiceImpl implements DataAnal
Date end = endDate == null ? null : transformDate(endDate);
List<WorkflowInstanceStatusCountDto> workflowInstanceStatusCountDtos =
-
workflowInstanceMapper.countWorkflowInstanceStateByProjectCodes(start, end,
projectCodes);
+
workflowInstanceDao.countWorkflowInstanceStateByProjectCodes(start, end,
projectCodes);
return WorkflowInstanceCountVO.of(workflowInstanceStatusCountDtos);
}
diff --git
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TenantServiceImpl.java
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TenantServiceImpl.java
index 747ecf3196..bcdbc5a90c 100644
---
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TenantServiceImpl.java
+++
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TenantServiceImpl.java
@@ -36,10 +36,10 @@ import org.apache.dolphinscheduler.dao.entity.Schedule;
import org.apache.dolphinscheduler.dao.entity.Tenant;
import org.apache.dolphinscheduler.dao.entity.User;
import org.apache.dolphinscheduler.dao.entity.WorkflowInstance;
-import org.apache.dolphinscheduler.dao.mapper.WorkflowInstanceMapper;
import org.apache.dolphinscheduler.dao.repository.ScheduleDao;
import org.apache.dolphinscheduler.dao.repository.TenantDao;
import org.apache.dolphinscheduler.dao.repository.UserDao;
+import org.apache.dolphinscheduler.dao.repository.WorkflowInstanceDao;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
@@ -67,7 +67,7 @@ public class TenantServiceImpl extends BaseServiceImpl
implements TenantService
private TenantDao tenantDao;
@Autowired
- private WorkflowInstanceMapper workflowInstanceMapper;
+ private WorkflowInstanceDao workflowInstanceDao;
@Autowired
private ScheduleDao scheduleDao;
@@ -244,11 +244,11 @@ public class TenantServiceImpl extends BaseServiceImpl
implements TenantService
throw new ServiceException(Status.DELETE_TENANT_BY_ID_ERROR);
}
-
workflowInstanceMapper.updateWorkflowInstanceByTenantCode(tenant.getTenantCode(),
Constants.DEFAULT);
+
workflowInstanceDao.updateWorkflowInstanceByTenantCode(tenant.getTenantCode(),
Constants.DEFAULT);
}
private List<WorkflowInstance> getWorkflowInstancesByTenant(Tenant tenant)
{
- return workflowInstanceMapper.queryByTenantCodeAndStatus(
+ return workflowInstanceDao.queryByTenantCodeAndStatus(
tenant.getTenantCode(),
WorkflowExecutionStatus.NOT_TERMINAL_STATES);
}
diff --git
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkerGroupServiceImpl.java
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkerGroupServiceImpl.java
index ad10d9a1ea..ff0325d84b 100644
---
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkerGroupServiceImpl.java
+++
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkerGroupServiceImpl.java
@@ -43,10 +43,10 @@ import
org.apache.dolphinscheduler.dao.entity.WorkerGroupPageDetail;
import org.apache.dolphinscheduler.dao.entity.WorkflowInstance;
import
org.apache.dolphinscheduler.dao.mapper.EnvironmentWorkerGroupRelationMapper;
import org.apache.dolphinscheduler.dao.mapper.TaskDefinitionMapper;
-import org.apache.dolphinscheduler.dao.mapper.WorkflowInstanceMapper;
import org.apache.dolphinscheduler.dao.repository.ScheduleDao;
import org.apache.dolphinscheduler.dao.repository.WorkerGroupDao;
import org.apache.dolphinscheduler.dao.repository.WorkflowDefinitionDao;
+import org.apache.dolphinscheduler.dao.repository.WorkflowInstanceDao;
import org.apache.dolphinscheduler.extract.base.client.Clients;
import org.apache.dolphinscheduler.extract.master.IMasterContainerService;
import org.apache.dolphinscheduler.registry.api.RegistryClient;
@@ -81,7 +81,7 @@ public class WorkerGroupServiceImpl extends BaseServiceImpl
implements WorkerGro
private WorkerGroupDao workerGroupDao;
@Autowired
- private WorkflowInstanceMapper workflowInstanceMapper;
+ private WorkflowInstanceDao workflowInstanceDao;
@Autowired
private RegistryClient registryClient;
@@ -322,7 +322,7 @@ public class WorkerGroupServiceImpl extends BaseServiceImpl
implements WorkerGro
log.error("Worker group does not exist, workerGroupId:{}.", id);
throw new ServiceException(Status.DELETE_WORKER_GROUP_NOT_EXIST);
}
- List<WorkflowInstance> workflowInstances =
workflowInstanceMapper.queryByWorkerGroupNameAndStatus(
+ List<WorkflowInstance> workflowInstances =
workflowInstanceDao.queryByWorkerGroupNameAndStatus(
workerGroup.getName(),
WorkflowExecutionStatus.NOT_TERMINAL_STATES);
if (CollectionUtils.isNotEmpty(workflowInstances)) {
diff --git
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowInstanceServiceImpl.java
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowInstanceServiceImpl.java
index 4cf2c553b9..7dccef947a 100644
---
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowInstanceServiceImpl.java
+++
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowInstanceServiceImpl.java
@@ -68,7 +68,6 @@ import
org.apache.dolphinscheduler.dao.mapper.RelationSubWorkflowMapper;
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.WorkflowInstanceMapper;
import org.apache.dolphinscheduler.dao.repository.ProjectDao;
import org.apache.dolphinscheduler.dao.repository.TaskInstanceContextDao;
import org.apache.dolphinscheduler.dao.repository.TaskInstanceDao;
@@ -134,9 +133,6 @@ public class WorkflowInstanceServiceImpl extends
BaseServiceImpl implements Work
@Autowired
private TaskInstanceService taskInstanceService;
- @Autowired
- WorkflowInstanceMapper workflowInstanceMapper;
-
@Autowired
WorkflowInstanceDao workflowInstanceDao;
@@ -198,7 +194,7 @@ public class WorkflowInstanceServiceImpl extends
BaseServiceImpl implements Work
throw new
ServiceException(Status.START_TIME_BIGGER_THAN_END_TIME_ERROR, startTime,
endTime);
}
- return workflowInstanceMapper.queryTopNWorkflowInstance(size, start,
end, WorkflowExecutionStatus.SUCCESS,
+ return workflowInstanceDao.queryTopNWorkflowInstance(size, start, end,
WorkflowExecutionStatus.SUCCESS,
projectCode);
}
@@ -254,7 +250,7 @@ public class WorkflowInstanceServiceImpl extends
BaseServiceImpl implements Work
Page<WorkflowInstance> page = new Page<>(pageNo, pageSize);
PageInfo<WorkflowInstance> pageInfo = new PageInfo<>(pageNo, pageSize);
- IPage<WorkflowInstance> workflowInstanceList =
workflowInstanceMapper.queryWorkflowInstanceListPaging(
+ IPage<WorkflowInstance> workflowInstanceList =
workflowInstanceDao.queryWorkflowInstanceListPaging(
page,
projectCode,
workflowDefinitionCode,
@@ -600,7 +596,7 @@ public class WorkflowInstanceServiceImpl extends
BaseServiceImpl implements Work
// check user access for project
projectService.checkProjectAndAuthThrowException(loginUser,
projectCode, WORKFLOW_INSTANCE);
- WorkflowInstance workflowInstance =
workflowInstanceMapper.queryDetailById(workflowInstanceId);
+ WorkflowInstance workflowInstance =
workflowInstanceDao.queryDetailById(workflowInstanceId);
if (workflowInstance == null) {
log.error("workflow instance does not exist, projectCode:{},
workflowInstanceId:{}.", projectCode,
@@ -705,7 +701,7 @@ public class WorkflowInstanceServiceImpl extends
BaseServiceImpl implements Work
public GanttDto viewGantt(User loginUser, long projectCode, Integer
workflowInstanceId) throws Exception {
// check user access for project
projectService.checkProjectAndAuthThrowException(loginUser,
projectCode, WORKFLOW_INSTANCE);
- WorkflowInstance workflowInstance =
workflowInstanceMapper.queryDetailById(workflowInstanceId);
+ WorkflowInstance workflowInstance =
workflowInstanceDao.queryDetailById(workflowInstanceId);
if (workflowInstance == null) {
log.error("workflow instance does not exist, projectCode:{},
workflowInstanceId:{}.", projectCode,
@@ -763,7 +759,7 @@ public class WorkflowInstanceServiceImpl extends
BaseServiceImpl implements Work
@Override
public List<WorkflowInstance> queryByWorkflowDefinitionCodeAndStatus(Long
workflowDefinitionCode, int[] states) {
- return
workflowInstanceMapper.queryByWorkflowDefinitionCodeAndStatus(workflowDefinitionCode,
states);
+ return
workflowInstanceDao.queryByWorkflowDefinitionCodeAndStatus(workflowDefinitionCode,
states);
}
@Override
@@ -775,7 +771,7 @@ public class WorkflowInstanceServiceImpl extends
BaseServiceImpl implements Work
@Override
public List<WorkflowInstance> queryByWorkflowDefinitionCode(Long
workflowDefinitionCode, int size) {
- return
workflowInstanceMapper.queryByWorkflowDefinitionCode(workflowDefinitionCode,
size);
+ return
workflowInstanceDao.queryByWorkflowDefinitionCode(workflowDefinitionCode, size);
}
@Override
@@ -788,14 +784,14 @@ public class WorkflowInstanceServiceImpl extends
BaseServiceImpl implements Work
if (triggerCode == null) {
return Collections.emptyList();
}
- return workflowInstanceMapper.queryByTriggerCode(triggerCode);
+ return workflowInstanceDao.queryByTriggerCode(triggerCode);
}
@Override
public void deleteWorkflowInstanceByWorkflowDefinitionCode(long
workflowDefinitionCode) {
while (true) {
List<WorkflowInstance> workflowInstances =
-
workflowInstanceMapper.queryByWorkflowDefinitionCode(workflowDefinitionCode,
100);
+
workflowInstanceDao.queryByWorkflowDefinitionCode(workflowDefinitionCode, 100);
if (CollectionUtils.isEmpty(workflowInstances)) {
break;
}
diff --git
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/WorkerGroupControllerTest.java
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/WorkerGroupControllerTest.java
index b330d6215f..2be216fbdd 100644
---
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/WorkerGroupControllerTest.java
+++
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/WorkerGroupControllerTest.java
@@ -27,8 +27,8 @@ import org.apache.dolphinscheduler.api.utils.Result;
import org.apache.dolphinscheduler.common.enums.WorkflowExecutionStatus;
import org.apache.dolphinscheduler.common.utils.JSONUtils;
import org.apache.dolphinscheduler.dao.entity.WorkerGroup;
-import org.apache.dolphinscheduler.dao.mapper.WorkflowInstanceMapper;
import org.apache.dolphinscheduler.dao.repository.WorkerGroupDao;
+import org.apache.dolphinscheduler.dao.repository.WorkflowInstanceDao;
import org.apache.dolphinscheduler.registry.api.RegistryClient;
import org.apache.dolphinscheduler.registry.api.enums.RegistryNodeType;
@@ -53,8 +53,8 @@ public class WorkerGroupControllerTest extends
AbstractControllerTest {
@MockBean(name = "workerGroupDao")
private WorkerGroupDao workerGroupDao;
- @MockBean(name = "processInstanceMapper")
- private WorkflowInstanceMapper workflowInstanceMapper;
+ @MockBean
+ private WorkflowInstanceDao workflowInstanceDao;
@MockBean(name = "registryClient")
private RegistryClient registryClient;
@@ -131,11 +131,11 @@ public class WorkerGroupControllerTest extends
AbstractControllerTest {
workerGroup.setId(12);
workerGroup.setName("测试");
Mockito.when(workerGroupDao.queryById(12)).thenReturn(workerGroup);
-
Mockito.when(workflowInstanceMapper.queryByWorkerGroupNameAndStatus("测试",
+ Mockito.when(workflowInstanceDao.queryByWorkerGroupNameAndStatus("测试",
WorkflowExecutionStatus.NOT_TERMINAL_STATES))
.thenReturn(null);
Mockito.when(workerGroupDao.deleteById(12)).thenReturn(true);
-
Mockito.when(workflowInstanceMapper.updateWorkflowInstanceByWorkerGroupName("测试",
"")).thenReturn(1);
+
Mockito.when(workflowInstanceDao.updateWorkflowInstanceByWorkerGroupName("测试",
"")).thenReturn(1);
MvcResult mvcResult = mockMvc.perform(delete("/worker-groups/{id}",
"12")
.header("sessionId", sessionId))
diff --git
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/DataAnalysisServiceTest.java
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/DataAnalysisServiceTest.java
index 84e2e56895..25bd8a1055 100644
---
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/DataAnalysisServiceTest.java
+++
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/DataAnalysisServiceTest.java
@@ -46,10 +46,10 @@ import org.apache.dolphinscheduler.dao.entity.Project;
import org.apache.dolphinscheduler.dao.entity.User;
import org.apache.dolphinscheduler.dao.mapper.CommandMapper;
import org.apache.dolphinscheduler.dao.mapper.ErrorCommandMapper;
-import org.apache.dolphinscheduler.dao.mapper.WorkflowInstanceMapper;
import org.apache.dolphinscheduler.dao.repository.ProjectDao;
import org.apache.dolphinscheduler.dao.repository.TaskInstanceDao;
import org.apache.dolphinscheduler.dao.repository.WorkflowDefinitionDao;
+import org.apache.dolphinscheduler.dao.repository.WorkflowInstanceDao;
import org.apache.dolphinscheduler.plugin.task.api.enums.TaskExecutionStatus;
import java.text.MessageFormat;
@@ -92,7 +92,7 @@ public class DataAnalysisServiceTest {
ProjectService projectService;
@Mock
- WorkflowInstanceMapper workflowInstanceMapper;
+ WorkflowInstanceDao workflowInstanceDao;
@Mock
WorkflowDefinitionDao workflowDefinitionDao;
diff --git
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TenantServiceTest.java
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TenantServiceTest.java
index 3fa5f7f082..96baa93fb6 100644
---
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TenantServiceTest.java
+++
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TenantServiceTest.java
@@ -38,10 +38,10 @@ import org.apache.dolphinscheduler.dao.entity.Schedule;
import org.apache.dolphinscheduler.dao.entity.Tenant;
import org.apache.dolphinscheduler.dao.entity.User;
import org.apache.dolphinscheduler.dao.entity.WorkflowInstance;
-import org.apache.dolphinscheduler.dao.mapper.WorkflowInstanceMapper;
import org.apache.dolphinscheduler.dao.repository.ScheduleDao;
import org.apache.dolphinscheduler.dao.repository.TenantDao;
import org.apache.dolphinscheduler.dao.repository.UserDao;
+import org.apache.dolphinscheduler.dao.repository.WorkflowInstanceDao;
import org.apache.commons.collections4.CollectionUtils;
@@ -87,7 +87,7 @@ public class TenantServiceTest {
private ScheduleDao scheduleDao;
@Mock
- private WorkflowInstanceMapper workflowInstanceMapper;
+ private WorkflowInstanceDao workflowInstanceDao;
@Mock
private UserDao userDao;
@@ -188,7 +188,7 @@ public class TenantServiceTest {
when(resourcePermissionCheckService.resourcePermissionCheck(AuthorizationType.TENANT,
null, 0,
baseServiceLogger)).thenReturn(true);
when(tenantDao.queryDetailById(1)).thenReturn(getTenant());
- when(workflowInstanceMapper.queryByTenantCodeAndStatus(tenantCode,
+ when(workflowInstanceDao.queryByTenantCodeAndStatus(tenantCode,
WorkflowExecutionStatus.NOT_TERMINAL_STATES))
.thenReturn(getInstanceList());
when(scheduleDao.queryScheduleListByTenant(tenantCode)).thenReturn(getScheduleList());
@@ -202,7 +202,7 @@ public class TenantServiceTest {
() -> tenantService.deleteTenantById(getLoginUser(), 1));
// DELETE_TENANT_BY_ID_FAIL_DEFINES
- when(workflowInstanceMapper.queryByTenantCodeAndStatus(any(),
any())).thenReturn(Collections.emptyList());
+ when(workflowInstanceDao.queryByTenantCodeAndStatus(any(),
any())).thenReturn(Collections.emptyList());
when(tenantDao.queryDetailById(2)).thenReturn(getTenant(2));
assertThrowsServiceException(Status.DELETE_TENANT_BY_ID_FAIL_DEFINES,
() -> tenantService.deleteTenantById(getLoginUser(), 2));
diff --git
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/WorkerGroupServiceTest.java
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/WorkerGroupServiceTest.java
index dddc793c08..e0bc7f22f0 100644
---
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/WorkerGroupServiceTest.java
+++
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/WorkerGroupServiceTest.java
@@ -37,9 +37,9 @@ import org.apache.dolphinscheduler.dao.entity.WorkerGroup;
import org.apache.dolphinscheduler.dao.entity.WorkflowInstance;
import
org.apache.dolphinscheduler.dao.mapper.EnvironmentWorkerGroupRelationMapper;
import org.apache.dolphinscheduler.dao.mapper.TaskDefinitionMapper;
-import org.apache.dolphinscheduler.dao.mapper.WorkflowInstanceMapper;
import org.apache.dolphinscheduler.dao.repository.ScheduleDao;
import org.apache.dolphinscheduler.dao.repository.WorkerGroupDao;
+import org.apache.dolphinscheduler.dao.repository.WorkflowInstanceDao;
import org.apache.dolphinscheduler.registry.api.RegistryClient;
import org.apache.dolphinscheduler.registry.api.enums.RegistryNodeType;
@@ -78,7 +78,7 @@ public class WorkerGroupServiceTest {
private WorkerGroupDao workerGroupDao;
@Mock
- private WorkflowInstanceMapper workflowInstanceMapper;
+ private WorkflowInstanceDao workflowInstanceDao;
@Mock
private RegistryClient registryClient;
@@ -233,7 +233,7 @@ public class WorkerGroupServiceTest {
workflowInstance.setId(1);
List<WorkflowInstance> workflowInstances = new
ArrayList<WorkflowInstance>();
workflowInstances.add(workflowInstance);
-
when(workflowInstanceMapper.queryByWorkerGroupNameAndStatus(workerGroup.getName(),
+
when(workflowInstanceDao.queryByWorkerGroupNameAndStatus(workerGroup.getName(),
WorkflowExecutionStatus.NOT_TERMINAL_STATES))
.thenReturn(workflowInstances);
@@ -250,7 +250,7 @@ public class WorkerGroupServiceTest {
baseServiceLogger)).thenReturn(true);
WorkerGroup workerGroup = getWorkerGroup(1);
when(workerGroupDao.queryById(1)).thenReturn(workerGroup);
-
when(workflowInstanceMapper.queryByWorkerGroupNameAndStatus(workerGroup.getName(),
+
when(workflowInstanceDao.queryByWorkerGroupNameAndStatus(workerGroup.getName(),
WorkflowExecutionStatus.NOT_TERMINAL_STATES)).thenReturn(null);
when(taskDefinitionMapper.selectList(Mockito.any())).thenReturn(null);
diff --git
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/WorkflowInstanceServiceTest.java
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/WorkflowInstanceServiceTest.java
index f616eab48a..b0f6edf511 100644
---
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/WorkflowInstanceServiceTest.java
+++
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/WorkflowInstanceServiceTest.java
@@ -59,7 +59,6 @@ import
org.apache.dolphinscheduler.dao.entity.WorkflowDefinitionLog;
import org.apache.dolphinscheduler.dao.entity.WorkflowInstance;
import org.apache.dolphinscheduler.dao.mapper.TaskDefinitionMapper;
import org.apache.dolphinscheduler.dao.mapper.WorkflowDefinitionLogMapper;
-import org.apache.dolphinscheduler.dao.mapper.WorkflowInstanceMapper;
import org.apache.dolphinscheduler.dao.repository.ProjectDao;
import org.apache.dolphinscheduler.dao.repository.TaskInstanceContextDao;
import org.apache.dolphinscheduler.dao.repository.TaskInstanceDao;
@@ -121,9 +120,6 @@ public class WorkflowInstanceServiceTest {
@Mock
WorkflowInstanceDao workflowInstanceDao;
- @Mock
- WorkflowInstanceMapper workflowInstanceMapper;
-
@Mock
WorkflowDefinitionLogMapper workflowDefinitionLogMapper;
@@ -226,7 +222,7 @@ public class WorkflowInstanceServiceTest {
Mockito.any(Project.class),
Mockito.any());
when(workflowDefinitionDao.queryById(Mockito.any())).thenReturn(getProcessDefinition());
-
when(workflowInstanceMapper.queryWorkflowInstanceListPaging(Mockito.any(Page.class),
Mockito.any(),
+
when(workflowInstanceDao.queryWorkflowInstanceListPaging(Mockito.any(Page.class),
Mockito.any(),
Mockito.any(),
Mockito.any(), Mockito.any(), Mockito.any(),
eq("192.168.xx.xx"), Mockito.any(),
Mockito.any())).thenReturn(pageReturn);
@@ -248,7 +244,7 @@ public class WorkflowInstanceServiceTest {
doNothing().when(projectService).checkProjectAndAuthThrowException(loginUser,
projectCode, WORKFLOW_INSTANCE);
when(usersService.queryUser(loginUser.getId())).thenReturn(loginUser);
when(usersService.getUserIdByName(loginUser.getUserName())).thenReturn(loginUser.getId());
- when(workflowInstanceMapper.queryWorkflowInstanceListPaging(
+ when(workflowInstanceDao.queryWorkflowInstanceListPaging(
Mockito.any(Page.class),
eq(project.getCode()),
eq(1L),
@@ -268,7 +264,7 @@ public class WorkflowInstanceServiceTest {
Assertions.assertEquals(Status.SUCCESS.getCode(), (int)
successRes.getCode());
// data parameter empty
-
when(workflowInstanceMapper.queryWorkflowInstanceListPaging(Mockito.any(Page.class),
eq(project.getCode()),
+
when(workflowInstanceDao.queryWorkflowInstanceListPaging(Mockito.any(Page.class),
eq(project.getCode()),
eq(1L), eq(""), eq(""), Mockito.any(),
eq("192.168.xx.xx"), eq(null),
eq(null))).thenReturn(pageReturn);
successRes =
workflowInstanceService.queryWorkflowInstanceList(loginUser, projectCode, 1, "",
@@ -287,7 +283,7 @@ public class WorkflowInstanceServiceTest {
Assertions.assertEquals(Status.SUCCESS.getCode(), (int)
executorExistRes.getCode());
// executor name empty
-
when(workflowInstanceMapper.queryWorkflowInstanceListPaging(Mockito.any(Page.class),
eq(project.getCode()),
+
when(workflowInstanceDao.queryWorkflowInstanceListPaging(Mockito.any(Page.class),
eq(project.getCode()),
eq(1L), eq(""), eq("admin"), Mockito.any(),
eq("192.168.xx.xx"), eq(start),
eq(end))).thenReturn(pageReturn);
Result executorEmptyRes =
@@ -318,7 +314,7 @@ public class WorkflowInstanceServiceTest {
workflowInstanceService.queryByTriggerCode(loginUser,
projectCode, null);
Assertions.assertTrue(nullTriggerRes.isEmpty());
- when(workflowInstanceMapper.queryByTriggerCode(999L)).thenReturn(new
ArrayList<>());
+ when(workflowInstanceDao.queryByTriggerCode(999L)).thenReturn(new
ArrayList<>());
List<WorkflowInstance> emptyRes =
workflowInstanceService.queryByTriggerCode(loginUser, projectCode, 999L);
Assertions.assertTrue(emptyRes.isEmpty());
}
@@ -345,7 +341,7 @@ public class WorkflowInstanceServiceTest {
assertThrowsServiceException(Status.NEGTIVE_SIZE_NUMBER_ERROR, () ->
workflowInstanceService
.queryTopNLongestRunningWorkflowInstance(loginUser,
projectCode, -1, startTime, endTime));
-
when(workflowInstanceMapper.queryTopNWorkflowInstance(Mockito.eq(size),
Mockito.any(), Mockito.any(),
+ when(workflowInstanceDao.queryTopNWorkflowInstance(Mockito.eq(size),
Mockito.any(), Mockito.any(),
Mockito.eq(WorkflowExecutionStatus.SUCCESS),
Mockito.eq(projectCode)))
.thenReturn(new ArrayList<>());
List<WorkflowInstance> successRes =
workflowInstanceService.queryTopNLongestRunningWorkflowInstance(loginUser,
@@ -717,11 +713,11 @@ public class WorkflowInstanceServiceTest {
workflowInstance.setCommandType(CommandType.SCHEDULER);
workflowInstance.setScheduleTime(new Date());
workflowInstance.setGlobalParams("");
-
when(workflowInstanceMapper.queryDetailById(1)).thenReturn(workflowInstance);
+
when(workflowInstanceDao.queryDetailById(1)).thenReturn(workflowInstance);
WorkflowInstanceVariablesDTO successRes =
workflowInstanceService.viewVariables(loginUser, projectCode, 1);
Assertions.assertNotNull(successRes);
- when(workflowInstanceMapper.queryDetailById(1)).thenReturn(null);
+ when(workflowInstanceDao.queryDetailById(1)).thenReturn(null);
assertThrowsServiceException(Status.WORKFLOW_INSTANCE_NOT_EXIST,
() -> workflowInstanceService.viewVariables(loginUser,
projectCode, 1));
@@ -754,7 +750,7 @@ public class WorkflowInstanceServiceTest {
workflowInstance.setGlobalParams(globalParamsJson);
workflowInstance.setWorkflowDefinitionCode(100L);
-
when(workflowInstanceMapper.queryDetailById(1)).thenReturn(workflowInstance);
+
when(workflowInstanceDao.queryDetailById(1)).thenReturn(workflowInstance);
WorkflowDefinition workflowDefinition = new WorkflowDefinition();
workflowDefinition.setCode(100L);
@@ -789,7 +785,7 @@ public class WorkflowInstanceServiceTest {
doNothing().when(projectService)
.checkProjectAndAuthThrowException(loginUser, projectCode,
WORKFLOW_INSTANCE);
- when(workflowInstanceMapper.queryDetailById(999)).thenReturn(null);
+ when(workflowInstanceDao.queryDetailById(999)).thenReturn(null);
assertThrowsServiceException(Status.WORKFLOW_INSTANCE_NOT_EXIST,
() -> workflowInstanceService.viewVariables(loginUser,
projectCode, 999));
@@ -809,7 +805,7 @@ public class WorkflowInstanceServiceTest {
workflowInstance.setGlobalParams("");
workflowInstance.setWorkflowDefinitionCode(101L);
-
when(workflowInstanceMapper.queryDetailById(2)).thenReturn(workflowInstance);
+
when(workflowInstanceDao.queryDetailById(2)).thenReturn(workflowInstance);
WorkflowDefinition workflowDefinition = new WorkflowDefinition();
workflowDefinition.setCode(101L);
@@ -833,11 +829,11 @@ public class WorkflowInstanceServiceTest {
TaskInstance taskInstance = getTaskInstance();
taskInstance.setState(TaskExecutionStatus.RUNNING_EXECUTION);
taskInstance.setStartTime(new Date());
-
when(workflowInstanceMapper.queryDetailById(1)).thenReturn(workflowInstance);
+
when(workflowInstanceDao.queryDetailById(1)).thenReturn(workflowInstance);
when(workflowDefinitionLogMapper.queryByDefinitionCodeAndVersion(
workflowInstance.getWorkflowDefinitionCode(),
workflowInstance.getWorkflowDefinitionVersion())).thenReturn(new
WorkflowDefinitionLog());
-
when(workflowInstanceMapper.queryDetailById(1)).thenReturn(workflowInstance);
+
when(workflowInstanceDao.queryDetailById(1)).thenReturn(workflowInstance);
DAG<Long, TaskNode, TaskNodeRelation> graph = new DAG<>();
for (long i = 1; i <= 7; ++i) {
graph.addNode(i, new TaskNode());
@@ -848,7 +844,7 @@ public class WorkflowInstanceServiceTest {
Assertions.assertNotNull(workflowInstanceService.viewGantt(loginUser,
projectCode, 1));
- when(workflowInstanceMapper.queryDetailById(1)).thenReturn(null);
+ when(workflowInstanceDao.queryDetailById(1)).thenReturn(null);
assertThrowsServiceException(Status.WORKFLOW_INSTANCE_NOT_EXIST,
() -> workflowInstanceService.viewGantt(loginUser,
projectCode, 1));
@@ -882,7 +878,7 @@ public class WorkflowInstanceServiceTest {
workflowInstance.setScheduleTime(new Date());
workflowInstance.setCommandParam(JSONUtils.toJsonString(runWorkflowCommandParam));
-
when(workflowInstanceMapper.queryDetailById(1)).thenReturn(workflowInstance);
+
when(workflowInstanceDao.queryDetailById(1)).thenReturn(workflowInstance);
Assertions.assertNotNull(workflowInstanceService.viewVariables(loginUser,
projectCode, 1));
final RunWorkflowCommandParam commandParamWithEmptyTimeZone =
RunWorkflowCommandParam.builder()
diff --git
a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/repository/WorkflowInstanceDao.java
b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/repository/WorkflowInstanceDao.java
index 52b0770109..248391aa45 100644
---
a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/repository/WorkflowInstanceDao.java
+++
b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/repository/WorkflowInstanceDao.java
@@ -19,10 +19,16 @@ package org.apache.dolphinscheduler.dao.repository;
import org.apache.dolphinscheduler.common.enums.WorkflowExecutionStatus;
import org.apache.dolphinscheduler.dao.entity.WorkflowInstance;
+import org.apache.dolphinscheduler.dao.model.WorkflowInstanceStatusCountDto;
import org.apache.dolphinscheduler.plugin.task.api.model.DateInterval;
+import java.util.Collection;
+import java.util.Date;
import java.util.List;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
public interface WorkflowInstanceDao extends IDao<WorkflowInstance> {
/**
@@ -92,4 +98,40 @@ public interface WorkflowInstanceDao extends
IDao<WorkflowInstance> {
* Query the workflow instances under the master that need to be failover.
*/
List<WorkflowInstance> queryNeedFailoverWorkflowInstances(String
masterAddress);
+
+ WorkflowInstance queryDetailById(int id);
+
+ List<WorkflowInstanceStatusCountDto>
countWorkflowInstanceStateByProjectCodes(Date startTime,
+
Date endTime,
+
Collection<Long> projectCodes);
+
+ int updateWorkflowInstanceByTenantCode(String originTenantCode, String
destTenantCode);
+
+ int updateWorkflowInstanceByWorkerGroupName(String originWorkerGroupName,
String destWorkerGroupName);
+
+ List<WorkflowInstance> queryByTenantCodeAndStatus(String tenantCode, int[]
states);
+
+ List<WorkflowInstance> queryByWorkerGroupNameAndStatus(String
workerGroupName, int[] states);
+
+ List<WorkflowInstance> queryTopNWorkflowInstance(int size,
+ Date startTime,
+ Date endTime,
+ WorkflowExecutionStatus
status,
+ long projectCode);
+
+ IPage<WorkflowInstance>
queryWorkflowInstanceListPaging(Page<WorkflowInstance> page,
+ Long projectCode,
+ Long
workflowDefinitionCode,
+ String searchVal,
+ String
executorName,
+ int[] statusArray,
+ String host,
+ Date startTime,
+ Date endTime);
+
+ List<WorkflowInstance> queryByWorkflowDefinitionCodeAndStatus(Long
workflowDefinitionCode, int[] states);
+
+ List<WorkflowInstance> queryByWorkflowDefinitionCode(Long
workflowDefinitionCode, int size);
+
+ List<WorkflowInstance> queryByTriggerCode(Long triggerCode);
}
diff --git
a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/repository/impl/WorkflowInstanceDaoImpl.java
b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/repository/impl/WorkflowInstanceDaoImpl.java
index 6f35057d44..9d8772d6c7 100644
---
a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/repository/impl/WorkflowInstanceDaoImpl.java
+++
b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/repository/impl/WorkflowInstanceDaoImpl.java
@@ -22,10 +22,13 @@ import
org.apache.dolphinscheduler.dao.entity.WorkflowInstance;
import org.apache.dolphinscheduler.dao.entity.WorkflowInstanceRelation;
import org.apache.dolphinscheduler.dao.mapper.WorkflowInstanceMapper;
import org.apache.dolphinscheduler.dao.mapper.WorkflowInstanceRelationMapper;
+import org.apache.dolphinscheduler.dao.model.WorkflowInstanceStatusCountDto;
import org.apache.dolphinscheduler.dao.repository.BaseDao;
import org.apache.dolphinscheduler.dao.repository.WorkflowInstanceDao;
import org.apache.dolphinscheduler.plugin.task.api.model.DateInterval;
+import java.util.Collection;
+import java.util.Date;
import java.util.List;
import lombok.NonNull;
@@ -34,6 +37,9 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
@Slf4j
@Repository
public class WorkflowInstanceDaoImpl extends BaseDao<WorkflowInstance,
WorkflowInstanceMapper>
@@ -175,4 +181,74 @@ public class WorkflowInstanceDaoImpl extends
BaseDao<WorkflowInstance, WorkflowI
return mybatisMapper.queryByHostAndStatus(masterAddress,
WorkflowExecutionStatus.NEED_FAILOVER_STATES);
}
+
+ @Override
+ public WorkflowInstance queryDetailById(int id) {
+ return mybatisMapper.queryDetailById(id);
+ }
+
+ @Override
+ public List<WorkflowInstanceStatusCountDto>
countWorkflowInstanceStateByProjectCodes(Date startTime,
+
Date endTime,
+
Collection<Long> projectCodes) {
+ return
mybatisMapper.countWorkflowInstanceStateByProjectCodes(startTime, endTime,
projectCodes);
+ }
+
+ @Override
+ public int updateWorkflowInstanceByTenantCode(String originTenantCode,
String destTenantCode) {
+ return
mybatisMapper.updateWorkflowInstanceByTenantCode(originTenantCode,
destTenantCode);
+ }
+
+ @Override
+ public int updateWorkflowInstanceByWorkerGroupName(String
originWorkerGroupName, String destWorkerGroupName) {
+ return
mybatisMapper.updateWorkflowInstanceByWorkerGroupName(originWorkerGroupName,
destWorkerGroupName);
+ }
+
+ @Override
+ public List<WorkflowInstance> queryByTenantCodeAndStatus(String
tenantCode, int[] states) {
+ return mybatisMapper.queryByTenantCodeAndStatus(tenantCode, states);
+ }
+
+ @Override
+ public List<WorkflowInstance> queryByWorkerGroupNameAndStatus(String
workerGroupName, int[] states) {
+ return mybatisMapper.queryByWorkerGroupNameAndStatus(workerGroupName,
states);
+ }
+
+ @Override
+ public List<WorkflowInstance> queryTopNWorkflowInstance(int size,
+ Date startTime,
+ Date endTime,
+
WorkflowExecutionStatus status,
+ long projectCode) {
+ return mybatisMapper.queryTopNWorkflowInstance(size, startTime,
endTime, status, projectCode);
+ }
+
+ @Override
+ public IPage<WorkflowInstance>
queryWorkflowInstanceListPaging(Page<WorkflowInstance> page,
+ Long
projectCode,
+ Long
workflowDefinitionCode,
+ String
searchVal,
+ String
executorName,
+ int[]
statusArray,
+ String host,
+ Date
startTime,
+ Date
endTime) {
+ return mybatisMapper.queryWorkflowInstanceListPaging(page,
projectCode, workflowDefinitionCode, searchVal,
+ executorName, statusArray, host, startTime, endTime);
+ }
+
+ @Override
+ public List<WorkflowInstance> queryByWorkflowDefinitionCodeAndStatus(Long
workflowDefinitionCode, int[] states) {
+ return
mybatisMapper.queryByWorkflowDefinitionCodeAndStatus(workflowDefinitionCode,
states);
+ }
+
+ @Override
+ public List<WorkflowInstance> queryByWorkflowDefinitionCode(Long
workflowDefinitionCode, int size) {
+ return
mybatisMapper.queryByWorkflowDefinitionCode(workflowDefinitionCode, size);
+ }
+
+ @Override
+ public List<WorkflowInstance> queryByTriggerCode(Long triggerCode) {
+ return mybatisMapper.queryByTriggerCode(triggerCode);
+ }
}