Пропущенный срок перестаёт быть неожиданностью
Срок ответа на предписание не срывается потому, что кто-то плохо работал. Он срывается потому, что о нём вспомнили в пятницу, а понедельник оказался выходным. В продукте срок — это не поле в таблице, а событие: дни считаются рабочими по производственному календарю, напоминания уходят заранее и по нескольким порогам, а всё отправленное остаётся в журнале.
Дни считаются рабочими — перенос выходных не съедает срок
Если считать срок календарными сутками, длинные праздники превращают «десять дней на ответ» в четыре рабочих. Продукт считает по производственному календарю: это отдельный справочник, который заполняется под конкретный год и учитывает переносы. Ответственный получает предупреждение тогда, когда у него ещё остаётся рабочее время, а не формально «за десять дней».
Пороги напоминаний: не одно письмо накануне
Одно напоминание за сутки до срока — это способ отчитаться, а не способ успеть. В продукте порогов несколько, и они разные для разных типов работ.
| О чём напоминаем | За сколько рабочих дней | Что это предотвращает |
|---|---|---|
| Общие пороги приближения срока | 10, 5, 3 и 1 | срок замечают на этапе, когда его ещё можно выдержать |
| Подготовка ответа на запрос или предписание | 3 | просрочка ответа надзорному органу |
| Корректирующие мероприятия | 10 и 5 | меры «по итогам проверки», которые так и не выполнили |
| Мероприятие с приоритетом «Лёгкий» | 3 | мелкие задачи не копятся до отчётной даты |
| Мероприятие с приоритетом «Средний» | 5 | запас на согласование внутри подразделения |
| Мероприятие с приоритетом «Серьёзный» | 7 | времени хватает на подготовку и на проверку результата |
| Пометка «близко к дедлайну» на диаграмме Ганта | 3 | руководитель видит риск срыва до того, как он случился |
По отчётности предусмотрены отдельные напоминания: о половине срока, о месячном, квартальном и годовом сроке, а также отдельное уведомление о просрочке.
Когда именно уйдут напоминания
Поставьте срок — и увидите даты, в которые ответственный получит письмо. Расчёт идёт назад от срока, суббота и воскресенье пропускаются.
Расчёт дат напоминаний
Считается в браузере, ничего никуда не отправляется.
Здесь пропускаются только суббота и воскресенье. В продукте рабочие и нерабочие дни берутся из справочника «Производственный календарь»: праздники и переносы учитываются, поэтому реальные даты могут отличаться от расчёта на этой странице.
Кого и о чём оповещают: 65 обработчиков, два канала
Уведомление — не «письмо о том, что что-то изменилось». Для каждой сущности заведён свой набор обработчиков: назначен ответственным, отправлено на согласование, возвращено на доработку, согласовано, приближается срок корректирующего мероприятия. Всего таких обработчиков 65 — по пять-восемь на сущность.
| Событие | Кто получает | Зачем |
|---|---|---|
| Назначен ответственным | новый ответственный работник | «я не знал, что это на мне» перестаёт быть аргументом |
| Отправлено на согласование | согласующий | карточка не лежит незамеченной в списке |
| Возвращено на доработку | ответственный | возврат виден сразу, вместе с комментарием причины |
| Согласовано | ответственный | не нужно заходить и проверять статус вручную |
| Приближается срок | ответственный | срок замечают заранее, а не по факту просрочки |
Каналов два: электронная почта — через почтовый шлюз или напрямую — и внутрисистемные push-уведомления, которые видит сотрудник, уже работающий в системе. Шаблоны писем хранятся в базе и правятся без пересборки приложения; кэш шаблонов очищается отдельной фоновой задачей, поэтому изменённый текст письма начинает уходить без перезапуска.
Журнал отправленного: спор «мне не приходило» решается за минуту
Все отправленные сообщения записываются в журнал почтовых уведомлений, доступный в разделе «Обработка данных». Это не служебный лог для администратора, а рабочий инструмент: видно, кому, когда и по какому событию ушло письмо. Рядом — журнал загрузки процессов из внешней системы и журнал обновления материализованных представлений.
Диаграмма Ганта: срыв виден до того, как он случился
Запросы и предписания показываются диаграммой Ганта в разделе «Продуктивность». Записи красятся по состоянию срока, и порог «близко к дедлайну» — три дня. Руководителю не нужно открывать двадцать карточек, чтобы понять, где горит.
Данные нейтральные. Состояния и порог «близко к дедлайну» — как в продукте. Диаграмма выгружается в Excel.
Фоновые задачи: расписание правится в интерфейсе, а не в релизе
Напоминания уходят не «когда кто-то нажмёт кнопку»: за них отвечают фоновые задачи. В версии 1.2.0 активных задач девять, и ни одна не хранит своё расписание в коде — каждая читает его из базы при каждом срабатывании. Меняется расписание в разделе «Настройки приложения» → «Задачи по расписанию», без пересборки и без перезапуска.
- Сроки подготовки ответанапоминания по запросам и предписаниям
- Сроки мероприятий и задачпороги зависят от приоритета
- Корректирующие мероприятияпо карточкам риска, манипулирования и конфликта интересов
- Планировщик отчётностиотслеживает приближение отчётных сроков
- Обновление справочников НСИматериализованные представления обновляются по расписанию
- Очистка кэша шаблонов писемизменённый текст письма уходит без перезапуска
Одна упавшая задача не останавливает остальные
Ошибка внутри задачи логируется, но не роняет планировщик: остальные напоминания продолжают уходить. Параллельный запуск одной и той же задачи на нескольких узлах кластера блокируется — двойных писем сотрудник не получит. Все запуски пишутся в журналы, поэтому вопрос «а напоминание вообще отработало» проверяется, а не обсуждается.
Что это даёт ИТ-директору
- Расписания не зашиты в код и не лежат в конфигурационных файлах на серверах: они хранятся в базе и правятся в интерфейсе. Изменение регламента напоминаний — не задача на релиз.
- Планировщик включается и выключается целиком одним параметром, а каждая задача — отдельным признаком: на резервном контуре фоновые задачи можно не запускать.
- Защита от двойного запуска в кластере встроена, отдельная координация не нужна.
- Наблюдаемость: журналы запусков со статусами, отдельный журнал фоновых работ, журнал почтовых уведомлений и метрики приложения в формате Prometheus.
Расписания фоновых задач хранятся в базе и настраиваются при внедрении под регламент организации: частоту напоминаний и время формирования отчётов вы задаёте сами.
Посмотреть, как считаются сроки
На стенде заводим предписание, ставим срок и показываем, когда и кому уйдут напоминания, как это выглядит на диаграмме и что попадает в журнал.