fix(pipeline): enrich obj_class via objective_lots COALESCE fallback (#165)
domrf_kn_objects.obj_class всегда NULL (Bug_Kn_API_Obj_Class_Always_Null_OPEN). Pipeline 24mo UI показывал 'Не указан: 4075 квартир'. Fix: SQL COALESCE с correlated subquery через objective_complex_mapping → objective_lots.class. Mapped complexes (114/4548) теперь резолвят корректный класс — комфорт/стандарт/бизнес/премиум. ## Coverage impact (verified via MCP) Pre-fix: 0 of 1316 planned ЖК имели obj_class Post-fix: 339 of 1316 (25.8%) — 249 комфорт, 45 стандарт, 42 бизнес Не-mapped objects остаются 'Не указан' (upstream kn-scraper fix всё ещё open). Closes #162 Co-authored-by: lekss361 <claudestars@proton.me>
This commit is contained in:
parent
46584d7c75
commit
30d78c5030
1 changed files with 13 additions and 3 deletions
|
|
@ -375,8 +375,9 @@ def _aggregate_pipeline(rows: list[Any]) -> dict[str, Any]:
|
|||
- top_objects: PIPELINE_TOP_OBJECTS_LIMIT крупнейших ЖК по flat_count
|
||||
|
||||
NB: `obj_class` в production часто NULL (см.
|
||||
`fixes/Bug_Kn_API_Obj_Class_Always_Null_OPEN`) — by_class dominated by
|
||||
"unknown" пока не закрыт D6/#38.
|
||||
`fixes/Bug_Kn_API_Obj_Class_Always_Null_OPEN`). Pipeline SQL обогащает
|
||||
obj_class через objective_lots + objective_complex_mapping (COALESCE
|
||||
fallback). Объекты без маппинга остаются "unknown".
|
||||
|
||||
Используется для UI pipeline-bar и severity badge.
|
||||
"""
|
||||
|
|
@ -1312,7 +1313,16 @@ def analyze_parcel(
|
|||
SELECT obj_id,
|
||||
comm_name,
|
||||
dev_name,
|
||||
obj_class,
|
||||
COALESCE(
|
||||
obj_class,
|
||||
(SELECT DISTINCT ol.class
|
||||
FROM objective_lots ol
|
||||
JOIN objective_complex_mapping m
|
||||
ON m.objective_complex_name = ol.project_name
|
||||
WHERE m.domrf_obj_id = o.obj_id
|
||||
AND ol.class IS NOT NULL
|
||||
LIMIT 1)
|
||||
) AS obj_class,
|
||||
flat_count,
|
||||
ready_dt,
|
||||
ST_Distance(
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue