60 lines
1.4 KiB
Python
60 lines
1.4 KiB
Python
#!/usr/bin/env python3
|
||
"""
|
||
财务报销自动化
|
||
|
||
依次执行:
|
||
1. 发票提取 — 从 PDF 发票提取信息,生成 invoice_summary.csv
|
||
2. 报销提交 — 打开浏览器登录财务系统并自动填报
|
||
|
||
用法:
|
||
python run.py # 全流程
|
||
python run.py --step invoice # 仅发票提取
|
||
python run.py --step submit # 仅浏览器填报
|
||
python run.py -u 工号 -p 密码 # 覆盖登录凭据
|
||
"""
|
||
|
||
import argparse
|
||
import sys
|
||
from pathlib import Path
|
||
|
||
# 确保项目根目录在 sys.path 中
|
||
sys.path.insert(0, str(Path(__file__).parent.resolve().parent))
|
||
|
||
from src.pipeline import run_pipeline
|
||
|
||
|
||
def main() -> None:
|
||
parser = argparse.ArgumentParser(
|
||
description="财务报销自动化 - 发票提取 → 浏览器填报",
|
||
)
|
||
parser.add_argument(
|
||
"--step",
|
||
choices=["all", "invoice", "submit"],
|
||
default="all",
|
||
help="执行步骤 (默认: all)",
|
||
)
|
||
parser.add_argument(
|
||
"-u",
|
||
"--username",
|
||
default=None,
|
||
help="信息门户登录账号(覆盖 config.json)",
|
||
)
|
||
parser.add_argument(
|
||
"-p",
|
||
"--password",
|
||
default=None,
|
||
help="信息门户登录密码(覆盖 config.json)",
|
||
)
|
||
args = parser.parse_args()
|
||
|
||
exit_code = run_pipeline(
|
||
step=args.step,
|
||
username=args.username,
|
||
password=args.password,
|
||
)
|
||
sys.exit(exit_code)
|
||
|
||
|
||
if __name__ == "__main__":
|
||
main()
|