Управление данными времени
Хранение временных интервалов
Как данные времени хранятся и организуются
Система отслеживания времени использует централизованную структуру таблицы time_intervals для всего хранения данных времени:
Основные поля временных интервалов:
- started_at и finished_at временные метки для точного отслеживания времени
- user_id связывает время с конкретными участниками команды
- project_id ассоциирует время с проектами
- task_id (опционально) для отслеживания времени конкретных задач
- type поле, указывающее метод отслеживания (START, CONTINUE, FINISH, AUTO)
- manual_time флаг, различающий ручные записи от отслеживания настольного приложения
Связи базы данных:
- Связи внешних ключей обеспечивают целостность данных с пользователями и проектами
- Возможности мягкого удаления для ссылок на проекты и пользователей
- Индексированное поле started_at для эффективных запросов на основе дат
- Поддержка отслеживания времени с несколькими валютами через поле currency_id
Организация данных:
- Временные интервалы хранятся с временными метками, учитывающими часовые пояса
- Заметки могут быть прикреплены к временным интервалам через полиморфные связи
- Ассоциации скриншотов связывают визуальные доказательства с временными интервалами
- Изоляция команды обеспечивает безопасность данных и правильный контроль доступа
Методы расчета времени
Расчеты продолжительности и форматирование времени
Система использует несколько сложных методов для расчетов времени:
Расчет продолжительности:
- Основной расчет использует
TIMESTAMPDIFF(SECOND, started_at, finished_at)для точности - Автоматическая конверсия между секундами, минутами, часами и днями
- Поддержка как десятичных часов, так и форматирования времени HH:MM:SS
- Конверсия времени в часы:
часы + (минуты/60) + (секунды/3600)
Опции форматирования времени:
- SEC_TO_TIME() конвертирует секунды в формат HH:MM:SS
- TIME_TO_SEC() конвертирует HH:MM:SS в общие секунды
- Пользовательское форматирование для разных контекстов отображения (отчеты, панели управления, счета)
- Поддержка продолжительности ISO 8601 для продвинутых расчетов времени
Точность расчетов:
- Точность на уровне секунд для всех расчетов времени
- Расчеты с учетом часовых поясов соблюдают предпочтения команды и пользователей
- Автоматическая обработка переходов на летнее время
- Согласованные методы расчета во всех компонентах системы
Перемещение времени между проектами
Перемещение отслеживаемого времени в правильные проекты с аудит-трейлом
Workify предоставляет возможность перемещать временные интервалы между проектами, когда время было случайно отслежено в неправильном проекте. Эта функция включает комплексное аудит-логирование для обеспечения прозрачности и предотвращения мошенничества.
Доступ к перемещению времени:
- Перейдите на страницу Моя работа
- Найдите временной интервал, который хотите переместить
- Нажмите кнопку Переместить (иконка стрелки) рядом с интервалом
Перемещение временных интервалов:
Открыть диалог перемещения
- Нажмите кнопку перемещения на любом временном интервале
- Отображается информация о текущем проекте
- Показаны продолжительность и временной диапазон для верификации
Выбрать целевой проект
- Выберите правильный проект из выпадающего списка
- Доступны только проекты, к которым у вас есть доступ
- Проекты должны быть в той же команде
Предоставить причину (опционально, но рекомендуется)
- Введите, почему время перемещается
- Примеры: "Отслежено в неправильном проекте", "Клиент изменил область"
- Причина сохраняется в аудит-логе для подотчетности
Подтвердить перемещение
- Нажмите "Переместить время" для завершения действия
- Временной интервал немедленно обновляется
- Изменение автоматически логируется
Ограничения и валидации:
- ✅ Нельзя перемещать инвойсированное время - После выставления счета время нельзя перемещать
- ✅ Только в той же команде - Время нельзя перемещать между разными командами
- ✅ Требуется разрешение - И разрешения компании, и пользователя должны разрешать перемещение
- ✅ Только активные проекты - Нельзя перемещать время в архивированные/удаленные проекты
Визуальные индикаторы:
Когда временной интервал был перемещен, появляется значок "Перемещено" рядом с названием проекта:
- Значок кликабелен для просмотра полной истории перемещений
- Показывает, кто переместил, когда и из какого проекта
- Включает причину, если она была предоставлена
Аудит-лог перемещений
Комплексное отслеживание всех перемещений времени
Каждое перемещение времени автоматически логируется с полной информацией аудит-трейла для обеспечения прозрачности и предотвращения несанкционированных изменений.
Что логируется:
Для каждого перемещения времени система записывает:
- Кто внес изменение (имя пользователя и ID)
- Когда произошло изменение (временная метка с часовым поясом)
- Что изменилось (старый проект → новый проект)
- Почему изменилось (опциональная причина, предоставленная пользователем)
- Где это произошло (IP-адрес пользователя)
- Как (информация о пользовательском агенте/браузере)
Просмотр истории перемещений:
Для отдельных интервалов:
- Нажмите значок "Перемещено" на любом перемещенном интервале
- Открывается модальное окно, показывающее полную историю перемещений
- Смотрите все перемещения, если интервал был перемещен несколько раз
- Просматривайте, кто сделал каждое перемещение и почему
Для аудита всей команды:
- Перейдите в Отчеты → Журнал перемещений времени
- Смотрите все перемещения времени по вашей команде
- Пагинированный список с 50 перемещениями на страницу
- Показывает: когда, кто, из какого проекта, в какой проект, причина
Функции аудит-лога:
- Неизменяемые записи - Аудит-логи нельзя редактировать или удалять
- Постоянный трейл - Полная история сохраняется бессрочно
- Контекст безопасности - IP и пользовательский агент логируются для криминалистики
- Поиск - Будущая фильтрация по дате, пользователю или проекту
- Доступ на основе разрешений - Только авторизованные пользователи могут просматривать аудит-логи
Кто может просматривать аудит-логи:
- Супер-администраторы - Могут просматривать все журналы перемещений в своей команде
- Менеджеры организации - Могут просматривать все журналы перемещений в своей команде
- Менеджеры проектов - Могут просматривать все журналы перемещений в своей команде
- Обычные пользователи - Могут просматривать логи только для своих собственных временных интервалов
Безопасность аудит-лога:
Система аудит-логирования разработана для предотвращения мошенничества и обеспечения подотчетности:
- Все изменения отслеживаются автоматически - нельзя обойти
- Логи хранятся отдельно от временных интервалов - защищены от подделки
- Ограничения на уровне базы данных предотвращают модификацию
- Полный аудит-трейл для соответствия и подотчетности
Агрегация времени
Суммирование времени задач до уровня проектов и команды
Система предоставляет комплексную агрегацию времени на нескольких организационных уровнях:
Агрегация на уровне задач:
- Индивидуальные общие итоги времени задач рассчитываются из связанных временных интервалов
- Сводки времени задач показывают общее время, вложенное в каждую задачу
- Корреляция завершения задач с отслеживанием вложений времени
- Ежедневный и еженедельный анализ времени задач для инсайтов продуктивности
Агрегация на уровне проектов:
- Ежедневные общие итоги времени проектов с обновлениями в реальном времени во время отслеживания
- Еженедельные расчеты времени проектов с настраиваемыми лимитами (по умолчанию 40 часов)
- Процентное распределение времени проектов между участниками команды
- Исторический анализ времени проектов для идентификации трендов
Агрегация на уровне команды:
- Ежедневные сводки времени команды по всем проектам и участникам
- Подсчеты активных участников на основе активности отслеживания времени
- Метрики продуктивности команды и анализ распределения времени
- Распределение времени между проектами для планирования ресурсов
Агрегация на уровне пользователей:
- Индивидуальные общие итоги времени пользователей по всем назначенным проектам
- Ежедневные и еженедельные лимиты времени с автоматическим принуждением
- Личная аналитика продуктивности и паттерны отслеживания времени
- Исторические данные времени пользователей для анализа производительности
Исторические данные времени
Доступ и анализ исторических записей времени
Система поддерживает комплексные исторические данные времени с гибкими методами доступа:
Доступ к историческим данным:
- Запросы диапазона дат поддерживают анализ любого исторического периода
- Эффективная индексация базы данных позволяет быстрое извлечение исторических данных
- Данные временных интервалов сохраняются даже при удалении проектов или пользователей
- Комплексный аудит-трейл для всех активностей отслеживания времени
Возможности исторического анализа:
- Анализ трендов времени по дням, неделям, месяцам и годам
- Отслеживание эволюции времени проектов для долгосрочных проектов
- Тренды продуктивности команды и сезонный анализ
- Сравнительный анализ между разными временными периодами
Сохранение данных:
- Постоянное хранение всех записей временных интервалов
- Данные скриншотов поддерживаются с связанными временными интервалами
- Заметки и контекст сохраняются для будущего использования
- Логи отслеживания времени поддерживаются для отладки и анализа
Историческая отчетность:
- Гибкий выбор диапазона дат для пользовательских исторических отчетов
- Агрегация времени по различным периодам (ежедневно, еженедельно, ежемесячно)
- Исторический анализ прибыльности проектов с использованием данных времени и ставок
- Тренды производительности команды за расширенные периоды
Экспорт данных времени
Экспорт данных времени для внешнего анализа
Система поддерживает комплексные возможности экспорта данных времени:
Форматы экспорта:
- Данные времени интегрированы в генерацию счетов для выставления счетов клиентам
- Генерация отчетов с настраиваемым выбором временного периода
- Экспорт данных диаграмм для визуального анализа и презентаций
- Генерация отчетов команды с автоматическим планированием
Опции области экспорта:
- Экспорт данных времени отдельных пользователей
- Извлечение данных времени для конкретных проектов
- Компиляция данных времени всей команды
- Данные времени для конкретных клиентов для прозрачного выставления счетов
Функции автоматизированного экспорта:
- Ежедневные отчеты команды автоматически генерируются и распространяются
- Еженедельная генерация счетов из данных отслеживаемого времени
- Запланированная генерация отчетов для регулярных бизнес-процессов
- Доставка отчетов времени по электронной почте заинтересованным сторонам
Интеграция данных:
- Данные времени поступают напрямую в системы выставления счетов
- Интеграция с отслеживанием расходов для полного расчета стоимости проектов
- Интеграция расчета ставок для точного выставления счетов
- Поддержка нескольких валют для международных операций
Целостность данных и производительность
Обеспечение точного управления данными времени
Система включает надежные функции целостности данных и оптимизации производительности:
Меры целостности данных:
- Записи времени на основе транзакций предотвращают частичную коррупцию данных
- Автоматическая валидация связей временных интервалов
- Принуждение ограничений для логических последовательностей времени
- Проверки согласованности данных по связанным записям
Оптимизация производительности:
- Стратегическая индексация базы данных для быстрых запросов времени
- Эффективные запросы агрегации минимизируют нагрузку на систему
- Кэшированные расчеты для часто используемых общих итогов времени
- Оптимизированные запросы диапазона дат для доступа к историческим данным
Обеспечение качества данных:
- Автоматическое обнаружение и предотвращение перекрывающихся временных интервалов
- Валидация логики последовательности времени (начало перед окончанием)
- Принуждение минимальных временных интервалов (минимум 10 минут)
- Валидация лимитов времени (максимум 24 часа в день)
Резервное копирование и восстановление:
- Полное сохранение данных времени в резервных копиях системы
- Возможности восстановления на определенный момент времени для данных времени
- Поддержка миграции данных для обновлений системы
- Возможности экспорта для портативности данных и резервного копирования
