fix(t231): expose freight preflight errors

This commit is contained in:
QiuSW
2026-07-29 10:58:28 +08:00
parent 2d8ad97167
commit 5ed27afeb5
15 changed files with 240 additions and 56 deletions
+4 -1
View File
@@ -216,7 +216,10 @@ ERP 配置来源:
- `CMROUBAO_OCR_API_URL` 为可选 OCR `POST` endpoint;只允许 HTTPS,或本机 loopback HTTP,
不允许 userinfo、query、fragment 或重定向。请求使用 `multipart/form-data` 的 `file` 字段;
OCR 不可达、超时、非成功、过大或响应无有效文本时,货运创建返回 `503 OCR_SERVICE_INVALID`
且不会创建同步记录。
且不会创建同步记录。预检的稳定错误还包括 `422 ERP_NOT_CONFIGURED`、
`422 ERP_LOGIN_REJECTED`、`502 ERP_RESPONSE_INVALID` 和 `503 ERP_UNAVAILABLE`;SSR 导入页
用相同 code 显示可关闭弹窗并保留表单。所有 message 都是固定匿名文本,不含 ERP/OCR 原始
响应、验证码、Cookie、账号或密码。
会话不写 SQLite 或 Redis;服务重启后在下一次货运导入前重新经 OCR 建立会话。
+6 -5
View File
@@ -5,7 +5,7 @@
## 当前快照
- 日期:2026-07-29
- 阶段:T-231 待显示 ERP/OCR 导入预检的稳定错误码与修复提示
- 阶段:T-231 已显示 ERP/OCR 导入预检的稳定错误码与修复提示
- Git:当前分支为 `main`;T-001 至 T-004、T-101 至 T-104、T-201 至 T-219
均按文档提交、实现提交的顺序纳入历史
- 生产代码:`android-buyer/` 已接入 Roubao Android 源码
@@ -189,6 +189,7 @@
| `docs/tasks/T-228.md` | DONE | 移除 Python Connector 并完成 Go 切换 |
| `docs/tasks/T-229.md` | DONE | 从受控 `.env` 加载 ERP 凭证 |
| `docs/tasks/T-230.md` | DONE | OCR 自动登录并移除人工 ERP 连接页 |
| `docs/tasks/T-231.md` | DONE | 显示 ERP/OCR 导入预检稳定错误 |
| `docs/design/` | 已确认 | T-202 原型索引、4 个管理页和 7 个 Android 页面 |
| `deepseek总结.txt` | 已有 | 历史讨论摘要,不是正式需求权威 |
| `android-buyer/` | 已有 | Roubao `main` 固定 commit 的 Android 基线 |
@@ -200,11 +201,11 @@
## 任务摘要
- 已完成:T-001 至 T-004、T-101 至 T-104、T-201 至 T-219。
- 已完成:另含 T-220 至 T-230 ERP 契约、货运存储、采购需求生成、日期增量同步、Go
直连协议、OCR 会话预检、直连 `FreightSource`、旧 Connector 清理和受控本地凭证加载。
- 已完成:另含 T-220 至 T-231 ERP 契约、货运存储、采购需求生成、日期增量同步、Go
直连协议、OCR 会话预检、稳定预检错误、直连 `FreightSource`、旧 Connector 清理和受控本地
凭证加载。
- 进行中:无。
- 下一步:T-231 先显示 ERP/OCR 导入预检稳定错误;随后确认开放 API、OCR/ERP 数据使用权限,
并以受控单号执行一次不记录订单内容的 smoke。
- 下一步:确认开放 API、OCR/ERP 数据使用权限,并以受控单号执行一次不记录订单内容的 smoke。
## 当前可运行内容
+7 -5
View File
@@ -4,7 +4,7 @@ title: 显示 ERP 货运导入预检的稳定错误
phase: 2
deps:
- T-230
status: TODO
status: DONE
created: 2026-07-29
context_ref: f887bc4
work_branch: null
@@ -37,11 +37,11 @@ T-230 已让货运导入在创建同步前建立 OCR/ERP 会话,但除 `OCR_SE
## 验收要点
- [ ] OCR 无效、ERP 未配置、登录拒绝、协议异常和暂时不可用均有稳定 code;登录拒绝不再显示
- [x] OCR 无效、ERP 未配置、登录拒绝、协议异常和暂时不可用均有稳定 code;登录拒绝不再显示
泛化“同步任务创建失败”。
- [ ] 导入页弹窗保留表单,并在错误发生前不创建同步记录;JSON 返回相同 code。
- [ ] 错误、HTML 和 JSON 均不含凭证、验证码、Cookie 或上游响应片段。
- [ ] `go test ./...`、`go test -race ./...`、`go vet ./...` 和三个 Go 入口构建通过。
- [x] 导入页弹窗保留表单,并在错误发生前不创建同步记录;JSON 返回相同 code。
- [x] 错误、HTML 和 JSON 均不含凭证、验证码、Cookie 或上游响应片段。
- [x] `go test ./...`、`go test -race ./...`、`go vet ./...` 和三个 Go 入口构建通过。
## 边界
@@ -52,3 +52,5 @@ T-230 已让货运导入在创建同步前建立 OCR/ERP 会话,但除 `OCR_SE
- 2026-07-29:创建任务。现场检查确认 `.env` 四项均已设置且后端/OCR 均监听;原 SSR 错误
分支丢弃了 ERP 预检稳定码,尚不能从页面确认上游失败类别。
- 2026-07-29:将 ERP 登录拒绝归一化为来源错误,并向 SSR/JSON 映射五类匿名稳定预检错误;
完整 Go 验证命令和结果见实现提交。