AutoRpa/rpa_oms
Yuuuu d7b3ec48e6 chore: 根目录改成 oms + 四个英文作业包
选品流程迁到 rpa_selection,资料并入 docs。合同页面脚本迁入 rpa_contract,删除 rpa_yisaiqi。加购和返利先占位。
2026-10-02 21:24:46 +08:00
..
app feat: 接口1销售商品收件,按omsId幂等落表 2026-10-02 10:57:21 +08:00
examples feat: 接口1销售商品收件,按omsId幂等落表 2026-10-02 10:57:21 +08:00
tests feat: 接口1销售商品收件,按omsId幂等落表 2026-10-02 10:57:21 +08:00
README.md chore: 根目录改成 oms + 四个英文作业包 2026-10-02 21:24:46 +08:00
pyproject.toml feat: 接口1销售商品收件,按omsId幂等落表 2026-10-02 10:57:21 +08:00
uv.lock feat: 接口1销售商品收件,按omsId幂等落表 2026-10-02 10:57:21 +08:00

README.md

rpa_oms

订单中心四个 HTTP 口,一个 FastAPI。HTTP 收件不同步跑作业。作业在 rpa_selection / rpa_cart / rpa_contract / rpa_rebate。

口径:docs/RPA订单中心接口开发口径_20260930.md。DDL:docs/ddl/rpa_oms_staging_tables.sql。

口 方向 底表 代码
1 订单中心 → 本方 rpa_sales_goods_mapping_data 已有 app/inbound/sales_goods.py,POST /api/oms/v1/sales-goods
2 本方 → 订单中心 rpa_cart_settlement_goods_data 未做。将来 app/outbound/,由 rpa_cart 调用
3 订单中心 → 本方 rpa_purchase_contract_data 未做。将来 app/inbound/,复用接口 1 信封/鉴权
4 本方 → 订单中心 rpa_contract_agreement_result 未做。将来 app/outbound/,由合同/返利班调用

本期只开放接口 1:

  • 路径:POST /api/oms/v1/sales-goods
  • 鉴权:header X-Oms-Token,环境变量 OMS_INBOUND_TOKEN
  • 落表:rpa_sales_goods_mapping_data(deal_flag=0)
  • 请求里不跑选品

运行时只落 Oracle。单测用内存替身,不连库:uv run pytest -v。

真库

Oracle 11.2 需要 Instant Client(thick)。密码只放环境变量。

cd rpa_oms
uv sync --python 3.12
export OMS_INBOUND_TOKEN=dev-oms-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
uv run uvicorn app.main:app --reload --port 8001

缺 RPA_ORACLE_HOST / 用户 / 密码时,收件接口回 503。

Windows 真库

本机 Mac 打不到 192.168.12.244,连库测试在 Windows 上做。Python 3.12 + Instant Client(位数一致),密码不要写进仓库。

PowerShell:

cd rpa_oms
uv sync --python 3.12
$env:OMS_INBOUND_TOKEN = "dev-oms-token"
$env:RPA_ORACLE_HOST = "192.168.12.244"
$env:RPA_ORACLE_PORT = "1521"
$env:RPA_ORACLE_SERVICE = "rpa"
$env:RPA_ORACLE_USER = "rpainit"
$env:RPA_ORACLE_PASSWORD = "这里填密码"
$env:RPA_ORACLE_THICK = "1"
$env:RPA_ORACLE_CLIENT_LIB = "C:\oracle\instantclient"
uv run uvicorn app.main:app --host 0.0.0.0 --port 8001

先 GET http://127.0.0.1:8001/health,再把 examples/sales_goods_batch.json POST 两次:

  1. 第一次:两条 ACCEPTED,表里各一行 deal_flag=0
  2. 第二次:两条 DUPLICATE,表行数不变
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"