库存永远等于
流水汇总
MonaWMS 是面向通信代维与中小仓库场景的轻量仓储管理系统:物资主数据 → 入库 → 出库 → 库存 → 盘点对账 → 报表导出 → 操作日志审计,全链路闭环。让每一件通信物资账实一致、全程可溯。
小仓库,也有大账要算清
通信代维物资种类多、分布散、周转快,Excel 台账和重型的 ERP 都靠不住。MonaWMS 用工程级的数据纪律,解决小仓库最常见的四个问题。
01没有 MonaWMS 之前
Excel 记进出、记混型号,月底盘库存全凭感觉,账实两张皮。
单据记了、库存没扣,或直接改库存数字,越改越乱、无从查证。
年底大盘点大海捞针,差异说不清来龙去脉,只能拍脑袋调账。
谁在什么时候改了什么库存,查无实据,出问题互相推诿。
02有了 MonaWMS 之后
库存由流水驱动、在同一事务内更新,永远等于所有出入库流水之和,账实恒一致。
主数据 → 入库 → 出库 → 盘点 → 对账 → 报表 → 审计一站到底,不再需要多个系统拼凑。
盲盘录入 → 双签 → 差异审核 → 自动生成盘盈 / 盘亏调整单,差异有据可依。
每一次写操作留痕(操作人 / 动作 / 对象 / 前后差异 / IP),日志只读不可删,责任到人。
六项核心能力,撑起仓库的确定性
每一处设计都以「数据可信、责任可追、随时可查」为底线,不靠人盯,靠机制。
库存永不失真
库存由 inventory_transactions 流水驱动,inventory 只是流水汇总的物化快照,二者在同一事务内更新。任何库存变动必须走流水 + 行锁,禁止「先查后改」。
# 数据纪律一物一码 SN 追溯
序列号全生命周期台账:在用 / 返修中 / 待报废 / 已报废,状态流转写入历史,出库 SN 联动扣减,每台设备去向清晰可查。
# 全程可溯盘点对账闭环
盘点单 → 盲盘录入 → 双签确认 → 差异审核 → 自动生成盘盈 / 盘亏调整单;对账中心三规则核验(流水 vs 库存、SN 台账、批次台账),差异批量绑定。
# 差异自动处理录审分离 + 二维授权
录入员只录单到 confirmed、不能过账;有效权限 = 全局角色 ∩ 仓库授权,未授权仓库不可见不可操作(403),仓库级经理也无法放大系统级权限。
# 权限模型全量操作审计
所有写操作落 operation_log:操作人 / 动作 / 目标 / before-after JSON diff / IP,日志只读不可删,任何人也无法抹改,审计取证一步到位。
# 责任到人报表开箱即用
xlsx(PhpSpreadsheet)+ CSV 流式导出,上万行数据走队列分批写出;金额一律按数量 × 流水固化单价计算,统计口径永远一致。
# 口径统一库存为什么永远算得清
MonaWMS 的核心机制:库存不是被「手动改」出来的,而是从每一笔业务流水「算」出来的。
所有库存变动必须走 Db::transaction + 行锁,禁止直接 UPDATE 库存表;同一事务内流水与快照同步落库,掉电、并发都不会产生「账实分离」。
20+ 功能模块,覆盖仓库全业务
从物资主数据到审计日志,每一环都可独立使用,也天然串成一条完整的业务链。
库存与单据
- 入库管理采购 / 调拨 / 归还 / 盘盈
- 出库管理领用 / 领用人 / SN 联动
- 库存查询仓库 / SKU / 批次 / 库位
- 库存流水全量可追溯
- 盘点盲盘 → 双签 → 差异审核
- 对账中心三规则核验 + CSV 导出
- 报废申请流程联动待报废状态
主数据与库内结构
- 物资主数据SKU / 型号 / 计量方式
- 分类管理一 / 二级树形
- 供应商 · 客户往来单位台账
- BOM 管理头明细 / 复制 / 展开
- 数据字典12 类后台可维护
- 四级库位仓库 / 库区 / 货架 / 库位
追溯与合规
- 序列号 SN一物一码 · 状态流转
- 操作日志写操作审计 · 只读
- 授权矩阵账号 × 仓库二维授权
- 用户管理角色分配 admin / operator
- 项目台账项目物资预留
- 无线备件无线侧专项台账
看板与移动端
- Dashboard 看板库存金额 / 出入库趋势
- 告警概览低库存 / 待办提醒
- 报表导出xlsx + CSV 流式
- 移动端uni-app H5 随时录单
- 个人中心JWT 续签 / 资料
- 设备管理台账收敛至 SN 体系
全部模块支持软删除归档与 Excel 批量导入,历史单据可翻查、可红冲。
工程级技术底座,轻量但不将就
严格分层的架构与数据铁律,让「小而美」的系统同样经得起审计与并发。
后端
统一响应:
{ code, message, data, trace_id },业务错误走业务码。前端
看板:库存金额、出入库趋势、告警概览实时图表。
数据与部署
迁移纪律:18 份幂等迁移 + 14 份种子数据,脚本可重复执行。
三种方式,最快十分钟上线
从一台云服务器到 Windows 笔记本,都能跑起来。
Docker Compose 一键部署
面向生产环境:MySQL 容器首次启动自动导入建库快照与演示数据,无需手动初始化。
git clone <仓库> MonaWMS_TX
echo "MYSQL_ROOT_PASSWORD=..." > .env
docker compose up -d
# 访问 http://<IP>:9110/阿里云 ECS 生产部署
源码 volume 挂载,git pull 即时生效无需重建镜像;安全组只开放 9110 / 9111,数据库端口不暴露。
cd frontend && npm ci && npm run build
# nginx 反代前端 + API
# 改代码 / git pull 即生效本地开发一键启动
Windows 双击 start_all.bat:自动拉起 MySQL → 后端 8000 → 前端 Vite,开箱即改。
start_all.bat
# 或手动:
composer install
php think run --port 8000
npm run dev三十秒,亲眼看看「账实一致」
无需安装,直接用浏览器体验完整业务流程:录单、过账、盘点、对账、查审计。
常见问题
围绕部署、登录与数据安全的高频疑问。
库存必须由流水驱动:任何变动都写入 inventory_transactions,并在同一事务内更新库存快照(带行锁),禁止先查后改。这样库存永远等于流水汇总,账实分离在机制上不可能发生,也天然支持审计追溯。
access token 有效期 2 小时,前端会自动用 refresh token 续签,过期则强制登出。按顺序排查:后端 .env 的 JWT.KEY 是否被改动 → 数据库是否重新导入(密钥变化会使旧 token 失效)→ 浏览器清缓存后重新登录。
完整快照里的用户密码均为 password(bcrypt 加密)。若仍失败,确认 users.status = 'active' 且 deleted_at IS NULL,再检查是否覆盖了已存在的同名库。
MonaWMS 面向通信代维与中小仓库场景轻量设计:Docker 一键部署、双角色权限即可运转,没有重型系统的实施成本;同时保留工程级数据纪律(流水驱动、行锁事务、全量审计、幂等迁移),小团队也能获得「大厂级」的账实可信度。
有效权限 = 全局角色(admin / operator)∩ 仓库授权(user_warehouse_grant)。未授权仓库一律不可见、不可操作(403 WAREHOUSE_NOT_GRANTED);仓库级 manager 权限只能在本仓库内等同管理员,不能放大系统级权限。