"""合同班次入口:领表 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())