From 9f56442a0ce55d95c735d14a3dab7ac5d232a949 Mon Sep 17 00:00:00 2001 From: Andrey Epifancev Date: Sat, 10 Oct 2026 00:57:40 +0400 Subject: [PATCH] =?UTF-8?q?docs:=20=D0=BF=D0=B0=D0=BD=D0=B5=D0=BB=D1=8C=20?= =?UTF-8?q?=D1=84=D0=B0=D0=B9=D0=BB=D0=BE=D0=B2=20=E2=80=94=20=D0=BC=D0=B0?= =?UTF-8?q?=D1=80=D1=88=D1=80=D1=83=D1=82=D1=8B=20=D0=BA=D0=BE=D0=BD=D1=81?= =?UTF-8?q?=D0=BE=D0=BB=D0=B8=D0=B4=D0=B0=D1=86=D0=B8=D0=B8=20=D0=B2=20CLA?= =?UTF-8?q?UDE.md=20=D0=B8=20demo-prepare.sh=20(#26)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Загрузка и список файлов в demo-prepare.sh идут через /consolidations/$C/legal-entities/$LE/files, C берётся из consolidation_id карточки версии. Co-Authored-By: Claude Fable 5.1 --- CLAUDE.md | 2 +- scripts/demo-prepare.sh | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 54f0321..874225d 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -41,7 +41,7 @@ SPA кредитного аналитика АРМ КА: справочники - `src/utils/` — чистые функции без React/store/API: деньги (`money.ts`, суммы — строки), подписи статусов/типов/периодов (`labels.ts`), скачивание и имя файла (`download.ts`). - `src/auth/` — `AuthGate` (профиль `/me`), `DevLogin` (`POST /dev/token`; форма показывается в любой сборке, заглушка «вход через РАИСА» — после 404 «Not Found» от бэкенда, то есть когда dev-эмитент выключен), `token.ts`. - `src/store/` — Redux Toolkit: `store.ts`, слайсы `companyGroupsSlice` и `consolidations` (+ `thunks.ts`). -- `src/layouts/` — страницы (маршруты в `src/App.tsx`, в т.ч. `/documents/:document_id` и `/groups/:group_id/versions/:version_id/osv`), `src/widgets/` — блоки экранов (`DocumentReview` — проверка ББ/ОФР/ОСВ со сканом, `ConsolidatedOsv` — сводная ОСВ, `FilesDrawer` — файлы ЮЛ), `src/components/` — примитивы +- `src/layouts/` — страницы (маршруты в `src/App.tsx`, в т.ч. `/documents/:document_id` и `/groups/:group_id/versions/:version_id/osv`), `src/widgets/` — блоки экранов (`DocumentReview` — проверка ББ/ОФР/ОСВ со сканом, `ConsolidatedOsv` — сводная ОСВ, `FilesDrawer` — файлы ЮЛ (стол консолидации / все файлы ЮЛ, подпись консолидации, селектор `store/slices/consolidations/selectors.ts`)), `src/components/` — примитивы (`GenericTable`, `TableTag`, `PageTitle`), `src/types/` — DTO API. ## Команды diff --git a/scripts/demo-prepare.sh b/scripts/demo-prepare.sh index aca0dd2..42cb46c 100755 --- a/scripts/demo-prepare.sh +++ b/scripts/demo-prepare.sh @@ -9,7 +9,10 @@ API="${API:-localhost:8000/api/v1}" F="${FIXTURES_DIR:-$(cd "$(dirname "$0")/../.." && pwd)/fixtures}/osv" H="Authorization: Bearer $(curl -sf -X POST "$API/dev/token" -H 'Content-Type: application/json' -d "{\"email\":\"$EMAIL\"}" | python3 -c 'import sys,json;print(json.load(sys.stdin)["access_token"])')" -members=$(curl -sf "$API/consolidations/versions/$V" -H "$H" | python3 -c ' +card=$(curl -sf "$API/consolidations/versions/$V" -H "$H") +# загрузка идёт в консолидацию (период), а не в версию: consolidation_id берём из карточки версии +C=$(echo "$card" | python3 -c 'import sys,json;print(json.load(sys.stdin)["consolidation_id"])') +members=$(echo "$card" | python3 -c ' import sys,json for m in json.load(sys.stdin)["members"]: print(m["id"], m["inn"], m["name"])') # ЮЛ ищем по ИНН (в справочнике имена могут быть в верхнем регистре) @@ -19,7 +22,7 @@ LE_SCH=$(le_by_inn 3528104476) [ -n "$LE_RB" ] && [ -n "$LE_SCH" ] || { echo "В периметре версии нет РБ или Счастливочной:"; echo "$members"; exit 1; } upload() { for f in "$F/$2"/2024-Q{1,2,3}/*; do - curl -s -X POST "$API/legal-entities/$1/files?consolidation_version_id=$V" -H "$H" -F "files=@$f" \ + curl -s -X POST "$API/consolidations/$C/legal-entities/$1/files" -H "$H" -F "files=@$f" \ | python3 -c 'import sys,json;d=json.load(sys.stdin);print("принят" if d.get("accepted") else d.get("rejected") or d)' done; } upload "$LE_RB" rb @@ -29,7 +32,7 @@ echo "Жду распознавания…" for _ in $(seq 1 60); do pending=0 for LE in $LE_RB $LE_SCH; do - n=$(curl -sf "$API/legal-entities/$LE/files?limit=100" -H "$H" | python3 -c 'import sys,json;print(sum(f["status"] in ("UPLOADED","PROCESSING") for f in json.load(sys.stdin)["items"]))') + n=$(curl -sf "$API/consolidations/$C/legal-entities/$LE/files?limit=100" -H "$H" | python3 -c 'import sys,json;print(sum(f["status"] in ("UPLOADED","PROCESSING") for f in json.load(sys.stdin)["items"]))') pending=$((pending + n)) done [ "$pending" -eq 0 ] && break @@ -37,7 +40,7 @@ for _ in $(seq 1 60); do done for LE in $LE_RB $LE_SCH; do - curl -sf "$API/legal-entities/$LE/files?limit=100" -H "$H" | python3 -c ' + curl -sf "$API/consolidations/$C/legal-entities/$LE/files?limit=100" -H "$H" | python3 -c ' import sys,json for f in json.load(sys.stdin)["items"]: for d in f["documents"]: