Единая система управления производством: поголовье и падёж, корма и конверсия,
яйцо по категориям, склады, продажи и деньги — с ежедневным вводом с телефона
прямо в птичнике и полной картиной для руководителя.
версия 0.5.0обновлено 22.08.2026 12:49 (Ташкент)15 этапов · 97 задач
7%
7закрыто и принято
0в работе
0заблокировано
90впереди
Этап 0 🧱 Каркас, схема и инварианты
7 из 9
защиты 0.2–0.5, 0.7 прогнаны на живом PostgreSQL 16 — 24 проверки зелёные, 13 мутаций из 13 убиты, выживших нет. Осталось: 0.1 (каркас), 0.6 (документы сторно), 0.8 (вшить в CI).
✓5 задач этапа закрыты и приняты (регистры данных, защита от удаления, изоляция, проверка защит)
0.1Каркас FastAPI + PostgreSQL 16 + Alembic, docker-compose для локальной разработки
0.6Сторно вместо удаления: механика обратной записи с обязательной причиной
0.8Включить check_invariants.sh и mutate_invariants.sh в make test и в CI (зависит от 0.1)
0.9Дыра середины истории при обычном вводе задним числом (найдена в 0.6): триггеры 003 не видят провала остатка между датой вставки и сегодня. Чинить ЗАМЕНОЙ логики 003, не параллельным слоем (иначе мутации 003 станут выживающими); контроль минимума нарастающего остатка уже есть для зеркальных строк — распространить на все
Приёмкапрямой SQL-запрос DELETE FROM audit_log от роли приложения отклоняется базой; попытка провести документ в минус по поголовью и по складу отклоняется; мутация каждого инварианта валит тесты (отчёт tools/mutation-report.txt с нулём выживших).
1.2Справочники НСИ: номенклатура, единицы и пересчёты, контрагенты, договоры, статьи затрат и ДДС
1.3Кроссы и нормативы по неделям (Hy-Line Brown / Lohmann Brown как эталон план-факта)
1.4Ролевая модель из ТЗ 3.2–3.3, скоуп по площадкам через RLS, флаг can_see_pnl; право вызова post_reversal — только OWNER/DIRECTOR (из 0.6)
1.5Аутентификация, 2ФА для финансовых ролей, PIN и привязка устройства для операторов
1.6Запрет совмещения ролей (SoD) с явным исключением от владельца и постоянным баннером
1.7Журнал входов и действий, история версий документа
1.8Ввод начальных остатков
Приёмказаведена реальная структура фабрики; пользователь роли ADMIN не видит ни одной денежной суммы; пользователь чужой площадки не получает её данные ни через интерфейс, ни через API (тест на обход RLS).
Этап 2 🐣 Поголовье и экран оператора
0 из 11
2.1Партия: посадка, кросс, стадия (молодняк / промстадо), паспорт партии
2.2Суточная сводка птичника: модель и API — падёж по причинам, выбраковка, корм, вода, сбор яйца
2.3Ядро экрана оператора: 4 плитки, ввод за 40 секунд, крупные элементы, один React-код для всех каналов
2.4Telegram Mini App — авторизация через Telegram, ставить ничего не нужно
2.5PWA для конторы и площадок + офлайн-очередь до 3 суток, разрешение конфликтов
2.6Telegram-бот — пошаговый ввод падежа, корма и яйца для тех, кто не откроет Mini App
2.7Защита от двойного ввода: одна сводка на птичник в день, откуда бы она ни пришла; вторая становится корректировкой с указанием канала
2.8Контрольное взвешивание, средний вес, однородность
2.9Перевод в промстадо с переносом накопленной себестоимости
2.10Перемещение птицы, выбытие партии, закрытие партии
2.11Показатели партии против норматива кросса: сохранность, падёж, интенсивность
Приёмкаоператор без обучения дольше 10 минут вводит сводку за ≤40 секунд в каждом из трёх каналов; одна и та же сводка, введённая одновременно из бота и из Mini App, даёт одну запись и одну корректировку с пометкой канала, а не два падежа; поголовье сходится с ручным пересчётом в трёх птичниках (≤0,1%); 48 часов офлайна и 200 записей синхронизируются без потерь.
Этап 3 🌾 Корма и потребление
0 из 7
3.1Выдача корма со склада в бункер птичника, партионность и FIFO
3.2Ежесуточный замер бункера с тарировочной таблицей (см → тонны)
3.3Расчёт потребления: остаток вчера + выдано − остаток сегодня − потери
3.4Списание на партию по себестоимости FIFO
3.5Конверсия корма и потребление на голову, сравнение с нормативом
3.6Флаг «расчётное» при пропуске замера — цифра не выдаётся за факт
3.7Инциденты: отрицательное потребление, отклонение от нормы >±10%
Приёмкаежедневная конверсия совпадает с ручным расчётом зоотехника; при пропуске замера показатель помечен расчётным на всех экранах; отрицательное потребление невозможно провести.
Этап 4 🥚 Яйцо
0 из 6
4.1Сдача яйца из птичника, привязка к партии-производителю
4.2Сортировка по категориям, баланс собрано = категории + бой + насечка + грязное + потери
4.3Упаковка, партия готовой продукции, срок годности от даты снесения
4.4Склад ГП с FEFO
4.5Продуктивность: яйценоскость, интенсивность, средняя масса, яйцемасса, корм на 10 яиц
4.6Уведомления о сроках годности за 3 дня
Приёмкаакт сортировки не проводится при несходящемся балансе; отгрузка яйца с истёкшим сроком отклоняется; FEFO подбирает партию сам.
Этап 5 📦 Склады и закупки
0 из 5
5.1Приход, расход, перемещение, партии и сроки годности
5.2Инвентаризация, сличительная ведомость, решение по недостаче
10.3Переделы: комбикорм → молодняк → промстадо → яйцо по категориям
10.4Амортизация стоимости несушки на яйцо (вариант Б, пропорционально выпуску)
10.5Сверхнормативные потери отдельной строкой, не в себестоимости продукта
10.6Закрытие периода с чек-листом блокеров и блокировкой задним числом
10.7Контроль тождества: распределено = понесено
Приёмкасебестоимость десятка раскрывается до конкретных документов за ≤4 клика; закрытие месяца проходит за один рабочий день; при дырах в данных система называет их поимённо.
Этап 11 📊 Панель владельца и Telegram
0 из 6
11.1Витрины показателей и инкрементальный пересчёт по событию
11.3Детализация холдинг → площадка → птичник → партия → документ → автор
11.4«Нет данных» вместо нуля и баннер устаревшей витрины
11.5Telegram-бот: ежедневная сводка в 08:00 и уведомления об инцидентах
11.6Экспорт любого отчёта в Excel и PDF
Приёмкапанель открывается <3 с на трёхлетнем объёме; отсутствующие данные визуально отличаются от нулевых; сводка приходит в Telegram и содержит строку о непришедших данных.
Этап 12 🛡 Сторож данных и аномалий
0 из 7
12.1Движок правил с порогами, окнами, получателями и журналом отключений
12.2Контроль тишины SIL-01…SIL-10 (ТЗ 14.1)
12.3Производственные аномалии PRD-01…PRD-12
12.4Складские и финансовые аномалии STK и FIN
12.5Дисциплина и безопасность SEC-01…SEC-12, включая одинаковые значения подряд
12.6Инциденты: эскалация по времени, закрытие только с причиной
12.7Самонаблюдение: «сторож молчит» при остановке проверок
Приёмканамеренный пропуск суточной сводки даёт владельцу уведомление в тот же день; остановка фоновых задач на 24 часа даёт отдельное уведомление; отключение любого правила видно владельцу.
Этап 13 📋 Официальный контур
0 из 6
13.1Признаки и статусы операции (ТЗ 7.3), автопометка по правилам
13.2Маршрут «две руки»: готовит один, утверждает другой
13.3Неизменяемый журнал решений с основанием и вложениями
13.4Пакет выгрузки в Excel через абстрактный адаптер, идемпотентность
13.5Корректирующий пакет вместо переписывания выгруженного
13.6Отчёт покрытия: что висит без рассмотрения и без документов
Приёмкаутверждение тем же пользователем, кто готовил, отклоняется (мутационный тест); операцию нельзя удалить ни ролью, ни через API.
Этап 14 🚀 Опытная эксплуатация и приёмка
0 из 5
14.1+ Развёртывание на VPS, резервное копирование и проверка восстановления