订货算法版本管理
算法改一版很快,出问题却是全部门店一起。这个功能把"写好的算法—历史版本—模拟验算—正式生效"串成一条闭环:在这里选定某个算法的某个版本,拿一批测试数据跑出订货结果,逐条比对是否符合预期,确认无误后再把它切成生效版本下发门店。改坏了也不怕,生效版本随时切回上一版。
功能路径:系统菜单 → 零售POS → 智能订货 → 订货算法版本管理
一、功能概述
| 能力 | 说明 |
|---|---|
| 多算法并行 | 不同门店、不同品类各挂各的算法,互不影响 |
| 版本留痕 | 每次保存生成新版本,记录修改人、修改日期与版本说明 |
| 生效可控 | 生效版本独立于最新版本,改完不切换就不会上线 |
| 批量验算 | 一次跑完整套测试数据,也可以只跑勾选的几条 |
| 结果留档 | 测试记录按时间归档,支持按周期与按算法档位筛选 |
二、界面布局说明
窗口三个页签,对应"选算法—跑测试—看结果"。
1)算法选择页签
左侧是算法列表,右侧上半部是版本记录,下半部是该版本的算法代码(只读,用于查看与比对,改代码请去 订货算法)。
| 字段 | 说明 |
|---|---|
| 算法编号 | 算法的唯一标识 |
| 算法名称 | 自定义名称,例如"产品每日销售预测订货法" |
| 默认算法 | 标识这条是系统内置的标准算法。内置算法的代码只读,不能手工改,也不能提交保存新版本;自建算法该列一律为否 |
| 生效版本 | 门店订货当下真正执行的版本号 |
| 最新版本 | 最近一次保存出来的版本号 |
版本记录列:当前算法版本、修改人员、修改日期、版本说明。选中某一行,右侧代码区即显示该版本内容,标题处显示"算法编号 + 算法名称 + 版本 N"。
顶部按钮是【退出】【切换生效版本】【帮助】三个:【切换生效版本】把版本记录里当前选中的版本设为生效版本;【退出】关闭窗口;【帮助】打开本功能的说明。三个页签各自带自己的一排按钮,互不共用。

2)数据测试页签
左侧是 模拟测试数据 里维护的测试数据列表,右侧是【最新测试结果】区。
| 选择项 | 作用 |
|---|---|
| 测试选中 | 只对多选中的测试数据行执行算法 |
| 测试全部 | 遍历全部测试数据逐条执行 |
这两个不是按钮,而是页签左上角一组二选一的圆点,默认落在【测试选中】;选哪个,就按哪个范围跑。
【最新测试结果】区把这一轮的输入参数(订货周期、星期几、日均销用量、最低库存、最高库存、最低/最高起订数量、参加促销、近七天各天订货量、退货率、估清时间、同期销售数、安全系数、节假日等)和结果列并排显示,结果列是 数据编号、数据用途、测试结果、通过标识、测试时间、测试人员;带算法标识的归档列(算法编号、算法名称、算法版本、订货结果,外加全部输入参数)在【测试结果】页签看。每次执行【测试全部】前,上一轮的最新测试结果会被清空重跑,只保留本轮结果;【测试选中】不清空,逐条追加。历史结果去【测试结果】页签查。

3)测试结果页签
历史测试记录的归档区,字段与测试数据、算法版本一一对应,便于把某一轮订货结果与当时的输入参数放在一起复盘。
筛选与检索:
| 控件 | 说明 |
|---|---|
| 一月内测试 / 三月内测试 / 半年内测试 / 一年内测试 / 全部测试 | 按测试时间收窄记录范围(分别对应近 30/91/182/365 天与不限),五挡互斥 |
| 查当前算法 / 查全部算法 | 只看当前选中算法,或看所有算法的测试记录,两项互斥 |
| 搜索框 | 表格上方常驻一行搜索框,按 数据编号、算法名称、数据用途 等关键字定位 |
| 列头筛选行 | 在标题下方各列的筛选格里直接输入条件;点列头还能排序 |

三、业务操作步骤
步骤 1:打开功能并选中算法
系统菜单 → 零售POS → 智能订货 → 【订货算法版本管理】,在算法选择页签的列表中单击目标算法。
步骤 2:挑选要验证的版本
在右侧版本记录里点选版本号(例如版本 3)。代码区显示这个版本的逻辑,先通读一遍确认是自己刚提交的那版。
步骤 3:准备测试数据
切到【数据测试】页签,左侧列出全部测试数据。数据不足时先去 模拟测试数据 补,覆盖日常、促销、节假日、高退货率、提前估清、起订边界几类场景。
步骤 4:执行测试
- 需要快速验证个别场景:在测试数据列表用 Ctrl 或 Shift 多选行,把左上角选到【测试选中】;
- 版本上线前的完整验证:选到【测试全部】,让每一条用例都跑一遍;
- 列表里没有任何测试数据时,系统提示"当前不存在可测试的数据资料!",此时先去维护测试数据;
- 跑完后右侧【最新测试结果】区逐条显示订货结果。
步骤 5:逐条比对预期
把算出的订货数量和门店经验值比。判断标准不是"完全等于人工订货",而是差异方向是否合理:旺季偏高、滞销偏低、促销上浮、超退货率下调。某几条明显异常时,记下数据编号,回 模拟测试数据 单独调这几个场景再跑。
步骤 6:切换生效版本
- 回到【算法选择】页签(不在该页签时点【切换生效版本】只会先跳回本页签,不会执行切换);
- 在版本记录里选中通过测试的那个版本;
- 点【切换生效版本】,系统弹出是否确认的询问框,内容带上算法名称以及生效版本从第几版调整为第几版;
- 确认后生效版本列更新,门店订货随即按这一版计算;
- 如果选中的版本已经是当前生效版本,系统提示"当前版本就是生效版本。",不做改动。
步骤 7:留档与复盘
到【测试结果】页签按时间挡位查看本轮记录,配合"查当前算法"只看这一套算法的结果分布,作为版本评审与后续迭代的依据。
四、版本机制要点
- 最新版本不等于生效版本。 在 订货算法 里点【提交保存】推高的是最新版本,同时会问一句"是否采纳当前最新版本为生效版本":答否,新版本就只躺在版本记录里;只有一种情况例外——这条算法的生效版本还是 0(从没生效过),保存时会自动把新版本设为生效版本;
- 切换是即时生效的。 确认后门店下一次取数就按新版本算,所以务必在测试通过、且避开门店集中下单时段再切;
- 回退同样只需一次切换。 新版本上线后发现异常,选中上一个稳定版本点【切换生效版本】即可退回,不需要改代码;
- 一次只针对一行算法。 切换生效版本作用在当前选中的算法上,多套算法要分别确认;
- 默认算法是内置标准算法,不是缺省值。 「默认算法」列为是的这些算法由系统预置,代码区只读、提交保存会被拒(提示"默认标准算法不允许手工修改!"),它们没有可切换的新版本;要在它们的基础上改逻辑,就新建一条自己的算法把代码抄过去改。
五、典型使用场景
场景 1:新算法灰度上线
新写的算法先不接门店,在本功能跑一轮【测试全部】,与现网版本的测试结果对比;通过后只在试点物料上启用,观察一周退损与缺货,再逐步扩大范围。
场景 2:经验值调参
促销上浮系数从 1.2 调到 1.15。保存成新版本后,专门勾选促销类的几条测试数据、把范围选到【测试选中】,比对两次订货数量的差值,确认调整幅度符合预期再切生效。
场景 3:节前集中验证
中秋、春节前的销量结构与平日差别大,节日修正规则只在特定参数组合下才触发。节前用 模拟测试数据 配一批带节日标识与去年同期销量的用例做全量测试,确认修正生效。
场景 4:出问题时定位
门店反映订货量突变。先到【测试结果】页签按"一月内测试"看近期版本的结果分布,再比对算法选择页签里的版本说明,定位是哪一次改动引入的,必要时切回旧版本止血。
六、权限与前置条件
- 生效版本直接决定门店下单量,切换权限建议只开放给系统管理员与算法维护人员;
- 算法需已在 订货算法 中编写并通过语法检查;
- 测试数据需先在 模拟测试数据 中维护,且参数填全(缺同期销量、估清时间时,对应微调分支等于没测);
- 算法要真正影响门店订货,还必须在 订货规则 中绑定到对应类别或物料;
- 测试是纯计算,不写业务单据、不产生订货数据,可以放心多次执行。
七、常见问题
1. 测试全部跑完,最新测试结果是空的
- 原因:当前算法版本代码没有把结果写回订货数量,或数据集中不存在可测试的测试数据;
- 处理:先看算法是否以
[订货数量]作为输出,再回 模拟测试数据 确认有数据;有条件时单独跑一条结构最简单的用例缩小范围。
2. 点了【切换生效版本】没反应
- 原因:当前停在数据测试或测试结果页签,第一次点击只是把窗口切回算法选择页签;也可能选中的版本本来就是生效版本;
- 处理:回到算法选择页签,先在版本记录里点中目标版本,再点按钮;出现"当前版本就是生效版本。"说明无需切换。
3. 测试结果与手算不符
- 原因:多为参数缺失或格式不对——星期几不是 1–7、估清时间不是 HH:MM、退货率写成百分数;也可能是多条微调规则按书写顺序叠加,与预期的一次性调整不同;
- 处理:把该用例的输入逐项核对一遍,然后拆成只命中单一规则的用例分步验证,定位到具体分支再改算法。
4. 切了新版本,门店订货还是老数量
- 原因:门店订货取的是绑定物料的算法,如果 订货规则 里绑定的是另一套算法,切换本套的生效版本不会有任何影响;
- 处理:到 订货规则 中确认该物料 / 该类别实际绑定的算法编号,再到对应算法上切换生效版本。
5. 测试记录太多,找不到那一轮
- 原因:历史结果按月累积,默认视图只显示部分区间;
- 处理:先用时间挡位收窄到当天或近一周,再勾选"查当前算法"排除其他算法的记录,最后在列头筛选行的"数据编号"格子里输入编号定位。
附:本文档变更记录
| 日期 | 变更 |
|---|---|
| 2026-11-09 | 初稿 |
| 2026-11-10 | 按当前版本订正:时间挡位对应天数;「默认算法」是内置标准算法而非缺省挂载;补上提交保存时的生效版本采纳规则与结果列归属 |
| 2026-11-10 | 按运行中的客户端界面复核:顶部确有【帮助】;【测试选中】/【测试全部】是二选一圆点而非按钮;最新测试结果列改为 数据编号/数据用途/测试结果/通过标识/测试时间/测试人员;测试结果页签补回搜索框;三个页签各配一张实测截图 |
