Commit Graph

91 Commits

Author SHA1 Message Date
Дмитрий Соловьев 39f108e496 Handle Ordinis outage in TGU service
Classify Ordinis classifier transport failures and empty responses as unavailable, keep stale platform cache when possible, and expose Prometheus metrics/alerting for the outage signal.
2026-05-30 21:04:57 +03:00
Дмитрий Соловьев 82eddedc92 feat(tgu-ops-ui): OSM tiles, editor layout fixes, map resizer
Карта:
- Заменить схематичные контуры континентов на тайлы CartoDB Dark
  (dark_nolabels, CC BY 3.0, без API-ключа) через модульный кеш
  tileLoader.ts + отрисовщик drawTiles.ts на существующей Web Mercator
  проекции — без новых зависимостей
- Сохранить сетку lat/lon 30° поверх тайлов (полезна для орбитального
  анализа), убрать нарисованные контуры и градиент океана
- Обновить атрибуцию: © OpenStreetMap contributors · © CARTO

Вкладка Редактор — раскладка:
- Исправить цепочку высот: workspace переведён с display:grid на
  display:flex + flex-direction:column; layout получает flex:1 — единственный
  надёжный способ пробросить definite height через несколько вложенных
  grid-контейнеров в Chrome
- Обернуть условные notice/applyError в постоянный div.tgu-editor-notices,
  чтобы .tgu-editor-layout всегда был третьим flex-ребёнком (раньше при
  отсутствии уведомлений попадал во вторую auto-строку grid и схлопывался)

Вкладка Редактор — карта:
- Добавить перетаскиваемый разделитель между картой и таймлайном:
  mapRatio state (по умолчанию 50/50), drag-хендлер через document events,
  ограничение 15–80%, визуальный индикатор .tgu-editor-map-resizer
- Ограничить окно наземной трассы 24ч (720 точек, шаг 2 мин) независимо
  от зума таймлайна — при широком диапазоне (7 суток) шаг был 38 мин,
  трасса выглядела как хаотическая сетка через весь глобус

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-30 16:30:53 +03:00
Дмитрий Соловьев f084775cbb feat(tgu-ops-ui): add spacecraft work editor tab
Port the TGU editor prototype into pcp-tgu-ops-ui as a new editor tab, add draft/conflict/pass logic with tests, extend the 2D map picking API, and include editor styles/theme aliases and task/prototype docs.

Validation: npm run test; npm run build in services/pcp-tgu-ops-ui.
2026-05-30 15:28:34 +03:00
Дмитрий Соловьев c3a1a8b4a1 Add PCP architecture docs and TGU ops updates
Capture current PCP architecture notes, service-map prototypes, TGU operations UI/map work, local configuration updates, database helper scripts, and request/sample JSON artifacts.
2026-05-30 14:18:19 +03:00
Дмитрий Соловьев 9fca4d4051 pcp-tgu интерфейс 2026-05-29 16:09:36 +03:00
Дмитрий Соловьев 913b3d7c9b pcp-tgu интерфейс 2026-05-29 15:18:21 +03:00
Дмитрий Соловьев 4556592e63 pcp-tgu интерфейс 2026-05-29 15:15:02 +03:00
emelianov 2d100fdd54 БД для complex-missions dev 2026-05-29 14:45:24 +03:00
emelianov 41c3539b17 БД для ballistics dev 2026-05-29 14:30:03 +03:00
emelianov a6f179550c БД для ballistics dev 2026-05-29 14:07:15 +03:00
Дмитрий Соловьев e7c2060e2e pcp-tgu 2026-05-29 13:35:32 +03:00
emelianov 3fd702ca47 Задание НУ из ui 2026-05-29 12:41:32 +03:00
emelianov d693bf799d Задание НУ из ui 2026-05-29 10:52:36 +03:00
emelianov 7dfa1163e9 Расчет средних ЗРВ 2026-05-28 16:47:43 +03:00
emelianov 2c65f412cf Расчет средних ЗРВ 2026-05-28 13:49:35 +03:00
emelianov 6e62a0bd19 -sonar 2026-05-27 17:55:03 +03:00
emelianov 7dc786362c -sonar 2026-05-27 17:09:47 +03:00
emelianov b4dda51460 -sonar 2026-05-27 15:52:14 +03:00
emelianov bfb9d5b01f анализ TLE 2026-05-27 15:30:24 +03:00
emelianov d07b17e03e сравнение TLE 2026-05-27 12:35:20 +03:00
emelianov f4014a08a1 сравнение TLE 2026-05-27 12:00:52 +03:00
emelianov 29c06a4c9c сравнение TLE 2026-05-27 11:40:31 +03:00
Дмитрий Соловьев 3dce0aec0d Основные изменения:
состояние окон видимости, расписания планов, попыток выдачи и job’ов перенесено в БД;
план и попытка выдачи разделены на разные сущности;
Kafka-события теперь двигают persisted state/jobs, а не локальную память pod’а;
BPMN createSatelliteMission теперь отвечает только за одну попытку выдачи плана;
обновление слотов после принятия плана вынесено в отдельный BPMN-процесс;
workers используют DB claim/lock model и безопасны для нескольких pod’ов;
тестовый ручной API вынесен в отдельный disabled-by-default controller
2026-05-27 10:29:41 +03:00
emelianov 1a6e51bf25 Учет забронированных слотов при расчете комплексного плана 2026-05-27 10:24:14 +03:00
emelianov 2aafa561ed Учет забронированных слотов при расчете комплексного плана 2026-05-27 10:03:23 +03:00
Дмитрий Соловьев cf3bb63bc1 Запрос только аппаратов со статусом operational 2026-05-26 14:03:59 +03:00
Дмитрий Соловьев 12d8b01bae При отсутствии данных endpoint возвращает пустой лист 2026-05-26 13:44:38 +03:00
emelianov 4d2a5952c9 test 2026-05-26 13:09:39 +03:00
emelianov 23c540ead0 test 2026-05-26 12:55:21 +03:00
Дмитрий Соловьев 4edf9d7aa8 Добавлен кэш, запросы в НСИ раз в 15 минут 2026-05-26 12:41:08 +03:00
emelianov 38c1449e97 Доработка отображения текущего плана 2026-05-26 12:32:33 +03:00
Дмитрий Соловьев cbbafebf79 Перевод pcp-tgu на новый НСИ 2026-05-26 11:07:37 +03:00
emelianov 1229995f90 Доработка отображения текущего плана 2026-05-25 22:02:17 +03:00
emelianov d4682fdeb7 отображение забронированных слотов и тестовые НУ 2026-05-25 21:02:53 +03:00
emelianov f549e15c63 отображение забронированных слотов и тестовые НУ 2026-05-25 21:02:50 +03:00
Дмитрий Соловьев 1ef912be66 @ 2026-05-25 15:57:11 +03:00
Дмитрий Соловьев fa357a78b4 улучшить observability и документацию outbox
- обновить README с текущим Kafka, DB, outbox и scaling flow
- расширить логи listener, ingestion, publisher и outbox worker
- не логировать raw payload и outbox payload
- закрыть test controller явным property
- добавить Micrometer counters для ingestion и outbox outcomes
- сохранить listener flow, payload contract и delivery semantics без изменений
2026-05-25 15:20:25 +03:00
Дмитрий Соловьев 4073897efc добавить масштабируемый outbox worker для паспортов маршрутов
- добавить properties и config values для route passport outbox worker
- включить Spring scheduling в route-processing service
- добавить транзакционный сервис claim и status transitions для outbox
- публиковать claimed outbox rows через существующий Kafka publisher
- обрабатывать publish failures по каждой row с bounded exponential backoff
- обеспечить безопасность при нескольких pod через FOR UPDATE SKIP LOCKED и lockedUntil
- добавить unit tests для claim, publish transitions, retry/fail behavior и batch-обработки worker
2026-05-25 15:05:10 +03:00
Дмитрий Соловьев b5990a55ac добавить масштабируемый outbox worker для паспортов маршрутов
- добавить properties и config values для route passport outbox worker
- включить Spring scheduling в route-processing service
- добавить транзакционный сервис claim и status transitions для outbox
- публиковать claimed outbox rows через существующий Kafka publisher
- обрабатывать publish failures по каждой row с bounded exponential backoff
- обеспечить безопасность при нескольких pod через FOR UPDATE SKIP LOCKED и lockedUntil
- добавить unit tests для claim, publish transitions, retry/fail behavior и batch-обработки worker
2026-05-25 15:05:04 +03:00
Дмитрий Соловьев 9d6f838692 публикация одной outbox-записи паспорта маршрута
- добавить надёжные настройки Kafka producer
- публиковать один record из RoutePassportOutboxEntity с timeout
- сериализовать JsonNode payload напрямую как JSON object
- пробрасывать ошибки Kafka send вызывающему коду
- обновить тесты publisher и producer config
2026-05-25 14:52:26 +03:00
Дмитрий Соловьев d48ddd2657 Init 2026-05-25 14:23:52 +03:00