|
|
||
|---|---|---|
| .. | ||
| examples | ||
| selectors | ||
| tests | ||
| README.md | ||
| accept.py | ||
| apa_browser_adapter.py | ||
| contract_create_node.py | ||
| contract_draft.py | ||
| contract_flow_steps.py | ||
| db.py | ||
| errors.py | ||
| group.py | ||
| job.py | ||
| main.py | ||
| pdf_utils.py | ||
| persist.py | ||
| pyproject.toml | ||
| repo.py | ||
| run_batch.py | ||
| uv.lock | ||
README.md
rpa_contract
合同班。从表 3 领取、按 supplierId 合单、调页面录入、写表 4。接口 4 组包在 rpa_oms,本班不推、不改 push_status。
| 读 | 表 3 rpa_purchase_contract_data(process_status=0;跳过 contractEntryStatus=0 且已有 contractNo 的协议重录行) |
| 写 | 表 4 rpa_contract_agreement_result(actionCode=1,提交成功 contractStatus=1 起草) |
| 口 | 口 3 收件在 rpa_oms;口 4 组包在 oms,path 空 |
一天两班(中午、下午)。启动瞬间冻结本班名单(process_status 0→3)。按 supplierId 合单;头字段取该班该供应商第一行。下午同一供应商另开一份。
口径:docs/RPA订单中心接口开发口径_20260930.md 第 4 节;合单细节见 docs/合同系统录入流程.md。
测试账号
地址:http://contract-test.gzmpc.com:8080/
账号:test002 / 1
客商必须是合同系统里真实存在的操作码,占位符搜不到。例如 DW0100046361 / 重庆亿昊药业有限公司。
页面步骤
脚本直达起草/模板 URL:
- 打开合同系统并登录
- 进起草,套非格式采购协议模板
- 签约方:客户编码、客户名称
- 尽调:页面正文含「未尽调」则本单失败,不提交
- 基础信息:合同版本类型、合同类别、结算类型、合同背景概述、合同性质=主合同
- 金额与日期:签订日 / 开始日 / 结束日用接口 3 第一行三日期(JSON 干跑未给则回退
orderDate) - 货品明细
- 付款与标志:这期一律账期,不勾预付款;页面「账期支付」对应选项「电汇」
- 点提交,不要点暂存
- 从「我的合同」读正式合同号
运行
JSON 干跑(不领表):
cd rpa_contract
uv sync --python 3.12
uv run pytest tests/test_job.py::test_job_merges_same_supplier_and_writes_table4 -q
uv run python main.py --input-json examples/contract_create_input_dry_run.json
班次(领表 3):
uv run python run_batch.py
submitMode=dry_run 跑到提交前,不点提交。真起草用 examples/contract_draft_yyc.json / examples/contract_draft_xyy.json。
本期不做
返利班、向订单中心发 HTTP、改 push_status。