AutoRpa/rpa_contract/run_batch.py

44 lines
1.4 KiB
Python

"""合同班次入口:领表 3、调页面流、写表 4。不推接口 4。"""
from __future__ import annotations
from apa_browser_adapter import ApaBrowserAdapter
from contract_create_node import CONTRACT_URL, ContractCreateInput, build_flow_context
from contract_draft import ContractDraft
from contract_flow_steps import run_contract_create_flow
from db import load_runtime_env
from job import outcome_from_run, run_batch
from persist import ContractOutcome
from repo import OracleContractRepo
def production_runner(browser: ApaBrowserAdapter, draft: ContractDraft) -> ContractOutcome:
spec = ContractCreateInput(
job_id="contract-batch",
supplier_name=draft.supplier_name,
order_date=draft.order_date,
source_type=draft.source_type or "",
submit_mode="submit",
)
ctx = build_flow_context(spec, draft)
def run() -> str:
return run_contract_create_flow(browser, ctx)
return outcome_from_run(run)
def main() -> int:
load_runtime_env()
repo = OracleContractRepo.from_env()
browser = ApaBrowserAdapter(url=CONTRACT_URL, flow="CONTRACT_CREATE")
summary = run_batch(repo, runner=lambda draft: production_runner(browser, draft))
print(
f"claimed={summary.claimed} groups={summary.groups} "
f"ok={summary.ok} failed={summary.failed}"
)
return 0 if summary.failed == 0 else 1
if __name__ == "__main__":
raise SystemExit(main())