AutoRpa/docs/合同系统录入流程.md

3.6 KiB
Raw Blame History

合同系统录入流程(现行)

对照:RPA订单中心接口开发口径_20260930.md 第 4 节。
页面动作对照:rpa_contract/contract_flow_steps.py、rpa_contract/selectors/contract_create_selectors.json、rpa_contract/examples/。

状态中心 job / 13 节点 / start-complete-fail 不再使用。合单、班次、回写以口径为准;点哪些控件以 rpa_contract 为准。


1. 数据从哪来

订单中心推接口 3,落入 rpa_purchase_contract_data。合同班读 process_status=0。

一天两班(中午、下午)。启动瞬间冻结本班名单,跑的过程中新进的下一班再处理。

按 supplierId 合成一份合同:

  • 不用 omsId,不用供应商名称
  • 头字段(账期、签订日、起止日、采购员、计划员)取该班该供应商第一行
  • 下午同一供应商另开一份,不改上午已录合同
  • contractEntryStatus=0 且带 contractNo:只录返利协议,不进合单、不重开合同

旧脚本按「供应商 + 订单日期」建单,并且把签订日/开始日写成订单日期。那是上一套模型,不要抄。


2. 页面步骤(合同测试系统)

地址:http://contract-test.gzmpc.com:8080/
测试账号见 rpa_contract/README.md。客商必须是系统里真实存在的操作码,占位符搜不到。

脚本现用直达起草/模板 URL,绕过左侧菜单和「点模板」的前端委托(Selenium 点不中):

  • 起草:DRAFT_PAGE_URL
  • 非格式采购协议(2025 集团版)模板 ID:198d10b04325279b8ffeb8b4c6493b5a → FORM_PAGE_URL

顺序:

  1. 打开合同系统并登录
  2. 进起草,套非格式采购协议模板
  3. 签约方:客户编码、客户名称(用接口 3 的供应商 MDM / 名称,以页面能搜到的为准)
  4. 基础信息:合同版本类型、合同类别、结算类型、合同背景概述、合同性质=主合同
  5. 金额与日期:签订日 / 开始日 / 结束日用接口 3 第一行的 contractSignDate、contractStartDate、contractEndDate
  6. 货品明细:该班该供应商合进来的行(货品、规格、数量、单价、MDM)
  7. 付款与标志:这期一律账期,不勾预付款;付款期限用 paymentTerm。页面「账期支付」对应选项「电汇」(见脚本 _PAYMENT_ALIASES)
  8. 尽调:看合同系统页面回显。未尽调 → 本单失败,原因「客户未尽调」,不往下填。旧脚本没有这一步,口径有
  9. 点提交,不要点暂存。暂存号不拿去录返利
  10. 从「我的合同」读正式合同号

医药城同供应商同日 PDF 合并上传,是旧主链(平台导出扫描件)的步骤。接口 3 这条链有没有附件,录合同时再核对,不要默认还去拼 PDF。


3. 提交之后

提交成功:

  • 写入表 4,接口 4 actionCode=1,contractStatus=1(起草),带合同号
  • 同一份合同下多个 fid 回同一套号和状态
  • 合同任务结束。不要重录合同。

「合同成功」不是提交成功,而是返利中心能搜到这个合同号。查号挂在返利班,搜到再回 contractStatus=2;搜不到不重录,下一班再搜。


4. 代码要从哪抄

要 文件
打开/登录/填表/提交/读号 rpa_contract/contract_flow_steps.py
字段 name / 选择器 同文件里的 F、X;selectors/contract_create_selectors.json
浏览器适配 rpa_contract/apa_browser_adapter.py
干跑样例 rpa_contract/examples/contract_create_input_dry_run.json

旧状态中心(callback_client.py / agent.py / start-complete-fail)已从仓库删除。不要再接。