档口入库码匹配目前先从本地 syb_orders 按订单号读取 stock.id,再查询顺运宝详情。复现:Excel 中的货运单号能在顺运宝按“全部单号”搜索到,但该货运单未同步到 Admin 或被 SYB 店铺准入规则过滤时,匹配会错误提示“本地未找到对应的顺运宝货运单”。
syb_orders
stock.id
原 Python 流程、参考文档和已抓取 HAR 均明确要求使用货运单号查询顺运宝 t_stock.allcode。档口入库码是独立模块,不应依赖 SYB 数据模块是否已同步入库。
t_stock.allcode
/am/stock/listTotal
/am/stock/list
admin/syb/client.go
allcode
listTotal
code
admin/service/inner_code_match.go
admin/syb/client_test.go
admin/service/inner_code_match_test.go
go vet ./...
go build ./...
go test ./... -count=1
在 admin/ 执行:
admin/
$env:GOTOOLCHAIN="go1.23.0" go vet ./... go build ./... go test ./... -count=1 Remove-Item Env:GOTOOLCHAIN
使用 httptest.Server 模拟顺运宝列表、总数和详情接口,不连接真实顺运宝,不执行真实回写。
httptest.Server
状态:已实现并归档,待用户验收。
实现:
验证:
go test ./syb ./service -run 'ListByOrderNumber|InnerCode' -count=1
GOTOOLCHAIN=go1.23.0
提交:
b47e7ed
6b30594
docs/task/245-档口入库码直查顺运宝.md
No dependencies set.
The note is not visible to the blocked user.
基本信息
要解决什么
档口入库码匹配目前先从本地
syb_orders按订单号读取stock.id,再查询顺运宝详情。复现:Excel 中的货运单号能在顺运宝按“全部单号”搜索到,但该货运单未同步到 Admin 或被 SYB 店铺准入规则过滤时,匹配会错误提示“本地未找到对应的顺运宝货运单”。原 Python 流程、参考文档和已抓取 HAR 均明确要求使用货运单号查询顺运宝
t_stock.allcode。档口入库码是独立模块,不应依赖 SYB 数据模块是否已同步入库。做什么 / 不做什么
/am/stock/listTotal、/am/stock/list的只读能力,查询条件固定为t_stock.allcode。syb_orders;不改变 SYB 店铺准入规则;不改变 Excel 导入、规格算法或远端回写接口;规划阶段不调用删除/更新接口。怎么做
admin/syb/client.go:抽取列表公共请求/解析逻辑,新增按allcode精确查询货运单的方法;以listTotal为真实总数,分页读取并校验返回的code与输入一致。admin/service/inner_code_match.go:把规划读取接口改为“按货运单号查询远端货运单详情”,按唯一订单去重查询;移除本地syb_orders快照到stock.id的转换依赖,保留详情批量上限 100。admin/syb/client_test.go、admin/service/inner_code_match_test.go:覆盖精确查询、零命中、多命中、分页/协议异常、去重、未同步本地仍能匹配以及整批失败不落计划。验收标准
syb_orders、但顺运宝allcode精确查询唯一命中时,可以继续匹配并生成可回写计划。code不等于输入、分页数量异常、会话失效或网络失败时可诊断,且不会保存半批计划。syb_orders。go vet ./...、go build ./...、go test ./... -count=1通过。怎么验证
在
admin/执行:使用
httptest.Server模拟顺运宝列表、总数和详情接口,不连接真实顺运宝,不执行真实回写。风险和回退
allcode可能返回其他类型单号;必须再次校验响应code与输入完全一致,零条或多条都不自动选择。状态:已实现并归档,待用户验收。
实现:
t_stock.allcode货运单号直查,严格校验 listTotal、20 条分页、返回 code、重复 ID 和 100 条安全上限。syb_orders;唯一命中后仍按最多 100 个 ID 批量读取详情。验证:
go test ./syb ./service -run 'ListByOrderNumber|InnerCode' -count=1:通过。GOTOOLCHAIN=go1.23.0的go vet ./...、go build ./...、go test ./... -count=1:全部通过。syb_orders记录但远端唯一命中仍生成 ready 计划。提交:
b47e7ed实现6b30594归档docs/task/245-档口入库码直查顺运宝.md