From 07293c460d9a63d6013c0fc504b0bf5e2df9a8ac Mon Sep 17 00:00:00 2001 From: opensnail <598092184@qq.com> Date: Sun, 23 Jun 2024 10:21:31 +0800 Subject: [PATCH] =?UTF-8?q?fix(sj=5F1.1.0-beta2):=20=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E9=A1=B9=E5=88=86=E9=A1=B5=E6=8E=A5=E5=8F=A3=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E6=98=AF=E5=90=A6=E6=9C=89=E5=AD=90=E8=8A=82=E7=82=B9=E5=88=A4?= =?UTF-8?q?=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/model/response/JobTaskResponseVO.java | 5 +++++ .../web/service/impl/JobTaskServiceImpl.java | 17 ++++++++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/response/JobTaskResponseVO.java b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/response/JobTaskResponseVO.java index 15d03bdd..280b6d62 100644 --- a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/response/JobTaskResponseVO.java +++ b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/response/JobTaskResponseVO.java @@ -81,5 +81,10 @@ public class JobTaskResponseVO { */ private LocalDateTime updateDt; + /** + * 是否有子节点 + */ + private boolean isChildNode; + } diff --git a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/JobTaskServiceImpl.java b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/JobTaskServiceImpl.java index 0e71d355..de6081d8 100644 --- a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/JobTaskServiceImpl.java +++ b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/JobTaskServiceImpl.java @@ -1,10 +1,12 @@ package com.aizuda.snailjob.server.web.service.impl; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.lang.tree.Tree; import cn.hutool.core.lang.tree.TreeNode; import cn.hutool.core.lang.tree.TreeNodeConfig; import cn.hutool.core.lang.tree.TreeUtil; import com.aizuda.snailjob.common.core.util.JsonUtil; +import com.aizuda.snailjob.common.core.util.StreamUtils; import com.aizuda.snailjob.server.web.model.base.PageResult; import com.aizuda.snailjob.server.web.model.request.JobTaskQueryVO; import com.aizuda.snailjob.server.web.model.response.JobTaskResponseVO; @@ -19,7 +21,10 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.Set; +import java.util.stream.Collectors; /** * @author: opensnail @@ -41,13 +46,23 @@ public class JobTaskServiceImpl implements JobTaskService { .eq(Objects.nonNull(queryVO.getJobId()), JobTask::getJobId, queryVO.getJobId()) .eq(Objects.nonNull(queryVO.getTaskBatchId()), JobTask::getTaskBatchId, queryVO.getTaskBatchId()) .eq(Objects.nonNull(queryVO.getTaskStatus()), JobTask::getTaskStatus, queryVO.getTaskStatus()) + .eq(JobTask::getParentId, 0) // SQLServer 分页必须 ORDER BY - .orderByAsc(JobTask::getJobId)); + .orderByAsc(JobTask::getId)); List jobTaskResponseVOs = JobTaskResponseVOConverter.INSTANCE.convertList( selectPage.getRecords()); + if (CollUtil.isEmpty(jobTaskResponseVOs)) { + return new PageResult<>(pageDTO, jobTaskResponseVOs); + } + + Set parentIds = StreamUtils.toSet(jobTaskResponseVOs, JobTaskResponseVO::getId); + List jobTasks = jobTaskMapper.selectList(new LambdaQueryWrapper() + .select(JobTask::getId).in(JobTask::getId, parentIds)); + Set jobTaskIds = StreamUtils.toSet(jobTasks, JobTask::getId); for (JobTaskResponseVO jobTaskResponseVO : jobTaskResponseVOs) { jobTaskResponseVO.setKey(jobTaskResponseVO.getId()); + jobTaskResponseVO.setChildNode(jobTaskIds.contains(jobTaskResponseVO.getId())); } return new PageResult<>(pageDTO, jobTaskResponseVOs);