Skip to content

Vlislavn/ceramic_scheduler

Repository files navigation

Планировщик керамической мастерской

Автоматическое планирование заказов с учётом обжигов, сроков и группировки похожих изделий.

🚀 Новичок? Читай QUICKSTART.md — минимальный пример за 2 минуты.

За 30 секунд

# 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

Стадии производства

Планировщик автоматически ведёт каждое изделие через:

  1. Формовка — время из base_hours
  2. Сушка — 24 часа (автоматически)
  3. Первый обжиг — партиями минимум 5 штук, 12ч + 6ч остывание
  4. Декорирование — только для изделий с тегами роспись/сграффито
  5. Глазуровка — 30 минут на изделие
  6. Второй обжиг — партиями минимум 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 для интеграции с другими программами

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors