Автоматическое планирование заказов с учётом обжигов, сроков и группировки похожих изделий.
🚀 Новичок? Читай QUICKSTART.md — минимальный пример за 2 минуты.
# 1. Записываешь заказы в orders.yaml
# 2. Запускаешь планировщик
python3 ceramic_scheduler/staged_scheduler.py orders.yaml
# Получаешь план: когда что делать, когда обжигать партиями✅ Группирует похожие изделия — все чашки проходят стадии вместе
✅ Накапливает партии для обжига — не обжигает по одной штуке, ждёт минимум 5
✅ Учитывает теги — роспись +3ч, ручка +30мин автоматически
✅ Следит за дедлайнами — сначала срочные заказы
✅ Полный цикл — формовка → сушка → обжиг1 → декор → обжиг2
Создай файл orders.yaml:
- id: CUP-101
base_hours: 1.5 # Сколько времени на изделие
deadline: 2025-12-22 # Когда должно быть готово
tags: ["роспись", "ручка"] # Что ещё нужно сделать
similarity: cups # Группа (чашки/миски/кружки)
- id: MUG-201
base_hours: 2.0
deadline: 2025-12-24
tags: ["роспись", "ручка"]
similarity: mugsМожно несколько тегов — время суммируется автоматически.
# Простой запуск с дефолтными настройками
python3 ceramic_scheduler/staged_scheduler.py orders.yaml
# С указанием даты начала
python3 ceramic_scheduler/staged_scheduler.py orders.yaml --start 2025-12-20
# Другая вместимость печи (по умолчанию 20)
python3 ceramic_scheduler/staged_scheduler.py orders.yaml --kiln-capacity 15
# Другая дневная загрузка (по умолчанию 8ч)
python3 ceramic_scheduler/staged_scheduler.py orders.yaml --day 6📅 ПРОИЗВОДСТВЕННЫЙ ПЛАН
📆 2025-12-18 (четверг)
Рабочих часов: 6.2ч
🔨 Индивидуальная работа:
• CUP-101: формовка (1.5ч)
• CUP-102: формовка (1.3ч)
• CUP-103: формовка (1.4ч)
• MUG-201: формовка (2.0ч)
📆 2025-12-20 (суббота)
🔥 Партии для обжига:
• Первый обжиг: 5 изделий
Готово: 2025-12-21 03:00
Изделия: CUP-101, CUP-102, CUP-103, MUG-201, BOWL-301
📆 2025-12-21 (воскресенье)
🔨 Декорирование:
• CUP-101: роспись (0.4ч)
• CUP-102: роспись (0.4ч)
• MUG-201: роспись (3.6ч)
Файл ceramic_scheduler/tags_config.yaml уже настроен с типовыми значениями:
tags:
роспись: 3.0 # +3 часа
ручка: 0.5 # +30 минут
глазурь: 1.0 # +1 час
сграффито: 2.0 # +2 часа
большой: 1.5 # +1.5 часа для крупныхМожно добавить свои:
мой_тег: 1.5Или переопределить при запуске:
python3 ceramic_scheduler/staged_scheduler.py orders.yaml --tag роспись=4.0Планировщик автоматически ведёт каждое изделие через:
- Формовка — время из
base_hours - Сушка — 24 часа (автоматически)
- Первый обжиг — партиями минимум 5 штук, 12ч + 6ч остывание
- Декорирование — только для изделий с тегами роспись/сграффито
- Глазуровка — 30 минут на изделие
- Второй обжиг — партиями минимум 5 штук, 10ч + 4ч остывание
Настройки в ceramic_scheduler/stages_config.yaml можно менять.
- Python 3.8+
- PyYAML (опционально)
pip install pyyamlБез PyYAML используй JSON вместо YAML.
Q: Можно обжигать меньше 5 изделий?
A: Измени min_batch_size в stages_config.yaml
Q: Как пропустить декорирование для простых изделий?
A: Просто не добавляй теги роспись/сграффито — стадия пропустится автоматически
Q: Как увеличить рабочий день?
A: --day 10 при запуске
Q: JSON вместо текста?
A: Добавь --json для интеграции с другими программами