9c2d8516bc
Оператор берёт за основу прошлый план (предыстория) или начинает цепочку с нуля,
набирает окно из двух реальных ЗРВ и создаёт план-кандидат; сразу показывается прогноз
будущей цепочки от него. Рабочим (якорем) план становится после ручной отправки (promote)
и приёмки — отдельного механизма якорения не вводим.
pcp-tgu-service:
- сырые ЗРВ: PlanCalculationService.rawWindows + PlanProjectionService.rawZrvWindows,
GET /api/plans/{spacecraftId}/zrv (исходные окна снапшота, не cooked-проекция);
- CreateChainPlanUseCase + POST /api/plans/new-chain: опциональная база (клон включений
в окно) либо пустая миссия без истории; прогноз цепочки через projectAfterWindow;
- ZrvWindowMatcher (старт+КПП одной зоны, конец — другой); assertDraftSlotStillValid
переведён на него — единая проверка для replace/fork-forward и окна из двух ЗРВ;
- тесты: CreateChainPlanUseCaseTest (8), ZrvWindowMatcherTest (7), правки promote-тестов.
pcp-mission-planing-service:
- POST /api/missions/blank — пустая миссия для сценария «без истории» (+ 2 теста).
pcp-tgu-ops-ui:
- API fetchZrvWindows/createChainPlan; диалог «Создать план» во вкладке «Планы»
(выбор базы, стартовой и конечной ЗРВ) с показом спрогнозированной цепочки и ручной
отправкой; подсветка ЗРВ выбранного КА на таймлайне;
- «Целевая ЗРВ» убрана из редактора (он остаётся под replace-правку); удалён ставший
мёртвым editorForkForward; createChainWindows + тесты.
Spacecraft Planning Service
Сервис планирования наблюдений космических аппаратов.
Сервис получает данные о доступных пунктах наблюдения и окнах наблюдения, строит непрерывную цепочку планов для каждого космического аппарата и отправляет уведомления перед началом каждого плана.
Основные возможности
Сервис выполняет следующие функции:
- хранит планы космических аппаратов
- строит непрерывную цепочку планов
- принимает обновления пунктов наблюдения
- пересчитывает планы при обновлении данных
- отправляет Kafka уведомления перед началом плана
- предоставляет REST API для чтения планов
Основные сущности
Plan
План космического аппарата.
Содержит:
- spacecraftId
- startTime
- endTime
- insertionPointId
SpacecraftPoints
Набор входных данных по одному космическому аппарату.
Содержит:
- spacecraftId
- список пунктов наблюдения
InsertionPoint
Пункт закладки.
Содержит:
- pointId
- список окон наблюдения
ObservationWindow
Окно наблюдения космического аппарата.
Содержит:
- startTime
- endTime
- elevationAngle
Алгоритм построения планов
Алгоритм MVP:
- Все
observationWindow.startTimeсчитаются кандидатами на старт плана. - Для текущего старта ищется следующий старт: