入库、出库、调拨单据各自流转,没有统一状态口径,库存就永远对不上
项目概览
项目背景
这是一套仓储管理系统,单个代码库,包含 414 个 Java 文件与 34 个 Vue 文件,另有 2 个测试文件和 3 篇项目文档。从代码规模看,这是一套完整实现的业务系统,覆盖入库、出库、库存盘点与库位管理等核心环节。
客户当时的状态
仓储管理的核心诉求只有一个词:账实相符。系统里显示的库存和货架上的实物对不上,后面所有的采购、发货、盘点都会跟着错。而库存对不上,几乎都出在单据上——入库单、出库单、调拨单各自流转,没有统一的状态口径,就会出现「货已经出库了,系统里还挂在库里」这种情况。另外仓库作业是分工的,收货、上架、拣货、复核由不同的人做,权限不分开,出了问题分不清责任。
我们的做法与取舍
第一个取舍是把单据做成库存变动的唯一来源。库存不靠人工改数字,只能由单据驱动。代价是操作步骤变多,收益是每一次库存变化都能追到源头。
第二个取舍是把库位管理做进主流程,而不是当成一个附加信息。库位不确定,拣货就得靠人找,账实相符也无从谈起。
第三个取舍是权限按作业环节拆开,而不是按部门粗放划分。收货、上架、盘点、复核各自有对应权限,谁做的操作系统里有记录。这部分在一套 414 个 Java 文件的工程里是贯穿式的改动,不是加个角色就能解决的。
系统怎么承载这条链路
后端承载物料、库位、库存与单据的核心逻辑,入库、出库、盘点、调拨都作为单据类型走同一套状态机;前端负责作业界面与查询;项目内留有 3 篇文档和 2 个测试文件,说明核心链路在交付时做过验证。库存数量由单据累计得出,不允许直接修改——这条约束贯穿整套系统,也是 414 个 Java 文件里改动最密集的部分。文档覆盖的是单据规则与操作方式,交接时不用再靠口头解释。
交付状态与边界
代码库最后一次提交在 2021 年 12 月,系统交付后没有再更新。边界说明:系统承载的是仓储作业流程与库存记录,不涉及自动化立库、AGV 等硬件设备的控制;条码与硬件采集设备的选型由使用方决定,系统提供的是数据接收与处理;盘点差异的最终认定与账务处理属于财务范畴,系统只记录盘点结果与差异明细,不替财务做结论。
项目信息
某仓储管理项目
供应链与物流
未披露
Java / Vue
仓储管理系统
CHALLENGES
客户当时面对的现实
库位信息不确定,拣货只能靠人找,账实相符也无从谈起
仓库作业分工明确,权限不拆开就分不清责任
库存数字一旦允许人工修改,账面数据就失去了可信度
CAPABILITIES
我们交付的能力
仓储系统的核心只有一个词:账实相符
单据驱动库存
入库、出库、盘点与调拨都以单据为核心,库存变动只能由单据产生,不允许直接改数字。
库位管理
库位作为主流程的一部分参与上架与拣货,而不是附加在上面的一个备注字段。
盘点与差异记录
盘点结果与差异明细留痕,为后续的账务处理提供依据。
环节化权限
收货、上架、拣货、复核各环节权限分开,操作记录可追溯到具体环节。
SCOPE
交付范围
以下范围按本项目实际交付内容与边界整理,不属于这次范围的部分一并列出。
已交付
- 物料与库位基础档案
- 入库、出库、调拨与盘点单据流程
- 库存数量与账实核对
- 作业界面与查询统计
- 项目文档与核心链路测试
不在本次范围
- 自动化立库、AGV 等硬件设备的控制:系统提供数据接口,不承担设备控制
- 条码与采集设备的选型:硬件由使用方决定,系统负责数据接收与处理
- 盘点差异的最终财务认定:系统记录结果,账务处理属财务范畴
ARCHITECTURE
分层技术架构
公开口径归纳为三层:档案层是物料与库位基础数据;业务层承载单据流转与库存计算;界面层承载作业操作与查询统计。
基础档案层
为单据与库存提供统一的对象定义
业务层
以单据驱动库存,保证每次变动可追溯
界面层
覆盖仓库现场作业与管理查询两类场景
DELIVERY
交付过程
分阶段推进,每个阶段都有可验收的产出,客户在早期就能看到实际效果。
单据与库存规则
梳理单据类型与库存变动规则,确定统一状态口径。
基础档案与库位
物料、库位等基础数据落地,库位进入主流程。
入库出库与盘点
单据流程贯通,盘点与差异记录落地。
权限与验证
按作业环节拆分权限,核心链路完成测试与文档。
FACTS
可核验的交付事实
以下内容来自本项目实际交付物;未经验证的指标不予展示。
Java + Vue 双端工程
后端主体代码量
前端界面代码量
TRANSFER
这套做法适不适合你
案例的用处不是证明"我们做过",而是让你判断"在我们这种条件下能不能做成"。下面三句是我们对这一单的判断,写下来供你对照自己的情况。
适合什么情况
适合有实物出入库、需要账实相符与作业留痕的仓储场景。
什么情况下别照搬
若库存量极小、没有库位概念,做完整的单据与库位体系属于过度设计;设备控制类需求不属于本系统的范围。
如果要试,第一步做什么
先把单据类型与对应的库存变动规则列成一张表。
RELATED SERVICES
相关服务
从实际业务问题出发,查看对应服务的适用场景、交付物与不含项;具体范围仍需单独确认。
FAQ
常见问题
以下是同类项目沟通中出现频率最高的问题,答案就是我们实际的做法。
库存为什么不能直接改?
库位管理是不是可以后面再加?
仓库岗位权限要拆到什么程度?
这套系统还在跑吗?
做仓储系统第一步做什么?
本页最后更新:2026年9月24日