任务描述

队列数据验证

调整可售数验证:


需求描述

原型

https://aiga2x.axshare.com


交互参考-智能刊登系统-策略管理-自动补货策略:http://imp.zhcxkj.com/#/strategic-management/replenishment

账号找“瀚泽”开通

一、业务模型(见附件)

二、方案流程(见附件)

三、基础概念定义&关系

对象定义

一、作用对象:JDWalmart(后称JDW)的渠道SKU

二、操作对象:可售数

三、条件对象:可售数、可用库存

JDW-Listing&渠道SKU的关系

1、原逻辑:同步的LISTING与ERP的LISTING对应,用“渠道SKU、平台ID(平台的listing流水号)”

2、现状:JDW是手动刊登,LISTING没记录在ERP,没法用LISTING的流水号

3、“全量商品查询”API,作为下载Listing的接口。出参“sku|商品sku”,就是JD_SKU=渠道SKU,说明如下

①手动刊登流程如下。由此可知“JD_SKU=渠道SKU”

4、数据源:“产品库中心-渠道SKU关联导入”页面的数据表

策略优先级&执行策略

一、同一渠道SKU,存在于多条策略中,仅以优先级最高的1条策略,作为该SKU的执行策略(即,该SKU以此策略执行)。

(一)执行策略的定义

1、新建、修改策略后,首次执行策略时,遍历所有“启用”策略

2、生成所有策略需执行的渠道SKU列表

3、取交集、形成“渠道SKU交集列表”,对渠道SKU进行优先级排序

①首次排序:各个策略的参数“应用对象”,以“渠道SKU>选择来源>所有来源渠道”的规则排序。取优先级最高的1个or多个策略

②二次排序:同优先级的策略,取“修改时间”最近的1个策略

4、将“3”确定的策略,标记为此渠道SKU的执行策略

PS、无交集,则标记渠道SKU所在策略,为其执行策略

 

二、1条渠道SKU,只会有1个执行策略、只会执行策略中的1条规则

 

三、执行防超卖后,不会执行自动补货

所有仓库⊇可发货仓⊇有LISTING_SKU的仓库


店铺,可设置“可发货仓” 

商品所在地=发货地(JDWalmart没有)

仓库所在地,在仓库信息中已经cover、发货地、发货到达地,与选择仓库的关系?在什么地方的商品(Listing绑定商品所在地),可以用什么仓库发,只能用这些库存

商品所在地:说明商品真实所在的地区。不能货在中国填美国,虚假信息违反平台规定 

策略校验时,可用库存=可发货仓的动态库存之和(汇总)

订单发货时,可用库存=先用默认仓、再用分仓策略选中仓库(线性)

四、关键参数&API:本方案

一、后台:不做其他数据的映射

(一)参数:“ERP-系统SKU”做对象识别

(二)参数:“ERP-动态库存”做内容识别-判断“命中的策略”

(三)对接:“JDW-改库存API”。用于更改“可售数”。【调用频次暂无限制】 

(四)对接:“JDW-查询商品全量 API”。用于获取“实时在线可售数、价格数据”【调用频次暂无限制】

(五)对接:“JDW-批量查询店铺SKU库存信息API”。用于获取“改库存API”的入参“storeCode”

(六)对接:“ERP-查询动态库存接口”。获取参数“系统SKU、库存数”,以计算“可用库存”


二、前台:暂时放置于“智能刊登-JDWalmart”

五、关键参数:平衡库存策略表

来源渠道

系统SKU

渠道SKU

父级SKU:ERP“parent_ID”,类似于行业的“SPU_ID”

平台产品编号:LISTING在平台的流水号,类似于我们的LISTING 唯一ID

平台子产品编号:变体的LISTING,在平台的流水号,类似于我们的LISTING 唯一ID

策略ID

策略内容:A、B、C、D、E值

创建人ID

创建人名

创建时间

最近更新人ID

最近更新人名

最近更新时间 

六、方案概述

一、本需求作为转JAVA的第一个需求,考虑到“JAVA数据结构、表结构、参数定义重要性”,为避免影响其严谨性、正确性,且考虑到需求的紧急程度

(一)实现原则

1、参数:仅获取基本的“对象参数、内容参数、条件参数”,不做其他数据的映射

2、逻辑&行为:仅做基本的业务逻辑与业务行为

 

(二)方案概述:需实现的业务(详见业务流程图)

1、防卖超

①实现方式:以策略为出发点

1)30分钟/次:以“策略-来源渠道、publish=PUBLISHED、发生变动的数据(需要一个变动数据的接口)”为条件,查listing表,获取策略命中的渠道SKU列表。对列表中所有渠道SKU,进行后续操作

2)以渠道SKU,查系统SKU、店铺ID

3)以渠道SKU的店铺ID,查店铺可发货仓库ID

4)以渠道SKU的系统SKU、仓库ID,查库存冗余表,获取该渠道SKU的所有可发货仓库的发生变动(需要一个变动数据的接口)的动态库存

5)计算渠道SKU的可用库存:=所有可用仓的“动态库存”之和

6)校验:可用库存<C时,调整可售数=C/自定义策略值D(以“JDW-改库存API”)

 

2、自动补货

①实现方式

1)30分钟/次:以“策略-来源渠道、publish=PUBLISHED发生变动的数据(需要一个变动数据的接口)”为条件,查listing表,获取策略命中的渠道SKU、可售数

2)校验:可售数<A时,调整可售数=自定义策略值B。(以“JDW-改库存API”)

 

3、实时更新可售数为可用库存

①需求背景:为了让最新的可用库存与可售数同步,减少超卖的概率

②当前解决方案:运营导出“仓库库存、匹配SKU、批量导入、更新库存”,人工工作量大

③优化解决方案:实现方式

1)30分钟/次:以“策略-来源渠道、publish=PUBLISHED发生变动的数据(需要一个变动数据的接口)”为条件,查listing表,获取策略命中的渠道SKU列表、可售数

2)以渠道SKU,查系统SKU、店铺ID

3)以渠道SKU的店铺ID,查店铺可发货仓库ID

4)以渠道SKU的系统SKU、仓库ID,查库存冗余表,获取该渠道SKU的所有可发货仓库的发生变动(需要一个变动数据的接口)的动态库存

5)计算渠道SKU的可用库存:=所有可用仓的“动态库存”之和

6)判断:可售数=可用库存。是则不操作、否则进入“7)”

7)调整可售数=可用库存。(以“JDW-改库存API”)

 

4、超过7未产生执行队列数据,将自动禁用策略。

七、JDW-发货模板:店铺&可发货仓的配置表。第一个版本,上线前由运营提供、开发维护进配置表

八、策略执行监控:上线前进行

九、ERP等各处,JOYBUY更名为JDWalmart

验收标准
暂无
附件
历史记录  
  1. 2022-10-31 15:08:46, 由 闫峰 创建。
  2. 2022-10-31 16:45:23, 由 闫峰 启动。
    修改了 实际开始,旧值为 "0000-00-00 00:00:00",新值为 "2022-10-28 10:00"。
    修改了 预计剩余,旧值为 "0",新值为 "157"。
    修改了 任务状态,旧值为 "wait",新值为 "doing"。
  3. 2022-10-31 16:45:45, 由 闫峰 记录工时,消耗 4 小时。
    修改了 总计消耗,旧值为 "0",新值为 "4"。
    修改了 预计剩余,旧值为 "157",新值为 "153"。
    第一阶段测试,页面测试
  4. 2022-10-31 16:46:10, 由 闫峰 记录工时,消耗 2 小时。
    修改了 总计消耗,旧值为 "4",新值为 "6"。
    修改了 预计剩余,旧值为 "153",新值为 "151"。
    回归修复bug
  5. 2022-10-31 16:46:35, 由 闫峰 记录工时,消耗 2 小时。
    修改了 总计消耗,旧值为 "6",新值为 "8"。
    修改了 预计剩余,旧值为 "151",新值为 "149"。
    回归修复bug
  6. 2022-10-31 16:47:02, 由 闫峰 编辑。
    修改了 任务名称,区别为:
    001- 测试执行
    001+ 12298 JAVA中台-综合平台运营系统-刊登系统-JDWalmart平台:平衡库存功能-防超卖、自动补货策略--测试执行
    001- 测试执行
    001+ 12298 JAVA中台-综合平台运营系统-刊登系统-JDWalmart平台:平衡库存功能-防超卖、自动补货策略--测试执行
  7. 2022-10-31 22:07:54, 由 闫峰 确认需求变动,最新版本为#16。
  8. 2022-11-01 11:30:29, 由 闫峰 添加备注。

    测试用例地址:

    https://alidocs.dingtalk.com/i/nodes/jQPRqwxd3NLWjv50Q1AAWYK6lrGM4795?iframeQuery=mode%3D2%26sheetId%3Dsheet1

  9. 2022-11-04 15:26:07, 由 闫峰 编辑。
    修改了 任务描述,区别为:
    001-
    001+ 队列数据验证
    002+
    003+ 调整可售数验证:
    004+
    005+
    001-
    001+ <p>队列数据验证</p>
    002+ <p><img src="{222716.png}" alt="" /></p>
    003+ <p>调整可售数验证:</p>
    004+ <p><img src="{222717.png}" alt="" /></p>
    005+ <p><br /></p>
  10. 2022-11-04 15:28:51, 由 闫峰 编辑。
    修改了 任务描述,区别为:
    002- <img src="/zentao/file-read-222716.png" alt="" />
    002+
    004- <img src="/zentao/file-read-222717.png" alt="" />
    004+
    002- <p><img src="/zentao/file-read-222716.png" alt="" /></p>
    002+ <p><img src="{222716.png}" alt="" /></p>
    004- <p><img src="/zentao/file-read-222717.png" alt="" /></p>
    004+ <p><img src="{222717.png}" alt="" /></p>
    上一次任务状态非成功,刊登应用服务自动退出
  11. 2022-11-04 15:29:27, 由 闫峰 编辑。
    修改了 任务描述,区别为:
    002- <img src="/zentao/file-read-222716.png" alt="" />
    002+
    004- <img src="/zentao/file-read-222717.png" alt="" />
    004+
    002- <p><img src="/zentao/file-read-222716.png" alt="" /></p>
    002+ <p><img src="{222716.png}" alt="" /></p>
    004- <p><img src="/zentao/file-read-222717.png" alt="" /></p>
    004+ <p><img src="{222717.png}" alt="" /></p>
    拉取的数据,过滤,只剩下刊登的数据
  12. 2022-11-04 15:31:00, 由 闫峰 编辑。
    修改了 任务描述,区别为:
    002- <img src="/zentao/file-read-222716.png" alt="" />
    002+
    004- <img src="/zentao/file-read-222717.png" alt="" />
    004+
    002- <p><img src="/zentao/file-read-222716.png" alt="" /></p>
    002+ <p><img src="{222716.png}" alt="" /></p>
    004- <p><img src="/zentao/file-read-222717.png" alt="" /></p>
    004+ <p><img src="{222717.png}" alt="" /></p>
    上传了附件 zhcxkj-java-test_zhcxkj-application-publish-7d7c47db79-ngp4k_zhcxkj-application-publish.log
    附件  :  分页拉取jdwalmart-listing消息;消费jdw分页数据列表
  13. 2022-11-05 01:15:22, 由 闫峰 记录工时,消耗 6 小时。
    修改了 总计消耗,旧值为 "8",新值为 "14"。
    修改了 预计剩余,旧值为 "149",新值为 "143"。
  14. 2022-11-05 01:15:41, 由 闫峰 记录工时,消耗 6 小时。
    修改了 总计消耗,旧值为 "14",新值为 "20"。
    修改了 预计剩余,旧值为 "143",新值为 "137"。
  15. 2022-11-05 01:15:55, 由 闫峰 记录工时,消耗 7 小时。
    修改了 总计消耗,旧值为 "20",新值为 "27"。
    修改了 预计剩余,旧值为 "137",新值为 "130"。
  16. 2022-11-05 01:16:03, 由 闫峰 记录工时,消耗 7 小时。
    修改了 总计消耗,旧值为 "27",新值为 "34"。
    修改了 预计剩余,旧值为 "130",新值为 "123"。
  17. 2022-11-05 01:16:39, 由 闫峰 记录工时,消耗 4 小时。
    修改了 总计消耗,旧值为 "34",新值为 "38"。
  18. 2022-11-07 10:00:55, 由 闫峰 添加备注。

    测试产品状态条件  勾选一个

    策略设置

    策略msku

    实际:

  19. 2022-11-07 10:04:23, 由 闫峰 添加备注。

    测试产品状态 勾选多个

    策略设置

    得知:

    只有12114301符合

    实际:

  20. 2022-11-07 17:35:56, 由 闫峰 添加备注。

    状态描述验证

    {
    "success": true,
    "code": 200,
    "model": [
    {
    "msg": "成功",
    "code": "200",
    "success": true,
    "uniq": "968891967_-1",
    "operateStockParam": {
    "num": 0,
    "uniq": "968891967_-1",
    "dcCode": 10000,
    "skuId": 968891967,
    "storeCode": 2456884
    }
    },
    {
    "msg": "成功",
    "code": "200",
    "success": true,
    "uniq": "968891967_-1",
    "operateStockParam": {
    "num": 4,
    "uniq": "968891967_-1",
    "dcCode": 10000,
    "skuId": 968891967,
    "storeCode": -1
    }
    },
    {
    "msg": "成功",
    "code": "200",
    "success": true,
    "uniq": "719548584_-1",
    "operateStockParam": {
    "num": 119,
    "uniq": "719548584_-1",
    "dcCode": 10000,
    "skuId": 719548584,
    "storeCode": -1
    }
    }
    ],
    "traceId": "33871439562618030.76.926"
    }


  21. 2022-11-07 17:37:15, 由 闫峰 添加备注。

    执行失败场景

    {
    "success": true,
    "code": 200,
    "model": [
    {
    "msg": "无效仓",
    "code": "103",
    "success": false,
    "uniq": "968891967_-1",
    "operateStockParam": {
    "num": 0,
    "uniq": "968891967_-1",
    "dcCode": 10000,
    "skuId": 968891967,
    "storeCode": 2456884
    }
    },
    {
    "msg": "无效库存记录",
    "code": "104",
    "success": false,
    "uniq": "968891967_-1",
    "operateStockParam": {
    "num": 4,
    "uniq": "968891967_-1",
    "dcCode": 10000,
    "skuId": 968891967,
    "storeCode": -1
    }
    },
    {
    "msg": "修改后可售库存小于0",
    "code": "105",
    "success": false,
    "uniq": "719548584_-1",
    "operateStockParam": {
    "num": 119,
    "uniq": "719548584_-1",
    "dcCode": 10000,
    "skuId": 719548584,
    "storeCode": -1
    }
    }
    ],
    "traceId": "33871439562618030.76.926"
    }


  22. 2022-11-08 09:09:26, 由 闫峰 记录工时,消耗 5 小时。
    修改了 总计消耗,旧值为 "38",新值为 "43"。
    修改了 预计剩余,旧值为 "123",新值为 "118"。
    测试完成已发布上线
  23. 2022-11-11 13:37:10, 由 闫峰 记录工时,消耗 3 小时。
    修改了 总计消耗,旧值为 "43",新值为 "46"。
    修改了 预计剩余,旧值为 "118",新值为 "115"。
    上线验证,发现自动刊登定时服务逻辑有点问题,后续配合验证
  24. 2022-11-11 14:18:02, 由 闫峰 记录工时,消耗 2 小时。
    修改了 总计消耗,旧值为 "46",新值为 "48"。
    修改了 预计剩余,旧值为 "115",新值为 "113"。
    测试自动拉取JD商品服务的逻辑
    发布线上,配合验证生产策略的逻辑
  25. 2022-11-15 16:21:37, 由 闫峰 记录工时,消耗 2 小时。
    修改了 总计消耗,旧值为 "48",新值为 "50"。
    修改了 预计剩余,旧值为 "113",新值为 "111"。
    生产环境跑不出队里数据,配合在测试环境复现。
    实际情况:测试环境是可以跑出数据,生产环境不可以,在排查中
  26. 2022-11-16 16:55:12, 由 闫峰 记录工时,消耗 3 小时。
    修改了 总计消耗,旧值为 "50",新值为 "53"。
    修改了 预计剩余,旧值为 "111",新值为 "0"。
    修改了 任务状态,旧值为 "doing",新值为 "done"。
    修改了 由谁完成,旧值为 "",新值为 "yanfeng"。
    修改了 实际完成,旧值为 "",新值为 "2022-11-16 16:55:12"。
    生产环境发现问题,排查完成
  27. 2022-11-16 16:56:30, 由 闫峰 关闭。
    修改了 任务状态,旧值为 "done",新值为 "closed"。
    修改了 指派给 ,旧值为 "yanfeng",新值为 "closed"。
    修改了 由谁关闭,旧值为 "",新值为 "yanfeng"。
    修改了 关闭时间,旧值为 "0000-00-00 00:00:00",新值为 "2022-11-16 16:56:30"。
    修改了 关闭原因,旧值为 "",新值为 "done"。
所属迭代 JDWalmart平衡库存
所属模块 /
相关需求 综合平台-平衡库存-JDW1.0:防超卖、自动补货策略
指派给 Closed 于 2022-11-16 16:56:30
任务类型 测试
任务标签 初始
开发组 百货开发组
任务状态 已关闭
进度 100%
优先级 P2
关键词
抄送给
由谁创建 闫峰 于 2022-10-31 15:08:46
由谁完成 闫峰 于 2022-11-16 16:55:12
由谁取消 暂无
由谁关闭 闫峰 于 2022-11-16 16:56:30
关闭原因 已完成
最后编辑 闫峰 于 2022-11-16 16:56:30
团队 最初预计 总计消耗 预计剩余
工时信息
最初预计 0工时
总计消耗 53工时
预计剩余 0工时
预计开始 0000-00-00
实际开始 2022-10-28
截止日期 0000-00-00