131 Commits

Author SHA1 Message Date
Andrey Epifancev
c8e957b13d perf(svod2): ускорен серверный поиск свода 2 без изменения результата
Поиск в v3.svod2_lines строил jsonb header || contract_summary || contract_detail на каждую
строку, разворачивал его в jsonb_each и прогонял каждое значение через svod2_casefold, а числа
через svod2_js_number_text. Теперь:
- разбор поисковой строки (числа возможны, нет U+0001, нужные пары таблицы регистра) делается
  один раз в CTE q; раньше при подстановке SQL-функции выражение нормализации p_search
  вычислялось на каждое значение каждой строки;
- значения берутся напрямую из колонок, без jsonb; склеиваются и проверяются одним strpos через
  разделитель U+0001 (со строкой поиска, где есть U+0001, значения проверяются по одному);
- регистр данных приводится только по парам таблицы, чей результат есть в строке поиска;
- числа в текст JS переводятся, только если все символы строки возможны в записи числа, и
  только если по остальным значениям совпадения нет; нули без обращения к plpgsql;
- v_svod2_go и v_svod2_rf с SET jit = off (JIT плана добавлял сотни миллисекунд).

Тесты: поиск svod2_lines равен прежнему поиску по jsonb (эталонный SQL в тесте) на обоих листах
для 55 строк, включая числа, экспоненту, NaN и Infinity, стык значений, U+0001, ненормализованные
строки; состав колонок contract_* закреплён тестом.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 14:07:01 +04:00
Andrey Epifancev
05fbfd1e1d perf(form4): jit=off на v_form4_sheet_jsonb — компиляция JIT дороже выполнения
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-29 12:11:25 +04:00
Andrey Epifancev
e81df1d71e fix(api): свод 2 — варианты фильтров без коррелированного подзапроса поиска, откат засева в teardown
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 21:50:04 +04:00
Andrey Epifancev
719f568863 perf(api): свод 2 — общий отбор svod2_lines, страницы с total_count, варианты фильтров в SQL
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 21:40:41 +04:00
Andrey Epifancev
a62add9779 perf(api): свод 2 — миграция 0053: нормализаторы поиска как в JS и компактная проекция
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 21:24:34 +04:00
Andrey Epifancev
b2a022953d perf(form4): v_form4_sheet_jsonb без рекурсивного агрегата jsonb_sum (GROUPING SETS)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 18:33:58 +04:00
Andrey Epifancev
6855e9163a perf(sheet): upd_form_cells возвращает затронутые строки целиком, без снимка до и _jsonb_diff (AURORA-1844)
Выборка строк вынесена в v3._form_affected_rows; FORM_4 отбирает ROOT, GROUP и ITEM только изменённых строк; при sections убираются ключи исключённых разделов.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-28 18:18:07 +04:00
Andrey Epifancev
95b74bc5e5 fix(projects): advisory lock и ошибка переполнения счётчика technical_number в add_project (AURORA-1831)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-28 18:14:33 +04:00
Andrey Epifancev
eae445ca78 fix(alembic): алиас подзапроса в 0012 can_delete_project (PostgreSQL 15)
На PostgreSQL 15 подзапрос в FROM без алиаса не принимается, миграция
падала. Добавлен алиас active_reports, смысл не меняется. Правка старой
миграции: 0012 выполняется раньше любой новой, на базах, где 0012 уже
применена, ничего не меняет.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-28 18:10:13 +04:00
8d6e7ba51b svod2-filter-fix2: если заполнен только всп не берем в свод 2 2026-10-21 17:31:34 +03:00
f92c0e8d32 svod2-filter-fix: строки совсем без значений не попадают в свод 2 2026-10-21 15:38:48 +03:00
07cdcc6ed4 svod2-filter-fix: пофиксил фильтр по наличию записи в contract-detail в своде 2 2026-10-21 11:36:14 +03:00
PotapovaA
f152430805 удаление старых функций в бд (добавление и обновление всп) 2026-10-13 16:07:12 +03:00
f331c6f01f form3-source: источник строки в своде формы 3 2026-10-01 13:26:42 +03:00
7e3c6df796 columns-svod-2: поправил ключи для колонок свода 2 2026-10-01 11:41:11 +03:00
172b343c69 export-optimize-refresh: очередь загрузки при экспорте 2026-09-30 20:40:21 +03:00
341e8b3936 last-column: Колонка Сумма оплаты структуры формы 4 2026-09-30 14:02:41 +03:00
18faf6a724 svod-fix: свод 2 из формы 2, новый свод 1 для формы 3 2026-09-28 17:01:07 +03:00
1e02b0ca61 fix-columns: добавил комментарий, строки из Лимита не удаляются 2026-09-28 13:19:26 +03:00
d6da54ecf4 form3-expense: добавил новые статьи в форму 3, возможность удаления задач 2026-09-25 14:20:04 +03:00
909c16bf9b sattelite-fix: добавил формулу для принтеров и мфу 2026-09-25 10:26:33 +03:00
469cd0e8c4 Merge pull request 'delete-sattelite-rows' (#175) from delete-sattelite-rows into test
Reviewed-on: #175
2026-09-24 13:49:34 +03:00
a105b3296b Merge pull request 'form3-pages: новая разметка третьей формы, сводные отчеты по третьей форме на бэке' (#174) from form3-pages into test
Reviewed-on: #174
Reviewed-by: PotapovaA <potapovaanna113@mail.ru>
2026-09-24 13:49:13 +03:00
7cb8072ff4 delete-sattelite-rows: нельзя удалить строку из сателитов в ахр 2026-09-24 13:19:31 +03:00
adfc2dda81 form3-pages: новая разметка третьей формы, сводные отчеты по третьей форме на бэке 2026-09-24 12:28:27 +03:00
9e04c11b94 form1-sub_sub-fix: правки по статьям 2026-09-23 11:25:34 +03:00
370e2e87fe form1-sub_sub-fix: правки по вставке из сателитов 2026-09-22 18:32:05 +03:00
a9fd54398b form1-sub_sub-fix: правки по порядку статей 2026-09-22 17:18:07 +03:00
a3ffa2264c form1-sub_sub-fix: вставка в форму 4 с названием 2026-09-22 14:02:40 +03:00
88f74f24b9 form1-sub_sub-fix: фикс листа структура в форме 4 2026-09-22 13:20:33 +03:00
c6fb3ef403 form1-sub_sub-fix: фикс 4 уровня для первой формы 2026-09-22 12:39:07 +03:00
99ef647c5c sort-fix: восстановил сортировку, новый слой expense_item в листах АХР 2026-09-22 07:42:38 +03:00
28ed76fcd1 Название статьи редактируемо и по умолчанию пустое 2026-09-18 15:36:37 +03:00
11e496d13c Данные из сателитныхх листов в АХР 2026-09-18 14:50:19 +03:00
23c19a6914 new-expenses: правки по статьям расхода 2026-09-17 13:08:06 +03:00
96f550caed fixes-form: добавил новые статьи 2026-09-16 15:40:35 +03:00
922add04ef new-rows: новые строки в формах 2026-09-15 10:30:27 +03:00
ce34655166 insert-new-row: ельзя вставить строку вне своего этапа, оставются ссп и рф при смене роли 2026-09-02 09:35:54 +03:00
d4ca6486c1 new-role: Исполнитель ДУРРС 2026-08-31 12:24:06 +03:00
46642ceb2d remove-programs: обновление и удаление програм и проектов четвертой формы 2026-08-28 17:42:12 +03:00
5dfb9653c2 delete-from-cell: удаление данных из ячейки numeric делает значение 0 2026-08-28 12:38:27 +03:00
4708acbd20 svod: свод 2 2026-08-27 16:52:58 +03:00
6f6f35c8b1 svod: свод 1 2026-08-26 13:09:54 +03:00
80ef16bd02 computed-fix: добавил поле carryover к кварталам проектов 2026-08-21 17:15:08 +03:00
3bbc42fa45 name-fix: нельзя редактировать имя расхода в форме 4 2026-08-21 14:24:49 +03:00
9095cad992 project-back-fix: экпорт проектов, нельзя ставить отрицательные числа в полях проектов, создание года только на следующий год 2026-08-20 21:27:08 +03:00
4e8be39df1 tech-num-fix: поправил формирование технического номера проекта, исправил шаблоны для формы 4, поправил получение стадий у проектов 2026-08-19 17:31:58 +03:00
75875d266d projects-summary-handler: ручка для таблицы снизу страницы навигации 2026-08-14 09:10:42 +03:00
d4c11243b9 projects-handlers: ручки со списком проектов со сметами и их обновление 2026-08-13 13:45:56 +03:00
3568b12cd4 fix-editable-columns: пофиксил возвращение редактируемых колонок 2026-08-07 09:09:35 +03:00