任务描述
暂无
需求描述
一、背景
经过人工测试,每两周按成功率,出单率等权重去调整各个三级类目提报上限会提升开发成功率;故需要系统化自动调整提报上限。
业务价值:提升智能选品开发成功率,预估100000.
验收人:李青


二、需求说明

2.1、新增 智能选品三级ID提报上限 自动测算功能
1、流程:取终审通过的智能选品SKU(终审时间按当前时间往前推15天,取近半年的智能选品SKU)--》平台类目过滤--》计算调整三级类目提报上限(按权重因子计算各个三级类目提报上限)--》导出提报上限(选品提报策略--自动提报设置)

2、三级类目 影响因子字段:
开发成功率:取近6个月智能选品的三级类目,算近6个月智能选品提报的的开发成功率;公式:【开发成功率= 开发成功数/(开发成功数+需求失败数)】。
刊登覆盖次数:取近6个月终审通过智选选品SKU的三级类目,算对应类目下的SKU近30天的刊登平均次数;公式:【平均次数=SKU在线listing数/SKU数量】
30天出单率:SKU足30天出单率
90天出单率:SKU足90天出单率
90天出单数量增长率:(90天出单数量-30天出单数量)/30天出单数量
90天出单增长率:(终审90天出单率-终审30天出单率)/终审30天出单率
90天平均出单利润额:90天订单利润/90天出单数量


3、计算因子:
以上字段需要进行数据归一处理算权重:X=(X-X min)/(X max -X min);得到归一字段: 开发成功率(归一),刊登覆盖次数(归一),30天出单率(归一) ,90天出单率(归一),
90天出单增长率(归一),90天出单数量增长率(归一),90天平均出单利润额(归一)。

-- 【归一总数】=所有三级类目归一字段总和
-- 【单个三级类目提报比重】=(【开发成功率(归一)*0.2】+【刊登覆盖次数(归一)*0.05】 + 【30天出单率(归一)*0.4】+【90天出单率(归一)*0.1】+【90天出单增长率(归一)*0.1】+【90天出单数量增长率(归一)*0.1】+【90天平均出单利润额(归一)*0.05】)
-- 【所有三级类目提报比重】=所有单个三级类目提报比重相加。
-- 【提报总数】:提报类型上限设置--总数


4、自动调整三级类目提报上限逻辑:
1)单个三级类目调整数量=【单个三级类目提报比重】/【所有三级类目提报比重】*【提报总数】重新算一遍各个三级类目上限。
2)所有计算的值,四舍五入。



策略文档
https://alidocs.dingtalk.com/spreadsheetv2/6ZBBjGZVVhOK24Aj/edit?dentryKey=6ZBBjGZVVhOK24Aj&dd_user_keyboard=false&dd_progress=true&dt_editor_toolbar=true&sheet_range=st-39f1c429-35279_0_0_1_1

2.2、新增【提报上限自动测算】按钮,用于触发测算智能选品提报上限。
操作位置:自动提报设置--三级类目提报上限自动测算
逻辑:点击【提报上限自动测算】按钮,促发【2.1、新增 智能选品三级ID提报上限 自动测算功能】,并在导出队列生成一条下载任务。
输出字段:三级类目ID,二级类目ID,一级类目ID,三级类目名称,二级类目名称,一级类目名称,刊登覆盖次数(归一),30天出单率(归一),90天出单率(归一),90天出单增长率(归一),90天出单数量增长率(归一),90天平均出单利润额(归一),比重,调整数量。

导出任务名称:提报上限自动测算_数字编号



三、验收标准

需求上线后,测算数据正常智能选品提报流程正常。







验收标准
需求上线后,测算数据正常智能选品提报流程正常。
历史记录  
  1. 2024-07-15 14:08:07, 由 罗友军 创建。
  2. 2024-07-20 10:11:55, 由 张家添 添加备注。

    1、新增导出类型“提报上限自动测算”,72。

    2、MongoDB增加zhcxkj_autochoose》Erp_ProductDevelop_Sku,提报+周期+sku维度存储记录

            UniqueId=唯一键,ApplicationNumber-CycleTime-Sku
            DevelopId=销售提报id
            ApplicationNumber=销售提报编号
            CycleTime=周期,周度
            Sku=Sku
            ProductName=产品名称
            AddTime=入库时间
            UpdateTime=修改时间
            CurrentStatus=状态,Completed-开发成功,开发失败(退回+驳回待编辑+作废+开发失败)
            CurrentStatusDescription=状态描述
            DevelopStatu=开发状态,1-成功,2-失败
            BrowsePathId=类目id
            BrowsePathName=类目名称
            FirstId { get; set; }
            FirstName { get; set; }
            SecondId { get; set; }
            SecondName { get; set; }
            ThreeId { get; set; }
            ThreeName { get; set; }
            Td_OrderNum=30天出单数量
            Td_SaleNum=30天销量
            Td_Incomes=30天销售额
            Td_Profit=30天利润
            Nd_OrderNum=90天出单数量
            Nd_SaleNum=90天销量
            Nd_Incomes=90天销售额
            Nd_Profit=90天利润
            CheckTime=sku终审时间
            ListingNum=在线listing数量

    3、数据源

    3.1、销售提报:RB_Product_Development

    SELECT top 100 * FROM [dbo].[RB_Product_Development](nolock) WHERE [PersonType] = N'3' AND [AddTime] >= N'2023-12-18' AND [AddTime] < N'2024-06-19' 

    3.2、销售提报关联的sku:RB_ProductDevelopment_Related_Product

    SELECT * FROM [dbo].[RB_ProductDevelopment_Related_Product] WHERE [ProductDevelopmentId] = N'427547'
    3.3、订单数、销量:RB_Report_OrderSettlement
    select  a.SKU
    ,SUM(case WHEN DATEDIFF(day, a.PayTime, d.CheckTime) <= 30 THEN a.Profits ELSE 0 END) as TD_Profits
    ,SUM(case WHEN DATEDIFF(day, a.PayTime, d.CheckTime) <= 30 THEN 1 ELSE 0 END) as TD_OrderNum
    ,SUM(case WHEN DATEDIFF(day, a.PayTime, d.CheckTime) <= 30 THEN a.Incomes ELSE 0 END) as TD_Incomes
    ,SUM(case WHEN DATEDIFF(day, a.PayTime, d.CheckTime) <= 30 THEN a.ProductNum + a.ProdutNumUpdate ELSE 0 END) as TD_SaleNum
    ,SUM(case WHEN DATEDIFF(day, a.PayTime, d.CheckTime) <= 90 THEN a.Profits ELSE 0 END) as ND_Profits
    ,SUM(case WHEN DATEDIFF(day, a.PayTime, d.CheckTime) <= 90 THEN 1 ELSE 0 END) as ND_OrderNum
    ,SUM(case WHEN DATEDIFF(day, a.PayTime, d.CheckTime) <= 90 THEN a.Incomes ELSE 0 END) as ND_Incomes
    ,SUM(case WHEN DATEDIFF(day, a.PayTime, d.CheckTime) <= 90 THEN a.ProductNum + a.ProdutNumUpdate ELSE 0 END) as ND_SaleNum
    from rb_report_ordersettlement (nolock) a
    inner join (select '2030919' as Id union all
    select '8172457' as Id union all
    select '11386855' as Id union all
    select '15462319' as Id union all
    select '18669884' as Id union all
    select '11520651' as Id union all
    select '18729656' as Id union all
    select '17222240' as Id) b on a.SKU=b.Id
    left join rb_warehouse (nolock) c on a.CustomerID=c.CustomerID AND a.WareHouseID = c.ID
    left join rb_product_admin (nolock) d on a.CustomerID=d.CustomerID and a.SKU=d.SKU
    left join rb_businesstable_deletedhistory (nolock) e on a.CustomerID = e.CustomerID and a.ID = e.BusinessDeletedId
    where a.CustomerID=1 and a.OrderCode != '' and c.WareHouseType = 1 and e.ID IS NULL
    group by a.SKU 

    4、自测数据

    5、执行情况,CycleTime控制执行的周期
    db.getCollection("HotColdDictionary").find({"TypeName" : "Erp_ProductDevelop_Sku:RunServiceAsync"}).limit(100).skip(0)

  3. 2024-07-20 17:13:52, 由 张家添 完成。
    修改了 总计消耗,旧值为 "0",新值为 "26"。
    修改了 指派给 ,旧值为 "zhangjiatian",新值为 "luoyoujun"。
    修改了 实际完成,旧值为 "",新值为 "2024-07-20 16:26:35"。
    修改了 任务状态,旧值为 "wait",新值为 "done"。
    修改了 实际开始,旧值为 "0000-00-00 00:00:00",新值为 "2024-07-20 17:13:52"。
    修改了 预计剩余,旧值为 "26",新值为 "0"。
    修改了 由谁完成,旧值为 "",新值为 "zhangjiatian"。
    1、项目:Zhcxkj.AutoChoose.Worker,Zhcxkj.AutoChoose.Web,Zhcxkj.Erp.Api

    2、核心代码

    3、导出的数据

    4、调整数量会多一点点,取的提报上限总数+200,不然提报的总数就达不到最大值

  4. 2024-07-30 17:47:01, 由 梁秀丽 编辑。
    修改了 最初预计,旧值为 "26",新值为 "23"。
    修改了 任务描述,区别为:
    001-
    001+
    001- <br />
    001+
所属迭代 智能中心-智能选品迭代
所属模块 智能中心-需求池  战略独立项目   智能选品
相关需求 新增 智能选品三级类目提报上限 自动测算功能
指派给 罗友军 于 2024-07-20 17:13:52
任务类型 后端
任务标签 初始
开发组
任务状态 已完成
进度 100%
优先级 P0
关键词
抄送给
由谁创建 罗友军 于 2024-07-15 14:08:07
由谁完成 张家添 于 2024-07-20 16:26:35
由谁取消 暂无
由谁关闭 暂无
关闭原因 暂无
最后编辑 梁秀丽 于 2024-07-30 17:47:01
团队 最初预计 总计消耗 预计剩余
工时信息
最初预计 23工时
总计消耗 26工时
预计剩余 0工时
预计开始 2024-07-15
实际开始 2024-07-20
截止日期 2024-07-31