К содержанию
Nika CRM

Блог · 2026-08

Быстрее Зарплата и Отчёты

5 августа 2026: лёгкие итоги ЗП без полного отчёта, отдельный /api/salary/extras, продажи и клиенты в отчётах — SQL LIMIT и агрегаты по периоду.

5 августа 2026: после урезания HTML Настроек и карточки клиента разделы Зарплата и Отчёты всё ещё тормозили — уже не из‑за мегабайт разметки, а из‑за тяжёлых повторных расчётов.

Что тормозило

Место Проблема
/salary light «Лёгкий» запрос всё равно гонял полный get_salary_report (со всеми позициями услуг/товаров) ради футера итогов
/salary extras Второй запрос снова считал весь список сотрудников
Extras JSON Блок «не в ЗП» отдавал тысячи строк (~2 МБ)
/reports/sales за год Сначала грузились все продажи периода в Python, потом обрезались до 300
/reports/customers То же: полная выборка, потом топ‑500

Что сделали

Зарплата

  • Итоги периода — отдельный лёгкий SQL (refs начислений + агрегаты выручки/прибыли), без разбивки по позициям.
  • Новый GET /api/salary/extras — только сверка кассы, детализация прибыли и «не в ЗП», без повторного списка сотрудников.
  • «Не в ЗП» — NOT EXISTS + LIMIT 200.

Отчёты

  • Продажи: итоги отдельным SUM/COUNT, в таблицу LIMIT 300; агрегаты услуг/товаров только по заявкам периода.
  • Клиенты: сводка по всем, в таблицу LIMIT 500, без полного materialize в Python.

Что проверить

  1. /salary — таблица сотрудников быстро; сверка/детали догружаются следом.
  2. /reports/sales за январь–сегодня — быстрее ответ, итоги полные.
  3. /reports/customers за длинный период — топ‑500 + предупреждение при обрезке.

← Все записи блога · Документация