Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public boolean saveDataFromCsv(MultipartFile file, LocalDate date, TypRozkladu typRozkladu) {
- List<Schedule> scheduleList = new ArrayList<>();
- try {
- InputStreamReader reader = new InputStreamReader(file.getInputStream());
- CSVParser csvParser = new CSVParser(reader, CSVFormat.newFormat(';')
- .withRecordSeparator(";").withIgnoreEmptyLines());
- List<RodzajRozkladu> rozkladList = rozkladRepository.findAll();
- for (CSVRecord record : csvParser) {
- Schedule schedule = new Schedule();
- schedule.setDate(date);
- schedule.setTypRozkladu(typRozkladu);
- schedule.setUsername(record.get(0).trim());
- schedule.setLinia(record.get(1).trim());
- schedule.setPoczatekPracy(record.get(2).trim());
- schedule.setKoniecPracy(record.get(3).trim());
- schedule.setMiejsceZmiany(findAllByTypRozkladu(rozkladList, schedule.getTypRozkladu(),
- schedule.getLinia(), schedule.getPoczatekPracy()));
- if (record.get(0).isEmpty())
- continue;
- scheduleList.add(schedule);
- }
- scheduleRepository.saveAll(scheduleList);
- csvParser.close();
- reader.close();
- return true;
- } catch (Exception e) {
- return false;
- }
- }
- Tu bym musiał jeszcze przefiltrować po czasie żeby było po kolei ale nie mam pomysłu na to
- @Override
- public Set<Schedule> findSchedulesByUsernameAndDate(String username, String date) {
- return scheduleRepository.findAll().stream()
- .filter(schedule -> schedule.getUsername()
- .equals(username))
- .filter(schedule -> schedule.getDate()
- .equals(datePerser.parse(date)))
- .collect(Collectors.toSet());
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement