从 Excel 盘点模板导入初始产品列表的库存管理系统,支持出入库、按产品维度的当前账面、最低库存预警与盘点差异记录。
- 首次启动自动导入:如果 Item 表为空,系统会自动查找
data/盘点模板.xlsx并导入产品列表 - Excel 导入功能:管理员可上传 Excel 导入产品列表,可选同时创建初始盘点计划
- 产品主表管理:维护唯一产品列表(Item Master),可编辑规格、箱规及最低库存计算参数
- 出入库记录:按产品登记入库/出库(箱+包),自动更新当前账面(仅 Item 维度,无库位)
- 最低库存预警:安全库存 = (最大日用量×最大提前期) − (平均日用量×平均提前期),参数在产品编辑页手填;产品列表与仪表板会提示低于最低库存的品项
- 手动调整账面:支持将产品账面直接设为指定值并记录调整流水,便于盘点后以实盘更新账面
- 盘点计划:新建/添加盘点行时账面从当前系统账面带入;记录实盘与差异(不自动改账面,需调整时使用「手动调整账面」)
- 仪表板:最低库存预警列表、最近出入库流水、最近盘点计划、快捷操作入口
- Docker 部署:见 README_DOCKER.md
- 安装依赖:
pip install -r requirements.txt- 初始化数据库:
python init_db.py-
准备Excel文件(可选):
- 将盘点模板Excel文件放在
data/盘点模板.xlsx - 首次启动时会自动导入
- 将盘点模板Excel文件放在
-
启动应用:
python app.py- 访问系统:
- 打开浏览器访问 http://localhost:8765(或
python app.py时控制台显示的地址) - 默认管理员账号:
admin/FDCS0536inv - 默认操作员账号:
operator/operator123
- 打开浏览器访问 http://localhost:8765(或
Excel文件应包含以下列(列名可以是以下任意一种):
- 区域/库区 → 位置名称
- 物料编码 → 产品编码(必填)
- 物料名称 → 产品名称
- 规格 → 产品规格
- 单位/箱规 → 包装信息(如"10包/箱")
- 账面箱数/账面数量_箱 → 账面箱数(可选)
- 账面包数/账面数量_包 → 账面包数(可选)
系统会自动去重,基于物料编码、名称、规格、箱规的组合创建唯一产品记录。
inventorymanage/
├── app.py # Flask应用主文件
├── config.py # 配置文件
├── models.py # 数据库模型
├── init_db.py # 数据库初始化脚本
├── requirements.txt # Python依赖
├── routes/ # 路由模块
│ ├── __init__.py
│ ├── main.py # 主路由
│ ├── admin.py # 管理员路由
│ └── auth.py # 认证路由
├── utils/ # 工具模块
│ ├── __init__.py
│ ├── excel_importer.py # Excel 导入
│ ├── inventory_helpers.py # 账面/出入库辅助
│ ├── stocktake_exporter.py
│ ├── template_generator.py
│ └── timezone_utils.py
├── templates/ # HTML模板
│ ├── base.html
│ ├── auth/
│ ├── main/
│ └── admin/
└── data/ # 数据目录(存放Excel文件)
-
导入Excel产品列表:
- 访问
/admin/import_initial_stocktake - 上传
.xlsx格式的盘点模板文件 - 可选择是否同时创建初始盘点计划
- 系统会自动去重并创建/更新产品记录
- 访问
-
查看产品列表:
- 访问
/admin/items - 查看所有已导入的产品
- 可以编辑或停用产品
- 访问
- 产品列表(含当前账面、最低库存、预警)
- 出入库登记、手动调整账面
- 盘点计划与盘点明细(查看/编辑实盘、查看差异)
- 仪表板(预警、最近流水、最近盘点)
- 产品列表仅查看,产品编辑/停用与导入 Excel 仅管理员
列名映射配置在 utils/excel_importer.py 的 COLUMN_MAPPING 字典中,如果Excel格式有变化,可以在此处调整。
- 生产环境:请修改
config.py中的SECRET_KEY和默认密码 - 文件大小:默认最大上传文件大小为16MB
- 数据库:默认使用SQLite,生产环境建议使用PostgreSQL或MySQL
- 首次导入:首次启动时如果
data/盘点模板.xlsx存在,会自动导入
- Python 3.8+
- Flask 3.0.0
- SQLAlchemy
- openpyxl (Excel处理)
- pandas (数据处理)
MIT License