// возвращает количество дней в списке отпусков (в зависимости от того какой список был передан) private int getSummaryDaysCount(Map<Vacation, Integer> days) { int summaryDays = 0; for (Map.Entry<Vacation, Integer> entry : days.entrySet()) { Vacation vacation = entry.getKey(); Integer daysInVacation = entry.getValue(); if (VacationStatusEnum.APPROVED.getId() == vacation.getStatus().getId() || VacationTypesEnum.PLANNED.getId() == vacation.getType().getId()) { summaryDays += daysInVacation; } } return summaryDays; }
// возвращает список отпусков за год определенного типа с указанием количества календарных или // рабочих дней // в зависимости от того, какой список был передан private Map<Vacation, Integer> getDaysForYearByType( Map<Vacation, Integer> days, int year, DictionaryItem type) { Map<Vacation, Integer> daysForYearByType = new HashMap<Vacation, Integer>(); for (Map.Entry<Vacation, Integer> entry : days.entrySet()) { Vacation vacation = entry.getKey(); Integer calDaysInVacation = entry.getValue(); if (vacationStatusInThisYear(vacation, year) && type.getId().equals(vacation.getType().getId())) { daysForYearByType.put(vacation, calDaysInVacation); } } return daysForYearByType; }
public Map<Vacation, Integer> getWorkDays( Map<Vacation, Integer> calDays, List<Holiday> holidays) { Map<Vacation, Integer> workDays = new HashMap<Vacation, Integer>(calDays.size()); for (Map.Entry<Vacation, Integer> entry : calDays.entrySet()) { Vacation vacation = entry.getKey(); Integer calDaysInVacation = entry.getValue(); Region emplRegion = vacation.getEmployee().getRegion(); final int holidaysCount = getHolidaysCount(holidays, emplRegion, vacation.getBeginDate(), vacation.getEndDate()); final int workDaysCount = calDaysInVacation - holidaysCount; workDays.put(vacation, workDaysCount); } return workDays; }