From 359a5e1e275b767034b8e381102e6996148b8f3c Mon Sep 17 00:00:00 2001 From: even <827656971@qq.com> Date: Tue, 27 May 2025 10:11:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=97=A5=E5=BF=97=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resp/context/SingletonRunContextResp.java | 1 + .../pipeline/impl/PipelineServiceImpl.java | 27 +++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/resp/context/SingletonRunContextResp.java b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/resp/context/SingletonRunContextResp.java index d3733606..5021a8a6 100644 --- a/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/resp/context/SingletonRunContextResp.java +++ b/modules/module-ci-common-pipeline/src/main/java/cd/casic/ci/common/pipeline/resp/context/SingletonRunContextResp.java @@ -19,4 +19,5 @@ public class SingletonRunContextResp { private Integer state; private LocalDateTime startTime; private LocalDateTime endTime; + private String duration; } diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/pipeline/impl/PipelineServiceImpl.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/pipeline/impl/PipelineServiceImpl.java index c3d4dae1..f50e9eaf 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/pipeline/impl/PipelineServiceImpl.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/pipeline/impl/PipelineServiceImpl.java @@ -42,6 +42,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import org.springframework.util.ObjectUtils; +import java.time.Duration; import java.time.LocalDateTime; import java.util.*; @@ -559,6 +560,11 @@ public class PipelineServiceImpl extends ServiceImpl i taskState.setEndTime(taskContext.getEndTime()); taskStateMap.put(taskId,taskState); taskList.add(taskState); + if (taskState.getEndTime()==null) { + taskState.setDuration(between(taskState.getStartTime(),LocalDateTime.now())); + } else { + taskState.setDuration(between(taskState.getStartTime(),taskState.getEndTime())); + } } } return pipeline; @@ -566,4 +572,25 @@ public class PipelineServiceImpl extends ServiceImpl i return new TreeRunContextResp(); } + private String between(LocalDateTime startTime,LocalDateTime endTime){ + Duration between = Duration.between(startTime, LocalDateTime.now()); + long days = between.toDays(); + long hours = between.toHours()%24; + long minutes = between.toMinutes() % 60; + long seconds = between.toSeconds() % 60; + StringBuilder stringBuilder = new StringBuilder(); + if (days>0) { + stringBuilder.append(days).append("天"); + } + if (hours>0) { + stringBuilder.append(hours).append("小时"); + } + if (minutes>0) { + stringBuilder.append(minutes).append("分"); + } + if (seconds>0) { + stringBuilder.append(seconds).append("秒"); + } + return stringBuilder.toString(); + } }