fix(site-finder): ГРС-парсер переписан под реальную структуру таблицы ГТЕ #2145
No reviewers
Labels
No labels
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
Fable 5 ревью
feedback/max
generative
GG-форсайт
needs-discussion
needs-human
observability
pause-bots
performance
priority/p0
priority/p1
priority/p2
priority/p3
scope/backend
scope/db
scope/devops
scope/frontend
scope/qa
scrapers
security
site-finder
stage/1
stage/2
status/blocked
status/done
status/needs-analysis
status/needs-fix
status/qa
status/ready
status/review
status/wip
tech-debt
tradein
ux
week ревью 1
wontfix
вторичка
ИРД
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#2145
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "fix/grs-parser-real-table"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
3-я итерация ГРС-лоадера (после SSL-фиксов #2124/#2125)
Старый header-per-column парсер дал rows=0 на живой таблице. Реальная структура снята с прода (350 строк): caption-строка → asof «по состоянию на 01.06.2026» → заголовки (строка 2) → суб-заголовки уведомления + нумерация → регионы-разделители (single-cell «СВЕРДЛОВСКАЯ ОБЛАСТЬ») → данные: full n=13 (idx 2=имя, 3=проектная, 4=загрузка, 5=объём по ТУ, 6=свободная, 7=«(2 %)», 8-10=уведомление) и continuation n=7 (доп. выход ГРС со сдвигом).
Фикс
output_name(числовой «(5)» остаётся в имени); «(96 %)» → 96.0 (знак/ноль сохраняются); уведомление →upgrade_due(« · »-join Основание/Срок/Параметры); объём по ТУ → raw (без миграции);asofпишется в upsert (колонка в 181 есть).После merge+deploy — прогон на проде: ожидаем свердловский блок (~50 ГРС: «ГРС Арамиль: свободно 1,205 из 50» и т.д.) → блок «ГАЗ» на ПТИЦЕ оживает.
3-я итерация: старый header-per-column парсер давал rows=0. Реальная структура (снята с прода): caption → asof «по состоянию на DD.MM.YYYY» → header-строка (детект «наименование»+«проектн») → суб-заголовки/нумерация → регионы-разделители (single-cell) → data full n=13 / continuation n=7 (доп. выход ГРС со сдвигом). - Фиксированные индекс-карты full/continuation; gate по текущему региону («свердлов»); «(выход №N)» → output_name, числовой «(5)» остаётся в имени; «(96 %)» → 96.0 (знак/ноль сохраняются); уведомление → upgrade_due через « · »; объём по действующим ТУ → raw (без миграции); asof пишется в upsert. - Тест-fixture повторяет реальную разметку (вкл. нумерацию и суб-заголовки), 27 тестов зелёные. Ревью ✅ APPROVE.