fix: correctly cap worked hours calculation to current time
This commit is contained in:
parent
ec9cf347ec
commit
5b0d1c6dea
3 changed files with 6 additions and 3 deletions
|
|
@ -130,7 +130,8 @@ public class DashboardUseCase {
|
|||
|
||||
private long calculateMinutesInRange(TaskHistoryItem item, LocalDateTime start, LocalDateTime end) {
|
||||
LocalDateTime effectiveStart = item.getStartAt().isBefore(start) ? start : item.getStartAt();
|
||||
LocalDateTime effectiveEnd = Objects.isNull(item.getEndAt()) || item.getEndAt().isAfter(end) ? end : item.getEndAt();
|
||||
LocalDateTime itemEnd = Objects.nonNull(item.getEndAt()) ? item.getEndAt() : LocalDateTime.now();
|
||||
LocalDateTime effectiveEnd = itemEnd.isAfter(end) ? end : itemEnd;
|
||||
|
||||
if (effectiveStart.isAfter(effectiveEnd)) return 0;
|
||||
|
||||
|
|
|
|||
|
|
@ -140,7 +140,8 @@ public class OrgDashboardUseCase {
|
|||
|
||||
private long calculateMinutesInRange(TaskHistoryItem item, LocalDateTime start, LocalDateTime end) {
|
||||
LocalDateTime effectiveStart = item.getStartAt().isBefore(start) ? start : item.getStartAt();
|
||||
LocalDateTime effectiveEnd = Objects.isNull(item.getEndAt()) || item.getEndAt().isAfter(end) ? end : item.getEndAt();
|
||||
LocalDateTime itemEnd = Objects.nonNull(item.getEndAt()) ? item.getEndAt() : LocalDateTime.now();
|
||||
LocalDateTime effectiveEnd = itemEnd.isAfter(end) ? end : itemEnd;
|
||||
if (effectiveStart.isAfter(effectiveEnd)) return 0;
|
||||
return Duration.between(effectiveStart, effectiveEnd).toMinutes();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -66,7 +66,8 @@ public class MemberDetailUseCase {
|
|||
for (TaskHistoryItem h : task.getHistory()) {
|
||||
if (!isWithinPeriod(h, start, end)) continue;
|
||||
LocalDateTime effectiveStart = h.getStartAt().isBefore(start) ? start : h.getStartAt();
|
||||
LocalDateTime effectiveEnd = (Objects.isNull(h.getEndAt()) || h.getEndAt().isAfter(end)) ? end : h.getEndAt();
|
||||
LocalDateTime itemEnd = Objects.nonNull(h.getEndAt()) ? h.getEndAt() : LocalDateTime.now();
|
||||
LocalDateTime effectiveEnd = itemEnd.isAfter(end) ? end : itemEnd;
|
||||
if (effectiveStart.isAfter(effectiveEnd)) continue;
|
||||
|
||||
long minutes = Duration.between(effectiveStart, effectiveEnd).toMinutes();
|
||||
|
|
|
|||
Loading…
Reference in a new issue