Files
cmautobuy/docs/task/273-档口货号括号与前导零匹配.md
T
2026-08-18 17:21:21 +08:00

2.6 KiB

273 Admin:修复档口货号中文括号与前导零匹配

  • 类型:缺陷
  • 父级大工单:#14
  • 所属 MVP / 版本:#224
  • 状态:已完成,待用户验收
  • 日期:2026-08-18
  • Gitea 工单:#273

背景与目标

18 号档口入库码订单 260814A21AAB1G 有一条规格可以唯一命中顺运宝商品,但档口 将客大码网批#067 无法匹配候选 SKU 067【将客大码网批】... 和 variationSku 汽配-将客大码网批#67...。目标是在不放宽唯一性和远端写入门禁的前提下兼容中文 括号边界及纯数字货号前导零。

最终方案

  • 档口字段按最后一个 # 拆成名称和货号,避免名称自身含 # 时截错。
  • 连续字母或数字作为货号候选,中文括号、#、横线和空格等标点均作为边界;因此 067【档口】 能识别为独立货号,又不会从 PDD256437 中截取短数字。
  • 纯数字货号去掉前导零比较,但必须同时确认候选 SKU 或 variationSku 含相同档口名称; 非数字货号继续精确比较。
  • 原始 SKU 优先匹配、冲突阻断、候选唯一、规格、采购字段及 detail 占用门禁均保持不变。
  • 没有修改数据库、页面、接口和顺运宝写入流程,也没有对生产记录执行重新匹配或回写。

改了哪些

  • admin/service/inner_code_match.go:增加档口拆分、货号分词、数字前导零安全比较。
  • admin/service/inner_code_match_test.go:覆盖生产样例、中文括号、同档口前导零、不同档口 阻断和非数字货号精确比较。

验收结果

验收标准 结果
将客大码网批#067 唯一命中目标候选 通过
067 与 67 只在档口名称一致时等价 通过
同货号不同档口不命中 通过
非数字货号不做类似转换 通过
原始 SKU 与既有安全门禁不退化 通过,全量测试通过
固定 Go 1.23.0 测试、构建、vet 和差异检查通过 通过
生产目标订单不自动回写 通过,只读核对后以脱敏样例回归

测试

  • 执行的命令:go test ./service -run InnerCode -count=1、go test ./... -count=1、 go build ./...、go vet ./...(均使用 GOTOOLCHAIN=go1.23.0),以及 git diff --check。
  • 结果:全部通过。
  • 没验证到的部分:未部署生产 Admin;未在生产页面重新匹配目标记录;未向顺运宝 发送任何写入请求。

相关提交

  • 5e0cf95 fix: 兼容档口货号括号与前导零 (#273)