Отказ от остаточной UTC-семантики: naive LocalDateTime трактуется как локальное время единой зоны всех сервисов. Backend (границы внешних систем): - VisibilityPayloadParser, SyncSpacecraftFromNsiUseCase: ZoneOffset.UTC → ZoneId.systemDefault() для проекции внешних Instant/ISO-с-Z в naive. - тесты границ перевёрнуты на systemDefault (под Europe/Moscow ждут +3). - чистка UTC-формулировок в DTO-комментариях, мёртвых ссылок на docs/standards/DATETIME_UTC.md. Frontend (pcp-tgu-ops-ui): - utils/utcTime.ts → utils/localTime.ts: parseLocal/formatLocal*/toLocalIso/ toLocalInputValue с локальной семантикой (без дописывания Z и timeZone:UTC). - замена getUTC*/Date.UTC/toISOString-сериализации на локальные аналоги. - убраны пользовательские подписи «UTC» в редакторе/таймлайне. - удалён utcTime.guard.test.ts (форсил обратный UTC-инвариант); тест-фикстуры сделаны зоно-независимыми. tsc + vitest зелёные под TZ=UTC и TZ=Europe/Moscow. Включает также прочие незакоммиченные правки рабочего дерева.
2.6 KiB
Следующая задача: маршруты, сбросы и перенос включений между планами
Статус: запланировано (дизайн ещё не начат). Это фиксация намерения, не финальный план.
Следующий блок работ — три связанные темы вокруг содержимого плана (включений) и их съёмочно-сбросовой обвязки:
1. Построение маршрутов
Довести построение маршрутов наблюдения по плану. Сейчас маршруты порождаются в
потоке createSatelliteMission (BPMN), где planId == missionId; результат
ложится в БД mission-planing. Уточнить: когда и по какому триггеру строятся
маршруты для нового/перевыданного плана, и как они привязаны к включениям.
2. Формирование сбросов
Формирование сбросов (DropMode) поверх съёмочных включений (SurveyMode):
расчёт окон сброса, привязка к ЗРВ/КПП, согласование времени сброса со временем
съёмки. Внутренние времена — naive LocalDateTime (см. сквозную модель без зон).
3. Перенос включений из плана в план
При перевыдаче/версионировании плана переносить уже сформированные включения (съёмки + сбросы) из предыдущего плана в новый — чтобы не терять набранное содержимое цепочки. Определить, что переносится как есть, что пересчитывается, и как это стыкуется с двумя осями версионирования (цепочка ТГУ + контент миссии).
Контекст / связанные места
- Маршруты и их сохранение:
createSatelliteMission,planId == missionId. - Сбросы/съёмки:
pcp-mission-planing-service—SurveyMode/DropMode,MissionPlaningService. - Версионирование/перевыдача плана — две оси (цепочка ТГУ + контент миссии).
- Время — сквозной naive
LocalDateTimeбез зоны (после отката UTC-слоя).