From 303de733a1846377622f51922c6d13ba486a07f6 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Wed, 20 Dec 2023 11:39:05 +0100 Subject: [PATCH] Include root Taskgroup in statistics and sort activityData by dates --- .../core/api/controller/StatisticController.java | 12 ++++++++++-- .../timemanager/history/TaskgroupActivityInfo.java | 8 ++++++++ .../timemanager/taskgroup/TaskgroupPathInfo.java | 4 ++++ 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/backend/src/main/java/core/api/controller/StatisticController.java b/backend/src/main/java/core/api/controller/StatisticController.java index 9558db0..8867f1a 100644 --- a/backend/src/main/java/core/api/controller/StatisticController.java +++ b/backend/src/main/java/core/api/controller/StatisticController.java @@ -23,6 +23,7 @@ import java.time.LocalDateTime; import java.time.LocalTime; import java.time.format.DateTimeFormatter; import java.util.ArrayList; +import java.util.Comparator; import java.util.List; import java.util.Map; @@ -59,7 +60,14 @@ public class StatisticController { return ResponseEntity.status(404).body(new SimpleStatusResponse("failed")); } - return ResponseEntity.ok(taskgroupPermissionResult.getResult().calcActivityInfo(includeSubTaskgroups, - LocalDate.parse(startingDate, DateTimeFormatter.ofPattern("yyyy-MM-dd")), LocalDate.parse(endingDate, DateTimeFormatter.ofPattern("yyyy-MM-dd")))); + List activityInfos = taskgroupPermissionResult.getResult().calcActivityInfo(includeSubTaskgroups, + LocalDate.parse(startingDate, DateTimeFormatter.ofPattern("yyyy-MM-dd")), LocalDate.parse(endingDate, DateTimeFormatter.ofPattern("yyyy-MM-dd"))); + activityInfos.sort(new Comparator() { + @Override + public int compare(TaskgroupActivityInfo o1, TaskgroupActivityInfo o2) { + return o1.getDate().compareTo(o2.getDate()); + } + }); + return ResponseEntity.ok(activityInfos); } } diff --git a/backend/src/main/java/core/api/models/timemanager/history/TaskgroupActivityInfo.java b/backend/src/main/java/core/api/models/timemanager/history/TaskgroupActivityInfo.java index 2441617..51a6d73 100644 --- a/backend/src/main/java/core/api/models/timemanager/history/TaskgroupActivityInfo.java +++ b/backend/src/main/java/core/api/models/timemanager/history/TaskgroupActivityInfo.java @@ -17,4 +17,12 @@ public class TaskgroupActivityInfo { this.date = localDate; this.activeMinutes = activeMinutes; } + + public LocalDate getDate() { + return date; + } + + public int getActiveMinutes() { + return activeMinutes; + } } diff --git a/backend/src/main/java/core/api/models/timemanager/taskgroup/TaskgroupPathInfo.java b/backend/src/main/java/core/api/models/timemanager/taskgroup/TaskgroupPathInfo.java index 2e5d9a4..0bc4089 100644 --- a/backend/src/main/java/core/api/models/timemanager/taskgroup/TaskgroupPathInfo.java +++ b/backend/src/main/java/core/api/models/timemanager/taskgroup/TaskgroupPathInfo.java @@ -11,6 +11,9 @@ public class TaskgroupPathInfo { @JsonProperty private String taskgroupPath; + @JsonProperty + private TaskgroupEntityInfo rootTasktroup; + @JsonProperty private List directChildren; public TaskgroupPathInfo(Taskgroup taskgroup) { @@ -21,6 +24,7 @@ public class TaskgroupPathInfo { stringBuilder.append("/"); } this.taskgroupPath = stringBuilder.substring(0, stringBuilder.length()-1); + this.rootTasktroup = new TaskgroupEntityInfo(taskgroup); directChildren = taskgroup.getChildren().stream().map(TaskgroupEntityInfo::new).toList(); } }