- 默认统计窗口 15 天 -> 30 天(后端 PICKING_BIN_DEFAULT_DAYS 与前端常量同步) - 可切换窗口补充近 60 天(7 / 15 / 30 / 60) - 等级阈值不变:爆款≥20 / 热卖 10-20 / 平销 3-10 / 滞销-1 1-3 / 滞销-2 (0,1) / 销售=0 - 单测断言同步更新;实测 30 天窗口:7091 个拣选库位,日销=销量÷30
89 lines
3.2 KiB
JavaScript
89 lines
3.2 KiB
JavaScript
/** 拣选库位动销分析 —— 表头与口径说明 */
|
||
|
||
export const PICKING_BIN_COLUMNS = [
|
||
{
|
||
key: 'warehouse',
|
||
label: '仓库',
|
||
tip: '聚水潭主仓(按 wms_co_id 单仓独立统计,不合并分仓)',
|
||
},
|
||
{
|
||
key: 'binName',
|
||
label: '仓位',
|
||
tip: '系统仓位编码(jst_packInventoryInfo.bin)',
|
||
},
|
||
{
|
||
key: 'binType',
|
||
label: '类型',
|
||
tip: '拣选 = 拣货位(bin_group 为空);存货 = 存货位(bin_group=存货)',
|
||
},
|
||
{
|
||
key: 'stockQty',
|
||
label: '库存数量',
|
||
tip: '该仓位当前库存件数(jst_packInventoryInfo 按 wms_co_id + 仓位 汇总 qty)',
|
||
},
|
||
{
|
||
key: 'skuCount',
|
||
label: 'SKU数',
|
||
tip: '该仓位内存放且有库存的 SKU 个数',
|
||
},
|
||
{
|
||
key: 'salesQty',
|
||
label: '销量',
|
||
tip: '近 N 天该仓位的分摊销量:Σ(仓位内各 SKU 销量 ÷ 该 SKU 占用的同类型仓位数)',
|
||
},
|
||
{
|
||
key: 'dailySales',
|
||
label: '日销',
|
||
tip: '分摊销量 ÷ 统计天数,动销等级按此值划分',
|
||
},
|
||
{
|
||
key: 'gradeKey',
|
||
label: '动销等级',
|
||
tip: '爆款≥20 / 热卖款 10~20 / 平销款 3~10 / 滞销款-1 1~3 / 滞销款-2 0~1 / 销售=0',
|
||
},
|
||
];
|
||
|
||
export const PICKING_BIN_WINDOW_OPTIONS = [
|
||
{ label: '近 7 天', value: 7 },
|
||
{ label: '近 15 天', value: 15 },
|
||
{ label: '近 30 天', value: 30 },
|
||
{ label: '近 60 天', value: 60 },
|
||
];
|
||
|
||
export const PICKING_BIN_DEFAULT_DAYS = 30;
|
||
|
||
export const PICKING_BIN_TYPE_OPTIONS = [
|
||
{ label: '拣选位', value: '拣选' },
|
||
{ label: '存货位', value: '存货' },
|
||
];
|
||
|
||
export const PICKING_BIN_DEFAULT_TYPES = ['拣选'];
|
||
|
||
/** 动销等级展示色(与后端 key 对应) */
|
||
export const PICKING_BIN_GRADE_COLORS = {
|
||
hot: 'red',
|
||
best: 'volcano',
|
||
normal: 'blue',
|
||
slow1: 'gold',
|
||
slow2: 'default',
|
||
zero: 'default',
|
||
};
|
||
|
||
export const PICKING_BIN_DESCRIPTION = [
|
||
'动销等级口径:按「单个仓位的日均销量(日销)」分档,日销 = 该仓位近 N 天销量 ÷ N。',
|
||
' 爆款:日销 ≥ 20;热卖款:10 ≤ 日销 < 20;平销款:3 ≤ 日销 < 10;',
|
||
' 滞销款-1:1 ≤ 日销 < 3;滞销款-2:0 < 日销 < 1;销售=0:窗口内该仓位所有 SKU 均无销量。',
|
||
'默认统计窗口为近 30 天,可切换 7 / 15 / 30 / 60 天。',
|
||
'',
|
||
'【销量为什么要分摊】',
|
||
' 同一 SKU 常同时占用多个同类型仓位(崔桥工厂仓实测 3290 个拣选 SKU 中 1431 个跨多个拣选位,最多 24 个)。',
|
||
' 若直接把 SKU 销量累加到每个仓位,销量会被放大数倍。',
|
||
' 因此按「SKU 销量在其占用的同类型仓位数之间平均分摊」计算库位销量,',
|
||
' 恒等式已实测校验:全部库位销量之和 = 有库位记录的那些 SKU 的销量之和(差异 0)。',
|
||
' 注意该合计小于全仓销量:jst_packInventoryInfo 只覆盖部分 SKU 的仓位数据,无仓位记录的 SKU 销量不计入任何库位。',
|
||
'',
|
||
'数据来源:库存取 rpt.jst_packInventoryInfo(按仓库 + 仓位汇总);',
|
||
'销量取 rpt.jst_Orders × rpt.jst_OrderItem(按 send_date,排除 Delete/Cancelled),与「每日进销存」发货口径一致。',
|
||
'仓位类型:bin_group 为空视为拣选位,bin_group=存货 为存货位。',
|
||
];
|