AutoRpa/rpa_oms/README.md

73 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# rpa_oms
订单中心四接口。本期只开放接口 1:销售商品对码数据接收。
- 路径:`POST /api/oms/v1/sales-goods`
- 鉴权:header `X-Oms-Token`,环境变量 `OMS_INBOUND_TOKEN`
- 落表:`rpa_sales_goods_mapping_data`(`deal_flag=0`)
- 请求里不跑选品。选品班次在仓库根目录 `选品流程/`,按条形码搜两平台、四级仓序拆量后写 `rpa_cart_settlement_goods_data`
## 本地(内存仓库)
```bash
cd rpa_oms
uv sync --python 3.12
export OMS_INBOUND_TOKEN=dev-oms-token
export OMS_REPO=memory
uv run uvicorn app.main:app --reload --port 8001
```
```bash
curl -sS http://127.0.0.1:8001/api/oms/v1/sales-goods \
-H 'Content-Type: application/json' \
-H 'X-Oms-Token: dev-oms-token' \
-d @examples/sales_goods_batch.json
```
单测:`uv run pytest -v`
## 真库
Oracle 11.2 需要 Instant Client(thick)。密码只放本机 `rpa_oms/.env`(已 gitignore),不要写进仓库、README、命令行历史。
```bash
export OMS_REPO=oracle
export OMS_INBOUND_TOKEN=...
export RPA_ORACLE_HOST=192.168.12.244
export RPA_ORACLE_PORT=1521
export RPA_ORACLE_SERVICE=rpa
export RPA_ORACLE_USER=rpainit
export RPA_ORACLE_PASSWORD=...
export RPA_ORACLE_THICK=1
# 如需指定 Instant Client 目录:
# export RPA_ORACLE_CLIENT_LIB=/path/to/instantclient
```
缺 `RPA_ORACLE_HOST` / 用户 / 密码时,收件接口回 503。
## Windows 真库
本机 Mac 打不到 `192.168.12.244`,连库测试在 Windows 上做。Python 3.12 + Instant Client(位数一致),密码不要写进仓库。
PowerShell:
```powershell
cd rpa_oms
uv sync --python 3.12
Copy-Item -LiteralPath .env.example -Destination .env
# 只编辑本机 .env 的 RPA_ORACLE_PASSWORD,不要 git add .env
.\start.ps1
```
先 `GET http://127.0.0.1:8001/health`,再把 `examples/sales_goods_batch.json` POST 两次:
1. 第一次:两条 `ACCEPTED`,表里各一行 `deal_flag=0`
2. 第二次:两条 `DUPLICATE`,表行数不变
```powershell
curl.exe -sS http://127.0.0.1:8001/api/oms/v1/sales-goods `
-H "Content-Type: application/json" `
-H "X-Oms-Token: dev-oms-token" `
--data-binary "@examples/sales_goods_batch.json"
```