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
ModernWMS(现代仓库管理系统)是一款 MIT 协议的开源 WMS,由作者从多年商业 ERP 项目里剥离出核心仓储功能后开放出来,目标很直接:让预算有限的中小企业不用花几十万实施费,也能把收货、上架、仓内作业、发货这条链路完整管起来。系统采用 .NET 7.0 + Vue 3 + TypeScript 的前后端分离架构,开箱默认带 SQLite 数据库,装上就能登录使用。适合两类人:一是需要一套能用且免费的仓储系统的运营方,二是想照着成熟项目学习 WMS 业务建模的开发者。
适用场景:3 类仓库值得考虑
- 小电商与三方仓的日常收发:日均几十到几百单的规模,Excel 记录已经开始对不上账,需要按"到货通知—卸货—分拣—上架"的节点留痕,发货端要能跟踪每张单子的状态走到哪一步。
- 多货主代运营仓库:一个仓里存着几个货主(品牌方)的货,出入库都要按货主隔离统计。ModernWMS 在基础数据里专门设了货主、供应商、客户、运费四类档案(GoodsOwner 服务、Supplier 服务),商品可以挂到货主名下。
- 二次开发与教学模板:项目结构是标准的分层写法(Controller → Service → Entity,前后端目录一一对应),想自己搭一套 WMS 或做 ERP 课程设计,可以按它的模块划分直接参考,不用从零设计表结构。
功能拆解:跟着一次入库和一次出库走一遍
收货入库:6 个 Tab 把到货流程拆成节点
纸质送货单最大的问题是"货到了但没人记录"。ModernWMS 的收货管理把流程拆成到货通知、待卸货、待分拣、待上架、收货明细六个 Tab,货走到哪一步在系统里就落在哪一列,责任人也跟着节点走。业务逻辑集中在 AsnService,前端页签在 view/wms/stockAsn/,前后端改起来互不干扰。
发货出库:一张单从新建到签收 11 个状态可查
发货侧覆盖开票、预发货、新建发货、待拣货、已拣货、待打包、已打包、待称重、已称重、已发货、签收等阶段,每个阶段对应 deliveryManagement 页面组 里的一个 Tab,后端单据流转在 DispatchlistService。对仓库主管来说,这意味着"这批货卡在哪"不再靠问人,列表一筛就知道。
仓内作业:加工、移动、冻结、调整、盘点五种单据
库存数字不准大多源于仓内动作没记录。ModernWMS 把五类常见操作都做成了独立单据:库存加工(拆包、组合)、库存移动(库位间调拨)、库存冻结(质量问题先锁住)、库存调整(盈亏)、库存盘点(按库位核对)。代码分别在 Stockprocess、Stockmove、Stockfreeze、Stockadjust、Stocktaking 五个服务目录,每张单都有操作日志可追溯。
库存与统计:库龄、安全库存、收发货报表
除了查当前库存,还做了 库存报表服务:库存周转/库龄分析、库位库存、安全库存预警,以及收货统计、发货统计、库存统计(统计分析页面)。前端基于 ECharts 出图,数据导出走表格导出插件。
基础档案与权限:商品、仓库、角色菜单三件套
商品(SKU/SPU/类目)、仓库/库区/库位、公司/角色/菜单/用户这些基础档案放在 基础设置控制器组,登录后先配这几项,后面的收发单据才有可选项。
跑起来:环境清单、构建命令与首次登录验证
- 环境要求:Linux 端 Ubuntu 18.04 及以上、CentOS Stream 8/9、Debian 10/11 均可,Windows 端 Win10 1607+/Server 2012+;安装 .NET SDK 7.0 与 NodeJS 16.13+(含 yarn)。用 Docker 部署可跳过本地编译。
- 获取代码:
git clone https://gitcode.com/GitHub_Trending/mo/ModernWMS - 分别构建两端:
cd frontend && yarn && yarn build cd ../backend && dotnet publish - 启动并验证:发布产物里运行
dotnet ModernWMS.dll --urls http://0.0.0.0:20011起后端,frontend/dist交给 nginx 起前端,浏览器访问http://服务器IP,用默认账号admin/ 密码1登录,看到首页即部署成功。
小贴士:数据库默认是 SQLite(仓库里自带的
backend/ModernWMS/wms.db),零安装;要换 MySQL 8+、SQL Server 2017+ 或 PostgreSQL 12,改 appsettings.json 里的"Database"字段并填对应连接串即可。
关键目录速查:
- backend/ModernWMS.Core/ — 认证(JWT)、中间件、多租户、通用服务等基础设施
- backend/ModernWMS.WMS/ — WMS 业务本体,Controllers / Services / Entities 三层
- frontend/src/ —
api/是接口封装、view/是页面组件,与后端目录基本一一对应 - docker/ — 容器化部署的 Dockerfile 与 nginx 配置
差异点:3 处有具体落点的设计
- 审批流可视化配置:很多开源库存工具只有单据没有流程。ModernWMS 内置了 FlowSetService 审批流服务,配合前端的 workFlow 流程图组件,按菜单配置审批节点和审批人,单据才能进入下一步,不是写死在代码里的固定流程。
- 3D 虚拟仓库与多语言:vwms 模块 内嵌了 Unity 构建的 3D 仓库视图(产物在 public/unity/Build/),支持货架二维网格选位;多语言文件在 langsJson 目录,中文、英文、繁体三份已备好,加语言就是加一个 JSON。
- 打印方案走模板:发货环节不是简单弹 PDF,而是有 打印方案服务 加前端 hiprint 组件(hiprint 目录),单据打印格式做成可配置的模板,换纸、改字段不用动代码。
参与项目
贡献入口在仓库的 Issue 区(提 Bug 或建议),代码侧建议先认领 前端语言文件补译、统计分析页面的图表优化,或 Services 层的单元测试这类边界清晰的小任务;熟悉结构后再碰单据流转类改动。
ModernWMS 的价值在于把一套完整的 WMS 业务闭环免费摆在你面前,部署十分钟能跑,源码逐行能读。把它当成生产系统用,或者当成学习模板拆,两条路都走得通。
【免费下载链接】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),仅供参考