docs(migration): документный мигратор работает — приёмки переносятся с остатками
Some checks are pending
Auto-tag / Create date-tag (push) Waiting to run
CI / Backend (.NET 8) (push) Waiting to run
CI / Web (React + Vite) (push) Waiting to run
CI / POS (WPF, Windows) (push) Waiting to run
Docker API / Build + push API (push) Waiting to run
Docker API / Deploy API on stage (push) Blocked by required conditions

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
nns 2026-10-09 14:50:22 +05:00
parent 6fdc9e527a
commit d3b1a7d3df

View file

@ -14,13 +14,20 @@
1. [x] **Инвентаризация источника** → `docs/migration-source-inventory.md` (скрипт 1. [x] **Инвентаризация источника** → `docs/migration-source-inventory.md` (скрипт
`scripts/migration/ms_inventory.py`). Орг «FOOD MARKET», ~31k товаров, 627 контрагентов, `scripts/migration/ms_inventory.py`). Орг «FOOD MARKET», ~31k товаров, 627 контрагентов,
~110k документов, 7558 строк остатков; gap-анализ + цели сверки. ~110k документов, 7558 строк остатков; gap-анализ + цели сверки.
2. [~] **Мигратор.** Существующий `MoySkladImportService` (справочники product/productfolder/ 2. [~] **Мигратор — работает на реальных данных.**
counterparty, идемпотентность по `MoySkladExternalId`) — РАБОТАЕТ на реальных данных: - [x] Справочники: товары **30 944**, контрагенты **628** (+externalId), группы **53**;
- [x] Контрагенты → **628** в новой орг (МС 627 + 1 розн. покупатель по умолчанию). идемпотентность по `MoySkladExternalId`.
- [x] Группы → **53** (МС 52 + корень). [~] Товары — импорт запущен (31k, фон, ~3600/20с). - [x] **Документный мигратор (сервер, фон, идемпотентный, резюмируемый)** — архитектура
- [ ] uom/склад/точка/сотрудники как отдельные справочники (сейчас товары мапятся на проверена на ПРИЁМКАХ: `MoySkladDocumentImportService` + `StreamDocumentsAsync`
дефолтные ед.); externalId на Counterparty/Store/RetailPoint/Employee/UoM. (хронология order=moment,asc, expand позиций, 429/повторы, таймаут 130с),
- [ ] **Документы (110k) в хронологии** — НЕ начато (основной объём; дизайн — migration-design.md). `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`. 3. [x] **Новая орг на стенде** «FOOD MARKET» (простой режим), admin `foodmarket-migr@food-market.local`.
Демо/«Магазин у дома» не тронуты. Токен МойСклада задан в настройках орг. Демо/«Магазин у дома» не тронуты. Токен МойСклада задан в настройках орг.
4. [ ] Сверка → `docs/migration-reconciliation.md` (цели собраны в source-inventory; после переноса документов). 4. [ ] Сверка → `docs/migration-reconciliation.md` (цели собраны в source-inventory; после переноса документов).