Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private int countTicketResolutionTime(Ticket ticket) {
- return Days.daysBetween(new LocalDate(ticket.getStartDate()), new LocalDate(ticket.getEndDate())).getDays();
- }
- @Override
- public double getAverageResolutionTimePerMonth(String month, int year) throws EntityNotFoundException {
- List<Ticket> tickets = getClosedTicketsPerMonth(month, year);
- double ticketsResolutionTime = 0;
- for (Ticket ticket : tickets) {
- ticketsResolutionTime += countTicketResolutionTime(ticket);
- }
- return ticketsResolutionTime / tickets.size();
- }
- public List<Ticket> getClosedTicketsPerMonth(String month, int year) throws EntityNotFoundException {
- List<Ticket> closedTickets = new ArrayList<>();
- for (Ticket ticket : getTicketsPerMonth(month, year)) {
- if (ticket.getStatus().equals("Done") || ticket.getStatus().equals("Rejected") || ticket.getStatus().equals("Done and Archived")) {
- closedTickets.add(ticket);
- }
- }
- return closedTickets;
- }
- @Override
- public double getMediumPerMonth(String month, int year) throws EntityNotFoundException {
- List<Ticket> tickets = getClosedTicketsPerMonth(month, year);
- List<Integer> resolutionTimesPerMonth = new ArrayList<>();
- for (Ticket ticket : tickets) {
- resolutionTimesPerMonth.add(countTicketResolutionTime(ticket));
- }
- return calculateMedium(resolutionTimesPerMonth);
- }
- private double calculateMedium(List<Integer> resolutionTimesPerMonth) {
- Collections.sort(resolutionTimesPerMonth);
- double medium;
- int size = resolutionTimesPerMonth.size();
- if (size % 2 != 0) {
- medium = resolutionTimesPerMonth.get(size / 2);
- } else {
- medium = (resolutionTimesPerMonth.get(size / 2) + resolutionTimesPerMonth.get((size / 2) - 1)) / 2.0;
- }
- return medium;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement