Skip to content

ian60012/inventorymanage

Repository files navigation

库存管理系统

从 Excel 盘点模板导入初始产品列表的库存管理系统,支持出入库、按产品维度的当前账面、最低库存预警与盘点差异记录。

功能特性

  1. 首次启动自动导入:如果 Item 表为空,系统会自动查找 data/盘点模板.xlsx 并导入产品列表
  2. Excel 导入功能:管理员可上传 Excel 导入产品列表,可选同时创建初始盘点计划
  3. 产品主表管理:维护唯一产品列表(Item Master),可编辑规格、箱规及最低库存计算参数
  4. 出入库记录:按产品登记入库/出库(箱+包),自动更新当前账面(仅 Item 维度,无库位)
  5. 最低库存预警:安全库存 = (最大日用量×最大提前期) − (平均日用量×平均提前期),参数在产品编辑页手填;产品列表与仪表板会提示低于最低库存的品项
  6. 手动调整账面:支持将产品账面直接设为指定值并记录调整流水,便于盘点后以实盘更新账面
  7. 盘点计划:新建/添加盘点行时账面从当前系统账面带入;记录实盘与差异(不自动改账面,需调整时使用「手动调整账面」)
  8. 仪表板:最低库存预警列表、最近出入库流水、最近盘点计划、快捷操作入口
  9. Docker 部署:见 README_DOCKER.md

安装步骤

  1. 安装依赖
pip install -r requirements.txt
  1. 初始化数据库
python init_db.py
  1. 准备Excel文件(可选):

    • 将盘点模板Excel文件放在 data/盘点模板.xlsx
    • 首次启动时会自动导入
  2. 启动应用

python app.py
  1. 访问系统
    • 打开浏览器访问 http://localhost:8765(或 python app.py 时控制台显示的地址)
    • 默认管理员账号:admin / FDCS0536inv
    • 默认操作员账号:operator / operator123

Excel文件格式要求

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文件)

使用说明

管理员功能

  1. 导入Excel产品列表

    • 访问 /admin/import_initial_stocktake
    • 上传 .xlsx 格式的盘点模板文件
    • 可选择是否同时创建初始盘点计划
    • 系统会自动去重并创建/更新产品记录
  2. 查看产品列表

    • 访问 /admin/items
    • 查看所有已导入的产品
    • 可以编辑或停用产品

经理功能

  • 产品列表(含当前账面、最低库存、预警)
  • 出入库登记、手动调整账面
  • 盘点计划与盘点明细(查看/编辑实盘、查看差异)
  • 仪表板(预警、最近流水、最近盘点)
  • 产品列表仅查看,产品编辑/停用与导入 Excel 仅管理员

列名映射配置

列名映射配置在 utils/excel_importer.pyCOLUMN_MAPPING 字典中,如果Excel格式有变化,可以在此处调整。

注意事项

  1. 生产环境:请修改 config.py 中的 SECRET_KEY 和默认密码
  2. 文件大小:默认最大上传文件大小为16MB
  3. 数据库:默认使用SQLite,生产环境建议使用PostgreSQL或MySQL
  4. 首次导入:首次启动时如果 data/盘点模板.xlsx 存在,会自动导入

开发

  • Python 3.8+
  • Flask 3.0.0
  • SQLAlchemy
  • openpyxl (Excel处理)
  • pandas (数据处理)

许可证

MIT License

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages