Appearance
入出库操作管理
**本文引用的文件** - [store.sql](file://docs/ddl/store.sql) - [StoreInOrdersDo.java](file://lemes-cloud/lemes-business-devicemate/lemes-service-dm-store/lemes-service-dm-store-common/src/main/java/com/lenovo/lemes/service/dm/store/entity/StoreInOrdersDo.java) - [StoreOutOrdersDo.java](file://lemes-cloud/lemes-business-devicemate/lemes-service-dm-store/lemes-service-dm-store-common/src/main/java/com/lenovo/lemes/service/dm/store/entity/StoreOutOrdersDo.java) - [StoreInOrderDetailDo.java](file://lemes-cloud/lemes-business-devicemate/lemes-service-dm-store/lemes-service-dm-store-common/src/main/java/com/lenovo/lemes/service/dm/store/entity/StoreInOrderDetailDo.java) - [StoreOutDetailDo.java](file://lemes-cloud/lemes-business-devicemate/lemes-service-dm-store/lemes-service-dm-store-common/src/main/java/com/lenovo/lemes/service/dm/store/entity/StoreOutDetailDo.java) - [StoreMainDo.java](file://lemes-cloud/lemes-business-devicemate/lemes-service-dm-store/lemes-service-dm-store-common/src/main/java/com/lenovo/lemes/service/dm/store/entity/StoreMainDo.java) - [StoreAreaDo.java](file://lemes-cloud/lemes-business-devicemate/lemes-service-dm-store/lemes-service-dm-store-common/src/main/java/com/lenovo/lemes/service/dm/store/entity/StoreAreaDo.java) - [StoreBinDo.java](file://lemes-cloud/lemes-business-devicemate/lemes-service-dm-store/lemes-service-dm-store-common/src/main/java/com/lenovo/lemes/service/dm/store/entity/StoreBinDo.java) - [StoreExceptionCode.java](file://lemes-cloud/lemes-business-devicemate/lemes-service-dm-store/lemes-service-dm-store-common/src/main/java/com/lenovo/lemes/service/dm/store/constant/StoreExceptionCode.java)目录
引言
本技术文档围绕入出库操作管理模块展开,聚焦入库订单与出库订单的数据模型与业务流程,详解入库明细与出库明细的处理机制,覆盖收货确认、质检流程、库存更新等关键环节。同时,结合数据库模式与后端实体类,梳理不同入出库场景(采购入库、生产领料、销售出库、内部转移等)的实现要点,并给出API接口设计建议与审计追踪、批次管理、有效期控制等高级能力的落地路径。
项目结构
入出库相关的核心数据模型与实体类主要分布在以下位置:
- 数据库模式:docs/ddl/store.sql
- 入库/出库订单与明细实体:lemes-cloud/lemes-business-devicemate/lemes-service-dm-store/lemes-service-dm-store-common/src/main/java/com/lenovo/lemes/service/dm/store/entity
- 仓库/库区/库位基础实体:同上
- 异常码定义:lemes-cloud/lemes-business-devicemate/lemes-service-dm-store/lemes-service-dm-store-common/src/main/java/com/lenovo/lemes/service/dm/store/constant
图表来源
- store.sql
- StoreInOrdersDo.java
- StoreInOrderDetailDo.java
- StoreOutOrdersDo.java
- StoreOutDetailDo.java
- StoreMainDo.java
- StoreAreaDo.java
- StoreBinDo.java
章节来源
- store.sql
- StoreInOrdersDo.java
- StoreOutOrdersDo.java
- StoreInOrderDetailDo.java
- StoreOutDetailDo.java
- StoreMainDo.java
- StoreAreaDo.java
- StoreBinDo.java
核心组件
- 入库订单:StoreInOrdersDo
- 关键字段:入库单号、入库类型、仓库代号、入库状态、执行人、审批单号与状态、借用人信息、归还单号等
- 作用:承载入库单据生命周期与审批流转
- 出库订单:StoreOutOrdersDo
- 关键字段:出库单号、出库类型、仓库代号、出库状态、申请人信息、产品线、申请/出库数量与时间、审批信息、个人领用借用订单号等
- 作用:承载出库单据生命周期与审批流转
- 入库明细:StoreInOrderDetailDo
- 关键字段:入库单号、仓库/库区/库位、物料代号、序列号/箱号、包装数量、入库数量、申请数量、单价、寿命数/有效期、PO/PR单号、借用单号、处理状态/数量、好坏品标记、供应商代号等
- 作用:记录每行入库物料的详细属性与流转状态
- 出库明细:StoreOutDetailDo
- 关键字段:出库单号、物料代号、产品线、库区/库位、序列号/箱号、收货类型/归还日期、出库数量、单价、有效期、寿命数、申请数量、库存数量、成本核算、处理状态/数量、仓库代号、是否新增行、可用库存等
- 作用:记录每行出库物料的详细属性与流转状态
- 仓库/库区/库位:StoreMainDo、StoreAreaDo、StoreBinDo
- 作用:空间维度的物理定位与权限控制基础
章节来源
- StoreInOrdersDo.java
- StoreOutOrdersDo.java
- StoreInOrderDetailDo.java
- StoreOutDetailDo.java
- StoreMainDo.java
- StoreAreaDo.java
- StoreBinDo.java
架构总览
下图展示了入库/出库订单与其明细之间的关系,以及与库存台账/明细、仓库/库区/库位的关联:
图表来源
- store.sql
- StoreInOrdersDo.java
- StoreInOrderDetailDo.java
- StoreOutOrdersDo.java
- StoreOutDetailDo.java
- StoreMainDo.java
- StoreAreaDo.java
- StoreBinDo.java
详细组件分析
入库订单与明细处理流程
- 订单创建:入库单据创建并设定入库类型、仓库、状态、审批信息等
- 明细录入:逐行写入物料、库位、数量、单价、有效期/寿命数、PO/PR、供应商等
- 收货确认:根据入库明细的“处理状态/数量”推进到下一阶段
- 质检流程:通过“好坏品标记”与“处理状态”区分合格/不合格,不合格可触发报废/退供流程
- 库存更新:将入库明细映射到库存台账与库存明细,更新在库数量、单价、有效期、冻结数等
图表来源
章节来源
出库订单与明细处理流程
- 订单创建:出库单据创建并设定出库类型、仓库、申请人、产品线、申请数量与时间、审批信息等
- 明细录入:逐行写入物料、库位、出库数量、单价、有效期、寿命数、成本核算、处理状态/数量等
- 收货确认:根据出库明细的“处理状态/数量”推进到下一阶段
- 质检流程:通过“收货类型/归还日期”与“可用库存”控制出库质量与时限
- 库存更新:将出库明细映射到库存台账与库存明细,扣减在库数量、冻结数、更新有效期/寿命数
图表来源
章节来源
不同入出库场景实现要点
- 采购入库
- 入库类型:采购入库;明细中保留PO/PR单号与供应商信息;入库后进入质检与库存更新
- 生产领料
- 出库类型:生产领料;明细中绑定产品线与成本核算;按计划扣减在库数量
- 销售出库
- 出库类型:销售出库;明细中记录客户/合同相关信息;按订单扣减在库数量
- 内部转移
- 出入库联动:通过“内部转移”类型的出库单与入库单完成跨库位/跨仓库的实物转移;明细需匹配序列号/箱号
章节来源
API 接口设计建议(概念性)
- 入库
- POST /api/store/in/create:创建入库单
- PUT /api/store/in/approve:提交/审批入库单
- POST /api/store/in/receive:收货确认(更新明细处理状态/数量)
- POST /api/store/in/execute:执行入库(更新库存)
- POST /api/store/in/cancel:取消入库单
- 出库
- POST /api/store/out/create:创建出库单
- PUT /api/store/out/approve:提交/审批出库单
- POST /api/store/out/execute:执行出库(更新库存)
- POST /api/store/out/cancel:取消出库单
- 库存
- GET /api/store/stock/query:查询库存明细与可用数
- GET /api/store/stock/history:查询库存流水与审计轨迹
说明:以上为概念性接口设计,具体字段与校验规则以实体类与数据库模式为准。
依赖关系分析
- 实体与表的映射
- StoreInOrdersDo ↔ store_in_orders
- StoreInOrderDetailDo ↔ store_in_order_detail
- StoreOutOrdersDo ↔ store_out_orders
- StoreOutDetailDo ↔ store_out_order_detail
- StoreMainDo ↔ store_main
- StoreAreaDo ↔ store_area
- StoreBinDo ↔ store_bin
- 订单与明细的聚合关系
- 入库/出库订单与明细为一对多关系,明细负责承载物料属性与处理状态
- 库存维度
- 明细最终落库至库存台账与库存明细,形成“台账-明细”的双层结构,支持按序列号/箱号/库位等多维检索
图表来源
- StoreInOrdersDo.java
- StoreInOrderDetailDo.java
- StoreOutOrdersDo.java
- StoreOutDetailDo.java
- StoreMainDo.java
- StoreAreaDo.java
- StoreBinDo.java
章节来源
- StoreInOrdersDo.java
- StoreInOrderDetailDo.java
- StoreOutOrdersDo.java
- StoreOutDetailDo.java
- StoreMainDo.java
- StoreAreaDo.java
- StoreBinDo.java
性能考量
- 索引与查询优化
- 建议对入库/出库单号、物料代号、序列号/箱号、产品线、仓库/库区/库位建立复合索引,提升明细查询与库存定位效率
- 批量写入
- 明细入库/出库采用批量写入策略,减少事务开销与锁竞争
- 冻结数与可用库存
- 在高并发场景下,优先使用“冻结数”隔离占用,避免超卖;定期清理过期冻结
- 有效期与寿命数
- 周期性扫描即将过期/寿命耗尽的库存,触发预警与处置流程
故障排查指南
- 常见异常码(节选)
- 仓库名称/编码重复、库区名称/编码重复、库位名称/编码重复、线体名称/编码重复、物料名称/编码重复、供应商名称/编码重复、导入文件重复项、序列号/箱号重复、对应的物料编码不存在等
- 排查步骤
- 核对导入文件与基础数据唯一性约束
- 检查入库/出库单据的状态流转与审批链路
- 校验序列号/箱号与库存明细的一致性
- 验证有效期/寿命数变更是否符合业务规则
章节来源
结论
入出库操作管理模块以订单-明细为核心,结合库存台账与明细,实现了从收货确认、质检到库存更新的闭环。通过仓库/库区/库位的物理定位与批次/有效期/寿命数的精细化管理,能够满足多场景下的入出库需求。建议在接口设计与系统实现中强化审计追踪、异常码与索引优化,确保系统的稳定性与可维护性。
附录
- 审计追踪
- 建议在入库/出库单据与明细中保留创建/更新用户、时间戳与操作日志,便于问题追溯
- 批次管理
- 通过序列号/箱号与PO/PR单号串联批次来源,支持正向追溯与逆向召回
- 有效期控制
- 在入库明细中标注有效期与寿命数,结合库存明细的到期预警与自动处置流程,降低过期风险