供需业务的理解
-
系统补货: 解决每日微仓级别的补货
-
人工干预: 干预系统推单量
1. 推单半小时拦截,修改系统推单量 2. 大仓/城市维度:修改推单量后,会按照从数据部获取的应有库存,求一个最佳分配比例(类似二分法查找最佳比例),将人工修改的推单量重新计算分配; 3. 微仓维度:以操作人员修改的新推单量为最终推单量,不走任何算法过程。
-
站长反馈: 用于接收站长反馈的售罄或者滞销的原料,针对的是单仓单品
1. wms推送售罄和滞销品到psm 2. 解决售罄分为'多补' 和'正常补',多补目前就是调整系数,'调整系数'的生效时间到当天24点 3. 解决滞销分为'少补','拉黑','正常补','少补'依然是调整系数,'拉黑'就是加入黑名单,有效期到24点
-
手推单: 按仓或者按原料,新仓补货,晚到货补货等,解决系统补货不足的问题,或者日清品需要瓜分等
-
自动拦截补货规则
1. 目前只有'拉黑'和'驳回'
-
补货周转系数
1. 用于人工干预
老系统模块的交接
老系统补货流程以及需要关注的点
1. 初始化参数
2. 计算应补数量
2.1 获取在售sku列表(不区分微仓)
2.1.1 根据大区获取在售SKU (根据大仓获取原料列表)
2.1.2 添加新品/促销品(大区维度,大区+城市维度,如果两者维度都配置了,并且有冲突,那么只取大仓维度的促销品,或者两者都取,城市需要根据微仓获取)
2.1.3 去掉非当前补货批次的原料(需要根据原料+ 微仓过滤)
2.1.4 去除指定原料的商品(过滤掉手推指定的原料)
2.2 判断大仓无库存不补货:
2.2.1 调用atp,大仓确实没有库存
2.2.2 大仓 - 预留库存(包括次日达预留+干仓预料) < 0 ,也不补货
2.3 系统新品促销品补货逻辑:
2.3.1 获取sku数量(大区+原料),取不到赋值1 (实际上前面已经获取过大规格)
2.3.2 原料周转天数取不到赋值为1
2.3.3 先根据品类获取瓜分数量,如果没有那么根据微仓订单量获取瓜分数量(此处还不涉及瓜分,只是取出相应品类或微仓的单量),设置应有=应补=瓜分的量
2.3.4 如果计算应有为空,那么会正常流程计算应补
2.4 强制补货的逻辑: (以下规格是指SKU数量)
2.4.1 如果七日平均销量为0
2.4.1.1 对于蔬菜品类:
2.4.1.1.1 现有库存 < 规格数量
2.4.1.1.1.1 A类蔬菜强制补货,应有 = 规格数量 *2 (应有等于应补)
2.4.1.1.1.2 BC类成长期 应有 = 规格数量 * 2(应有等于应补)
2.4.1.1.1.2 BC类成熟期 应有 = 规格数量 *1(应有等于应补)
2.4.1.1.2 否则不需要补货
2.4.1.2 对于非蔬菜类
2.4.1.2.1 现有库存 < 2 * 规格数量
2.4.1.2.1.1 应有 = 2 * 规格数量,应补 = (应有 -现有) % 规格数量 ?( (应有 -现有) / 规格数量 +1) * 规格数量 : (应有 -现有 )
2.4.1.2.2 不需要走强制补货逻辑
2.5 非新品促销品不补货:
2.5.1 黑名单不补货
2.5.2 辅料不补货
2.5.3 大仓无货不补货
2.5.4 周转天数为空不补货
2.5.5 获取SKu数量为空不补货
3 平均分配库存
3.1 分配库存大致逻辑
3.1.1 如果大仓维度有促销品
3.1.1.1 先按照促销平均分配,分配(促销品的补货量 * 本外阜比例)
3.1.1.2 如果最终总分配量 > 大仓库存 * 本外阜比例,那么按照大仓库存*本外阜比例走强制补出逻辑
3.1.2 非大仓维度活动品
3.1.2.1 过滤城市维度的促销品,按城市促销维度量走促销平均分配(城市促销品量* 本外阜比例)
3.1.2.2 如果城市维度的最终分配量+不需要分配的应有 > 大仓库存 * 本外阜比例,那么所有的补货单都按大仓库存*本外阜比例走强制补出
3.1.3 如果配置了瓜分或者是库存不足
3.1.3.1 走瓜分算法,继续瓜分,瓜分算法和按大仓平均分配的逻辑一直,除了获取比例不一样
3.2 保存 BuhuoDacangStockShortDto 补货大仓库存不足记录到Mongo
4 过滤库容
5 生成补货单
5.1 扣ATP库存,调用WMS生成补货单,插入补货数据,保存psmPurchase和psmPurchaseDetail,如果涉及人工干预,同时保存psmGanyuDetail
6 发送辅料信息
7 保存日志
7.1 保存到mongo的psmBuHuoLog集合中
8 补货异常需要发送邮件
8.1 线程异步发送邮件和消息(特定的接收人)
9 对于补货波次配置需要注意的点:
9.1 外阜优先跑
9.2 外阜单独跑
9.3 以前没有的波次要检查
手推单相关流程及需要关注的点
1 补货单导入,按仓导入和按原料导入,都是直接生成补货申请单PurchaseByWarehouseRequest,需要注意的是补货单导入会过滤掉"品类是'包材'和属于补货黑名单的原料"
2 晚到货补货
2.1 保存psm_buhuo_manual
2.2 补到(关注大仓下面微仓的库存,补到一定数量)
2.2.1 取微仓订单量作为应有,应补取微仓订单量
2.2.2 按促销平均分配走,分配补到量
2.2.3 如果计算的理论应补量 > 大仓总库存, 那么走强制补出,按大仓库存量
2.3 补出(不关心微仓的库存,强制补出去一定数量的原料)
2.4 补出V2
2.4.1 获取数据部的应有库存,如果有一个应有库存查不到,则取微仓订单量作为应有,应补取微仓订单量
2.4.2 调用数据部的水位算法(使用补出或者补到的量)
2.4.3 如果调用失败,那么走按大仓平均分配逻辑强制补出
2.4.4 如果计算的理论应补量> 大仓总库存, 那么依然先走数据部的水位算法,失败的话走强制补出算法
3 新开站补货
3.1 保存psm_buhuo_manual
3.2 如果没有选择克隆微仓,那么根据预估量找到城市下面最接近预估量的那一个微仓,如果找不到,那么默认取城市下面销量最低的那一个微仓
3.3 应有库存 = 七日平均 * 周转天数,应补数量 = 应有库存 - 现有库存 - 今日已补数量
3.4 生成补货申请单
手推单新需求优化
1. 改动点
1.1 大仓+原料维度创建的手推单走之前的晚到货补货补到算法,不再使用数据库的水位算法
1.2 微仓+原料维度创建的手推单走之前的按原料补货
1.3 新仓+原料维度创建的手推单走之前的新开站点补货
新系统补货流程优化的点
1. 获取在售商品,新品促销品区分按品类补货和按原料补货的补货类型,增加微仓灰度校验的判断
2. 七日平均,如果是配置了相似原料的新品,则取相似原料的七日平均
3. 如果是新品,并且设置了按预估销量计算应有库存,不用本外阜比例
4. 新品的应有库存 = 微仓品类销量 / 大仓品类销量 * 新品预估销量* 本外阜比例
5. 非新品的最大应有库存 = 过去14日销量峰值*品类系数*原料系数*调整系数*2,新品没有限制
6. 追加应补为0的微仓?因为之前的人工干预不考虑应补为0的仓,新系统增加这部分仓的分配
7. 新系统新品促销品应补的计算逻辑?促销品走调整系数
8. 主辅料的获取不一致? 因为分区,故每个大区都需要自己增加主辅料
线上服务器部署情况,各种资源的使用情况,资源监控查看工具
- 可查阅相关文档
- psm-data 主要是站长反馈的东西,线上部署两台服务器,不清楚Nginx地址
- psm-web/psm 与采购耦合在一起
- psm-job-monitor, 补货任务的监控项目
- common-core 项目供应链后端都在用,迁仓会需要改动
- job1,job2测试环境没有部署
- psm-data, api-gate-way走scm流程开发
- report项目暂时没有人维护,但是psm会调用report同步数据
常见细节的坑的整理,已经问题排查操作方法。对现有系统的可能的风险点暴露
-
已整理文档,可查阅
-
关于补货数量sku获取不到的常见问题排查整理如下
1. 获取SKU的数量逻辑: 1.1 获取SKU数量 SELECT cw.warehouse as daqu , b.materials_id as material_id , b.qty FROM master_category c , master_category_sku s , master_bom b , master_category_warehouse cw, bms_product bp WHERE c.is_chrome = 1 AND c.active = 1 AND bp.goods_no=b.sku_id AND bp.goods_status=true AND bp.service_type='1' AND cw.category_id = c.category_id AND c.category_id = s.category_id AND s.sku_id = b.sku_id AND cw.is_liansuodian = FALSE ORDER BY cw.warehouse ,b.materials_id ,b.qty DESC 1.2 可能遇到的问题: 是否是极速达,是否配置bom数量,是否配置频道,sku是否是上架状态 1.3 获取SKU大规格(优先级更高,正常由物流维护大规格的配置) 2. 目前不太明确的是: 2.1 老系统补货新品促销品判断sku数量时,取不到默认赋值为1 2.2 新系统新品促销品补货和手推晚到货补货判断sku数量时,取不到不补货。 2.3 另外就是都可以配置大规格,绕过上述的判断
已完成需求和未完成的需求
- 手推单需求
系统的优化点以及风险点
- 根据大区获取在售在售SKU列表,1/4可以提取到外边,2/3需要微仓+原料判断
其它
- 调拨: 由wms发起,会调用到我们(ReplenishmentController)
- 波次号2: 系统推单使用,老系统使用公共类写死,新系统支持配置,从数据库取
- psm.sys.batch 主料补货
- psm.sys 辅料补货
- 补货日志查询中规则的查询,只能查当天的,因为实在缓存中
- 仓库的级别: 冷藏和冷冻
- 查看库存流水在atp系统
- sso主数据配置人工干预
- 跑外阜会有比例限制库存,跑本阜默认比例就是1
网友评论