仓储管理系统参考手册

843 字
4 分钟
仓储管理系统参考手册

业务简介#

image-20230323180404324
image-20230323180404324

库存管理系统(Warehouse Management System)主要是和订单、物流等服务交互,逻辑也一般十分复杂,也需要有专门的后台管理系统来管理各个仓库中的商品库存,在企业中一般是单独开发,常常对于我们开发商城其他业务的人来说,是一个类似于黑盒的存在。在我们CSMALL商城中,也不需要关心它的实现细节,只需要调用接口即可。

WMS主要逻辑如下:

  1. 用户点击提交订单,订单服务需要调用库存服务接口,查看订单中的商品是否有库存

    注意:在本商城中,提交订单的时候,不扣减库存,等用户付款完成才锁定库存,等待发货之后,用户收货了才会最终扣减库存

  2. 在用户订单支付完成之后,需要调用库存管理系统的接口扣减库存(锁定库存)

  3. 在库存管理系统扣减库存的过程中,需要判断这笔订单中的商品是否都存在在同一个仓库中(内部逻辑)

    • 如果在同一个仓库中,那么直接扣减对应商品的库存即可
    • 如果不在同一个仓库中,那么就意味着这笔订单需要从不同的仓库发货,物流信息等也会不一样,那么就需要对订单进行拆分,通常我们业内叫做拆单。如何拆单呢?本商场的逻辑是按照仓库ID进行拆单,在这里需要调用订单服务的接口,把一个订单按照仓库ID拆分成多个订单

库存管理系统搭建#

直接把整个工程作为模块引入IDEA即可,只需要更改一下父工程的pom.xml文件。

image-20230323230732724
image-20230323230732724

image-20230323230617126
image-20230323230617126

数据库简介#

image-20230323232041217
image-20230323232041217

仓库信息表:主要是存储各个仓储信息,比如北京大兴仓、武汉江夏仓、深圳龙岗仓。表示这个仓库位置在哪里。

库存表:表示各个商品库存多少,关联仓库ID,进而表示这个商品在哪个仓库

stock:库存数

stock_locked:当前已经被锁定的库存数

库存工作单:关联订单,记录订单扣减库存的信息

库存工作单明细:关联库存工作单,记录订单扣减库存的商品详情。

接口说明#

查询库存#

// 参数说明:
// skuId: 商品Id
// num: 商品数量
@GetMapping("/api/ware/inner/hasStock/{skuId}/{num}")
public Result hasStock(@PathVariable Long skuId, @PathVariable Integer num){
Boolean ret = wareService.hasStock(skuId,num);
if (ret) return Result.ok();
return Result.fail();
}

扣减库存#

// 参数说明:
// orderId: 订单Id
@PostMapping("//inner/decreaseStock/{orderId}")
public Result decreaseStock(@PathVariable(value = "orderId") Long orderId){
wareService.decreaseStock(orderId);
return Result.ok();
}

拆单接口#

拆单是由库存服务调用订单服务,有订单服务拆单,所以需要由订单服务来提供,接口示例:

// 参数说明
// orderId: 订单Id
// List<WareSkuDTO>:仓库和商品ids映射,可以理解为在这次订单中,这些商品分别属于哪个仓库
// 返回值说明:
// List<WareOrderTaskDTO>, 表示订单被拆分之后的那些子订单对应的库存工作单列表,每一个子订单对应一个库存工作单
@PostMapping("/api/order/inner/orderSplit/{orderId}")
List<WareOrderTaskDTO> orderSplit(@PathVariable(value = "orderId") String orderId, @RequestBody List<WareSkuDTO> wareSkuDTOList){
return null;
}
public class WareSkuDTO {
// 仓库id
String wareId;
// 商品id列表
List<String> skuIds;
}

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

仓储管理系统参考手册
https://firefly-mu-weld.vercel.app/posts/microservice-30-warehouse/
作者
Daisy
发布于
2026-06-14
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
Daisy
Hello, I'm Daisy.
公告
欢迎来到我的博客!这是一则示例公告。
分类
标签

文章目录