Я работаю над веб-приложением, в котором каждый сотрудник может видеть свою ежедневную историю входа / выхода за выбранный период.
Данные входа / выхода извлекаются из устройства учета биометрических отпечатков пальцев и сохраняются в базе данных следующим образом. :
Employee punchtime
-------------------------------
Jack 2019-03-19 07:23:37
Smith 2019-03-19 07:45:07
Will 2019-03-19 07:57:35
Will 2019-03-19 07:57:40
Jack 2019-03-19 16:57:53
Will 2019-03-19 16:59:03
Smith 2019-03-19 17:00:01
Smith 2019-03-19 17:00:02
Вход и выход из системы перфорированы на одном устройстве, поэтому устройство регистрирует каждый журнал, как показано выше. Я пытаюсь сгенерировать ежемесячный отчет о сотрудниках с:
- Ежедневный вход и выход из системы каждого сотрудника. Проигнорируйте повторные удары, т. Е. Кто-то пробивает в 07:25:01, а кто-то в 07:26:01 (просто чтобы убедиться).
- Будет рассматриваться только первый и последний удар в любой день.
- Рассчитать количество часов в день и, следовательно, рассчитать месячную продолжительность. Прикрепите каждого сотрудника к заранее определенным графикам (каждая команда сотрудников имеет разное время входа / выхода из системы)
Мой вопрос - каков наилучший подход для этого в python? Мое предположение - создать один массив со всеми датами от start_date до end_date требуемого отчета и начать выдавать данные перфорации следующим образом:
date
employee_id
punchtime_login
punchtime_logout
ignored_punches (json)
logged_in_time
Затем показывать пользователям по мере необходимости. Мне интересно, есть ли какие-либо стандартные библиотеки / подходы к этой проблеме.