75 lines
3.5 KiB
Markdown
75 lines
3.5 KiB
Markdown
# rpa_rebate
|
||
|
||
返利班。领表 4 起草行、表 3 只录协议行,按合同号查返利中心。搜到后同一班走总单 → 细单新增 → 送审;送审成功才写表 4。接口 4 组包在 `rpa_oms`,本班不推、不改 `push_status`。细单不做 Excel 导入。现行字段见 `现行模式.md`、`返利流程.md`。
|
||
|
||
| | |
|
||
| --- | --- |
|
||
| 读 | 表 4 `action_code=1 AND contract_status=1`(已有合同号、尚未回成功);表 3 `contract_entry_status=0` 且已有 `contractNo` |
|
||
| 写 | 表 4:搜到则起草行 `contractStatus=2`;送审成功插 `actionCode=2`、`agreementStatus=1`,带总单/细单号 |
|
||
| 口 | 口 4(组包在 oms,path 空) |
|
||
|
||
与合同同一天两班,建议合同班跑完再跑。查号挂在本班,不单开查状态任务。搜不到不重录合同,戳改回 `合同班`,留给下一班再搜。
|
||
|
||
口径:`docs/RPA订单中心接口开发口径_20260930.md` 第 5 节。
|
||
|
||
## 运行
|
||
|
||
内存替身(不连库、不开浏览器):
|
||
|
||
```bash
|
||
cd rpa_rebate
|
||
uv sync --python 3.12
|
||
uv run pytest tests/test_job.py::test_job_finds_contract_and_writes_agreement -q
|
||
uv run pytest tests/test_finder.py::test_find_flow_writes_accept_for_missing_number -q
|
||
uv run pytest tests/test_header.py::test_header_flow_writes_accept_with_order_no -q
|
||
uv run pytest tests/test_import.py::test_import_flow_writes_accept_with_success_fail -q
|
||
uv run pytest tests/test_submit.py::test_submit_flow_writes_accept_with_order_nos -q
|
||
```
|
||
|
||
页面查号(不开录协议、不连 Oracle)。账号放本机 `.env`:
|
||
|
||
```bash
|
||
cd rpa_rebate
|
||
uv run python run_find.py
|
||
```
|
||
|
||
验收看控制台 `ACCEPT SUMMARY REBATE_FIND` 或 `screenshots/REBATE_FIND/ACCEPT.txt`。默认搜哨兵号,期望 `found=no`。要搜真号:`REBATE_ACCEPT_CONTRACT_NO=合同号`。
|
||
|
||
页面总单(复用查号已登录 Chrome,不送审、不连 Oracle):
|
||
|
||
```bash
|
||
cd rpa_rebate
|
||
uv run python run_header.py
|
||
```
|
||
|
||
验收看控制台 `ACCEPT SUMMARY REBATE_HEADER` 或 `screenshots/REBATE_HEADER/ACCEPT.txt`。需要 `REBATE_ACCEPT_CONTRACT_NO`。优先表 3:供应商 MDM、货品行。计划员「廖建琦」,联系人「苏文辉」,承付「下月N号结」,承付参数 `25`,结算「电汇」,协议开始/结束当天。卡片仍在「编辑」时点总单工具栏保存。
|
||
|
||
页面细单新增(复用查号已登录 Chrome,不送审、不写 `actionCode=2`、不连 Oracle,不做 Excel):
|
||
|
||
```bash
|
||
cd rpa_rebate
|
||
uv run python run_import.py
|
||
```
|
||
|
||
验收看控制台 `ACCEPT SUMMARY REBATE_IMPORT` 或 `screenshots/REBATE_IMPORT/ACCEPT.txt`,须货品表有行。需要 `REBATE_ACCEPT_CONTRACT_NO`。表 3 有货品则按行新增;空缺再用 `REBATE_GOODS_ID` / `REBATE_QTY` / `REBATE_TAX_PRICE` / `REBATE_ORDER_NO`(或 `REBATE_IMPORT_LINES` JSON,字段 `goodsId`)。货品编码三个点按货品ID搜。细单备注=订单号,特定补偿=0,承付参数=25。不要用操作码或 MDM 码去搜。
|
||
|
||
页面送审(复用查号已登录 Chrome,不写 `actionCode=2`、不连 Oracle、不推口 4):
|
||
|
||
```bash
|
||
cd rpa_rebate
|
||
uv run python run_submit.py
|
||
```
|
||
|
||
验收看控制台 `ACCEPT SUMMARY REBATE_SUBMIT` 或 `screenshots/REBATE_SUBMIT/ACCEPT.txt`,须带总单号/细单号。需要 `REBATE_ACCEPT_CONTRACT_NO`。点完马上能看见号才回成功。
|
||
|
||
接口 4 组包(`rpa_oms`,不发 HTTP):
|
||
|
||
```bash
|
||
cd rpa_oms
|
||
uv run pytest tests/test_contract_agreement_outbound.py::test_assembles_unpushed_rows_as_document_envelope -q
|
||
```
|
||
|
||
## 本期不做
|
||
|
||
向订单中心发 HTTP、改 `push_status`。
|