复现步骤:
已确认原因:档口入库码匹配只调用 EnsureSybSession 检查本地缓存;会话过期时直接返回。现有 OCR 自动登录只接在“顺运宝数据”的同步入口,导致采购员必须先启动一次同步才能刷新会话。记录数量和匹配数据不是错误原因。
EnsureSybSession
admin/handler/web/inner_code.go
InnerCodeMatch
ErrSybLoginRequired
attemptSybAutoLogin
syb.Client
PlanInnerCodeRecords
admin/handler/web/inner_code_test.go
startSybSync
go build ./...
go test ./... -count=1
go vet ./...
从 admin/ 执行:
admin/
$env:GOTOOLCHAIN="go1.23.0" go build ./... go test ./... -count=1 go vet ./... Remove-Item Env:GOTOOLCHAIN
真实环境验收:准备过期会话,勾选两条档口入库码记录并匹配;确认自动登录后只更新这两条匹配结果,syb_sync_runs 没有新增记录。
syb_sync_runs
状态:已实现,待用户验收。
实现结果:
验证:
GOTOOLCHAIN=go1.23.0
提交:
7b328b5
3bd2473
归档:docs/task/236-档口入库码匹配自动登录.md
docs/task/236-档口入库码匹配自动登录.md
No dependencies set.
The note is not visible to the blocked user.
基本信息
要解决什么
复现步骤:
已确认原因:档口入库码匹配只调用
EnsureSybSession检查本地缓存;会话过期时直接返回。现有 OCR 自动登录只接在“顺运宝数据”的同步入口,导致采购员必须先启动一次同步才能刷新会话。记录数量和匹配数据不是错误原因。做什么 / 不做什么
怎么做
admin/handler/web/inner_code.go:把本地会话检查与自动登录编排为可测试的小函数;InnerCodeMatch在ErrSybLoginRequired时调用现有attemptSybAutoLogin,成功后沿用同一个syb.Client继续执行PlanInnerCodeRecords。admin/handler/web/inner_code_test.go:覆盖有效缓存、过期后自动登录成功、自动登录失败和普通会话读取错误。startSybSync,不增加路由、迁移或 Client 接口。验收标准
go build ./...、go test ./... -count=1、go vet ./...通过。怎么验证
从
admin/执行:真实环境验收:准备过期会话,勾选两条档口入库码记录并匹配;确认自动登录后只更新这两条匹配结果,
syb_sync_runs没有新增记录。风险和回退
startSybSync。状态:已实现,待用户验收。
实现结果:
syb.Client继续处理原来勾选的记录,并显示“顺运宝自动登录成功”。startSybSync,不会主动启动顺运宝同步。验证:
GOTOOLCHAIN=go1.23.0:go build ./...、go test ./... -count=1、go vet ./...全部通过。syb_sync_runs前后计数核对。提交:
7b328b5fix: 档口入库码匹配自动恢复顺运宝会话 (#236)3bd2473docs: 归档任务 #236归档:
docs/task/236-档口入库码匹配自动登录.md