убран лишний метод build_with_members
This commit is contained in:
parent
b7d97943b2
commit
02d67ff733
@ -110,7 +110,7 @@ def _source_row(entry: OsvEntry) -> domain.SourceRow:
|
|||||||
|
|
||||||
|
|
||||||
def _candidate_ids(rows: Sequence[domain.SourceRow], index: CounterpartyIndex) -> set[uuid.UUID]:
|
def _candidate_ids(rows: Sequence[domain.SourceRow], index: CounterpartyIndex) -> set[uuid.UUID]:
|
||||||
"""Идентификаторы контрагентов, имена которых понадобятся `build`: хранимые `counterparty_id` и результат дорезолва
|
"""Идентификаторы контрагентов для `build_with_members`: хранимые `counterparty_id` и результат дорезолва
|
||||||
для строк без него (`resolve` — по словарям индекса, без обращений к БД; ключ склейки включает имя и ИНН, поэтому
|
для строк без него (`resolve` — по словарям индекса, без обращений к БД; ключ склейки включает имя и ИНН, поэтому
|
||||||
результат для представителя группы равен результату для любой её строки)."""
|
результат для представителя группы равен результату для любой её строки)."""
|
||||||
ids: set[uuid.UUID] = set()
|
ids: set[uuid.UUID] = set()
|
||||||
@ -147,12 +147,8 @@ class ConsolidatedOsvService:
|
|||||||
self._session = session
|
self._session = session
|
||||||
self._scope = scope
|
self._scope = scope
|
||||||
|
|
||||||
async def build(self, version_id: uuid.UUID) -> ConsolidatedOsvBuildResult:
|
|
||||||
"""Свод версии и данные его расчёта; версия вне видимости — 404."""
|
|
||||||
return await self.build_with_members(version_id)
|
|
||||||
|
|
||||||
async def build_with_members(self, version_id: uuid.UUID) -> ConsolidatedOsvBuildResult:
|
async def build_with_members(self, version_id: uuid.UUID) -> ConsolidatedOsvBuildResult:
|
||||||
"""Свод и участники периметра, загруженные при его расчёте."""
|
"""Свод и участники периметра, загруженные при его расчёте; версия вне видимости — 404."""
|
||||||
found = await repo.get_version(self._session, self._scope, version_id)
|
found = await repo.get_version(self._session, self._scope, version_id)
|
||||||
if found is None:
|
if found is None:
|
||||||
raise NotFoundError(VERSION_NOT_FOUND)
|
raise NotFoundError(VERSION_NOT_FOUND)
|
||||||
@ -191,7 +187,7 @@ class ConsolidatedOsvService:
|
|||||||
|
|
||||||
async def page(self, version_id: uuid.UUID, f: OsvFilters, page: OsvPageParams) -> Page[ConsolidatedRowOut]:
|
async def page(self, version_id: uuid.UUID, f: OsvFilters, page: OsvPageParams) -> Page[ConsolidatedRowOut]:
|
||||||
"""Страница свода после фильтров: `total` — число строк после фильтра, срез — в памяти (порядок D-16)."""
|
"""Страница свода после фильтров: `total` — число строк после фильтра, срез — в памяти (порядок D-16)."""
|
||||||
result = await self.build(version_id)
|
result = await self.build_with_members(version_id)
|
||||||
rows = domain.apply_filter(result.consolidated.rows, domain_filter(f))
|
rows = domain.apply_filter(result.consolidated.rows, domain_filter(f))
|
||||||
window = rows[page.offset : page.offset + page.limit]
|
window = rows[page.offset : page.offset + page.limit]
|
||||||
return Page[ConsolidatedRowOut](
|
return Page[ConsolidatedRowOut](
|
||||||
@ -202,7 +198,7 @@ class ConsolidatedOsvService:
|
|||||||
"""xlsx сводной ОСВ (spec «Экспорт xlsx», D-14): строки после тех же фильтров, что у `page`, без пагинации, в
|
"""xlsx сводной ОСВ (spec «Экспорт xlsx», D-14): строки после тех же фильтров, что у `page`, без пагинации, в
|
||||||
порядке D-16; лист пробелов — по своду целиком. Имя файла — `svod-osv_<ГК>_<год>-<квартал>_v<n>.xlsx` (без
|
порядке D-16; лист пробелов — по своду целиком. Имя файла — `svod-osv_<ГК>_<год>-<квартал>_v<n>.xlsx` (без
|
||||||
percent-кодирования: оно в маршруте). `audit_event(EXPORT)` пишется после сборки книги, в транзакции запроса."""
|
percent-кодирования: оно в маршруте). `audit_event(EXPORT)` пишется после сборки книги, в транзакции запроса."""
|
||||||
result = await self.build(version_id)
|
result = await self.build_with_members(version_id)
|
||||||
rows = domain.apply_filter(result.consolidated.rows, domain_filter(f))
|
rows = domain.apply_filter(result.consolidated.rows, domain_filter(f))
|
||||||
content = await run_in_threadpool(build_workbook, result.consolidated, rows)
|
content = await run_in_threadpool(build_workbook, result.consolidated, rows)
|
||||||
group_name = (
|
group_name = (
|
||||||
@ -228,7 +224,7 @@ class ConsolidatedOsvService:
|
|||||||
|
|
||||||
async def summary(self, version_id: uuid.UUID) -> OsvSummaryOut:
|
async def summary(self, version_id: uuid.UUID) -> OsvSummaryOut:
|
||||||
"""Сводка: строки, несопоставленные, автосопоставленные по имени/алиасу, ОСВ-документы версии и пробелы."""
|
"""Сводка: строки, несопоставленные, автосопоставленные по имени/алиасу, ОСВ-документы версии и пробелы."""
|
||||||
result = await self.build(version_id)
|
result = await self.build_with_members(version_id)
|
||||||
rows_total, unmapped_total, auto_matched_total = domain.summary(result.consolidated)
|
rows_total, unmapped_total, auto_matched_total = domain.summary(result.consolidated)
|
||||||
return OsvSummaryOut(
|
return OsvSummaryOut(
|
||||||
rows_total=rows_total,
|
rows_total=rows_total,
|
||||||
@ -241,7 +237,7 @@ class ConsolidatedOsvService:
|
|||||||
async def row_for_entry(self, version_id: uuid.UUID, entry_id: uuid.UUID) -> ConsolidatedRowOut | None:
|
async def row_for_entry(self, version_id: uuid.UUID, entry_id: uuid.UUID) -> ConsolidatedRowOut | None:
|
||||||
"""Строка свода, в `entry_ids` которой есть `entry_id`; `None` — строка в своде не участвует (пара с пробелом
|
"""Строка свода, в `entry_ids` которой есть `entry_id`; `None` — строка в своде не участвует (пара с пробелом
|
||||||
или документ не выбран источником при наличии нарастающего)."""
|
или документ не выбран источником при наличии нарастающего)."""
|
||||||
result = await self.build(version_id)
|
result = await self.build_with_members(version_id)
|
||||||
row = next((row for row in result.consolidated.rows if entry_id in row.entry_ids), None)
|
row = next((row for row in result.consolidated.rows if entry_id in row.entry_ids), None)
|
||||||
return None if row is None else row_out(row)
|
return None if row is None else row_out(row)
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user