定时任务、工作流、重试任务、告警通知 列表显示组中文名

This commit is contained in:
zhuangdashia 2025-06-29 23:21:15 +08:00
parent 1dc142e0e7
commit 65d4882397
9 changed files with 189 additions and 10 deletions

View File

@ -12,6 +12,8 @@ import com.aizuda.snailjob.server.web.model.base.PageResult;
import com.aizuda.snailjob.server.web.model.request.JobBatchQueryVO;
import com.aizuda.snailjob.server.web.model.request.UserSessionVO;
import com.aizuda.snailjob.server.common.vo.JobBatchResponseVO;
import com.aizuda.snailjob.server.web.model.response.GroupConfigResponseVO;
import com.aizuda.snailjob.server.web.service.GroupConfigService;
import com.aizuda.snailjob.server.web.service.JobBatchService;
import com.aizuda.snailjob.server.common.convert.JobBatchResponseVOConverter;
import com.aizuda.snailjob.server.web.service.handler.JobHandler;
@ -29,10 +31,8 @@ import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.Set;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author: opensnail
@ -47,6 +47,7 @@ public class JobBatchServiceImpl implements JobBatchService {
private final JobMapper jobMapper;
private final WorkflowNodeMapper workflowNodeMapper;
private final JobHandler jobHandler;
private final GroupConfigService groupConfigService;
@Override
public PageResult<List<JobBatchResponseVO>> getJobBatchPage(final JobBatchQueryVO queryVO) {
@ -73,6 +74,23 @@ public class JobBatchServiceImpl implements JobBatchService {
List<JobBatchResponseDO> batchResponseDOList = jobTaskBatchMapper.selectJobBatchPageList(pageDTO, wrapper);
List<JobBatchResponseVO> batchResponseVOList = JobBatchResponseVOConverter.INSTANCE.convertList(
batchResponseDOList);
//组中文名显示
Set<String> uniqueGroupNames = batchResponseVOList.stream()
.map(JobBatchResponseVO::getGroupName)
.filter(StrUtil::isNotBlank)
.collect(Collectors.toSet());
Map<String, GroupConfigResponseVO> groupConfigMap = groupConfigService.getGroupNameCns(uniqueGroupNames);
// 遍历结果设置groupNameCn
for (JobBatchResponseVO jobResponseVO : batchResponseVOList) {
GroupConfigResponseVO groupConfig = groupConfigMap.get(jobResponseVO.getGroupName());
if (groupConfig != null) {
jobResponseVO.setGroupName(groupConfig.getGroupNameCn());
}
}
return new PageResult<>(pageDTO, batchResponseVOList);
}

View File

@ -25,7 +25,9 @@ import com.aizuda.snailjob.server.job.task.support.JobTaskConverter;
import com.aizuda.snailjob.server.job.task.support.cache.ResidentTaskCache;
import com.aizuda.snailjob.server.web.model.base.PageResult;
import com.aizuda.snailjob.server.web.model.request.*;
import com.aizuda.snailjob.server.web.model.response.GroupConfigResponseVO;
import com.aizuda.snailjob.server.web.model.response.JobResponseVO;
import com.aizuda.snailjob.server.web.service.GroupConfigService;
import com.aizuda.snailjob.server.web.service.JobService;
import com.aizuda.snailjob.server.web.service.convert.JobConverter;
import com.aizuda.snailjob.server.web.service.convert.JobResponseVOConverter;
@ -51,6 +53,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author opensnail
@ -70,6 +73,7 @@ public class JobServiceImpl implements JobService {
private final GroupHandler groupHandler;
private final JobSummaryMapper jobSummaryMapper;
private final SystemUserMapper systemUserMapper;
private final GroupConfigService groupConfigService;
private static Long calculateNextTriggerAt(final JobRequestVO jobRequestVO, Long time) {
if (Objects.equals(jobRequestVO.getTriggerType(), SystemConstants.WORKFLOW_TRIGGER_TYPE)) {
@ -109,6 +113,22 @@ public class JobServiceImpl implements JobService {
jobResponseVO.setOwnerName(systemUser.getUsername());
}
}
//组中文名显示
Set<String> uniqueGroupNames = jobResponseList.stream()
.map(JobResponseVO::getGroupName)
.filter(StrUtil::isNotBlank)
.collect(Collectors.toSet());
Map<String, GroupConfigResponseVO> groupConfigMap = groupConfigService.getGroupNameCns(uniqueGroupNames);
// 遍历结果设置groupNameCn
for (JobResponseVO jobResponseVO : jobResponseList) {
GroupConfigResponseVO groupConfig = groupConfigMap.get(jobResponseVO.getGroupName());
if (groupConfig != null) {
jobResponseVO.setGroupName(groupConfig.getGroupNameCn());
}
}
return new PageResult<>(pageDTO, jobResponseList);
}

View File

@ -9,7 +9,9 @@ import com.aizuda.snailjob.server.web.model.base.PageResult;
import com.aizuda.snailjob.server.web.model.request.NotifyConfigQueryVO;
import com.aizuda.snailjob.server.web.model.request.NotifyConfigRequestVO;
import com.aizuda.snailjob.server.web.model.request.UserSessionVO;
import com.aizuda.snailjob.server.web.model.response.GroupConfigResponseVO;
import com.aizuda.snailjob.server.web.model.response.NotifyConfigResponseVO;
import com.aizuda.snailjob.server.web.service.GroupConfigService;
import com.aizuda.snailjob.server.web.service.NotifyConfigService;
import com.aizuda.snailjob.server.web.service.convert.NotifyConfigConverter;
import com.aizuda.snailjob.server.web.service.convert.NotifyConfigResponseVOConverter;
@ -27,8 +29,10 @@ import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
/**
* @author: opensnail
@ -39,6 +43,7 @@ import java.util.Set;
public class NotifyConfigServiceImpl implements NotifyConfigService {
private final AccessTemplate accessTemplate;
private final GroupConfigService groupConfigService;
@Override
public PageResult<List<NotifyConfigResponseVO>> getNotifyConfigList(NotifyConfigQueryVO queryVO) {
@ -64,6 +69,22 @@ public class NotifyConfigServiceImpl implements NotifyConfigService {
List<NotifyConfigResponseVO> notifyConfigResponseVOS = NotifyConfigResponseVOConverter.INSTANCE.convertList(
notifyConfigs);
//组中文名显示
Set<String> uniqueGroupNames = notifyConfigResponseVOS.stream()
.map(NotifyConfigResponseVO::getGroupName)
.filter(StrUtil::isNotBlank)
.collect(Collectors.toSet());
Map<String, GroupConfigResponseVO> groupConfigMap = groupConfigService.getGroupNameCns(uniqueGroupNames);
// 遍历结果设置groupNameCn
for (NotifyConfigResponseVO responseVO : notifyConfigResponseVOS) {
GroupConfigResponseVO groupConfig = groupConfigMap.get(responseVO.getGroupName());
if (groupConfig != null) {
responseVO.setGroupName(groupConfig.getGroupNameCn());
}
}
return new PageResult<>(pageDTO, notifyConfigResponseVOS);
}

View File

@ -18,7 +18,9 @@ import com.aizuda.snailjob.server.web.model.base.PageResult;
import com.aizuda.snailjob.server.web.model.request.BatchDeleteRetryDeadLetterVO;
import com.aizuda.snailjob.server.web.model.request.BatchRollBackRetryDeadLetterVO;
import com.aizuda.snailjob.server.web.model.request.RetryDeadLetterQueryVO;
import com.aizuda.snailjob.server.web.model.response.GroupConfigResponseVO;
import com.aizuda.snailjob.server.web.model.response.RetryDeadLetterResponseVO;
import com.aizuda.snailjob.server.web.service.GroupConfigService;
import com.aizuda.snailjob.server.web.service.RetryDeadLetterService;
import com.aizuda.snailjob.server.web.service.convert.RetryDeadLetterResponseVOConverter;
import com.aizuda.snailjob.server.web.util.UserSessionUtils;
@ -38,6 +40,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/**
* @author: opensnail
@ -48,6 +51,7 @@ import java.util.Set;
public class RetryDeadLetterServiceImpl implements RetryDeadLetterService {
private final AccessTemplate accessTemplate;
private final SystemProperties systemProperties;
private final GroupConfigService groupConfigService;
@Override
public PageResult<List<RetryDeadLetterResponseVO>> getRetryDeadLetterPage(RetryDeadLetterQueryVO queryVO) {
@ -66,9 +70,25 @@ public class RetryDeadLetterServiceImpl implements RetryDeadLetterService {
.between(ObjUtil.isAllNotEmpty(queryVO.getStartDt(), queryVO.getEndDt()),
RetryDeadLetter::getCreateDt, queryVO.getStartDt(), queryVO.getEndDt())
.orderByDesc(RetryDeadLetter::getId));
List<RetryDeadLetterResponseVO> retryDeadLetterResponseVOS = RetryDeadLetterResponseVOConverter.INSTANCE.convertList(retryDeadLetterPageDTO.getRecords());
return new PageResult<>(retryDeadLetterPageDTO,
RetryDeadLetterResponseVOConverter.INSTANCE.convertList(retryDeadLetterPageDTO.getRecords()));
//组中文名显示
Set<String> uniqueGroupNames = retryDeadLetterResponseVOS.stream()
.map(RetryDeadLetterResponseVO::getGroupName)
.filter(StrUtil::isNotBlank)
.collect(Collectors.toSet());
Map<String, GroupConfigResponseVO> groupConfigMap = groupConfigService.getGroupNameCns(uniqueGroupNames);
// 遍历结果设置groupNameCn
for (RetryDeadLetterResponseVO responseVO : retryDeadLetterResponseVOS) {
GroupConfigResponseVO groupConfig = groupConfigMap.get(responseVO.getGroupName());
if (groupConfig != null) {
responseVO.setGroupName(groupConfig.getGroupNameCn());
}
}
return new PageResult<>(retryDeadLetterPageDTO, retryDeadLetterResponseVOS);
}
@Override

View File

@ -1,5 +1,7 @@
package com.aizuda.snailjob.server.web.service.impl;
import com.aizuda.snailjob.server.web.model.response.GroupConfigResponseVO;
import com.aizuda.snailjob.server.web.service.GroupConfigService;
import org.apache.pekko.actor.ActorRef;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Assert;
@ -60,6 +62,7 @@ import java.time.LocalDateTime;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import static com.aizuda.snailjob.common.core.enums.RetryStatusEnum.ALLOW_DELETE_STATUS;
@ -84,6 +87,8 @@ public class RetryServiceImpl implements RetryService {
private RetryTaskLogMessageMapper retryTaskLogMessageMapper;
@Autowired
private TransactionTemplate transactionTemplate;
@Autowired
private GroupConfigService groupConfigService;
@Override
public PageResult<List<RetryResponseVO>> getRetryPage(RetryQueryVO queryVO) {
@ -126,6 +131,22 @@ public class RetryServiceImpl implements RetryService {
}
}
//组中文名显示
Set<String> uniqueGroupNames = retryResponseList.stream()
.map(RetryResponseVO::getGroupName)
.filter(StrUtil::isNotBlank)
.collect(Collectors.toSet());
Map<String, GroupConfigResponseVO> groupConfigMap = groupConfigService.getGroupNameCns(uniqueGroupNames);
// 遍历结果设置groupNameCn
for (RetryResponseVO retryResponseVO : retryResponseList) {
GroupConfigResponseVO groupConfig = groupConfigMap.get(retryResponseVO.getGroupName());
if (groupConfig != null) {
retryResponseVO.setGroupName(groupConfig.getGroupNameCn());
}
}
return new PageResult<>(pageDTO, retryResponseList);
}

View File

@ -20,8 +20,9 @@ import com.aizuda.snailjob.server.web.model.event.WsSendEvent;
import com.aizuda.snailjob.server.web.model.request.RetryTaskLogMessageQueryVO;
import com.aizuda.snailjob.server.web.model.request.RetryTaskQueryVO;
import com.aizuda.snailjob.server.web.model.request.UserSessionVO;
import com.aizuda.snailjob.server.web.model.response.RetryTaskLogMessageResponseVO;
import com.aizuda.snailjob.server.web.model.response.GroupConfigResponseVO;
import com.aizuda.snailjob.server.web.model.response.RetryTaskResponseVO;
import com.aizuda.snailjob.server.web.service.GroupConfigService;
import com.aizuda.snailjob.server.web.service.RetryTaskService;
import com.aizuda.snailjob.server.retry.task.convert.RetryConverter;
import com.aizuda.snailjob.server.web.service.convert.LogMessagePartitionTaskConverter;
@ -67,6 +68,7 @@ public class RetryTaskServiceImpl implements RetryTaskService {
private final RetryTaskLogMessageMapper retryTaskLogMessageMapper;
private final RetryTaskStopHandler retryTaskStopHandler;
private final AccessTemplate accessTemplate;
private final GroupConfigService groupConfigService;
@Override
public PageResult<List<RetryTaskResponseVO>> getRetryTaskLogPage(RetryTaskQueryVO queryVO) {
@ -90,8 +92,26 @@ public class RetryTaskServiceImpl implements RetryTaskService {
.orderByDesc(RetryTask::getCreateDt);
PageDTO<RetryTask> retryTaskPageDTO = retryTaskMapper.selectPage(pageDTO, wrapper);
return new PageResult<>(retryTaskPageDTO,
RetryTaskLogResponseVOConverter.INSTANCE.convertList(retryTaskPageDTO.getRecords()));
List<RetryTaskResponseVO> retryTaskResponseVOS = RetryTaskLogResponseVOConverter.INSTANCE.convertList(retryTaskPageDTO.getRecords());
//组中文名显示
Set<String> uniqueGroupNames = retryTaskResponseVOS.stream()
.map(RetryTaskResponseVO::getGroupName)
.filter(StrUtil::isNotBlank)
.collect(Collectors.toSet());
Map<String, GroupConfigResponseVO> groupConfigMap = groupConfigService.getGroupNameCns(uniqueGroupNames);
// 遍历结果设置groupNameCn
for (RetryTaskResponseVO responseVO : retryTaskResponseVOS) {
GroupConfigResponseVO groupConfig = groupConfigMap.get(responseVO.getGroupName());
if (groupConfig != null) {
responseVO.setGroupName(groupConfig.getGroupNameCn());
}
}
return new PageResult<>(retryTaskPageDTO,retryTaskResponseVOS);
}

View File

@ -16,7 +16,9 @@ import com.aizuda.snailjob.server.web.model.request.ExportSceneVO;
import com.aizuda.snailjob.server.web.model.request.SceneConfigQueryVO;
import com.aizuda.snailjob.server.web.model.request.SceneConfigRequestVO;
import com.aizuda.snailjob.server.web.model.request.UserSessionVO;
import com.aizuda.snailjob.server.web.model.response.GroupConfigResponseVO;
import com.aizuda.snailjob.server.web.model.response.SceneConfigResponseVO;
import com.aizuda.snailjob.server.web.service.GroupConfigService;
import com.aizuda.snailjob.server.web.service.SceneConfigService;
import com.aizuda.snailjob.server.web.service.convert.SceneConfigConverter;
import com.aizuda.snailjob.server.web.service.convert.SceneConfigResponseVOConverter;
@ -46,6 +48,7 @@ import org.springframework.validation.annotation.Validated;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author: opensnail
@ -59,6 +62,7 @@ public class SceneConfigServiceImpl implements SceneConfigService {
private final AccessTemplate accessTemplate;
private final GroupHandler groupHandler;
private final RetrySummaryMapper retrySummaryMapper;
private final GroupConfigService groupConfigService;
@ -77,7 +81,25 @@ public class SceneConfigServiceImpl implements SceneConfigService {
.likeRight(StrUtil.isNotBlank(queryVO.getSceneName()), RetrySceneConfig::getSceneName, StrUtil.trim(queryVO.getSceneName()))
.orderByDesc(RetrySceneConfig::getCreateDt));
return new PageResult<>(pageDTO, SceneConfigResponseVOConverter.INSTANCE.convertList(pageDTO.getRecords()));
List<SceneConfigResponseVO> sceneConfigResponseVOS = SceneConfigResponseVOConverter.INSTANCE.convertList(pageDTO.getRecords());
//组中文名显示
Set<String> uniqueGroupNames = sceneConfigResponseVOS.stream()
.map(SceneConfigResponseVO::getGroupName)
.filter(StrUtil::isNotBlank)
.collect(Collectors.toSet());
Map<String, GroupConfigResponseVO> groupConfigMap = groupConfigService.getGroupNameCns(uniqueGroupNames);
// 遍历结果设置groupNameCn
for (SceneConfigResponseVO responseVO : sceneConfigResponseVOS) {
GroupConfigResponseVO groupConfig = groupConfigMap.get(responseVO.getGroupName());
if (groupConfig != null) {
responseVO.setGroupName(groupConfig.getGroupNameCn());
}
}
return new PageResult<>(pageDTO, sceneConfigResponseVOS);
}
@Override

View File

@ -19,6 +19,8 @@ import com.aizuda.snailjob.server.web.model.request.WorkflowBatchQueryVO;
import com.aizuda.snailjob.server.common.vo.JobBatchResponseVO;
import com.aizuda.snailjob.server.common.vo.WorkflowBatchResponseVO;
import com.aizuda.snailjob.server.common.vo.WorkflowDetailResponseVO;
import com.aizuda.snailjob.server.web.model.response.GroupConfigResponseVO;
import com.aizuda.snailjob.server.web.service.GroupConfigService;
import com.aizuda.snailjob.server.web.service.WorkflowBatchService;
import com.aizuda.snailjob.server.common.convert.JobBatchResponseVOConverter;
import com.aizuda.snailjob.server.common.convert.WorkflowConverter;
@ -62,6 +64,7 @@ public class WorkflowBatchServiceImpl implements WorkflowBatchService {
private final WorkflowBatchHandler workflowBatchHandler;
private final JobMapper jobMapper;
private final JobHandler jobHandler;
private final GroupConfigService groupConfigService;
private static boolean isNoOperation(JobTaskBatch i) {
return JobOperationReasonEnum.WORKFLOW_SUCCESSOR_SKIP_EXECUTION.contains(i.getOperationReason())
@ -95,6 +98,22 @@ public class WorkflowBatchServiceImpl implements WorkflowBatchService {
List<WorkflowBatchResponseVO> batchResponseVOList =
WorkflowConverter.INSTANCE.convertListToWorkflowBatchList(batchResponseDOList);
//组中文名显示
Set<String> uniqueGroupNames = batchResponseVOList.stream()
.map(WorkflowBatchResponseVO::getGroupName)
.filter(StrUtil::isNotBlank)
.collect(Collectors.toSet());
Map<String, GroupConfigResponseVO> groupConfigMap = groupConfigService.getGroupNameCns(uniqueGroupNames);
// 遍历结果设置groupNameCn
for (WorkflowBatchResponseVO workflowBatchResponseVO : batchResponseVOList) {
GroupConfigResponseVO groupConfig = groupConfigMap.get(workflowBatchResponseVO.getGroupName());
if (groupConfig != null) {
workflowBatchResponseVO.setGroupName(groupConfig.getGroupNameCn());
}
}
return new PageResult<>(pageDTO, batchResponseVOList);
}

View File

@ -34,6 +34,8 @@ import com.aizuda.snailjob.server.web.model.request.*;
import com.aizuda.snailjob.server.common.vo.request.WorkflowRequestVO.NodeConfig;
import com.aizuda.snailjob.server.common.vo.WorkflowDetailResponseVO;
import com.aizuda.snailjob.server.common.vo.WorkflowResponseVO;
import com.aizuda.snailjob.server.web.model.response.GroupConfigResponseVO;
import com.aizuda.snailjob.server.web.service.GroupConfigService;
import com.aizuda.snailjob.server.web.service.WorkflowService;
import com.aizuda.snailjob.server.common.convert.WorkflowConverter;
import com.aizuda.snailjob.server.web.service.handler.GroupHandler;
@ -85,6 +87,7 @@ public class WorkflowServiceImpl implements WorkflowService {
private final AccessTemplate accessTemplate;
private final GroupHandler groupHandler;
private final JobSummaryMapper jobSummaryMapper;
private final GroupConfigService groupConfigService;
@Autowired
private VariableReplacementUtil variableReplacementUtil;
private static Long calculateNextTriggerAt(final WorkflowRequestVO workflowRequestVO, Long time) {
@ -201,6 +204,21 @@ public class WorkflowServiceImpl implements WorkflowService {
List<WorkflowResponseVO> jobResponseList = WorkflowConverter.INSTANCE.convertListToWorkflowList(page.getRecords());
Set<String> uniqueGroupNames = jobResponseList.stream()
.map(WorkflowResponseVO::getGroupName)
.filter(StrUtil::isNotBlank)
.collect(Collectors.toSet());
Map<String, GroupConfigResponseVO> groupConfigMap = groupConfigService.getGroupNameCns(uniqueGroupNames);
// 遍历结果设置groupNameCn
for (WorkflowResponseVO workflowResponseVO : jobResponseList) {
GroupConfigResponseVO groupConfig = groupConfigMap.get(workflowResponseVO.getGroupName());
if (groupConfig != null) {
workflowResponseVO.setGroupName(groupConfig.getGroupNameCn());
}
}
return new PageResult<>(pageDTO, jobResponseList);
}