news 2026/10/23 2:10:31

ModernWMS 开源仓库管理系统实战:从收货上架到发货全流程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ModernWMS 开源仓库管理系统实战:从收货上架到发货全流程

ModernWMS 开源仓库管理系统实战:从收货上架到发货全流程

【免费下载链接】ModernWMSThe open source simple and complete warehouse management system is derived from our many years of experience in implementing erp projects. We stripped the original commercial system wms function and opened it up for free, hoping to help the majority of small and medium-sized enterprises. At present, the system supports cross-platform。项目地址: https://gitcode.com/GitHub_Trending/mo/ModernWMS

旺季爆单,库存还在 Excel 里手工对,账实差异要到盘库才暴露——这正是 ModernWMS 要解决的仓储管理难题。这是一套开源、简易且完整的 WMS(仓库管理系统),覆盖收货、库存、发货全流程,面向 IT 预算有限的中小企业,基于 Apache-2.0 协议,可免费使用和二次开发。

项目定位与能力矩阵

ModernWMS 是从多年商业 ERP 项目中剥离出来的仓储管理子系统,面向中小企业的进销存与仓内作业场景,保留了商业系统中真正实用的功能,去掉了冗余配置。

功能模块一句话说明典型场景
收货管理到货通知、卸货、分拣、上架全流程采购到货入库
库存管理实时库存、库位库存、库存龄期统计库存查询与库位分配
仓内作业加工、移动、冻结、调整、盘点五类作业仓内日常操作与盘盈亏
发货管理发货、拣货、打包、称重、出库状态跟踪销售订单出库
基础设置公司、商品、仓库、角色菜单等主数据配置系统初始化与权限分配

最短路径跑通 ModernWMS

环境要求如下:

项目最低版本备注
操作系统Ubuntu 18.04 / Windows 10 1607跨平台部署
.NET SDK7.0.0+编译后端
NodeJS16.13.1+编译前端
包管理器yarn 1.x前端依赖安装
数据库SQLite(内置)/ MySQL 8通过配置切换,默认用内置 SQLite
git clone https://gitcode.com/GitHub_Trending/mo/ModernWMS cd frontend && yarn && yarn dev cd backend && dotnet run --project ModernWMS
  1. 克隆仓库,前后端分离结构一目了然。
  2. 前端执行yarn dev,开发服务器启动在 5173 端口。
  3. 后端dotnet run启动,默认监听 21011 端口(开发环境)。
  4. 浏览器访问http://127.0.0.1:5173,用初始账号 admin / 密码 1 登录即可进入系统首页。

ModernWMS 首页与左侧功能导航

架构速览

后端:C# + .NET 7.0,分三个工程协作。backend/ModernWMS.Core/是公共内核,包含JWT 认证、全局异常中间件、EF Core 数据库上下文(SqlDBContext)、动态搜索与多租户支持;backend/ModernWMS.WMS/是业务工程,按 Controllers / Entities / Services 三层组织各仓储模块;backend/ModernWMS/是 Web 入口,appsettings.json在这里切换数据库与端口。

前端:Vue 3 + TypeScript + Vite,UI 基于 Vuetify 3 与 VXETable。frontend/src/api/按 base(基础设置)、wms(仓储业务)、sys(系统)划分接口定义;frontend/src/view/中每个业务目录对应一个功能页面,如stockAsn/(收货)、deliveryManagement/(发货)。

公共模块:frontend/src/languages/提供中、英、繁多语言文件,frontend/src/store/管理用户与系统状态,登录态由 JWT 令牌维持。

先跑起来再看源码,遇到哪个功能就顺着view页面追到对应Service,是最快的读码路径。

核心仓储流程演示

收货入库流程:触发条件是供应商到货,你在「收货管理」新建到货通知单,录入商品、货主、数量与重量。到货后依次执行卸货、分拣、上架操作,每步都要求在对应页签完成确认。系统反馈是「收货明细」页签中生成实收记录,同时库存与库位数据实时增加。

收货管理的页签式作业流程

发货出库流程:触发条件是创建发货单并选择客户与商品,系统生成待拣货任务。仓库人员在「待拣货」按单据拣货,再经过打包确认、称重、运费登记,最后点选完成出库。系统反馈是发货单状态从 New Shipment 变为 Out of Warehouse,顶部状态页签实时显示各环节单据数量,超时会阻塞在上一页签。

发货管理的多状态流转跟踪

库存盘点流程:触发条件是发起盘点任务并生成盘库单。你按库位逐一录入实盘数,提交后系统自动比对账面与实盘,生成盈亏差异。反馈是「库存调整」模块中生成对应的调整单,确认后库存账目与实物重新对齐。

避坑与配置要点

⚠️启动后报数据库连接错误→backend/ModernWMS/appsettings.json中"Database": { "db": "MySql" }的取值必须与已配置的连接串匹配,默认应使用内置 SQLite 文件wms.db;换用 MySQL 时改成"MySql"并同步MySqlConn的连接参数。

⚠️前端构建后请求后端失败→ 生产构建读取.env.production中的VITE_BASE_PATH,它在 build 时写死,部署前需改为真实后端地址。

⚠️前后端端口对不上→ 后端默认生产端口 20011、开发端口 21011,前端通过/api前缀代理;若修改了后端端口,前端环境变量需同步调整。

⚠️生产环境仍在用默认账号→ 初始账号 admin/1 且TokenSettings.SigningKey为默认值,上线前应修改 JWT 签名密钥、改用强密码,并配置 HTTPS、定期备份数据库(SQLite 直接备份wms.db文件即可)。

参与贡献

🔧功能开发:新增业务模块时参照backend/ModernWMS.WMS/中 Controller / Entity / Service 的既有模式,前端按api/+view/成对添加。

🐛Bug 修复:先用默认 SQLite 环境复现,再在对应 Service 层定位,提交前说明复现步骤。

📖文档完善:部署步骤、数据库切换说明与界面截图是最常被需要补充的部分。

🧪测试补充:为收货、发货等核心 Service 的关键方法补充单元测试,覆盖库存增减的边界情况。

分支命名建议feature/功能名或bugfix/问题描述,提交信息用[Feature] 新增批量导入功能这类前缀格式。项目已内置中、英、繁三语,翻译文案集中在frontend/src/languages/langsJson/目录,按现有格式补充即可。

写在最后

ModernWMS 的代码量不大,收货(AsnService)与发货(DispatchlistService)两条主链路值得优先精读,能帮你快速理解一套完整 WMS 的状态设计。建议先按上面的步骤把系统跑起来,对照界面操作一遍完整流程,再决定从哪个模块入手阅读或改造源码。仓库地址:git clone https://gitcode.com/GitHub_Trending/mo/ModernWMS。

【免费下载链接】ModernWMSThe open source simple and complete warehouse management system is derived from our many years of experience in implementing erp projects. We stripped the original commercial system wms function and opened it up for free, hoping to help the majority of small and medium-sized enterprises. At present, the system supports cross-platform。项目地址: https://gitcode.com/GitHub_Trending/mo/ModernWMS

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/23 2:08:57

JVM垃圾回收基础:对象存活判定与垃圾标记算法(附代码演示)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/23 2:08:09

随时随地远程编程:free-claude-code Discord机器人搭建完整教程

【免费下载链接】free-claude-code Use Claude Code for free in the terminal, VSCode extension, or via Discord 项目地址: https://gitcode.com/gh_mirrors/fre/free-claude-code 点击查看 免费下载 free-claude-code 是一个免费的 Claude Code 代理工具&#…

作者头像 李华
网站建设 2026/10/23 2:07:26

WeSight桌面宠物与像素Studio:给AI Agent工作加一层趣味监控

【免费下载链接】wesight Open-source desktop AI agent workspace with one-click Claude Code, Codex, OpenClaw, Hermes Agent setup and custom LLM model routing. 项目地址: https://gitcode.com/gh_mirrors/we/wesight 点击查看 免费下载 WeSight 是一款开源…

作者头像 李华
网站建设 2026/10/23 2:06:39

面向对象设计原则:SOLID原则详解

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华