/** 拣选库位动销分析 —— 表头与口径说明(粒度:仓位 × 商品编码) */ export const PICKING_BIN_COLUMNS = [ { key: 'warehouse', label: '仓库', tip: '聚水潭主仓(按 wms_co_id 单仓独立统计,不合并分仓)', }, { key: 'binName', label: '仓位', tip: '系统仓位编码(jst_packInventoryInfo.bin);同一仓位有多个商品时会出现多行', }, { key: 'binType', label: '类型', tip: '统计范围固定为真实拣选仓位(pack_type=Bin 且 bin_group 为空);箱记录和存货位不纳入动销分析', }, { key: 'skuId', label: '商品编码', tip: '商品编码(jst_packInventoryInfo.sku_id),一行就是一个「仓位 × 商品」组合', }, { key: 'stockQty', label: '库存数量', tip: '该商品在这个仓位上的当前库存件数(同一仓位多行的库存相加 = 仓位库存)', }, { key: 'salesQty', label: '商品销量', tip: '近 N 天该商品的销量(整档,不按仓位分摊):含线上订单、组合装子件拆分、全民客户(B2B分销)渠道;同一商品占几个仓位,这几行显示的销量都一样,所以这一列不能直接按行求和', }, { 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; /** 动销等级展示色(与后端 key 对应) */ export const PICKING_BIN_GRADE_COLORS = { hot: 'red', best: 'volcano', normal: 'blue', slow1: 'gold', slow2: 'default', zero: 'default', }; export const PICKING_BIN_DESCRIPTION = [ '【统计范围】只统计真实拣选仓位(pack_type=Bin 且 bin_group 为空);箱记录(pack_type=Pack)和存货位不纳入动销分析。', '', '【粒度】一行 = 一个「仓位 × 商品编码」组合。一个仓位放了 N 个商品就显示 N 行,列表与导出一致。', ' 库存数量 = 该商品在这个仓位上的实际库存(同一仓位多行相加 = 仓位总库存)。', '', '【动销等级口径】按「商品日销」分档:商品日销 = 该商品近 N 天销量 ÷ N。', ' 爆款:日销 ≥ 20;热卖款:10 ≤ 日销 < 20;平销款:3 ≤ 日销 < 10;', ' 滞销款-1:1 ≤ 日销 < 3;滞销款-2:0 < 日销 < 1;销售=0:窗口内该商品无销量。', ' 等级判断的是商品本身的销售速度,与其摆放位置无关 —— 同一件商品占几个仓位,等级都相同。', '默认统计窗口为近 30 天,可切换 7 / 15 / 30 / 60 天。', '', '【为什么不用分摊销量来定等级】', ' 同一 SKU 常同时占用多个同类型仓位(崔桥工厂仓实测 3290 个拣选 SKU 中 1431 个跨多个拣选位,最多 24 个)。', ' 若把销量先摊到每个仓位再定等级,一件日销 100 的爆款放在 10 个仓位就会被算成日销 10 —— 判断的是「摆法」而不是商品。', '', '【商品销量为什么不能直接按行求和】', ' 商品销量取的是整档销量(不除以占用仓位数),同一件商品跨仓位会重复出现,所以该列相加无意义。', ' 需要按行求和请用导出文件里的「分摊销量」列:商品销量 ÷ 其占用的同类型仓位数。', ' 恒等式已实测校验(差异 0):全部行分摊销量之和 = 有库位记录的那些 SKU 的销量之和。', ' 注意它小于全仓销量:jst_packInventoryInfo 只覆盖部分 SKU 的仓位数据,无仓位记录的 SKU 销量不计入任何库位。', '', '数据来源:库存取 rpt.jst_packInventoryInfo(按仓库 + 仓位 + 商品汇总);', '销量按 send_date 窗口统计 4 个来源:① jst_Orders 普通商品行;② jst_Orders 组合装行(ZH-拼接编码)按组合装映射展开为子件;', '③ jst_qmcust_orderlist 全民客户(B2B分销)普通行(排除拆单父单 Split);④ qmcust 组合装行同样展开。', '统计范围:只取 pack_type=Bin 且 bin_group 为空的真实拣选仓位,箱记录(pack_type=Pack)和存货位(bin_group=存货)不参与统计。', ];