导入记录必须安全地定位到唯一顺运宝货运单商品,才能生成“可回写”计划。当前匹配只存在于独立 Python 脚本,Admin 没有等价的标准化、候选过滤和歧义保护。
syb_orders
purchasePlatform
purchaseCode
admin/service/inner_code_match.go
syb.Client.DetailListByStock
spec_match_key
productSpec
service.EnsureSybSession
在 admin/ 执行 go test ./service ./syb -run InnerCode -count=1 和 go test ./... -count=1;使用 httptest.Server 模拟多商品、歧义、会话失效和远端字段组合,不连接真实顺运宝。
admin/
go test ./service ./syb -run InnerCode -count=1
go test ./... -count=1
httptest.Server
状态:已实现,待用户验收。 实现提交:82ab80d;归档提交:9961f0f;归档:docs/task/232-档口入库码确定性匹配.md 验证:确定性匹配、重复/歧义/采购字段/占用门禁自动化测试和全量回归通过。未连接真实顺运宝。
后续修正:#245 将货运单定位从本地 syb_orders 改为按 t_stock.allcode 直接查询顺运宝;该修正覆盖本工单“先从本地查 stock id”的实现方案,现有规格、档口和安全门禁保持不变。
t_stock.allcode
No dependencies set.
The note is not visible to the blocked user.
基本信息
要解决什么
导入记录必须安全地定位到唯一顺运宝货运单商品,才能生成“可回写”计划。当前匹配只存在于独立 Python 脚本,Admin 没有等价的标准化、候选过滤和歧义保护。
做什么 / 不做什么
syb_orders找到订单对应的 stock/detail 标识,再复用 Admin 顺运宝会话读取最新详情;按已确认规则做精确规格、标准化规格和档口货号匹配。purchasePlatform与purchaseCode均为空的商品成为可回写候选;一条远端商品在同次规划内最多占用一次;保存远端原值和明确原因。syb_orders数据。怎么做
admin/service/inner_code_match.go,把规格和档口匹配实现为无网络纯函数,再由规划服务编排 repository 与syb.Client.DetailListByStock。spec_match_key与已确认 Python 流程一致:去备注和“建议”尾部、压缩空白、拆颜色尺码、去颜色档口前缀、统一尺码代码和“碼/体重”尾部。productSpec精确命中,再使用标准化键;存在档口时必须能在 sku、variationSku 或 productSpec 中确认;候选不唯一时标为已跳过并保存原因。service.EnsureSybSession恢复已有会话;未登录或会话失效时给出可操作错误,不记录凭据。验收标准
怎么验证
在
admin/执行go test ./service ./syb -run InnerCode -count=1和go test ./... -count=1;使用httptest.Server模拟多商品、歧义、会话失效和远端字段组合,不连接真实顺运宝。风险和回退
状态:已实现,待用户验收。
实现提交:82ab80d;归档提交:9961f0f;归档:docs/task/232-档口入库码确定性匹配.md
验证:确定性匹配、重复/歧义/采购字段/占用门禁自动化测试和全量回归通过。未连接真实顺运宝。
后续修正:#245 将货运单定位从本地
syb_orders改为按t_stock.allcode直接查询顺运宝;该修正覆盖本工单“先从本地查 stock id”的实现方案,现有规格、档口和安全门禁保持不变。