feat(t227): query ERP directly from Go
This commit is contained in:
+11
-34
@@ -164,28 +164,10 @@ T-203 成功返回 `201`。使用相同 `Idempotency-Key` 和相同图片内容
|
||||
|
||||
受鉴权的文件流。只能读取用户有权查看的任务资产;不返回服务端文件路径。
|
||||
|
||||
## ERP Connector 与货运信息
|
||||
## Go ERP 会话与货运信息
|
||||
|
||||
Connector 是 loopback 内部服务,不复用 ADMIN/BUYER 凭证。除 `/health` 外要求
|
||||
`X-API-Key`,密钥至少 32 字节并由两进程环境变量注入;请求和响应不得写 body 日志。
|
||||
|
||||
### Connector `POST /v1/freight/query`
|
||||
|
||||
```json
|
||||
{"mode":"ORDER_NUMBER","order_number":"完整单号"}
|
||||
```
|
||||
|
||||
或按 Asia/Shanghai 自然日闭区间查询,单次最多 7 天:
|
||||
|
||||
```json
|
||||
{
|
||||
"mode":"CREATED_RANGE",
|
||||
"created_from":"2026-07-22",
|
||||
"created_to":"2026-07-28"
|
||||
}
|
||||
```
|
||||
|
||||
成功返回最小化规范结构:
|
||||
顺运宝仅由 Go API 进程直连;浏览器不复用 ERP 凭证,也不接收 Cookie、JWT、用户资料或
|
||||
原始响应。货运同步只接收以下最小化规范结构:
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -267,7 +249,7 @@ T-224 增加:
|
||||
从成功水位前回看 10 分钟对应的自然日开始,后端再按最多 7 天切窗。
|
||||
|
||||
响应 `202`,返回 sync id/status。订单号不进入 URL、事件 message 或访问日志;数据库
|
||||
只保存规范值及用于审计/检索的受控字段,不保存 Connector 密钥。
|
||||
只保存规范值及用于审计/检索的受控字段,不保存 ERP 凭证、Cookie 或 JWT。
|
||||
|
||||
### `GET /api/v1/freight-syncs/{sync_id}`
|
||||
|
||||
@@ -283,24 +265,19 @@ T-224 增加:
|
||||
### `GET /api/v1/freight-orders`
|
||||
|
||||
返回当前 ADMIN creator 最近更新的货运单并支持 `limit`(1..100)。响应不包含
|
||||
收件人字段或 Connector 原文;列表筛选和 cursor 后置,不属于本次日期同步闭环。
|
||||
收件人字段或 ERP 原文;列表筛选和 cursor 后置,不属于本次日期同步闭环。
|
||||
|
||||
### `GET /api/v1/freight-orders/{id}`
|
||||
|
||||
T-222 返回货运头、全部当前商品明细和 revision/hash 状态。T-223 再增加采购需求和
|
||||
已生成 task 引用。不存在和跨 creator 统一 404;响应 `Cache-Control: no-store`。
|
||||
|
||||
T-222 精确单号同步需要 Go 后端配置:
|
||||
|
||||
- `CMROUBAO_ERP_CONNECTOR_URL`:默认 `http://127.0.0.1:8091`,只接受 HTTP
|
||||
loopback origin。
|
||||
- `CMROUBAO_ERP_CONNECTOR_API_KEY`:与 Connector 的
|
||||
`SHUNYUNBAO_SERVICE_API_KEY` 相同,至少 32 UTF-8 字节;未设置时后端可启动,
|
||||
但同步任务稳定失败为 `ERP_CONNECTOR_NOT_CONFIGURED`。
|
||||
|
||||
Connector 未登录、找不到货运单、响应协议错误和暂时不可用分别落为
|
||||
`ERP_SESSION_REQUIRED`、`ERP_FREIGHT_NOT_FOUND`、`ERP_RESPONSE_INVALID` 和
|
||||
`ERP_CONNECTOR_UNAVAILABLE`,不返回 ERP 原始错误 body。
|
||||
T-227 的后台 worker 使用当前 Go 内存会话,按 `listTotal -> list 分页 -> listByStock`
|
||||
查询。每次先校验会话;列表最多 100 条、每页 20 条,详情每批最多 100 个外部 stock ID。
|
||||
未配置、未登录、找不到货运单、响应协议错误和暂时不可用分别落为
|
||||
`ERP_NOT_CONFIGURED`、`ERP_SESSION_REQUIRED`、`ERP_FREIGHT_NOT_FOUND`、
|
||||
`ERP_RESPONSE_INVALID` 和 `ERP_UNAVAILABLE`,不返回 ERP 原始错误 body。旧 Python
|
||||
Connector 仅在仓库中等待 T-228 删除,不再是运行时依赖。
|
||||
|
||||
### `POST /api/v1/freight-items/{item_id}/procurement-request`
|
||||
|
||||
|
||||
Reference in New Issue
Block a user