Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Map<String, List<Attendance>> associatedAttendances = collectAttendancesByUsers(attendances);
- List<Date> nonWorkingDays = nonWorkingDayDao.findAll(startDate, endDate);
- Map<Employee, List<Date>> gaps = new TreeMap<>(new EmployeeComparator());
- for (Employee emp : employees) {
- List<Attendance> employeeAttendances = associatedAttendances.get(emp.getLogin());
- boolean employeePresents = true;
- if (employeeAttendances == null) {
- employeePresents = false;
- }
- List<Date> employeeMissingDays = new ArrayList<>();
- Calendar control = getCalendarInstance(startDate);
- control.setTime(startDate);
- while (control.getTime().before(endDate)) {
- if (!employeePresents) {
- employeeMissingDays.add(control.getTime());
- control.add(Calendar.DAY_OF_YEAR, 1);
- continue;
- }
- if (!isCalendarDatePresentData(control, employeeAttendances, nonWorkingDays)) {
- employeeMissingDays.add(control.getTime());
- }
- control.add(Calendar.DAY_OF_YEAR, 1);
- }
- if (!employeeMissingDays.isEmpty()) {
- gaps.put(emp, employeeMissingDays);
- }
- }
- generateReport(groupData(gaps));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement