2026-08-22 的档口入库码文件中,订单 260820SS6E61GG 有两条相同业务键、两个不同单件入库码。导入器按既有规则将其聚合为一条记录,source_duplicate_count=2。
260820SS6E61GG
source_duplicate_count=2
顺运宝实时详情却已存在两条独立商品明细:两条规格、sku、variationSku 完全相同,每条 productQty=1,且采购平台、采购单号和快递单号均为空。现有匹配代码在原始 SKU 命中两条候选时直接返回“原始 SKU 候选重复,不能自动选择”,没有识别“两个码恰好对应两条现成明细”的可确定场景。
sku
variationSku
productQty=1
复现:导入 Shopee线下档口入库码映射_20260822_V3.3-R5-M1.xlsx,选择该订单的聚合记录执行匹配,记录进入 skipped。
Shopee线下档口入库码映射_20260822_V3.3-R5-M1.xlsx
skipped
remote_items_json
productQty=N
admin/service/inner_code_match.go
admin/service/inner_code_apply.go
existing_matched
admin/repository/inner_code.go
admin/service/inner_code_match_test.go
admin/service/inner_code_apply_test.go
git diff --check
从 admin/ 执行:
admin/
$env:GOTOOLCHAIN="go1.23.0" go test ./service ./repository ./syb -run InnerCode -count=1 go test ./... -count=1 go build ./... go vet ./... Remove-Item Env:GOTOOLCHAIN git diff --check
使用脱敏测试数据模拟订单内两条相同身份、数量各 1 的远端明细;生产样本只做只读核对,不在自动化测试中发送真实回写请求。
18ad85d
a61d97b
docs/task/289-多个相同顺运宝明细逐件匹配.md
生产发布已由 #290 完成:生产进程当前运行 a61d97b,独立端口及公网健康检查通过,schema 保持 v29,未执行真实重新匹配或回写。#289 与 #290 均等待用户验收。
No dependencies set.
The note is not visible to the blocked user.
基本信息
要解决什么
2026-08-22 的档口入库码文件中,订单
260820SS6E61GG有两条相同业务键、两个不同单件入库码。导入器按既有规则将其聚合为一条记录,source_duplicate_count=2。顺运宝实时详情却已存在两条独立商品明细:两条规格、
sku、variationSku完全相同,每条productQty=1,且采购平台、采购单号和快递单号均为空。现有匹配代码在原始 SKU 命中两条候选时直接返回“原始 SKU 候选重复,不能自动选择”,没有识别“两个码恰好对应两条现成明细”的可确定场景。复现:导入
Shopee线下档口入库码映射_20260822_V3.3-R5-M1.xlsx,选择该订单的聚合记录执行匹配,记录进入skipped。做什么 / 不做什么
remote_items_json;回写前逐条复读核验,复用现成明细,不新增占位商品。productQty=N时由 #250 创建额外占位明细的既有路径。怎么做
admin/service/inner_code_match.go:把重复原始 SKU 候选细分为“可确定的多明细逐件分配”和“真实歧义”;仅在单件码数、源行数、候选总数量均一致,且候选均为数量 1、同一规格/原始 SKU/档口身份、无采购信息时生成稳定逐件规划。admin/service/inner_code_apply.go:读取规划阶段保存的逐件明细绑定;回写前重新获取整张货运单,核对每个 detail ID 的身份、安全状态和数量,再逐件写入并回读确认。现成空白明细标记为existing_matched,不得走创建占位明细路径。admin/repository/inner_code.go:保存只读规划时允许写入已经验证的remote_items_json,重新规划继续原子替换旧规划。admin/service/inner_code_match_test.go、admin/service/inner_code_apply_test.go:覆盖两个相同候选对应两个码、候选数量不等、候选身份变化、已有远端值及原有单明细多件路径。验收标准
remote_items_json。git diff --check通过。怎么验证
从
admin/执行:使用脱敏测试数据模拟订单内两条相同身份、数量各 1 的远端明细;生产样本只做只读核对,不在自动化测试中发送真实回写请求。
风险和回退
实施记录(2026-08-22)
18ad85d。a61d97b。docs/task/289-多个相同顺运宝明细逐件匹配.md。existing_matched逐件绑定;后台写前和写后复读全部绑定,复用现成明细且不调用创建接口。其他重复候选继续阻断。skipped状态。生产发布已由 #290 完成:生产进程当前运行
a61d97b,独立端口及公网健康检查通过,schema 保持 v29,未执行真实重新匹配或回写。#289 与 #290 均等待用户验收。