2026-08-17 的档口入库码 Excel 中,订单 26081387A2EC2N 有两条记录的规格可以唯一命中顺运宝商品,但最终被标记为“规格能匹配,但档口及货号与候选商品不一致”。
26081387A2EC2N
复现与已确认事实:
8916
上寮-青春网购工厂店#8916
上寮-青春网购工厂店8916##(&9)
variationSku
sku / variationSku / productSpec
#
目标是在不放宽现有安全门禁的前提下,把 Excel 原始 SKU 作为高优先级、可审计的确定性匹配证���,兼容档口和货号在顺运宝中无分隔符或排列不规则的情况。
syb_inner_code_records
sku
admin/repository/mysql_db.go
source_sku_raw
admin/model/inner_code.go
admin/repository/inner_code.go
admin/service/inner_code_import.go
admin/service/inner_code_match.go
docs/admin/03-data-model.md
updated
already_filled
applying
needs_check
git diff --check
从仓库根目录执行:
$env:GOTOOLCHAIN='go1.23.0' Set-Location admin go test ./service ./repository ./syb -run InnerCode -count=1 go test ./... -count=1 go build ./... go vet ./... Set-Location .. git diff --check Remove-Item Env:GOTOOLCHAIN
另使用独立 MySQL 8.4 _test 数据库验证空库、上一版本升级和重复迁移;使用 raw_data/Shopee线下档口入库码映射_20260817_V3.3-R5.xlsx 做本地人工导入验证,生产样本不提交 Git。真实环境只重新规划目标记录,不执行回写,待操作员核对为“可回写”后另行确认。
_test
raw_data/Shopee线下档口入库码映射_20260817_V3.3-R5.xlsx
???:??? MySQL v28 source_sku_raw?Excel ?????????????? SKU ??????????????? SKU/????????????? 2026-08-17 ?? Excel ????? 31?32 ????????? SKU;?????????????????????????
????,??:????
4383bb8
a989e0d
docs/task/259-??SKU??????.md
go test ./... -count=1
go build ./...
go vet ./...
????????????:?? schema ??? v28,? source_sku_raw ???????????????? utf8mb4_0900_ai_ci;?????? utf8mb4_bin,?? v28 ??????????????????:??? v28,?? v29,????????? VARCHAR(500) COLLATE utf8mb4_bin NULL;??? v27 ??????? v29??????????????????
兼容修复和生产验证完成,状态:待验收。
b685d2c
7175af5
cf0c870
utf8mb4_bin
No dependencies set.
The note is not visible to the blocked user.
基本信息
要解决什么
2026-08-17 的档口入库码 Excel 中,订单
26081387A2EC2N有两条记录的规格可以唯一命中顺运宝商品,但最终被标记为“规格能匹配,但档口及货号与候选商品不一致”。复现与已确认事实:
8916,导入后现有代码拼成上寮-青春网购工厂店#8916。上寮-青春网购工厂店8916##(&9)。variationSku与上述原始 SKU 完全相同。sku / variationSku / productSpec,因为候选在店名和货号之间没有#,导致有效候选被排除。目标是在不放宽现有安全门禁的前提下,把 Excel 原始 SKU 作为高优先级、可审计的确定性匹配证���,兼容档口和货号在顺运宝中无分隔符或排列不规则的情况。
做什么 / 不做什么
syb_inner_code_records增加可空的 Excel 原始 SKU 字段,保留源数据并参与匹配。sku或variationSku做确定性匹配;没有唯一命中时保留现有档口及货号规则作为兜底。#、模糊包含或只比较短货号来放宽匹配;不使用 AI,不新增页面按钮,不改变采购流程。怎么做
admin/repository/mysql_db.go:追加下一版可重放 MySQL 迁移,在syb_inner_code_records增加可空source_sku_raw(长度应覆盖顺运宝 SKU 原文),并补充字段和迁移版本自检;已发布迁移不得改写。admin/model/inner_code.go、admin/repository/inner_code.go:在导入模型、业务模型、插入、幂等更新和扫描中传递source_sku_raw。重复导入时更新该源字段;终态记录继续保留匹配和回写审计结论。admin/service/inner_code_import.go:通过规范化表头名称识别原始 SKU 列,保存源值;仅处理单元格边界空白/换行用于比较,数据库中保留原文。原始 SKU 为可选字段,字段超长时返回带 Excel 行号的错误。admin/service/inner_code_match.go:sku或variationSku唯一精确相等时,允许命中,即使派生的档口字符串因分隔符不同而未命中;admin/repository/mysql_db.go、admin/model/inner_code.go、admin/repository/inner_code.go、admin/service/inner_code_import.go、admin/service/inner_code_match.go、对应测试及docs/admin/03-data-model.md。验收标准
variationSku完全一致时,两条记录生成可回写计划,不再报档口及货号不一致。sku完全一致时同样可以唯一匹配。updated、already_filled、applying、needs_check等需保留的状态及远端审计数据不被重置。git diff --check通过。怎么验证
从仓库根目录执行:
另使用独立 MySQL 8.4
_test数据库验证空库、上一版本升级和重复迁移;使用raw_data/Shopee线下档口入库码映射_20260817_V3.3-R5.xlsx做本地人工导入验证,生产样本不提交 Git。真实环境只重新规划目标记录,不执行回写,待操作员核对为“可回写”后另行确认。风险和回退
???:??? MySQL v28 source_sku_raw?Excel ?????????????? SKU ??????????????? SKU/????????????? 2026-08-17 ?? Excel ????? 31?32 ????????? SKU;?????????????????????????
????,??:????
4383bb8fix: ????SKU?????? (#259)a989e0ddocs: ???? Admin:档口入库码使用原始 SKU 辅助确定性匹配 (#259)docs/task/259-??SKU??????.mdgo test ./... -count=1?go build ./...?go vet ./...?git diff --check?????????????????:?? schema ??? v28,? source_sku_raw ???????????????? utf8mb4_0900_ai_ci;?????? utf8mb4_bin,?? v28 ??????????????????:??? v28,?? v29,????????? VARCHAR(500) COLLATE utf8mb4_bin NULL;??? v27 ??????? v29??????????????????
兼容修复和生产验证完成,状态:待验收。
b685d2c(MySQL v29)7175af5、cf0c870utf8mb4_bin,最终 schema 为 v29;目标 Admin 启动自检通过。