1. 课程导论与项目全景

1.1 供应链计划系统在企业中的核心价值

在当今竞争激烈的商业环境中,供应链计划系统(Supply Chain Planning System, SCPS)已成为企业运营的“中枢神经”。它通过整合需求预测、库存优化与补货计划,帮助企业实现三大核心目标:降低库存成本、提升订单满足率、缩短供应响应周期。

关键数据洞察: 实施供应链计划系统后,企业通常可降低 15%-30% 的库存持有成本,同时将缺货率控制在 2% 以下。

传统的手工 Excel 计划模式面临数据孤岛、响应滞后、人工误差等痛点。而一套自动化的计划系统能够:

  • 需求感知:基于历史销售数据与市场信号,生成多维度预测。
  • 库存优化:动态计算安全库存与再订货点,平衡服务水平与资金占用。
  • 补货协同:自动生成采购建议或调拨指令,缩短计划周期。
  • 异常预警:实时监控预测偏差与库存风险,支持快速决策。

1.2 项目目标与范围

本课程实战项目将构建一个轻量级、可落地的供应链计划系统原型,覆盖从需求预测到补货计划的核心链路。项目范围界定如下:

模块 功能范围 交付物
数据接入层 历史销售数据、库存台账、商品主数据导入 MySQL 数据表结构 + Pandas 清洗脚本
需求预测引擎 时间序列预测(移动平均、指数平滑、ARIMA) 预测结果可视化 + 准确率评估
库存策略计算 安全库存、再订货点、经济订货批量 参数配置界面 + 计算逻辑
补货计划生成 净需求计算、补货建议生成、计划调整 补货计划表 + 导出功能
Web 交互界面 数据看板、参数配置、结果展示 Flask 前后端集成页面
项目边界说明: 本系统聚焦于“计划”环节,不涉及采购执行、物流配送或财务结算。学员可在此基础上扩展为完整的供应链控制塔。

1.3 整体技术架构选型

技术选型遵循轻量、高效、易学原则,采用 Python 全栈技术栈,确保学员在单机环境下即可完成开发与部署。

供应链计划系统技术架构图 前端展示层 HTML5 + Jinja2 模板引擎 + Chart.js 可视化 业务应用层(Flask) 路由控制 · 请求处理 · Session 管理 · 蓝图模块 预测模块 · 库存模块 · 补货模块 · 报表模块 数据计算与算法层(Pandas + NumPy) 数据清洗 · 特征工程 · 时间序列预测 · 库存优化计算 数据存储层(MySQL + SQLAlchemy ORM) 技术栈特点 全 Python · 低耦合 · 易扩展

1.4 各层技术选型详解

技术层 选型组件 选型理由
Web 框架 Flask 2.x 轻量灵活,适合快速原型开发;内置 Jinja2 模板引擎,与 Python 生态无缝集成。
数据处理 Pandas + NumPy 供应链数据以表格为主,Pandas 的 DataFrame 操作与时间序列功能是核心利器。
数据库 MySQL 8.0 + SQLAlchemy 关系型数据库保证数据一致性;ORM 层简化 CRUD 操作,支持事务管理。
前端可视化 Chart.js + Bootstrap 5 Chart.js 提供丰富的交互式图表;Bootstrap 保证界面整洁响应式。
部署环境 Python 3.9+ / Gunicorn + Nginx 开发调试用内置服务器,生产环境可平滑迁移至 WSGI 部署。

1.5 项目目录结构与代码组织

为保障课程代码的可维护性与可扩展性,项目采用模块化分层结构:

supply_chain_planning/
├── app/                        # Flask 应用主目录
│   ├── __init__.py             # 应用工厂
│   ├── models/                 # 数据库模型
│   │   ├── __init__.py
│   │   ├── product.py          # 商品主数据模型
│   │   ├── sales.py            # 销售记录模型
│   │   └── inventory.py        # 库存台账模型
│   ├── routes/                 # 路由与视图函数
│   │   ├── __init__.py
│   │   ├── forecast.py         # 预测模块路由
│   │   ├── inventory.py        # 库存模块路由
│   │   └── replenishment.py    # 补货模块路由
│   ├── services/               # 业务逻辑层
│   │   ├── __init__.py
│   │   ├── forecast_engine.py  # 预测算法封装
│   │   ├── inventory_calc.py   # 库存策略计算
│   │   └── replenishment.py    # 补货计划生成
│   ├── templates/              # Jinja2 模板
│   │   ├── base.html
│   │   ├── forecast/
│   │   └── replenishment/
│   └── static/                 # 静态资源
│       ├── css/
│       └── js/
├── data/                       # 原始数据与测试数据
│   ├── sales_sample.csv
│   └── product_master.csv
├── config.py                   # 配置文件
├── requirements.txt            # 依赖清单
└── run.py                      # 启动入口
开发环境注意事项: 建议使用虚拟环境(venv 或 conda)隔离项目依赖。MySQL 需提前创建数据库并执行初始化脚本,确保字符集为 utf8mb4。

1.6 数据流与业务逻辑全景

从原始数据输入到补货计划输出,系统内部的数据流转遵循清晰的管道模式:

数据流与业务逻辑全景图 数据接入 CSV/API/Excel 数据清洗 缺失值·异常值·格式 需求预测 时间序列·模型评估 库存策略 安全库存·ROP·EOQ 补货计划 净需求·建议单 结果输出 看板·报表·导出 MySQL 持久化存储 数据流方向 从左至右 → 从上至下 ↓

1.7 课程学习路径与预期收获

本课程共 30 章,按“数据准备 → 预测建模 → 库存优化 → 补货实现 → 系统集成”五阶段递进。完成本课程后,你将具备:

  • 独立搭建一个基于 Flask 的供应链计划 Web 系统。
  • 掌握需求预测的经典算法与评估方法。
  • 理解安全库存、再订货点、EOQ 等核心库存模型。
  • 实现从数据清洗到补货建议生成的完整数据管道。
  • 获得可直接用于简历的项目经验与代码资产。
学习建议: 每章均配有可运行的代码示例与数据集。建议边学边练,在本地环境中复现每个模块的输出结果。