Files
dc-observatio/services/pcp-tgu-service
Дмитрий Соловьев 5049395911 pcp-tgu: пауза цепочки после REJECTED + режим «Черновики» + UI цепочек/ЗРВ
Бэкенд (pcp-tgu-service):
- REJECTED трактуется как «план неправильный»: авто-перевыдача больше НЕ
  взводится, цепочка встаёт на паузу (новый флаг
  SpacecraftPlanningStateEntity.pausedAfterReject, миграция V13). Технические
  негативы («не заложен»/«не принят») по-прежнему дают срочную перевыдачу.
- Пауза централизована в PlanProjectionService.project(): для отклонённой
  цепочки проекция пустая, воркер выдачи ничего не материализует. Флаг
  снимается при ручной выдаче/промоуте черновика/приёмке (оператор вмешался).
- Режим «Черновики»: GET /plans/drafts (опц. ?spacecraftId) -> только DRAFT.
- Гард дублей черновиков: (КА + начало + конец) уникальны среди DRAFT,
  повторное создание окна -> 409.
- ZrvWindowMatcher: сравнение по истинной abs-длительности Duration (<=1с),
  устойчиво к усечению ISO на фронте до целых секунд.

Фронт (pcp-tgu-ops-ui): вкладка «Планы» — таймлайн цепочек, детали плана,
панель ЗРВ (TguZrvPanel), диалог создания цепочки, режим черновиков.

Удалён устаревший docs/tasks/TASK_tgu-plan-versioning-manual-reissue.md.
2026-06-04 00:04:47 +03:00
..
2026-05-25 14:23:52 +03:00
2026-05-27 17:09:47 +03:00
2026-05-25 14:23:52 +03:00
2026-05-29 13:35:32 +03:00
2026-05-25 14:23:52 +03:00
2026-05-25 14:23:52 +03:00

Spacecraft Planning Service

Сервис планирования наблюдений космических аппаратов.

Сервис получает данные о доступных пунктах наблюдения и окнах наблюдения, строит непрерывную цепочку планов для каждого космического аппарата и отправляет уведомления перед началом каждого плана.


Основные возможности

Сервис выполняет следующие функции:

  • хранит планы космических аппаратов
  • строит непрерывную цепочку планов
  • принимает обновления пунктов наблюдения
  • пересчитывает планы при обновлении данных
  • отправляет Kafka уведомления перед началом плана
  • предоставляет REST API для чтения планов

Основные сущности

Plan

План космического аппарата.

Содержит:

  • spacecraftId
  • startTime
  • endTime
  • insertionPointId

SpacecraftPoints

Набор входных данных по одному космическому аппарату.

Содержит:

  • spacecraftId
  • список пунктов наблюдения

InsertionPoint

Пункт закладки.

Содержит:

  • pointId
  • список окон наблюдения

ObservationWindow

Окно наблюдения космического аппарата.

Содержит:

  • startTime
  • endTime
  • elevationAngle

Алгоритм построения планов

Алгоритм MVP:

  1. Все observationWindow.startTime считаются кандидатами на старт плана.
  2. Для текущего старта ищется следующий старт: