Приложение для создания отчёта рабочего времени сотрудников в формате Excel на основе архивных сообщений о проходах сотрудников на объекте под управлением СУДОС Цирконий-М.
По требованию заказчика, на основе утверждённого шаблона Excel, требовалось автоматизировать создание отчёта по фактической отработке групп сотрудников на рабочем месте на основе данных о входе/выходе на объект. Так же должен учитываться обеденный перерыв и опоздания относительно начала и окончания смены, указанного в БД сотрудников.
Внешний вид приложения
Результат выгрузки в формате Excel (xlsx)
Возможность разворачивания программы на хостах с ОС Windows7-11x64/AstraLinux1.7.
Полный набор фильтров по БД сотрудников. Настройка ключевых параметров в отдельной форме приложения.
Состав программы - бинарный файл и dll для встроенной БД. Файл конфигурации пересоздаётся при его отсутствии.
При старте программы считываются переменные из файла конфигурации. Далее выполняется считывание БД сотрудников и доступные даты протоколов сообщений для активации их в календаре. Календарь для фреймворка Fyne был дописан отдельно (добавлена подсветка выбранных дат, изменена локлизация языка на кирилицу). Все данные по сотрудникам и протоколам прохода обрабатываются в БД Object-box, которая выбиралась по параметрам быстродействия и для задач ознакомления и сравнения с аналогами. После окончания фильтрации сотрудников и выделения нужных для выгрузки, выполняется анализ по каждому сотруднику его времени нахождения на объекте по каждому дню интервала, вычитая время опозданий и игнорируя отсутствие на объекте в обеденный перерыв. Процесс создания алгоритма анализа интервалов нахождения на объекте сотрудника был наиболее трудоёмким, так как необходимо было учитывать частые нестандартные ситуации: повторные уходы/приходы, например при транзите кабины без отметки в системе, приход без ухода, уход без прихода и т.п. Результаты заполняют шаблон формата xlsx, находящийся в теле бинарного файла и после заполнения происходит сохранение результата в файл.