/** * ESUP-Portail Helpdesk - Copyright (c) 2004-2009 ESUP-Portail consortium. */ package org.esupportail.helpdesk.services.statistics; import java.io.Serializable; import java.sql.Timestamp; import java.util.List; import java.util.Map; import org.esupportail.helpdesk.domain.beans.Department; import org.esupportail.helpdesk.domain.beans.statistics.MinAvgMaxNumberStatistic; import org.esupportail.helpdesk.domain.beans.statistics.SpentTimeStatistic; import org.esupportail.helpdesk.domain.beans.statistics.StatusStatisticSet; import org.esupportail.helpdesk.web.beans.StatisticsTicketEntry; import org.esupportail.helpdesk.web.beans.UserTicketCreationStatisticEntry; /** * the interface of statistics computers. */ public interface StatisticsExtractor extends Serializable { /** * A constant for global statistics. */ int GLOBAL = 0; /** * A constant for per department statistics. */ int PER_DEPARTMENT = 1; /** * A constant for per origin statistics. */ int PER_ORIGIN = 2; /** * @param start * @param end * @param departments * @param origins * @return the number of ticket creations for each year of a period. */ Map<Timestamp, Integer> getTicketCreationsByYear( Timestamp start, Timestamp end, List<Department> departments, List<String> origins); /** * @param start * @param end * @param departments * @param origins * @return the number of ticket creations for each month of a period. */ Map<Timestamp, Integer> getTicketCreationsByMonth( Timestamp start, Timestamp end, List<Department> departments, List<String> origins); /** * @param start * @param end * @param departments * @param origins * @return the number of ticket creations for each day of a period. */ Map<Timestamp, Integer> getTicketCreationsByDay( Timestamp start, Timestamp end, List<Department> departments, List<String> origins); /** * @param start * @param end * @param departments * @param origins * @return the number of ticket creations for each day of week of a period. */ Map<Integer, Integer> getTicketCreationsByDayOfWeek( Timestamp start, Timestamp end, List<Department> departments, List<String> origins); /** * @param start * @param end * @param departments * @param origins * @return the number of ticket creations for each hour of day of a period. */ Map<Integer, Integer> getTicketCreationsByHourOfDay( Timestamp start, Timestamp end, List<Department> departments, List<String> origins); /** * @param start * @param end * @param departments * @param origins * @return the number of ticket creations for each hour of week of a period. */ Map<Integer, Integer> getTicketCreationsByHourOfWeek( Timestamp start, Timestamp end, List<Department> departments, List<String> origins); /** * @param start * @param end * @param departments * @param origins * @return the number of ticket creations for each year of a period per department. */ Map<Timestamp, Map<Department, Integer>> getTicketCreationsByYearPerDepartment( Timestamp start, Timestamp end, List<Department> departments, List<String> origins); /** * @param start * @param end * @param departments * @param origins * @return the number of ticket creations for each month of a period per department. */ Map<Timestamp, Map<Department, Integer>> getTicketCreationsByMonthPerDepartment( Timestamp start, Timestamp end, List<Department> departments, List<String> origins); /** * @param start * @param end * @param departments * @param origins * @return the number of ticket creations for each day of a period for per department. */ Map<Timestamp, Map<Department, Integer>> getTicketCreationsByDayPerDepartment( Timestamp start, Timestamp end, List<Department> departments, List<String> origins); /** * @param start * @param end * @param departments * @param origins * @return the number of ticket creations for each day of week of a period for per department. */ Map<Integer, Map<Department, Integer>> getTicketCreationsByDayOfWeekPerDepartment( Timestamp start, Timestamp end, List<Department> departments, List<String> origins); /** * @param start * @param end * @param departments * @param origins * @return the number of ticket creations for each hour of day of a period for per department. */ Map<Integer, Map<Department, Integer>> getTicketCreationsByHourOfDayPerDepartment( Timestamp start, Timestamp end, List<Department> departments, List<String> origins); /** * @param start * @param end * @param departments * @param origins * @return the number of ticket creations for each hour of week of a period for per department. */ Map<Integer, Map<Department, Integer>> getTicketCreationsByHourOfWeekPerDepartment( Timestamp start, Timestamp end, List<Department> departments, List<String> origins); /** * @param start * @param end * @param departments * @param origins * @return the number of ticket creations for each year of a period per origin. */ Map<Timestamp, Map<String, Integer>> getTicketCreationsByYearPerOrigin( Timestamp start, Timestamp end, List<Department> departments, List<String> origins); /** * @param start * @param end * @param departments * @param origins * @return the number of ticket creations for each month of a period per origin. */ Map<Timestamp, Map<String, Integer>> getTicketCreationsByMonthPerOrigin( Timestamp start, Timestamp end, List<Department> departments, List<String> origins); /** * @param start * @param end * @param departments * @param origins * @return the number of ticket creations for each day of a period for per origin. */ Map<Timestamp, Map<String, Integer>> getTicketCreationsByDayPerOrigin( Timestamp start, Timestamp end, List<Department> departments, List<String> origins); /** * @param start * @param end * @param departments * @param origins * @return the number of ticket creations for each day of week of a period for per origin. */ Map<Integer, Map<String, Integer>> getTicketCreationsByDayOfWeekPerOrigin( Timestamp start, Timestamp end, List<Department> departments, List<String> origins); /** * @param start * @param end * @param departments * @param origins * @return the number of ticket creations for each hour of day of a period for per origin. */ Map<Integer, Map<String, Integer>> getTicketCreationsByHourOfDayPerOrigin( Timestamp start, Timestamp end, List<Department> departments, List<String> origins); /** * @param start * @param end * @param departments * @param origins * @return the number of ticket creations for each hour of week of a period for per origin. */ Map<Integer, Map<String, Integer>> getTicketCreationsByHourOfWeekPerOrigin( Timestamp start, Timestamp end, List<Department> departments, List<String> origins); /** * @param start * @param end * @param departments * @param maxEntries * @return the number of user ticket creations for a period. */ List<UserTicketCreationStatisticEntry> getUserTicketCreations( Timestamp start, Timestamp end, List<Department> departments, int maxEntries); /** * @param charge * @param start * @param end * @param departments * @return the charge time by day for a period. */ Map<Timestamp, MinAvgMaxNumberStatistic> getChargeOrClosureTimeByDay( boolean charge, Timestamp start, Timestamp end, List<Department> departments); /** * @param charge * @param start * @param end * @param departments * @return the charge time by month for a period. */ Map<Timestamp, MinAvgMaxNumberStatistic> getChargeOrClosureTimeByMonth( boolean charge, Timestamp start, Timestamp end, List<Department> departments); /** * @param charge * @param start * @param end * @param departments * @return the charge time by year for a period. */ Map<Timestamp, MinAvgMaxNumberStatistic> getChargeOrClosureTimeByYear( boolean charge, Timestamp start, Timestamp end, List<Department> departments); /** * @param charge * @param start * @param end * @param departments * @return the charge time by day of week for a period. */ Map<Integer, MinAvgMaxNumberStatistic> getChargeOrClosureTimeByDayOfWeek( boolean charge, Timestamp start, Timestamp end, List<Department> departments); /** * @param charge * @param start * @param end * @param departments * @return the charge time by hour of day for a period. */ Map<Integer, MinAvgMaxNumberStatistic> getChargeOrClosureTimeByHourOfDay( boolean charge, Timestamp start, Timestamp end, List<Department> departments); /** * @param charge * @param start * @param end * @param departments * @return the charge time by hour of week for a period. */ Map<Integer, MinAvgMaxNumberStatistic> getChargeOrClosureTimeByHourOfWeek( boolean charge, Timestamp start, Timestamp end, List<Department> departments); /** * @param charge * @param start * @param end * @param departments * @param maxEntries * @param hideChargedOrClosed * @return tickets. */ List<StatisticsTicketEntry> getTicketsWithLongChargeOrClosureTime( boolean charge, Timestamp start, Timestamp end, List<Department> departments, int maxEntries, boolean hideChargedOrClosed); /** * @param start * @param end * @param departments * @param ignoreArchivedTickets * @return the status statistics for a list of departments and a period. */ StatusStatisticSet getStatusStatistics( Timestamp start, Timestamp end, List<Department> departments, boolean ignoreArchivedTickets); /** * @param start * @param end * @param departments * @param ignoreArchivedTickets * @return the status statistics for a list of departments and a period. */ Map<Long, StatusStatisticSet> getStatusStatisticsPerDepartment( Timestamp start, Timestamp end, List<Department> departments, boolean ignoreArchivedTickets); /** * @param start * @param end * @param departments * @return the spent time statistics for a list of departments and a period. */ List<SpentTimeStatistic> getSpentTimeStatistics( Timestamp start, Timestamp end, List<Department> departments); }