基于约束规划的自动化生产排程系统,用于解决机加工车间的生产计划优化问题。
- 📊 数据导入:支持从 Excel 文件导入订单、工艺路线和设备数据
- 🧮 智能排程:使用 Google OR-Tools CP-SAT 求解器进行约束优化
- 📈 可视化展示:通过甘特图直观展示排程结果
- 📉 指标分析:计算设备利用率、交期达成率、瓶颈设备等关键指标
- 🌐 Web 界面:基于 Streamlit 的友好交互界面
- 💾 结果导出:支持导出排程结果为 Excel 或 CSV 格式
ProductSchedulAgent/
├── data_layer/ # 数据层:数据解析、验证和模型
│ ├── __init__.py
│ ├── models.py # 数据模型定义
│ ├── parser.py # Excel 数据解析器
│ └── validator.py # 数据验证器
├── business_logic/ # 业务逻辑层:排程算法和分析
│ ├── __init__.py
│ ├── scheduler.py # 排程引擎
│ ├── metrics.py # 指标计算器
│ └── visualizer.py # 可视化生成器
├── ui/ # UI层:Streamlit Web界面
│ ├── __init__.py
│ └── app.py # 主应用程序
├── tests/ # 测试模块
│ ├── __init__.py
│ ├── test_parser.py # 数据解析测试
│ ├── test_scheduler.py # 排程算法测试
│ └── property_tests/ # 属性测试
├── docs/ # 文档和示例数据
├── .kiro/ # Kiro 规范文档
│ └── specs/
│ └── production-scheduling-agent/
│ ├── requirements.md
│ ├── design.md
│ └── tasks.md
├── requirements.txt # Python 依赖包
└── README.md # 项目说明文档
- Python 3.8+:主要开发语言
- OR-Tools:Google 开源的约束规划和优化库
- Streamlit:快速构建 Web 界面的 Python 框架
- Pandas:数据处理和 Excel 文件读写
- Plotly:交互式图表可视化
- Hypothesis:基于属性的测试框架
- Pytest:单元测试框架
Windows:
双击运行 run.batLinux/Mac:
chmod +x run.sh
./run.sh启动脚本会自动完成环境配置、依赖安装和应用启动。详细说明请参考 快速开始指南。
git clone <repository-url>
cd ProductSchedulAgentWindows:
python -m venv venv
venv\Scripts\activateLinux/Mac:
python3 -m venv venv
source venv/bin/activatepip install -r requirements.txtstreamlit run ui/app.py浏览器会自动打开 http://localhost:8501
系统需要一个包含三个工作表的 Excel 文件:
- 订单表:订单号、产品编码、生产数量、承诺交期、优先级、是否急单
- 工艺路线表:产品编码、工序号、工序名称、工序顺序、单件标准工时(分钟)、可使用设备编号
- 设备表:设备编号、状态、每日工作小时
详细的数据格式说明和示例请参考 数据格式说明文档。
- 上传数据文件:在侧边栏上传订单、工艺路线和设备数据文件
- 数据预览:系统会自动解析并显示数据预览
- 开始排程:点击"开始排程"按钮执行优化计算
- 查看结果:
- 甘特图:查看详细的时间安排
- 指标看板:查看关键性能指标
- 详细数据:查看排程结果表格
- 导出结果:下载排程结果为 Excel 或 CSV 格式
pytest tests/pytest tests/property_tests/ -vpytest --cov=data_layer --cov=business_logic --cov=ui tests/- 在相应的层级目录中创建新模块
- 遵循现有的代码结构和命名规范
- 编写单元测试和属性测试
- 更新文档
- 使用 Python 类型注解
- 遵循 PEP 8 代码风格
- 为所有公共函数编写 docstring
- 保持函数简洁,单一职责
- 当前版本不支持动态插单和实时调整
- 求解器对大规模问题(50+ 订单)可能需要较长时间
- 不支持班次和日历约束
- 不考虑物料齐套和人员技能约束
- 动态排程和实时调整
- 多目标优化(交期、成本、利用率)
- 高级约束(物料、人员、班次)
- 智能推荐和异常预警
- 历史数据分析和参数优化
[待定]
详细的部署和打包说明请参考 部署指南,包括:
- 本地部署
- Docker 容器化部署
- 云平台部署(Streamlit Cloud、Heroku、AWS、Azure)
- 打包为可执行文件
- 内网部署配置
Windows:
package.batLinux/Mac:
chmod +x package.sh
./package.sh# 构建镜像
docker build -t production-scheduler:latest .
# 运行容器
docker run -p 8501:8501 production-scheduler:latest
# 或使用 docker-compose
docker-compose up -d[待定]
本项目使用了以下开源项目: