Siemka, mam pytanie.
Piszę pewien serwis. Potrzebuję w nim napisać funkcję, która na wniosek o urlop przydzieli go, a następnie spośród wolnych pracowników o danej godzinie przydzieli do prowadzenia wszystkich zajęć kogoś innego.
Napisałem takie coś:
public void acceptLeave(Long id, String name) {
Leave leave = leaveRepo.findById(id);
leave.setAssent(true);
leave.setUser(userRepo.findByLogin(name));
List<Activity> activity = leave.getEmployee().getActivity();
for(Activity act:activity) {
ArrayList<Long> listEmployeeId = employeeRepo.findAllAvailable(act.getStartTime());
Long id2 = new Long(Long.valueOf((listEmployeeId.toArray()[0].toString())));
act.setEmployee(employeeRepo.findById(id2));
activityRepo.save(act);
}
leaveRepo.save(leave);
}
Wszystko działa, przydziela innego pracownika itd. Problem w tym - w jaki sposób po upłynięciu urlopu sprawić by te zajęcia prowadził pracownik, który wrócił z urlopu?
Używam Spring Data i Spring Boot.
PS. co do tej konwersji na longa to wiem, że bardzo naokoło, ale tylko tak uniknąłem wyjątku z BigDecimal.
PS2. Czy rozwiązaniem byłoby wydzielenie tych zajęć, w których zmieniam prowadzącego na czas urlopu i sprawdzanie czy skończył się urlop? Jeśli tak to wyciągnąć je z tej dodatkowej encji i nadpisać te nadpisane wcześniej?