美文网首页
供需整理

供需整理

作者: 夜魅zlp | 来源:发表于2018-11-04 20:24 被阅读0次

    供需业务的理解

    • 系统补货: 解决每日微仓级别的补货

    • 人工干预: 干预系统推单量

      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

    相关文章

      网友评论

          本文标题:供需整理

          本文链接:https://www.haomeiwen.com/subject/vkhdxqtx.html