fix(stats): процент по всем извлечённым позициям (76,1%) — как в отчёте и деке
Дашборд считал по активным (после версионирования) и показывал 75,3% — расходилось с презентацией. Канон — по всем извлечённым. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+4
-3
@@ -547,12 +547,13 @@ def manual_match(item_id: int, service_id: str):
|
|||||||
|
|
||||||
@app.get("/stats", response_model=Stats, summary="Сводка качества обработки")
|
@app.get("/stats", response_model=Stats, summary="Сводка качества обработки")
|
||||||
def stats():
|
def stats():
|
||||||
"""Считается из базы — так после загрузки нового архива цифры обновляются сразу."""
|
"""Качество обработки по ВСЕМ извлечённым позициям — как в отчёте о качестве и
|
||||||
|
презентации (не только по активным; иначе версионирование занижает процент)."""
|
||||||
with db() as conn:
|
with db() as conn:
|
||||||
docs = conn.execute("SELECT COUNT(*) FROM price_document").fetchone()[0]
|
docs = conn.execute("SELECT COUNT(*) FROM price_document").fetchone()[0]
|
||||||
items = conn.execute("SELECT COUNT(*) FROM price_item WHERE is_active = 1").fetchone()[0]
|
items = conn.execute("SELECT COUNT(*) FROM price_item").fetchone()[0]
|
||||||
matched = conn.execute(
|
matched = conn.execute(
|
||||||
"SELECT COUNT(*) FROM price_item WHERE is_active = 1 AND service_id IS NOT NULL"
|
"SELECT COUNT(*) FROM price_item WHERE service_id IS NOT NULL"
|
||||||
).fetchone()[0]
|
).fetchone()[0]
|
||||||
if items:
|
if items:
|
||||||
return Stats(
|
return Stats(
|
||||||
|
|||||||
Reference in New Issue
Block a user