12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- #!/usr/bin/env php
- <?php
- // Загружает первоначальные данные в БД
- // Аргументы:
- // 1. Год поступления первого курса
- // 2. Путь к файлу .CSV, где хранятся id семестров avers
- // 3. Путь к файлу .CSV, где хранятся все работники техникума, которых нужно
- // добавить
- use BotKit\Common\Database;
- use BotKit\Entities;
- require __DIR__ . '/../src/bootstrap.php';
- $em = Database::getEM();
- $start_year = $argv[1];
- $avers_period_path = $argv[2];
- $employee_path = $argv[3];
- // --Специальности и группы--
- $spec_names = ["СП","ТО","ТМ","ИС","ЭЛ","ПК","ОС","МО","ЭМ","НС","СВ","ТП"];
- foreach ($spec_names as $spec_name) {
- // Для каждой специальности создаётся запись специальности и 4 курса
- $spec = new Entities\CollegeSpec();
- $spec->setName($spec_name);
- $em->persist($spec);
- for ($i = 1; $i < 5; $i++) {
- $group = new Entities\CollegeGroup();
- $group->setSpec($spec);
- $group->setEnrollmentYear($start_year + $i - 1);
- $em->persist($group);
- }
- }
- $em->flush();
- // --Аверс--
- $av_data = file($avers_period_path);
- for ($y = 1; $y < count($av_data); $y++) {
- $row = explode(",", $av_data[$y]);
- // --Определяем какая группа имеется ввиду в этой строке--
- // Специальность
- $target_spec = $em->getRepository(Entities\CollegeSpec::class)->findOneBy([
- 'name' => $row[1]
- ]);
- if ($target_spec === null) {
- // Не будем разбираться -- просто игнорируем
- continue;
- }
- $target_enrolled_at = $row[2]; // Когда зачислилась
- $target_group = $em->getRepository(Entities\CollegeGroup::class)->findOneBy([
- 'spec' => $target_spec,
- 'enrollment_year' => $target_enrolled_at
- ]);
- // --Определение номера семестра--
- // Если WEEK_NUM1 - 1, то это начало нового учебного года, в одном году
- // два семестра.
- // Тем самым, номер семестра = ...
- if ($row[5] == 1) {
- // ... COURSE_NUM * 2 - 1
- $ord_num = $row[4] * 2 - 1;
- } else {
- // ... COURSE_NUM * 2
- $ord_num = $row[4] * 2;
- }
- // --Создаём запись--
- $period = new Entities\Period();
- $period->setGroup($target_group);
- $period->setOrdNumber($ord_num);
- $period->setAversId(trim($row[7]));
- $em->persist($period);
- }
- $employee_data = file($employee_path);
- for ($y = 1; $y < count($employee_data); $y++) {
- $row = explode(",", $employee_data[$y]);
- $employee = new Entities\Employee();
- $employee->setSurname($row[0]);
- $employee->setName($row[1]);
- $employee->setPatronymic($row[2]);
- $em->persist($employee);
- }
- $em->flush();
- echo "Старт базы данных проведён успешно!";
|