Skip to content

LeonArchie/journal_SO

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Проект: Автоматизация обработки школьного расписания

Описание
    Этот набор скриптов предназначен для обработки школьного расписания сформированного при помоща ПО АВЕРС 
        Он включает следующие функции:
            Преобразование Excel-файлов в CSV.
            Конвертация CSV-файлов в JSON.
            Нормализация JSON-данных.
            Поиск ошибок в данных.
            Преобразование JSON-файла в формат, подходящий для использования в ГИС СО ЕЦП.

Состав проекта
    Leader.py
        Основной скрипт, координирующий выполнение всех остальных скриптов. Управляет порядком выполнения, обрабатывает ошибки.
    delete.py
        Удаление временных файлов если они существуют
    exel_to_csv.py
            Преобразовывает файлы в csv формат в кодировке windows-1251
        
    csv_to_json.py
        Преобразовывает csv файл расписания в json файл для работы программы

    FindError.py
        Выполняет проверку на ошибка файла raspisanie.json
        
    add_key.py
       Технический скрипт, проверяет ключи в файле raspisanie.json 

    sinh_time.py
        Технический скрипт, добавляет время в уроки по подгруппам

    add_groups.py
        Скрипт выполняет привязку групп к урокам которые где они должны быть

    all_null_lesson.py
        Технический скрипт, нормализует raspisanie_groups_added.json добавляя пустые массивы

    lesson_sort.py
        Технический скрипт, сортирует массивы в нутри дня недели 
            
    update_cab.py
        Технический скрипт, добавляет значение Нет кабинет там где они не указаны

    check_group.py
        Скрипт проверяет назначение групп 
            
    update_lesson_gis.py
        Скрипт выполняет замену названий уроков с соответсвии с справочником zamena.csv

    Final_check.py
        Скрипт выполняет проверки названий уроков в соответсвии с справочником уроков lesson.csv   
        
    json_to_GIS_SO.py
        Скрипт готовит расписание для загрузки в ГИС СО ЕЦП

    GIS_to_exel.py
        Скрипт создает exel файл с правильнм форматированием, остается только ставить в ГИС

Зависимости
    Для работы скриптов требуются следующие библиотеки Python:
        pandas: Для преобразования Excel-файлов в CSV.
        csv: Для чтения и записи CSV-файлов.
        json: Для работы с JSON-данными.
        logging: Для ведения журнала событий.
        subprocess: Для запуска скриптов из Leader.py.
        os: Для работы с файловой системой.
        collections.OrderedDict: Для сохранения порядка элементов в JSON.

Инструкции по использованию
    Подготовка входных данных :
        Создайте Excel-файлы с данными:
            raspisanie.xlsx: Расписание уроков. (Выгружается из ПО АВЕРС в формате exel "Расписание всех классов. Расписание каждого класса отдельно")
            klass.xlsx: Список классов. (Выгружается из справочников ГИС СО ЕЦП)
            lesson.xlsx: Список уроков. (Выгружается из справочников ГИС СО ЕЦП)
            groups.xlsx: Список групп в связке с классом и предметом
                Класс	Предмет	Учитель	Группа
            zamens.xlsx^ Список уроков для замены
                Ключ    Значение
                

    !ВНИМАНИЕ!
    Файл raspisanie.xlsx пока еще дополнительной ручной валидации
    1. Номера уроков долдны быть только цифры (без доп символов)
    2. Скрипт ожидает определенной структуры файла
            Расписание всех классов; Расписание каждого класса отдельно
                                        СТРОКА
                    Расписание уроков для классов
                                        СТРОКА
            Класс - 5а
                                        СТРОКА
    #	Время	Понедельник		Вторник		Среда		Четверг		Пятница	
    Предмет	Каб.	Предмет	Каб.	Предмет	Каб.	Предмет	Каб.	Предмет	Каб.
         РАСПИСАНИЕ (без незначащих строк где есть время и номер урока но нет уроков)
    СТРОКА
                    Класс - 5б
                                        СТРОКА

    ОЧЕНЬ ВНИМАТЕЛЬНО ОТНИСИТЕЛЬ К НОРМАЛИЗАЦИИ ДАННЫХ

Запуск скриптов :
    Запустите основной скрипт Leader.py. Он автоматически выполнит все необходимые шаги:
        Удалит временные файлы.
        Преобразует Excel-файлы в CSV.
        Создаст JSON-файл с расписанием.
        Нормализует JSON-данные.
        Проверит данные на ошибки.
        Создаст CSV-файл для ГИС СО ЕЦП.
Проверка результатов :
    Результаты будут сохранены в следующих файлах:
        GIS_schedule.csv: Итоговый файл для импорта в ГИС СО ЕЦП.
        log.log: Журнал событий.
        error.log: Файл с ошибками (если они были обнаружены).
        err_groups.log: Файл с ошибками групп (если они были обнаружены).
        chech_groups.log: Файл с ошибками назначения групп.
        final_error.log: Файл с ошибками финальной проверки перед загрузкой

Важные замечания:
    Все файлы должны быть в кодировке cp1251 (Windows-1251), за исключением JSON-файлов, которые используют кодировку utf-8.
    Перед запуском основного скрипта (Lider.py) убедитесь, что все необходимые файлы находятся в указанных директориях.
    В случае обнаружения ошибок в расписании, проверьте файл log.log для получения подробной информации о проблемах.
    После успешного выполнения всех скриптов, итоговый CSV-файл будет сохранен в директории рядом с скриптом.

Лицензия:
    Данный проект распространяется под лицензией Apache License, Version 2.0. 
    Полный текст лицензии доступен по ссылке: http://www.apache.org/licenses/LICENSE-2.0.

Краткое описание лицензии:
    Вы можете свободно использовать, модифицировать и распространять данный проект как в коммерческих, так и в некоммерческих целях.
    Обязательным условием является указание авторства и сохранение уведомления об авторских правах.
    Лицензия не предоставляет гарантий на использование проекта, и авторы не несут ответственности за возможные 
    убытки или проблемы, возникшие в результате использования данного проекта.

                    Лицензионное уведомление:
            Copyright 2025 Petunin Lev Mikhailovish

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

Автор: Петунин Лев Михайлович
Email: levmikhailovish@yandex.ru
GitHub: https://github.com/LeonArchie
Дата: 03.02.2025
Версия: 3.0
    
    Если у вас возникли вопросы или предложения по улучшению проекта, пожалуйста, свяжитесь с автором.

    Если у Вас возникла какая либо ошибка которую Вы не можете разобрать самостоятельно 
    После исполнения скрипта не изменяйте никаких файлов, заархивируте всю папку со скриптом
    Отправьте архив по адресу levmikhailovish@yandex.ru и/или service@ippetunin.ru
    В теле письма опишите Вашу проблему и мы постараемся помочь в ближайшее время

About

Скрипты для миграции с программ составления расписания в электронный журнал свердловской области

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Contributors

Languages