44 lines
1.4 KiB
Python
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())
|