diff --git a/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/handler/JobTaskBatchHandler.java b/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/handler/JobTaskBatchHandler.java index fac5338cf..03c531c17 100644 --- a/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/handler/JobTaskBatchHandler.java +++ b/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/handler/JobTaskBatchHandler.java @@ -20,6 +20,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; +import java.time.LocalDateTime; import java.util.List; import java.util.Map; import java.util.Objects; @@ -91,6 +92,7 @@ public class JobTaskBatchHandler { } } + jobTaskBatch.setUpdateDt(LocalDateTime.now()); return 1 == jobTaskBatchMapper.update(jobTaskBatch, new LambdaUpdateWrapper() .eq(JobTaskBatch::getId, completeJobBatchDTO.getTaskBatchId()) diff --git a/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/handler/WorkflowHandler.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/handler/WorkflowHandler.java index 8986f93f4..830f35663 100644 --- a/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/handler/WorkflowHandler.java +++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/handler/WorkflowHandler.java @@ -4,6 +4,8 @@ import cn.hutool.core.lang.Assert; import com.aizuda.easy.retry.common.core.constant.SystemConstants; import com.aizuda.easy.retry.common.core.enums.WorkflowNodeTypeEnum; import com.aizuda.easy.retry.common.core.util.JsonUtil; +import com.aizuda.easy.retry.server.common.dto.CallbackConfig; +import com.aizuda.easy.retry.server.common.dto.DecisionConfig; import com.aizuda.easy.retry.server.common.dto.JobTaskConfig; import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException; import com.aizuda.easy.retry.server.web.model.request.WorkflowRequestVO; @@ -142,16 +144,26 @@ public class WorkflowHandler { workflowNode.setVersion(version); if (WorkflowNodeTypeEnum.DECISION.getType() == nodeConfig.getNodeType()) { workflowNode.setJobId(SystemConstants.DECISION_JOB_ID); - workflowNode.setNodeInfo(JsonUtil.toJsonString(nodeInfo.getDecision())); + DecisionConfig decision = nodeInfo.getDecision(); + Assert.notNull(decision, () -> new EasyRetryServerException("【{}】配置信息不能为空", nodeInfo.getNodeName())); + Assert.notBlank(decision.getNodeExpression(), ()-> new EasyRetryServerException("【{}】表达式不能为空", nodeInfo.getNodeName())); + workflowNode.setNodeInfo(JsonUtil.toJsonString(decision)); } if (WorkflowNodeTypeEnum.CALLBACK.getType() == nodeConfig.getNodeType()) { workflowNode.setJobId(SystemConstants.CALLBACK_JOB_ID); - workflowNode.setNodeInfo(JsonUtil.toJsonString(nodeInfo.getCallback())); + CallbackConfig callback = nodeInfo.getCallback(); + Assert.notNull(callback, () -> new EasyRetryServerException("【{}】配置信息不能为空", nodeInfo.getNodeName())); + Assert.notBlank(callback.getWebhook(), () -> new EasyRetryServerException("【{}】webhook不能为空", nodeInfo.getNodeName())); + Assert.notNull(callback.getContentType(), () -> new EasyRetryServerException("【{}】请求类型不能为空", nodeInfo.getNodeName())); + Assert.notBlank(callback.getSecret(), () -> new EasyRetryServerException("【{}】秘钥不能为空", nodeInfo.getNodeName())); + workflowNode.setNodeInfo(JsonUtil.toJsonString(callback)); } if (WorkflowNodeTypeEnum.JOB_TASK.getType() == nodeConfig.getNodeType()) { JobTaskConfig jobTask = nodeInfo.getJobTask(); + Assert.notNull(jobTask, () -> new EasyRetryServerException("【{}】配置信息不能为空", nodeInfo.getNodeName())); + Assert.notNull(jobTask.getJobId(), () -> new EasyRetryServerException("【{}】所属任务不能为空", nodeInfo.getNodeName())); workflowNode.setJobId(jobTask.getJobId()); } @@ -163,8 +175,6 @@ public class WorkflowHandler { // 添加边 graph.putEdge(parentId, workflowNode.getId()); } - log.info("workflowNodeId:[{}] parentIds:[{}]", - workflowNode.getId(), JsonUtil.toJsonString(parentIds)); WorkflowRequestVO.NodeConfig childNode = nodeInfo.getChildNode(); if (Objects.nonNull(childNode) && !CollectionUtils.isEmpty(childNode.getConditionNodes())) { buildGraph(Lists.newArrayList(workflowNode.getId()), deque, groupName, workflowId, childNode, diff --git a/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/JobLogServiceImpl.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/JobLogServiceImpl.java index 7718340d3..b1132152a 100644 --- a/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/JobLogServiceImpl.java +++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/JobLogServiceImpl.java @@ -17,7 +17,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; +import java.time.LocalDateTime; import java.util.List; +import java.util.Objects; import java.util.Optional; import java.util.stream.Collectors; @@ -48,13 +50,17 @@ public class JobLogServiceImpl implements JobLogService { List records = selectPage.getRecords(); if (CollectionUtils.isEmpty(records)) { - Long count = jobTaskBatchMapper.selectCount( + JobTaskBatch jobTaskBatch = jobTaskBatchMapper.selectOne( new LambdaQueryWrapper() - .in(JobTaskBatch::getTaskBatchStatus, JobTaskBatchStatusEnum.COMPLETED) + .eq(JobTaskBatch::getId, queryVO.getTaskBatchId()) ); JobLogResponseVO jobLogResponseVO = new JobLogResponseVO(); - if (count > 0) { + + if (Objects.nonNull(jobTaskBatch) && + JobTaskBatchStatusEnum.COMPLETED.contains(jobTaskBatch.getTaskBatchStatus()) + && jobTaskBatch.getUpdateDt().plusSeconds(15).isBefore(LocalDateTime.now()) + ) { jobLogResponseVO.setFinished(Boolean.TRUE); } diff --git a/frontend/src/views/job/WorkflowBatchList.vue b/frontend/src/views/job/WorkflowBatchList.vue index 90efb1836..9195a5d65 100644 --- a/frontend/src/views/job/WorkflowBatchList.vue +++ b/frontend/src/views/job/WorkflowBatchList.vue @@ -75,7 +75,7 @@ :scroll="{ x: 1500 }" > - {{ record.id }} + {{ record.id }} @@ -100,19 +100,6 @@ - - - - -