2.8 KiB
2.8 KiB
273 Admin:修复档口货号中文括号与前导零匹配
- 类型:缺陷
- 父级大工单:#14
- 所属 MVP / 版本:#224
- 状态:已完成,待用户验收
- 日期:2026-08-18
- Gitea 工单:#273
背景与目标
18 号档口入库码订单 260814A21AAB1G 有一条规格可以唯一命中顺运宝商品,但档口
将客大码网批#067 无法匹配候选 SKU 067【将客大码网批】... 和 variationSku
汽配-将客大码网批#67...。目标是在不放宽唯一性和远端写入门禁的前提下兼容中文
括号边界及纯数字货号前导零。
最终方案
- 档口字段按最后一个
#拆成名称和货号,避免名称自身含#时截错。 - 连续字母或数字作为货号候选,中文括号、
#、横线和空格等标点均作为边界;因此067【档口】能识别为独立货号,又不会从PDD256437中截取短数字。 - 纯数字货号去掉前导零比较,但必须同时确认候选 SKU 或 variationSku 含相同档口名称; 非数字货号继续精确比较。
- 规格文本只保留“开头是货号”的旧格式兼容,不扫描中间数字,防止把“建议 67.5 公斤”
中的重量误认为货号
067。 - 原始 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;未在生产页面重新匹配目标记录;未向顺运宝 发送任何写入请求。
相关提交
5e0cf95fix: 兼容档口货号括号与前导零 (#273)6f20c05fix: 阻断规格重量数字误当货号 (#273)