docs: 归档任务 #273

This commit is contained in:
chengma
2026-08-18 17:21:21 +08:00
parent 5e0cf95859
commit 055b5faa36
@@ -0,0 +1,56 @@
# 273 Admin:修复档口货号中文括号与前导零匹配
- 类型:缺陷
- 父级大工单:#14
- 所属 MVP / 版本:#224
- 状态:已完成,待用户验收
- 日期:2026-08-18
- Gitea 工单:http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/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)