docs(data-quality): все 5 пунктов выполнены + реальные числа seed-demo
Some checks are pending
Auto-tag / Create date-tag (push) Waiting to run

This commit is contained in:
nns 2026-10-09 08:29:33 +05:00
parent e1d82fd15c
commit 4d3880395e

View file

@ -26,14 +26,26 @@
- `unknown-cost` — ОТЛОЖЕНО до FIFO (себестоимость «неизвестна», а не «0»). - `unknown-cost` — ОТЛОЖЕНО до FIFO (себестоимость «неизвестна», а не «0»).
## План / статус ## План / статус
1. [ ] Hangfire-задача: лёгкая, низкий приоритет, по организациям; ночной полный проход + 1. [x] Hangfire `DataQualityJob` (ночью 02:20 UTC, по организациям) + recompute по запросу; счётчики
recompute по запросу. Считает счётчики по каждой проверке (с учётом «это разные товары»). в `data_quality_results` (учёт «это разные товары»); живые детальные списки по запросу.
2. [ ] Админка: панель «Проверка данных» (счётчики + детальные списки), бейдж на главной/каталоге, 2. [x] Админка: страница `/catalog/data-quality` (счётчики по проверкам + детальные списки + время
время последней проверки; iOS — те же API. последней проверки) + ненавязчивый бейдж «N товаров требуют внимания» на дашборде (исчезает при 0);
3. [ ] Массовое исправление: «Задать группу», «Задать цену», «Сгенерировать штрихкоды»; дубли — iOS — те же эндпоинты `/api/data-quality/*`.
«Это разные товары» / открыть оба. 3. [x] Массовое исправление из списка: «Задать группу», «Задать цену», «Сгенерировать штрихкоды»;
4. [ ] Отключение отдельных проверок в настройках; предупреждение исчезает при исправлении. дубли — «Это разные товары» (dismiss) + ссылка на карточку. (Объединение дублей — позже, по ТЗ.)
5. [ ] Тесты (unit/integration/e2e), деплой, скриншоты; реальные числа на витрине/Демо. 4. [x] Отключение проверок — тумблеры на странице (PUT settings, CSV в организации); счётчик/бейдж
исчезают сами при исправлении (живые списки + recompute).
5. [x] Тесты: unit 303 (InternalBarcode и пр.) + integration (счётчики/список/bulk/dismiss) + e2e-браузер
(бейдж+панель) ✅; деплой на стенд ✅; скрины `dq-panel-*`, `dq-dashboard-*`.
**Реальные числа (seed-demo, 50 товаров + 3 добавленных с проблемами):** Без группы 3, Без цены 3,
Без штрихкода 0, Дубль ШК 0, Возможный дубль (имя+ед.) 1, Товары в минусе 20 (ссылкой на центр).
Прим.: после фикса «без группы» считает только служебный корень «Все товары» (было 50 ложно → 3).
## Итог
Все 5 пунктов выполнены ([x]). Фоновая «Проверка данных» минимум как у МойСклада (фильтры без
группы/без штрихкода) + лучше: выделенная панель со счётчиками, детект дублей, массовое исправление,
«это разные товары», отключение проверок, бейдж, то же через API для iOS. `unknown-cost` — после FIFO.
**Все [x] → touch ~/.fm-watchdog/DONE.**
## Что НЕ трогаем ## Что НЕ трогаем
Прод, shared-postgres, global.json, gateway nginx, sklad. FIFO/себестоимость — отдельная тема. Прод, shared-postgres, global.json, gateway nginx, sklad. FIFO/себестоимость — отдельная тема.