From d3b1a7d3df17b9f0b16df54fefa211929a060717 Mon Sep 17 00:00:00 2001 From: nns Date: Fri, 9 Oct 2026 14:50:22 +0500 Subject: [PATCH] =?UTF-8?q?docs(migration):=20=D0=B4=D0=BE=D0=BA=D1=83?= =?UTF-8?q?=D0=BC=D0=B5=D0=BD=D1=82=D0=BD=D1=8B=D0=B9=20=D0=BC=D0=B8=D0=B3?= =?UTF-8?q?=D1=80=D0=B0=D1=82=D0=BE=D1=80=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=B0=D0=B5=D1=82=20=E2=80=94=20=D0=BF=D1=80=D0=B8=D1=91=D0=BC?= =?UTF-8?q?=D0=BA=D0=B8=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BD=D0=BE=D1=81=D1=8F?= =?UTF-8?q?=D1=82=D1=81=D1=8F=20=D1=81=20=D0=BE=D1=81=D1=82=D0=B0=D1=82?= =?UTF-8?q?=D0=BA=D0=B0=D0=BC=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- docs/migration-progress.md | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/docs/migration-progress.md b/docs/migration-progress.md index edd34fc..83b99cc 100644 --- a/docs/migration-progress.md +++ b/docs/migration-progress.md @@ -14,13 +14,20 @@ 1. [x] **Инвентаризация источника** → `docs/migration-source-inventory.md` (скрипт `scripts/migration/ms_inventory.py`). Орг «FOOD MARKET», ~31k товаров, 627 контрагентов, ~110k документов, 7558 строк остатков; gap-анализ + цели сверки. -2. [~] **Мигратор.** Существующий `MoySkladImportService` (справочники product/productfolder/ - counterparty, идемпотентность по `MoySkladExternalId`) — РАБОТАЕТ на реальных данных: - - [x] Контрагенты → **628** в новой орг (МС 627 + 1 розн. покупатель по умолчанию). - - [x] Группы → **53** (МС 52 + корень). [~] Товары — импорт запущен (31k, фон, ~3600/20с). - - [ ] uom/склад/точка/сотрудники как отдельные справочники (сейчас товары мапятся на - дефолтные ед.); externalId на Counterparty/Store/RetailPoint/Employee/UoM. - - [ ] **Документы (110k) в хронологии** — НЕ начато (основной объём; дизайн — migration-design.md). +2. [~] **Мигратор — работает на реальных данных.** + - [x] Справочники: товары **30 944**, контрагенты **628** (+externalId), группы **53**; + идемпотентность по `MoySkladExternalId`. + - [x] **Документный мигратор (сервер, фон, идемпотентный, резюмируемый)** — архитектура + проверена на ПРИЁМКАХ: `MoySkladDocumentImportService` + `StreamDocumentsAsync` + (хронология order=moment,asc, expand позиций, 429/повторы, таймаут 130с), + `Phase41` externalId на всех документах/справочниках. Приёмки переносятся ~10/с с + движениями остатков; moment МСК→UTC, суммы из тиынов, поставщик по externalId, + товары по externalId, агрегация позиций по товару, SaveChanges по документу. + Починены 3 бага: sum как decimal («900000.0»), тяжёлый expand, дубль stocks при батче. + - [ ] Остальные типы (retaildemand/loss/enter/inventory/supplier_returns/shifts/деньги) — + по ТОМУ ЖЕ проверенному шаблону (следующая итерация). + - [ ] uom/склад/точка/сотрудники как отдельные справочники с externalId (пока товары на + дефолтных ед.; склад — единственный склад орг). 3. [x] **Новая орг на стенде** «FOOD MARKET» (простой режим), admin `foodmarket-migr@food-market.local`. Демо/«Магазин у дома» не тронуты. Токен МойСклада задан в настройках орг. 4. [ ] Сверка → `docs/migration-reconciliation.md` (цели собраны в source-inventory; после переноса документов).