☰
ModernWMS:中小仓库的开源仓库管理系统
2026/10/23 1:57:28 网站建设 项目流程

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

账面与库里的货对不上,差在哪

一批 SKU 当天进出 200 件,入库单还没扫、出库面单还压在纸箱上,到月底才发现账实已经对不上了。这种"账面与仓库现实脱节"的状态,正是 ModernWMS 开源仓库管理系统要解决的问题:它把入库、出库、库存三条作业线放在同一个系统里跑,数据默认落在仓库自带的 SQLite 库(backend/ModernWMS/wms.db 是初始数据文件,可切换 MySQL、SQL Server、PostgreSQL)。

面向中小仓库的完整仓库管理系统

ModernWMS 是从多年的商业 ERP 项目中剥离出来、以 Apache-2.0 协议开源的仓库管理系统,目标读者是 IT 预算有限但仍需要一套可用仓储流程的中小企业和第三方物流。

技术栈:.NET 7 + Entity Framework Core 做后端,Vue 3 + Vuetify 3 + VXE Table 做前端,nginx 托管静态页面,前后端分离,支持跨平台部署。

首页界面:顶部为作业导航,左侧为功能菜单,覆盖仓库设置、收发货、库存等模块(来源 README 截图)

Docker 四条命令本地部署

git clone https://gitcode.com/GitHub_Trending/mo/ModernWMS cd ModernWMS/docker docker build -t modernwms . docker run -d -p 8080:80 modernwms

docker/ 目录下的 Dockerfile 已打包好 nginx、.NET 7 运行时与后端服务,启动脚本 docker/run.sh 会同时拉起前端(80 端口)和后端 API(21011 端口)。浏览器访问http://localhost:8080出现登录页即部署成功,默认账号 admin、密码 1(初始凭据见 README)。不走 Docker 也可以:前端 yarn build、后端 dotnet publish,再用 nginx 挂前端、手动暴露 API 端口即可,README 里有 Windows 和 Linux 两套完整步骤。

仓库管理系统的四个核心能力

入库四步:到货、卸货、分拣、上架

录入一张某 SKU 500 件的到货通知单(ASN,Arrival Notice)后,系统自动生成单据编号;仓库人员按"确认到货 → 卸货 → 分拣 → 上架"四步依次确认,单据状态随操作逐级推进,上架后数量才落入货位级库存,收货数量不足时可以直接在分拣环节登记短缺,不用返工改单。四步逻辑在 backend/ModernWMS.WMS/Services/Asn/AsnService.cs,其中 ConfirmAsync、UnloadAsync、SortingAsync 等方法与前端四个操作页签一一对应。

入库管理界面:左侧为待办任务列表,右侧为明细表格,展示通知单状态、SKU 数量与货主信息(来源 README 截图)

出库全流程:从分单到签收

新建一张出库单(填客户与 SKU 数量),作业人员依次完成分单、拣货确认、包装、称重、交接,每一步都有独立接口保存(backend/ModernWMS.WMS/Controllers/Dispatchlist/DispatchlistController.cs 中定义了 confirm-order、confirm-pick-detail、package、weight、delivery、sign 等端点),签收完成后可以回看这张单的全程时间戳,库存随之扣减。

发货管理界面:状态页签将订单生命周期拆为新单、已分单、已拣货、已包装、已称重、已交接等阶段(来源 README 截图)

库存查询、货位调整与循环盘点

库存页按 SKU 汇总正常与冻结库存,并对照安全库存阈值展示,frontend/src/view/wms/stockManagement/ 下两个页签分别是 SKU 维度和货位维度的库存视图。账实不符时,可用库存调整(Stockadjust)补差异、移库(Stockmove)换货位、冻结(Stockfreeze)临时锁定;定期盘点走 Stocktaking 模块录入实盘数并产出差异结果,逻辑在 backend/ModernWMS.WMS/Services/Stocktaking/StocktakingService.cs。frontend/src/view/statisticAnalysis/ 下另附库龄、入库、发货三个统计视图。

多租户数据隔离与角色菜单权限

所有查询接口都先按当前用户的 tenant_id 过滤(StockService.cs 的库存聚合查询即如此),多个货主或多个仓共用一套实例而数据互不可见;登录走 JWT(backend/ModernWMS.Core/JWT/TokenManager.cs 负责令牌签发与校验),角色能看哪些菜单由 backend/ModernWMS.WMS/Services/Rolemenu/ 下的 RolemenuService 管理,可按菜单粒度授权。

ModernWMS 适合谁,又做不了什么

适合:

  • 单仓运营、SKU 量级的中小仓库,需要一套低成本的收发货库存流程
  • 管理多客户货物的第三方物流,需要按货主隔离数据
  • 想快速跑通 C# + Vue 全栈案例、拿来做学习参考的开发者

不适合:

  • 高频拣选的大仓:没有与 PDA、RF 扫描枪的现成集成,也没有 conveyor、AGV 等 WCS 设备对接
  • 需要与电商平台双向同步订单的业务:出库单只能手工建单或 Excel 批量导入
  • 需要深度财务联动的场景:系统只管仓内作业,不含采购销售、财务核算

部署方面:后端依赖 .NET 7.0 运行时,Docker 镜像基于 Ubuntu 22.04;数据库默认 SQLite,切换 MySQL / SQL Server / PostgreSQL 需要修改 backend/ModernWMS/appsettings.json 里的 ConnectionStrings 并建好库表。

参与社区贡献:从 Issue 到代码

最低门槛的参与方式:先按上面的步骤把系统跑起来,带着操作系统、部署方式和复现步骤提一个 Issue,或者补充文档。想动代码,可以从 backend/ModernWMS.WMS/ 下的控制器与服务、frontend/src/view/ 下的页面入手,fork 项目后提交 PR 即可。

ModernWMS 的价值在于把一套完整的收发货库存流程压缩到几条命令就能跑起来,并且代码全部开放,方便按自己的业务改。建议第一次使用先录入仓库、货位、货主三类基础数据,再用一张入库单和一张出库单把流程完整走一遍。后续如果要做二次开发,从 Controllers 目录的 REST 接口读起,是了解系统边界最快的方式。

【免费下载链接】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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询