热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

1125万人课堂实录|京东仓储系统WMS的三大核心策略

第13期万人课堂-仓储系统WMS专场,中

第13期万人课堂-仓储系统WMS专场,京东技术学院邀请到京东仓储研发部WMS5.0系统负责人刘铭哲,分享京东WMS三大策略。

如下是实录。

WMS三大策略

各位同仁,大家晚~~上~~好:

欢迎大家参加京东的万人大讲堂,也非常荣幸可以跟大家分享京东N多代仓储人的智慧。今天晚上的主题是京东WMS系统的三大策略。每家WMS厂商都有自己的一套策略,分享的这一套也是基于京东的库房特点经过多年的总结得出,最适合京东特点。

一图说明京东的WMS历史。

1. 入库策略

1.1. 流向策略

根据商品相关属性确定商品的上架区域。

说明:

待上架量:待上架量(默认拣选区) = 入库待上架(默认拣选区) + 补货待上架(默认拣选区,只考虑已下发的补货任务);

拣货区库存上限:需在Master中配置,设置在拣货区别层级,包括隔板拣选区和地堆拣选区

X根据商品长宽高计算,若长宽高为空时,取商品平均体积(参数设置);

Y(隔板-地堆体积分界值):是在Master中设置的参数(依据托盘体积百分比设置)

U(地堆-保管体积分界值):是在Master中设置的参数(依据托盘体积百分比设置),U ≥ Y;

商品的隔板拣选区:需在Master中配置(SKU层级、三级分类层级、全品类层级)

商品的地堆拣选区:需在Master中配置(SKU层级、三级分类层级、全品类层级)

商品的默认保管区:需在Master中配置(SKU层级、三级分类层级、全品类层级)

注:获取配置储区时,优先匹配SKU配置、其次匹配三级分类配置、最后匹配全品类配置。

1. 采配商品,流向判定为采配目的仓

2. 非采配商品,判断策略如下:

如果“Q0(商品数量) + Q1(零散拣选区库存) + Q2(待上架量)- Q3(待下架量) ≤ S(拣选区库存上限)”,但是“商品总体积X ≤ Y m³”时,流向判定为该商品的隔板拣选区

如果“Q0(商品数量) + Q1(零散拣选区库存) + Q2(待上架量)- Q3(待下架量) ≤ S(拣选区库存上限)”,但是“商品总体积X > Y m³”时,流向判定为该商品的地堆拣选区

如果“Q0(商品数量) + Q1(零散拣选区库存) + Q2(待上架量)- Q3(待下架量) > S(拣选区库存上限)”,但是“商品总体积 Y m³ 商品的地堆拣选区。

如果“Q0(商品数量) + Q1(零散拣选区库存) + Q2(待上架量)- Q3(待下架量) > S(拣选区库存上限)”,但是“商品总体积 X ≥ U m³”时,流向判定为该商品的保管区

输出

流向、失败原因(流向策略失败时,需返回原因,供操作员查看)

1.2. 上架策略

1. 残品只能上架到残品储位;

2. 良品只能上架到良品储位;

3. 若箱规管理的良品上架到箱拣选区和保管区,上架数量必须为箱规整数倍;

4. 若有推荐目的储区,则上架储区必须与推荐的目的储区一致(有跨区上架特殊权限的人员除外);

5. 若为补货上架,则只能上架到箱拣选区、零散拣选区;

6. 上架储位所在库房必须与上架容器所属库房一致(验收时取入库单的库房信息)。

7. 相同69码,不同货主的商品,不允许放在同一储位上。

8. 符合批次限制(启用批次管理时,批次管理商品不允许混批次存放),SKU限制。

2. 补货策略

2.

2.1. 紧急补货策略

如需求量<最大库存量,补货数量区间为需求量至最大量,挑选库存可用数量在区间内且数量最大的保管储位进行补货,数量为当前储位库存量。如无符合条件储位,先挑选比最大量大且库存最少的储位,数量为最大量。如仍无储位,按库存量由大到小选择储位,直到满足需求量,每个储位的建议量为当前储位计算出的补货量(见图)。

如需求量>=最大库存量,补货数量为需求量。挑选库存可用数量在区间内且数量最大的保管储位进行补货,数量为当前储位库存量。如无符合条件储位,先挑选比区间上限大且库存最少的储位,数量为需求量。如仍无储位,按库存量由大到小选择储位,直到满足需求量,每个储位的建议量为当前储位计算出的补货量

2.2. 紧急补货排序策略

名词解释:

411:急速达订单

311:一天三送的订单。

211:一天两送的订单。

1. 同一逻辑区下任务池存在多个操作账户时,一个任务只能被一个账号领取。

2. 同一逻辑区下领取任务时,411紧急补货任务总是优先于其他所有补货任务被领取。若一个sku已经生产紧急补货或一般补货任务,又有411订单需要改SKU时,将紧急补货或一般补货任务升级为411紧急补货。

3. 同一逻辑区下领取任务时,无411紧急补货时,紧急补货任务总是优先于一般补货任务被领取。若一个sku已经生产一般补货任务,又有订单需求量大于拣货位实际库存时,将一般补货升级为紧急补货,也按照以下规则的顺序领取。

4. 订单类型的补货任务按JIT排序,JIT排序时记录日期和时间,日期+时间早的任务优先领取。

5. 相同订单类型、相同JIT波次的任务,逻辑如下,

a) 首次领取时,校验补货人员是否有当前作业的补货储区,如没有作业储区,系统检索是否存在有任务且无人占用的储区,有则分配,并记录为作业储区。如没有,则分配储区人员少且任务位于空闲通道的储区。

b) 确认储区后,对该储区的任务进行排序,筛选有任务且没有人占用的通道领取任务。

c) 再次领取时,如果该用户上一任务通道中仍任务且没有被占用,优先分配该通道。如被占用,按巷道拣货顺序领取该储区其他通道任务,如储区无任务,分配至其他储区。

3. 出库策略

3.

3.1. 定位策略

在未定位订单池中,选择到达最晚出库时间的订单进行定位,根据各个逻辑区需要的订单数(根据逻辑区待拣订单数与自动排产需要订单数计算),按序形成集合单和任务。

1) 定位优先级

定位顺序按优先级别进行,顺序为:311订单->211订单->其他订单(411自动定位30s组一次)

2) 定位逻辑:

查询出所有的未定位订单(包含所有类型的待定位单据)

遍历所有单据,判断订单对应货主下库存是否满足储位的可用量:

客单查询该货主可用量储位:拣货位、保管位总可用量

内配订单查询该货主:拣货位、保管位总可用量

退供应订单查询该货主:拣货位、保管位、残品区

出备件库查询该货主:残品区、拣货位、保管位

a、 不满足:

当该货主的客户订单、调库单(转合约):记录系统日志(记录到货主维度),进行下一单据判断;

该货主其他订单:可缺量定位,但不可为‘0’

b、 满足:判断单据类型;

如果是411订单系统直接定位

判断是否大订单(订单内单SKU的数量大于设定值),如果大于跳过该订单,设置订单为大订单,需要手工定位;

其他类型订单进行定位

单据定位:

a、 遍历订单中的所有SKU,查询该订单对应货主在库存SKU明细

b、 根据订单类型进行判断:

客单:1、虚拟商品不进行定位;2、‘礼品购’的包装盒和包装卡不定位;3、拣货位库存是否满足:不满足判断是否有紧急补货任务,如果有该订单跳过不定位;如果没有测生成紧急补货任务;4、锁定拣货位商品,扣除货位的可用量,记录定位明细(拣货任务);

内配单定位:保质期商品较新的商品优先定位;

临期商品定位:保质期商品临期阀值+3天

临期阀值:保质期剩余时间大于 保质期1/5 或 30天(自营商品)

第三方商家临期阀值,通过ECLP下传到WMS;到SKU维度

注:延保通等虚拟商品无需进行定位、任务分配、拣货、分播、合流、复核打包等操作。主商品复核打包时,并将虚拟商品与主商品捆绑在同一包裹中。

3)定位规则

1.确定商品等级

一般订单只能定位良品;

master添加“自营商品退供应商优先定位残品储位”参数,开启后,自营的退供应商订单出库时优先在残品储位定位,若数量不足继续从良品中定位。

关闭后,按照出库批次策略进行定位。

2.确定出库批次

根据先进先出策略(保质期管理商品按生产日期;非保质期管理商品按入库日期)确定最佳出库批次(定位时只能定位该批次对应的储位库存)。

保质期商品触发临期规则阈值阈值后不能被一般订单定位,自营商品临期规则统一配置,第三方商品按SKU配置了阈值则按规则计算,如果没有配置,按照统一配置定位。

3.确定出库储位类型

将【立库出库标准】更改为【保管位出库配置标准】,控制配置参数,达到是否从保管位出库的目的。【保管位出库配置标准】若设置为无限大则默认不允许从保管位出库。

不限制小件品必须从小件区定位。(与中件逻辑一样)

关于中件定位流程就是正常的定位,亚一的小件有额外的小件定位规则(小件商品无论要货数量多少,都不允许从立库存储位定位。且小件商品必须从小件区定位),5.0不限制小件品必须从小件区定位。

4.确定出库储位

在满足批次、商品等级、储位类型的前提下,确定最佳出库储位(先确定储区、再确定具体储位)。拣货区定位时,若库存不足,需产生紧急补货。

确定储区:优先从非默认拣货区出库,其次从默认拣选区出库。一种商品对应一个默认拣选区。

若配置了多个出库区类型,则出库优先级如下:

大宗出库区(只在大宗订单或大宗波次有效)=>优先出库区=>快速出库区=>内配合流区=>普通拣货区=>其他拣货区

确定储位:优先清空储位,即优先从库存量少的储位出库,若数量相同按储位号从小到大排序。

1、订单定位:将符合JIT波次的订单进行定位。

2、订单分类:将订单按类型、区域、通道进行分类。

3、形成初始簇:将满足条件的订单作为一个集群进场处理。

4、读取配置和基础信息:配置包括:合并策略、合并通道次数、合并通道深度、通道拣货顺序。基础信息包括:订单类型、每个集合单的订单数、商品数、总体积、总重量。

5、是否启用集中度算法:判断是否启用集中度算法,如启用,进入该算法,否则跳转至合并通道算法。

6、集中度排序:根据集中度计算公式,对所有巷道计算集中度,并进行排序。集中度计算公式:集中度=落入该通道中的商品数量*落入该通道商品量/该通道中订单商品数量

7、是否满足集中单条件:按照集中度由高到低,依次校验每条巷道是否可以独立形成集合单(订单数、商品数、总体积、总重量、合并策略),如可以,形成集合单,否则,计算下一条通道。

8、生成集合单:满足集合单条件订单,形成集合单,更新各个巷道的订单和商品数量。

9、更新巷道密集度:对剩余的巷道重新计算巷道密集度。

10、是否遍历所有通道:检查是否将所有巷道已经检索过。

11、是否剩余订单:检查是否还有剩余订单,如果没有,流程结束。如果存在,继续进行筛选。

12、是否启用合并通道算法:检查是否启用合并通道算法,如果启用,进入该算法。未启用,进入后继流程。

13、集中度排序:同上。

14、扩展通道+1:根据巷道密集度,以最高的巷道作为起点,向两侧扩展一个通道,计算这三个通道的订单是否可以组建集合单。

15、是否满足集中单条件:同上。

16、生成集合单:同上。

17、更新巷道密集度:同上。

18、是否遍历所有通道或降次

19、是否继续扩展:读取系统参数,检查是否继续进行扩展通道,如可以,循环14-18。

20、是否剩余订单:同上。

21、强制输出211或时间优先级集单:根据订单的下发时间,进行组合,形成集合单。

22、 拣货顺序:

23、 是否满足集中单条件:同上。

24、 生成集合单:同上。

25、 是否剩余订单:同上。

26、 强制输出211或最后集单:将剩余的订单进行组合,形成集合单。

生成集合单:同上。

3.2. 拣货策略

任务领取策略:

  • 拣货任务触发后会按照任务优先级在区内排队,拣货人员登陆员工信息后,点击RF获取任务键,获得本区域相应拣货任务类型的任务 ;当拣货人员首次登陆或换区域时需要扫描储位编码。

  • 有未完成的拣货任务,不能领取其他任务

  • 当前逻辑区域内的极速达追加拣货任务排在最前

  • 当前逻辑区域内的极速达拣货任务其次

  • 依据个人权限配置选取任务类型(集合单类型)优先级配置最高任务单(不同出库类型对应不同的主要拣货人员,拣货员登录账号后优先获取所属出库类型的拣货任务(类型包括:普通订单出库拣货任务、大宗订单出库拣货任务、合约订单出库拣货任务、退供应商拣货任务,内配拣货任务、大库出备件库拣货任务、赠品出库拣货任务),若当前无所分配的出库类型的拣货任务则可领取其他类型的拣货任务)

  • 按任务类型别,追加拣货任务排在其次

  • 截单时间

  • 任务单优先级:多件订单中的任何一个任务单被触发,其关联的其它任务单的优先级将提高;

  • 按任务单对应的集合单下发时间(早->晚)的顺序排序

  • 小件一次领取动作最多可同时领取四个任务单领取个数,按合流、非合流单独配置位置邻近的任务单组合成一个组合任务单(需记录子任务单顺序)。当任务池中所剩任务单数小于四个时允许形成组合任务单;

  • 单件订单拣货任务与多件订单拣货任务不能同时领取

  • 可同时领取多个合流拣货任务或多个非合流拣货任务,但合流与非合流任务不能同时领取;(可配置,固安投输送线,可同时领取合流、非合流任务)

  • 领取多个拣货任务,形成新的拣货顺序

  • 领取极速达(411)任务时,每次只能领取一个(拣货完毕时,RF需要提示“极速达订单,请插特殊标识牌”)。

  • 普通区拣货员领取任务后,系统提示该任务具体信息,涉及的储区(GCA1,GCA2,GCA4区等),总拣选点数,任务类型,总件数,是否需要合流等信息。

  • 员工领取到合流拣货任务,RF上需要有提示员工领取周装箱的信息。

中国WMS精英群,借此机会成立了!!

如果你是WMS业内人士,欢迎你的加入,共同建设中国最牛WMS精英群!

特别感谢今日分享的刘铭哲老师,大家多多打赏!扫描下面打赏二维码,表达你的心意!

如下是现场答疑实录:

Q1京东礼盒怎么和sku匹配的?拣货包装部分

答:根据客户的选择,每个礼盒都是不同的SKU,欢迎在京东购物体验

Q2仓库之间的调拨都有什么策略呢。

答:现在是根据销售预测与目的仓的库存进行比较,并根据到货时间来计算需要内配的数量,然后下单

Q3库存可用数量是这样吧:储位最多可放置10个,现在已经有2个,则库存可用数量为8个吧?————是的

Q4 建议数量为订单需求总数量+最大库存量-零拣位库存,对其中的最大库存量不太明白。

答:最大库存量是有上游系统计算出来的该sku在本仓库的零拣区的最大库存

Q5如果不同货主的相同货品SKU号不同的话,如何做到扫描条码与SKU一对一识别?

答:这个是好问题。现在我们确实有不同的SKU重码的情况,这种在预约采购单入库的时候,上游就会自动计算出,告知供应商进行贴码防重

Q6食品或化妆品类目的效期怎么管理啊?不同效期的同SKU一品多位?

答:有效期一般是在外包装上的,不同有效期的同SKU这种情况存在?

Q7上架时,如果容器内相同SKU有多件,是分成一个上架任务还是多个上架任务?一个任务会有多个上架货位吗?

答:是一个上架任务,这个任务会上到同一流向储区的多个储位。

Q8仓库存货在什么情况下适合一品一位管理?什么情况下又不能?

答:在京东,根据商品的规格,分成A类(小)和B类(中)仓,B类仓中的家具家装、水、油等会根据各个仓的情况采用一品一位。

Q9启用集中度算法的条件是什么?

答:现在随着单量增加,都是开启的。

Q10 集合单的意思是一批待拣货订单的合集吧,也就是拣货单吧?一个集合单就是一个拣货任务吗?

答:集合单是根据定位策略计算出来的拣货路径比较接近订单的合集,每个集合单有多少订单是系统可以设定的。一个集合单会根据包含的货品数量、重量、体积和拣货车信息进行匹配,可能会有多个任务。

中国WMS精英群,借此机会成立了!!

如果你是WMS业内人士,欢迎你的加入,共同建设中国最牛WMS精英群!

如果你是WMS业内人士,加入中国WMS精英群,请扫描下方二维码,并备注“中国WMS精英”


关于万人课堂


《万人课堂》由京技院团队打造,基于微信群的移动在线技术分享交流平台。平台充分利用了6亿+微信用户可以随时地参与的优势,在微信用户可以随时地参与的优势,在互联网研发,产品经理,市场运营等多个细分领域的万人在线课堂 。


本期之前已分享列表:

(关注公众号回复对应数字即可获取实录,例如回复8)

万人课堂第12讲:架构师的自我修养

万人课堂第11讲:寄生在超级APP中的H5

万人课堂第10讲:DDOS的攻击与防护

万人课堂第9讲:如何快速研发价值3.5亿美金的在线旅游产品?

万人课堂第8讲:京东POP开放平台架构演变解密!

万人课堂第7讲:互联网+下企业软件变革!

万人课堂第6讲:互联网项目管理的京东实战!

万人课堂第5讲:京东是如何进行敏捷软件开发的?

万人课堂第4讲:如何做统筹全局的“大”产品经理?

万人课堂第3讲:京东产品经理如何从屌丝逆袭成大牛?

万人课堂第2讲:互联网企业研发生产是如何进行的?

万人课堂第1讲:如何在3年成为顶级coder?

JDTechEd:互联网产品经理分享第一公众号
问:每次都被提醒关注京东技术学院官方微信号:JDTechEd,总得给个理由给个说法吧,京东技术学院到底干些神马事情?
答:
1、定制互联网产品经理,技术架构私房课
2、搭建和业界大神的交流平台
3、推荐优先进入京东,BAT顶级互联网公司的就业机会
4、第一时间获得行业前沿研究报告
5、业界沙龙,活动精选信息推送
6、创业项目,创业团队加速器
7、互联网技术,产品创新孵化器
微信号:



推荐阅读
  • 2018年3月31日,CSDN、火星财经联合中关村区块链产业联盟等机构举办的2018区块链技术及应用峰会(BTA)核心分会场圆满举行。多位业内顶尖专家深入探讨了区块链的核心技术原理及其在实际业务中的应用。 ... [详细]
  • 数据管理权威指南:《DAMA-DMBOK2 数据管理知识体系》
    本书提供了全面的数据管理职能、术语和最佳实践方法的标准行业解释,构建了数据管理的总体框架,为数据管理的发展奠定了坚实的理论基础。适合各类数据管理专业人士和相关领域的从业人员。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 本文探讨了领域驱动设计(DDD)的核心概念、应用场景及其实现方式,详细介绍了其在企业级软件开发中的优势和挑战。通过对比事务脚本与领域模型,展示了DDD如何提升系统的可维护性和扩展性。 ... [详细]
  • 探索电路与系统的起源与发展
    本文回顾了电路与系统的发展历程,从电的早期发现到现代电子器件的应用。文章不仅涵盖了基础理论和关键发明,还探讨了这一学科对计算机、人工智能及物联网等领域的深远影响。 ... [详细]
  • 深入解析Redis内存对象模型
    本文详细介绍了Redis内存对象模型的关键知识点,包括内存统计、内存分配、数据存储细节及优化策略。通过实际案例和专业分析,帮助读者全面理解Redis内存管理机制。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 自学编程与计算机专业背景者的差异分析
    本文探讨了自学编程者和计算机专业毕业生在技能、知识结构及职业发展上的不同之处,结合实际案例分析两者的优势与劣势。 ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • Ralph的Kubernetes进阶之旅:集群架构与对象解析
    本文深入探讨了Kubernetes集群的架构和核心对象,详细介绍了Pod、Service、Volume等基本组件,以及更高层次的抽象如Deployment、StatefulSet等,帮助读者全面理解Kubernetes的工作原理。 ... [详细]
  • 高效解决应用崩溃问题!友盟新版错误分析工具全面升级
    友盟推出的最新版错误分析工具,专为移动开发者设计,提供强大的Crash收集与分析功能。该工具能够实时监控App运行状态,快速发现并修复错误,显著提升应用的稳定性和用户体验。 ... [详细]
  • andr ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • Startup 类配置服务和应用的请求管道。Startup类ASP.NETCore应用使用 Startup 类,按照约定命名为 Startup。 Startup 类:可选择性地包括 ... [详细]
  • 本文探讨了如何在日常工作中通过优化效率和深入研究核心技术,将技术和知识转化为实际收益。文章结合个人经验,分享了提高工作效率、掌握高价值技能以及选择合适工作环境的方法,帮助读者更好地实现技术变现。 ... [详细]
author-avatar
可靠的aaaaaaaaaaa_818
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有