Skip to content
Snippets Groups Projects

Resolve "Fix Average Waiting Time & Average Processing Time"

Files

@@ -17,6 +17,7 @@
@@ -17,6 +17,7 @@
*/
*/
package nl.tudelft.queue.controller;
package nl.tudelft.queue.controller;
 
import java.time.temporal.ChronoUnit;
import java.util.List;
import java.util.List;
import java.util.Map;
import java.util.Map;
import java.util.TreeSet;
import java.util.TreeSet;
@@ -41,6 +42,7 @@ import nl.tudelft.queue.model.enums.RequestType;
@@ -41,6 +42,7 @@ import nl.tudelft.queue.model.enums.RequestType;
import nl.tudelft.queue.model.labs.Lab;
import nl.tudelft.queue.model.labs.Lab;
import nl.tudelft.queue.model.records.RequestCountRecord;
import nl.tudelft.queue.model.records.RequestCountRecord;
import nl.tudelft.queue.service.EditionStatusService;
import nl.tudelft.queue.service.EditionStatusService;
 
import nl.tudelft.queue.service.SessionService;
@Validated
@Validated
@RestController
@RestController
@@ -52,6 +54,9 @@ public class EditionStatusController {
@@ -52,6 +54,9 @@ public class EditionStatusController {
@Autowired
@Autowired
private AssignmentCacheManager aCache;
private AssignmentCacheManager aCache;
 
@Autowired
 
private SessionService sessionService;
 
/**
/**
* Creates and returns the data for a histogram regarding the status of requests over time. The data for
* Creates and returns the data for a histogram regarding the status of requests over time. The data for
* requests can be filtered on labs, assignments and rooms to only selectively count.
* requests can be filtered on labs, assignments and rooms to only selectively count.
@@ -135,6 +140,7 @@ public class EditionStatusController {
@@ -135,6 +140,7 @@ public class EditionStatusController {
@RequestParam(required = false, defaultValue = "") List<RequestType> type) {
@RequestParam(required = false, defaultValue = "") List<RequestType> type) {
List<LabRequest> requests = ess.getFilteredRequests(labs, assignments, rooms, type);
List<LabRequest> requests = ess.getFilteredRequests(labs, assignments, rooms, type);
 
// we use ESS here even though it's not really edition statistics.
return new LabStatisticsViewDto(
return new LabStatisticsViewDto(
ess.countDistinctUsers(requests),
ess.countDistinctUsers(requests),
ess.countDistinctAssistants(requests),
ess.countDistinctAssistants(requests),
@@ -148,8 +154,8 @@ public class EditionStatusController {
@@ -148,8 +154,8 @@ public class EditionStatusController {
.map(AssignmentCountStatisticsViewDto::getAssignmentName)
.map(AssignmentCountStatisticsViewDto::getAssignmentName)
.orElse("N/A"), // order preserving in case of tie
.orElse("N/A"), // order preserving in case of tie
ess.mostCountedName(ess.countRequestsPerRoom(rooms, requests)),
ess.mostCountedName(ess.countRequestsPerRoom(rooms, requests)),
ess.averageWaitingTime(requests),
ess.averageWaitingTime(requests, ChronoUnit.MILLIS),
ess.averageProcessingTime(requests));
ess.averageProcessingTime(requests, ChronoUnit.MILLIS));
}
}
/**
/**
@@ -185,7 +191,7 @@ public class EditionStatusController {
@@ -185,7 +191,7 @@ public class EditionStatusController {
* @param assignments The assignments to filter on.
* @param assignments The assignments to filter on.
* @param rooms The rooms to filter on.
* @param rooms The rooms to filter on.
* @param type The request types to filter on.
* @param type The request types to filter on.
* @return The names of assignments mapped to the number of times that room occurs.
* @return The names of assignments mapped to the number of times that room occurs.;
*/
*/
@GetMapping("/edition/{editionId}/status/freq/room")
@GetMapping("/edition/{editionId}/status/freq/room")
@PreAuthorize("@permissionService.canViewEditionStatus(#editionId)")
@PreAuthorize("@permissionService.canViewEditionStatus(#editionId)")
Loading