Advertisement
Guest User

Untitled

a guest
Jul 23rd, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.97 KB | None | 0 0
  1. private int countTicketResolutionTime(Ticket ticket) {
  2. return Days.daysBetween(new LocalDate(ticket.getStartDate()), new LocalDate(ticket.getEndDate())).getDays();
  3. }
  4.  
  5.  
  6. @Override
  7. public double getAverageResolutionTimePerMonth(String month, int year) throws EntityNotFoundException {
  8. List<Ticket> tickets = getClosedTicketsPerMonth(month, year);
  9.  
  10. double ticketsResolutionTime = 0;
  11. for (Ticket ticket : tickets) {
  12. ticketsResolutionTime += countTicketResolutionTime(ticket);
  13. }
  14.  
  15. return ticketsResolutionTime / tickets.size();
  16. }
  17.  
  18. public List<Ticket> getClosedTicketsPerMonth(String month, int year) throws EntityNotFoundException {
  19.  
  20. List<Ticket> closedTickets = new ArrayList<>();
  21. for (Ticket ticket : getTicketsPerMonth(month, year)) {
  22. if (ticket.getStatus().equals("Done") || ticket.getStatus().equals("Rejected") || ticket.getStatus().equals("Done and Archived")) {
  23. closedTickets.add(ticket);
  24. }
  25. }
  26. return closedTickets;
  27. }
  28.  
  29. @Override
  30. public double getMediumPerMonth(String month, int year) throws EntityNotFoundException {
  31. List<Ticket> tickets = getClosedTicketsPerMonth(month, year);
  32.  
  33. List<Integer> resolutionTimesPerMonth = new ArrayList<>();
  34. for (Ticket ticket : tickets) {
  35. resolutionTimesPerMonth.add(countTicketResolutionTime(ticket));
  36. }
  37.  
  38. return calculateMedium(resolutionTimesPerMonth);
  39. }
  40.  
  41. private double calculateMedium(List<Integer> resolutionTimesPerMonth) {
  42. Collections.sort(resolutionTimesPerMonth);
  43.  
  44. double medium;
  45. int size = resolutionTimesPerMonth.size();
  46.  
  47. if (size % 2 != 0) {
  48. medium = resolutionTimesPerMonth.get(size / 2);
  49. } else {
  50. medium = (resolutionTimesPerMonth.get(size / 2) + resolutionTimesPerMonth.get((size / 2) - 1)) / 2.0;
  51. }
  52. return medium;
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement