feat:(1.3.0-beta1): 任务管理列表新增负责人

This commit is contained in:
wodeyangzipingpingwuqi 2024-12-27 17:27:01 +08:00
parent e1cc61fd47
commit d19635b3e4
6 changed files with 45 additions and 4 deletions

View File

@ -147,4 +147,9 @@ public class Job extends CreateUpdateDt {
*/ */
private String notifyIds; private String notifyIds;
/**
* 负责人id
*/
private Long owerId;
} }

View File

@ -15,5 +15,6 @@ public class JobQueryVO extends BaseQueryVO {
private String groupName; private String groupName;
private String jobName; private String jobName;
private Integer jobStatus; private Integer jobStatus;
private String owerName;
private String executorInfo; private String executorInfo;
} }

View File

@ -130,4 +130,9 @@ public class JobRequestVO {
*/ */
private Set<Long> notifyIds; private Set<Long> notifyIds;
/**
* 负责人id
*/
private Long owerId;
} }

View File

@ -134,4 +134,12 @@ public class JobResponseVO {
* 通知告警场景配置id列表 * 通知告警场景配置id列表
*/ */
private Set<Long> notifyIds; private Set<Long> notifyIds;
/**
* 负责人名称
*/
private String owerName;
private Long owerId;
} }

View File

@ -33,11 +33,14 @@ import com.aizuda.snailjob.server.web.util.UserSessionUtils;
import com.aizuda.snailjob.template.datasource.access.AccessTemplate; import com.aizuda.snailjob.template.datasource.access.AccessTemplate;
import com.aizuda.snailjob.template.datasource.persistence.mapper.JobMapper; import com.aizuda.snailjob.template.datasource.persistence.mapper.JobMapper;
import com.aizuda.snailjob.template.datasource.persistence.mapper.JobSummaryMapper; import com.aizuda.snailjob.template.datasource.persistence.mapper.JobSummaryMapper;
import com.aizuda.snailjob.template.datasource.persistence.mapper.SystemUserMapper;
import com.aizuda.snailjob.template.datasource.persistence.po.GroupConfig; import com.aizuda.snailjob.template.datasource.persistence.po.GroupConfig;
import com.aizuda.snailjob.template.datasource.persistence.po.Job; import com.aizuda.snailjob.template.datasource.persistence.po.Job;
import com.aizuda.snailjob.template.datasource.persistence.po.JobSummary; import com.aizuda.snailjob.template.datasource.persistence.po.JobSummary;
import com.aizuda.snailjob.template.datasource.persistence.po.SystemUser;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
import com.google.common.collect.Lists;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.Getter; import lombok.Getter;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -48,6 +51,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
/** /**
* @author opensnail * @author opensnail
@ -66,6 +70,7 @@ public class JobServiceImpl implements JobService {
private final AccessTemplate accessTemplate; private final AccessTemplate accessTemplate;
private final GroupHandler groupHandler; private final GroupHandler groupHandler;
private final JobSummaryMapper jobSummaryMapper; private final JobSummaryMapper jobSummaryMapper;
private final SystemUserMapper systemUserMapper;
private static Long calculateNextTriggerAt(final JobRequestVO jobRequestVO, Long time) { private static Long calculateNextTriggerAt(final JobRequestVO jobRequestVO, Long time) {
if (Objects.equals(jobRequestVO.getTriggerType(), SystemConstants.WORKFLOW_TRIGGER_TYPE)) { if (Objects.equals(jobRequestVO.getTriggerType(), SystemConstants.WORKFLOW_TRIGGER_TYPE)) {
@ -86,20 +91,35 @@ public class JobServiceImpl implements JobService {
UserSessionVO userSessionVO = UserSessionUtils.currentUserSession(); UserSessionVO userSessionVO = UserSessionUtils.currentUserSession();
List<String> groupNames = UserSessionUtils.getGroupNames(queryVO.getGroupName()); List<String> groupNames = UserSessionUtils.getGroupNames(queryVO.getGroupName());
Set<Long> owerIds = systemUserMapper.selectList(new LambdaQueryWrapper<SystemUser>()
.select(SystemUser::getId)
.likeRight(SystemUser::getUsername, queryVO.getOwerName()))
.stream()
.map(i -> i.getId())
.collect(Collectors.toSet());
if (CollUtil.isEmpty(owerIds) && StrUtil.isNotBlank(queryVO.getOwerName())) {
return new PageResult<>(pageDTO, Lists.newArrayList());
}
PageDTO<Job> selectPage = jobMapper.selectPage(pageDTO, PageDTO<Job> selectPage = jobMapper.selectPage(pageDTO,
new LambdaQueryWrapper<Job>() new LambdaQueryWrapper<Job>()
.eq(Job::getNamespaceId, userSessionVO.getNamespaceId()) .eq(Job::getNamespaceId, userSessionVO.getNamespaceId())
.in(CollUtil.isNotEmpty(groupNames), Job::getGroupName, groupNames) .in(CollUtil.isNotEmpty(groupNames), Job::getGroupName, groupNames)
.likeRight(StrUtil.isNotBlank(queryVO.getJobName()), Job::getJobName, .likeRight(StrUtil.isNotBlank(queryVO.getJobName()), Job::getJobName, StrUtil.trim(queryVO.getJobName()))
StrUtil.trim(queryVO.getJobName()))
.like(StrUtil.isNotBlank(queryVO.getExecutorInfo()), Job::getExecutorInfo, .like(StrUtil.isNotBlank(queryVO.getExecutorInfo()), Job::getExecutorInfo,
StrUtil.trim(queryVO.getExecutorInfo())) StrUtil.trim(queryVO.getExecutorInfo()))
.eq(Objects.nonNull(queryVO.getJobStatus()), Job::getJobStatus, queryVO.getJobStatus()) .eq(Objects.nonNull(queryVO.getJobStatus()), Job::getJobStatus, queryVO.getJobStatus())
.eq(Job::getDeleted, StatusEnum.NO.getStatus()) .eq(Job::getDeleted, StatusEnum.NO.getStatus())
.in(CollUtil.isNotEmpty(owerIds), Job::getOwerId, owerIds)
.orderByDesc(Job::getId)); .orderByDesc(Job::getId));
List<JobResponseVO> jobResponseList = JobResponseVOConverter.INSTANCE.convertList(selectPage.getRecords()); List<JobResponseVO> jobResponseList = JobResponseVOConverter.INSTANCE.convertList(selectPage.getRecords());
for (JobResponseVO jobResponseVO : jobResponseList) {
SystemUser systemUser = systemUserMapper.selectById(jobResponseVO.getOwerId());
if (Objects.nonNull(systemUser)) {
jobResponseVO.setOwerName(systemUser.getUsername());
}
}
return new PageResult<>(pageDTO, jobResponseList); return new PageResult<>(pageDTO, jobResponseList);
} }
@ -142,6 +162,7 @@ public class JobServiceImpl implements JobService {
job.setNextTriggerAt(calculateNextTriggerAt(jobRequestVO, DateUtils.toNowMilli())); job.setNextTriggerAt(calculateNextTriggerAt(jobRequestVO, DateUtils.toNowMilli()));
job.setNamespaceId(UserSessionUtils.currentUserSession().getNamespaceId()); job.setNamespaceId(UserSessionUtils.currentUserSession().getNamespaceId());
job.setNotifyIds(JsonUtil.toJsonString(jobRequestVO.getNotifyIds())); job.setNotifyIds(JsonUtil.toJsonString(jobRequestVO.getNotifyIds()));
job.setOwerId(jobRequestVO.getOwerId());
job.setId(null); job.setId(null);
return 1 == jobMapper.insert(job); return 1 == jobMapper.insert(job);
} }
@ -156,6 +177,7 @@ public class JobServiceImpl implements JobService {
// 判断常驻任务 // 判断常驻任务
Job updateJob = JobConverter.INSTANCE.convert(jobRequestVO); Job updateJob = JobConverter.INSTANCE.convert(jobRequestVO);
updateJob.setNotifyIds(JsonUtil.toJsonString(jobRequestVO.getNotifyIds())); updateJob.setNotifyIds(JsonUtil.toJsonString(jobRequestVO.getNotifyIds()));
updateJob.setOwerId(jobRequestVO.getOwerId());
updateJob.setResident(isResident(jobRequestVO)); updateJob.setResident(isResident(jobRequestVO));
updateJob.setNamespaceId(job.getNamespaceId()); updateJob.setNamespaceId(job.getNamespaceId());

View File

@ -53,7 +53,7 @@ public class NotifyConfigServiceImpl implements NotifyConfigService {
.eq(StrUtil.isNotBlank(queryVO.getGroupName()), NotifyConfig::getGroupName, queryVO.getGroupName()) .eq(StrUtil.isNotBlank(queryVO.getGroupName()), NotifyConfig::getGroupName, queryVO.getGroupName())
.eq(Objects.nonNull(queryVO.getNotifyStatus()), NotifyConfig::getNotifyStatus, queryVO.getNotifyStatus()) .eq(Objects.nonNull(queryVO.getNotifyStatus()), NotifyConfig::getNotifyStatus, queryVO.getNotifyStatus())
.eq(Objects.nonNull(queryVO.getSystemTaskType()), NotifyConfig::getSystemTaskType, queryVO.getSystemTaskType()) .eq(Objects.nonNull(queryVO.getSystemTaskType()), NotifyConfig::getSystemTaskType, queryVO.getSystemTaskType())
.like(StrUtil.isNotBlank(queryVO.getNotifyName()), NotifyConfig::getNotifyName, queryVO.getNotifyName()) .likeRight(StrUtil.isNotBlank(queryVO.getNotifyName()), NotifyConfig::getNotifyName, queryVO.getNotifyName())
.orderByDesc(NotifyConfig::getId)) .orderByDesc(NotifyConfig::getId))
.getRecords(); .getRecords();