diff --git a/buisnesslogic/src/main/java/com/plannaplan/configutils/FileToDatabaseMigrator.java b/buisnesslogic/src/main/java/com/plannaplan/configutils/FileToDatabaseMigrator.java index 02f20ff..ba0d3d3 100644 --- a/buisnesslogic/src/main/java/com/plannaplan/configutils/FileToDatabaseMigrator.java +++ b/buisnesslogic/src/main/java/com/plannaplan/configutils/FileToDatabaseMigrator.java @@ -3,11 +3,13 @@ package com.plannaplan.configutils; import java.util.Iterator; import com.plannaplan.entities.Course; +import com.plannaplan.entities.Groups; import com.plannaplan.entities.Lecturer; import com.plannaplan.models.FileData; import com.plannaplan.services.CourseService; import com.plannaplan.services.GroupService; import com.plannaplan.services.LecturerService; +import com.plannaplan.types.WeekDay; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; @@ -20,6 +22,11 @@ public class FileToDatabaseMigrator { public static String COURSE_SYMBOL_STRING = "sym"; public static String COURSE_NAME_STRING = "nazwa"; + public static String GROUP_DAY_STRING = "dzien"; + public static String GROUP_TIME_STRING = "godz_od"; + public static String ROOM_STRING = "sala"; + public static String CAPACITY_STRING = "Mc"; + LecturerService lecturerService; CourseService courseService; GroupService groupService; @@ -41,6 +48,11 @@ public class FileToDatabaseMigrator { int surname_index = data.getIndexOf(FileToDatabaseMigrator.LECTURER_SURNAME_STRING); int name_index = data.getIndexOf(FileToDatabaseMigrator.LECTURER_NAME_STRING); + int day_index = data.getIndexOf(FileToDatabaseMigrator.GROUP_DAY_STRING); + int time_index = data.getIndexOf(FileToDatabaseMigrator.GROUP_TIME_STRING); + int room_index = data.getIndexOf(FileToDatabaseMigrator.ROOM_STRING); + int capacity_index = data.getIndexOf(FileToDatabaseMigrator.CAPACITY_STRING); + while (rows.hasNext()) { Row row = rows.next(); @@ -51,6 +63,11 @@ public class FileToDatabaseMigrator { Cell name_cell = row.getCell(name_index); Cell surname_cell = row.getCell(surname_index); + Cell day_cell = row.getCell(day_index); + Cell time_cell = row.getCell(time_index); + Cell room_cell = row.getCell(room_index); + Cell capacity_cell = row.getCell(capacity_index); + String lecturer_title = ""; String lecturer_surname = ""; String lecturer_name = ""; @@ -58,6 +75,23 @@ public class FileToDatabaseMigrator { String course_name = course_name_cell.toString(); String sym_str = sym.toString(); + int day = (int) Double.parseDouble(day_cell.toString()); + WeekDay group_day = WeekDay.getDay(day); + String room = room_cell.toString(); + int time = 480; + int capacity = (int) Double.parseDouble(capacity_cell.toString()); + + Groups group = groupService.find(time, capacity, room); + + if (group == null) { + group = new Groups(); + group.setCapacity(capacity); + group.setTime(time); + group.setRoom(room); + } + + groupService.save(group); + Course course = this.courseService.getCourseByName(course_name); if (course == null) { diff --git a/buisnesslogic/src/main/java/com/plannaplan/repositories/GroupRepository.java b/buisnesslogic/src/main/java/com/plannaplan/repositories/GroupRepository.java index 060685f..d733239 100644 --- a/buisnesslogic/src/main/java/com/plannaplan/repositories/GroupRepository.java +++ b/buisnesslogic/src/main/java/com/plannaplan/repositories/GroupRepository.java @@ -3,9 +3,12 @@ package com.plannaplan.repositories; import com.plannaplan.entities.Groups; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; @Repository public interface GroupRepository extends JpaRepository { - + @Query(value = "SELECT * FROM groups WHERE name = :name AND surname = :surname AND title = :title ", nativeQuery = true) + Groups find(@Param("time") int time, @Param("room") String room, @Param("capacity") int capacity); } \ No newline at end of file diff --git a/buisnesslogic/src/main/java/com/plannaplan/services/GroupService.java b/buisnesslogic/src/main/java/com/plannaplan/services/GroupService.java index 5c61643..b4ebe2b 100644 --- a/buisnesslogic/src/main/java/com/plannaplan/services/GroupService.java +++ b/buisnesslogic/src/main/java/com/plannaplan/services/GroupService.java @@ -1,5 +1,6 @@ package com.plannaplan.services; +import com.plannaplan.entities.Groups; import com.plannaplan.repositories.GroupRepository; import org.springframework.beans.factory.annotation.Autowired; @@ -9,4 +10,12 @@ import org.springframework.stereotype.Service; public class GroupService { @Autowired private GroupRepository repo; + + public Groups find(int time, int capacity, String room) { + return this.repo.find(time, room, capacity); + } + + public void save(Groups group) { + this.repo.save(group); + } } \ No newline at end of file diff --git a/buisnesslogic/src/main/java/com/plannaplan/types/WeekDay.java b/buisnesslogic/src/main/java/com/plannaplan/types/WeekDay.java index bee55b2..2db8277 100644 --- a/buisnesslogic/src/main/java/com/plannaplan/types/WeekDay.java +++ b/buisnesslogic/src/main/java/com/plannaplan/types/WeekDay.java @@ -8,4 +8,13 @@ public enum WeekDay { private WeekDay(int label) { this.label = label; } + + public static WeekDay getDay(int index) { + for (WeekDay d : values()) { + if (d.label == index) { + return d; + } + } + return null; + } } \ No newline at end of file