Ход проекта · обновляется автоматически

Parranda — система учёта птицефабрики

Единая система управления производством: поголовье и падёж, корма и конверсия, яйцо по категориям, склады, продажи и деньги — с ежедневным вводом с телефона прямо в птичнике и полной картиной для руководителя.

версия 0.5.0обновлено 22.08.2026 12:49 (Ташкент)15 этапов · 97 задач
7%
7закрыто и принято
0в работе
0заблокировано
90впереди

Этап 0 🧱 Каркас, схема и инварианты 7 из 9

защиты 0.20.5, 0.7 прогнаны на живом PostgreSQL 16 — 24 проверки зелёные, 13 мутаций из 13 убиты, выживших нет. Осталось: 0.1 (каркас), 0.6 (документы сторно), 0.8 (вшить в CI).

  1. 5 задач этапа закрыты и приняты (регистры данных, защита от удаления, изоляция, проверка защит)
  2. 0.1Каркас FastAPI + PostgreSQL 16 + Alembic, docker-compose для локальной разработки
  3. 0.6Сторно вместо удаления: механика обратной записи с обязательной причиной
  4. 0.8Включить check_invariants.sh и mutate_invariants.sh в make test и в CI (зависит от 0.1)
  5. 0.9Дыра середины истории при обычном вводе задним числом (найдена в 0.6): триггеры 003 не видят провала остатка между датой вставки и сегодня. Чинить ЗАМЕНОЙ логики 003, не параллельным слоем (иначе мутации 003 станут выживающими); контроль минимума нарастающего остатка уже есть для зеркальных строк — распространить на все

Приёмкапрямой SQL-запрос DELETE FROM audit_log от роли приложения отклоняется базой; попытка провести документ в минус по поголовью и по складу отклоняется; мутация каждого инварианта валит тесты (отчёт tools/mutation-report.txt с нулём выживших).

Этап 1 🗂 НСИ, роли и доступ 0 из 8

  1. 1.1Справочники оргструктуры: холдинг, юрлицо, площадка, птичник с паспортом, склад, цех, касса, ЦФО
  2. 1.2Справочники НСИ: номенклатура, единицы и пересчёты, контрагенты, договоры, статьи затрат и ДДС
  3. 1.3Кроссы и нормативы по неделям (Hy-Line Brown / Lohmann Brown как эталон план-факта)
  4. 1.4Ролевая модель из ТЗ 3.2–3.3, скоуп по площадкам через RLS, флаг can_see_pnl; право вызова post_reversal — только OWNER/DIRECTOR (из 0.6)
  5. 1.5Аутентификация, 2ФА для финансовых ролей, PIN и привязка устройства для операторов
  6. 1.6Запрет совмещения ролей (SoD) с явным исключением от владельца и постоянным баннером
  7. 1.7Журнал входов и действий, история версий документа
  8. 1.8Ввод начальных остатков

Приёмказаведена реальная структура фабрики; пользователь роли ADMIN не видит ни одной денежной суммы; пользователь чужой площадки не получает её данные ни через интерфейс, ни через API (тест на обход RLS).

Этап 2 🐣 Поголовье и экран оператора 0 из 11

  1. 2.1Партия: посадка, кросс, стадия (молодняк / промстадо), паспорт партии
  2. 2.2Суточная сводка птичника: модель и API — падёж по причинам, выбраковка, корм, вода, сбор яйца
  3. 2.3Ядро экрана оператора: 4 плитки, ввод за 40 секунд, крупные элементы, один React-код для всех каналов
  4. 2.4Telegram Mini App — авторизация через Telegram, ставить ничего не нужно
  5. 2.5PWA для конторы и площадок + офлайн-очередь до 3 суток, разрешение конфликтов
  6. 2.6Telegram-бот — пошаговый ввод падежа, корма и яйца для тех, кто не откроет Mini App
  7. 2.7Защита от двойного ввода: одна сводка на птичник в день, откуда бы она ни пришла; вторая становится корректировкой с указанием канала
  8. 2.8Контрольное взвешивание, средний вес, однородность
  9. 2.9Перевод в промстадо с переносом накопленной себестоимости
  10. 2.10Перемещение птицы, выбытие партии, закрытие партии
  11. 2.11Показатели партии против норматива кросса: сохранность, падёж, интенсивность

Приёмкаоператор без обучения дольше 10 минут вводит сводку за ≤40 секунд в каждом из трёх каналов; одна и та же сводка, введённая одновременно из бота и из Mini App, даёт одну запись и одну корректировку с пометкой канала, а не два падежа; поголовье сходится с ручным пересчётом в трёх птичниках (≤0,1%); 48 часов офлайна и 200 записей синхронизируются без потерь.

Этап 3 🌾 Корма и потребление 0 из 7

  1. 3.1Выдача корма со склада в бункер птичника, партионность и FIFO
  2. 3.2Ежесуточный замер бункера с тарировочной таблицей (см → тонны)
  3. 3.3Расчёт потребления: остаток вчера + выдано − остаток сегодня − потери
  4. 3.4Списание на партию по себестоимости FIFO
  5. 3.5Конверсия корма и потребление на голову, сравнение с нормативом
  6. 3.6Флаг «расчётное» при пропуске замера — цифра не выдаётся за факт
  7. 3.7Инциденты: отрицательное потребление, отклонение от нормы >±10%

Приёмкаежедневная конверсия совпадает с ручным расчётом зоотехника; при пропуске замера показатель помечен расчётным на всех экранах; отрицательное потребление невозможно провести.

Этап 4 🥚 Яйцо 0 из 6

  1. 4.1Сдача яйца из птичника, привязка к партии-производителю
  2. 4.2Сортировка по категориям, баланс собрано = категории + бой + насечка + грязное + потери
  3. 4.3Упаковка, партия готовой продукции, срок годности от даты снесения
  4. 4.4Склад ГП с FEFO
  5. 4.5Продуктивность: яйценоскость, интенсивность, средняя масса, яйцемасса, корм на 10 яиц
  6. 4.6Уведомления о сроках годности за 3 дня

Приёмкаакт сортировки не проводится при несходящемся балансе; отгрузка яйца с истёкшим сроком отклоняется; FEFO подбирает партию сам.

Этап 5 📦 Склады и закупки 0 из 5

  1. 5.1Приход, расход, перемещение, партии и сроки годности
  2. 5.2Инвентаризация, сличительная ведомость, решение по недостаче
  3. 5.3Минимальные остатки и автозаявка на закупку
  4. 5.4Заявка → заказ поставщику → приёмка → кредиторка
  5. 5.5История закупочных цен и контроль отклонения >10%

Приёмкаостатки сходятся с инвентаризацией двух реальных складов (≤0,5%); отрицательный остаток недостижим ни одним сценарием.

Этап 6 🤝 Продажи, розница, дебиторка 0 из 6

  1. 6.1Клиенты, договоры, прайс-листы по каналам
  2. 6.2Заказ, резерв с автоснятием через 48 часов, отгрузка
  3. 6.3Кредитный лимит: блокировка отгрузки, обход только разрешением владельца
  4. 6.4Возвраты, акт сверки, дебиторка по срокам
  5. 6.5Розничная точка: смена, продажа, сдача выручки
  6. 6.6Сверка «товар минус деньги» по смене и инцидент в тот же день

Приёмкаотгрузка сверх лимита не проходит (мутационный тест); расхождение товар-деньги по смене попадает владельцу в день смены.

Этап 7 💰 Деньги 0 из 5

  1. 7.1Кассы, счета, подотчёт; поступления и выплаты со статьёй, ЦФО и основанием
  2. 7.2Заявка на оплату → согласование по сумме → платёж
  3. 7.3Взаиморасчёты, разнос платежа по документам
  4. 7.4Валютные операции: курс на дату, переоценка долгов
  5. 7.5ДДС, платёжный календарь, прогноз денег на 30 дней

Приёмкаостаток кассы и счёта совпадает с фактом и выпиской до копейки; платёж без статьи и основания не проводится.

Этап 8 💉 Ветеринария и блокировка реализации 0 из 5

  1. 8.1План вакцинации по кроссу, ветеринарный акт, списание препаратов на партию
  2. 8.2Сроки ожидания: автосоздание ограничения реализации
  3. 8.3Жёсткая блокировка отгрузки под ограничением в сервисном слое
  4. 8.4Дезинфекция, санразрыв, допуск птичника к заселению
  5. 8.5Ветзатраты на партию

Приёмкаотключение проверки ограничения в коде валит тест отгрузки; заселение без акта дезинфекции отклоняется.

Этап 9 ⚙️ Комбикормовый цех 0 из 4

  1. 9.1Рецептуры с версионированием
  2. 9.2Замес: план и факт навески, отклонение, материальный баланс
  3. 9.3Себестоимость тонны с раскрытием по компонентам
  4. 9.4Прослеживаемость: поставщик сырья → замес → птичник

Приёмкапо номеру партии корма система называет поставщиков сырья и птичники, куда корм ушёл; выход больше суммы компонентов невозможен.

Этап 10 🧮 Себестоимость и закрытие периода 0 из 7

  1. 10.1Сбор прямых затрат по объектам калькуляции
  2. 10.2Базы распределения: головодни, кормодни, выпуск, площадь, прямые затраты
  3. 10.3Переделы: комбикорм → молодняк → промстадо → яйцо по категориям
  4. 10.4Амортизация стоимости несушки на яйцо (вариант Б, пропорционально выпуску)
  5. 10.5Сверхнормативные потери отдельной строкой, не в себестоимости продукта
  6. 10.6Закрытие периода с чек-листом блокеров и блокировкой задним числом
  7. 10.7Контроль тождества: распределено = понесено

Приёмкасебестоимость десятка раскрывается до конкретных документов за ≤4 клика; закрытие месяца проходит за один рабочий день; при дырах в данных система называет их поимённо.

Этап 11 📊 Панель владельца и Telegram 0 из 6

  1. 11.1Витрины показателей и инкрементальный пересчёт по событию
  2. 11.2Панель владельца: 4 полосы, факт-план-норматив-тренд
  3. 11.3Детализация холдинг → площадка → птичник → партия → документ → автор
  4. 11.4«Нет данных» вместо нуля и баннер устаревшей витрины
  5. 11.5Telegram-бот: ежедневная сводка в 08:00 и уведомления об инцидентах
  6. 11.6Экспорт любого отчёта в Excel и PDF

Приёмкапанель открывается <3 с на трёхлетнем объёме; отсутствующие данные визуально отличаются от нулевых; сводка приходит в Telegram и содержит строку о непришедших данных.

Этап 12 🛡 Сторож данных и аномалий 0 из 7

  1. 12.1Движок правил с порогами, окнами, получателями и журналом отключений
  2. 12.2Контроль тишины SIL-01…SIL-10 (ТЗ 14.1)
  3. 12.3Производственные аномалии PRD-01…PRD-12
  4. 12.4Складские и финансовые аномалии STK и FIN
  5. 12.5Дисциплина и безопасность SEC-01…SEC-12, включая одинаковые значения подряд
  6. 12.6Инциденты: эскалация по времени, закрытие только с причиной
  7. 12.7Самонаблюдение: «сторож молчит» при остановке проверок

Приёмканамеренный пропуск суточной сводки даёт владельцу уведомление в тот же день; остановка фоновых задач на 24 часа даёт отдельное уведомление; отключение любого правила видно владельцу.

Этап 13 📋 Официальный контур 0 из 6

  1. 13.1Признаки и статусы операции (ТЗ 7.3), автопометка по правилам
  2. 13.2Маршрут «две руки»: готовит один, утверждает другой
  3. 13.3Неизменяемый журнал решений с основанием и вложениями
  4. 13.4Пакет выгрузки в Excel через абстрактный адаптер, идемпотентность
  5. 13.5Корректирующий пакет вместо переписывания выгруженного
  6. 13.6Отчёт покрытия: что висит без рассмотрения и без документов

Приёмкаутверждение тем же пользователем, кто готовил, отклоняется (мутационный тест); операцию нельзя удалить ни ролью, ни через API.

Этап 14 🚀 Опытная эксплуатация и приёмка 0 из 5

  1. 14.1+ Развёртывание на VPS, резервное копирование и проверка восстановления
  2. 14.2Обучение операторов, кладовщика, ветврача, продавцов, финконтролёра
  3. 14.3Руководство оператора на узбекском — одна страница с картинками
  4. 14.4Месяц параллельного учёта с тетрадями, разбор расхождений
  5. 14.5+ Прогон всех 31 критериев приёмки из ТЗ раздела 20

Приёмкавсе 31 критерий выполнены; владелец неделю пользовался только системой, не запрашивая сводки у людей.