Files
cmautobuy/docs/task/232-档口入库码确定性匹配.md
T
2026-08-15 08:52:02 +08:00

51 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 232 Admin:档口入库码确定性匹配与顺运宝回写规划
- 类型:需求
- 父级大工单:#14
- 所属 MVP / 版本:#224
- 状态:已完成
- 日期:2026-08-15
- Gitea 工单:<http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/232>
## 背景与目标
把已导入的线下标签安全定位到唯一顺运宝货运单商品,生成只读回写计划;歧义或不满足
安全条件时必须跳过,不能猜测。
## 最终方案
- 从本地 `syb_orders.syb_data` 解析 stock ID,同一订单没有 stock 时失败、存在多个 stock
时跳过;有效 stock 每 100 个批量读取一次顺运宝最新详情。
- 先匹配 `productSpec` 原文,再用与参考 Python 一致的标准化键;档口存在时必须匹配
sku、variationSku 或规格中的档口/货号,远端没有档口身份时才允许唯一规格兜底。
- 只使用采购平台和采购单号都为空的候选;Excel 重复组、空规格、候选歧义、档口不符和
同一远端 detail 二次占用均不会变成可回写。
- 全部远端读取成功并验证完整后,才在一个数据库事务保存规划;没有调用删除或写入接口。
## 改了哪些
- `admin/repository/inner_code.go`:增加可规划记录、本地 SYB 快照查询和规划原子保存。
- `admin/service/inner_code_match.go`:增加 stock 解析、批量只读查询、规则匹配和状态统计。
- `admin/service/inner_code_match_test.go`:覆盖精确/标准化、档口、重复、采购门禁、歧义和占用。
## 验收结果
| 验收标准 | 结果 |
|---|---|
| 精确或标准化规格与档口唯一时生成可回写计划 | 通过 |
| 远端已是目标码时标记已存在 | 通过 |
| 重复、空规格、档口不符、歧义和采购字段非空均阻断 | 通过 |
| 同一远端 detail 不会被两条记录占用 | 通过 |
| 规划阶段只有详情读取,没有远端写请求 | 通过 |
## 测试
- 执行的命令:`go test ./service ./repository -run InnerCode -count=1`;
`go test ./... -count=1`;`go vet ./...`
- 结果:全部通过。
- **没验证到的部分**:没有连接真实顺运宝验证线上响应字段;远端详情使用结构化测试数据。
## 相关提交
- `82ab80d` feat: 规划档口入库码确定性匹配 (#232)