Advertisement
dr1v3r3k

save csv

Nov 11th, 2019 (edited)
359
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.95 KB | None | 0 0
  1. public boolean saveDataFromCsv(MultipartFile file, LocalDate date, TypRozkladu typRozkladu) {
  2.         List<Schedule> scheduleList = new ArrayList<>();
  3.         try {
  4.             InputStreamReader reader = new InputStreamReader(file.getInputStream());
  5.             CSVParser csvParser = new CSVParser(reader, CSVFormat.newFormat(';')
  6.                     .withRecordSeparator(";").withIgnoreEmptyLines());
  7.             List<RodzajRozkladu> rozkladList = rozkladRepository.findAll();
  8.             for (CSVRecord record : csvParser) {
  9.                 Schedule schedule = new Schedule();
  10.                 schedule.setDate(date);
  11.                 schedule.setTypRozkladu(typRozkladu);
  12.                 schedule.setUsername(record.get(0).trim());
  13.                 schedule.setLinia(record.get(1).trim());
  14.                 schedule.setPoczatekPracy(record.get(2).trim());
  15.                 schedule.setKoniecPracy(record.get(3).trim());
  16.                 schedule.setMiejsceZmiany(findAllByTypRozkladu(rozkladList, schedule.getTypRozkladu(),
  17.                         schedule.getLinia(), schedule.getPoczatekPracy()));
  18.                 if (record.get(0).isEmpty())
  19.                     continue;
  20.                 scheduleList.add(schedule);
  21.             }
  22.             scheduleRepository.saveAll(scheduleList);
  23.             csvParser.close();
  24.             reader.close();
  25.             return true;
  26.         } catch (Exception e) {
  27.             return false;
  28.         }
  29.     }
  30.  
  31. Tu bym musiał jeszcze przefiltrować po czasie żeby było po kolei ale nie mam pomysłu na to
  32. @Override
  33.     public Set<Schedule> findSchedulesByUsernameAndDate(String username, String date) {
  34.         return scheduleRepository.findAll().stream()
  35.                 .filter(schedule -> schedule.getUsername()
  36.                         .equals(username))
  37.                 .filter(schedule -> schedule.getDate()
  38.                         .equals(datePerser.parse(date)))
  39.                 .collect(Collectors.toSet());
  40.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement