chore: auto release commit (2026-09-14 15:11:41)
All checks were successful
技能自动化发布 / release (push) Successful in 9s

This commit is contained in:
chenfuqiang
2026-09-14 15:11:41 +08:00
parent ce96693564
commit c5103e2650
17 changed files with 2626 additions and 2 deletions

View File

@@ -13,9 +13,11 @@ from typing import List, Optional
from service.task_service import (
cmd_add_whitelist,
cmd_config_path,
cmd_extract_invoices,
cmd_health,
cmd_init_db,
cmd_list_holidays,
cmd_list_rpa_invoices,
cmd_list_reports,
cmd_list_whitelist,
cmd_mark_verified,
@@ -23,10 +25,13 @@ from service.task_service import (
cmd_prereview_batch_input,
cmd_remove_whitelist,
cmd_render_html,
cmd_rpa_invoice_stats,
cmd_run,
cmd_set_standard,
cmd_show_rpa_invoice,
cmd_show_report,
cmd_stats,
cmd_test_rpa_connection,
cmd_version,
cmd_view_standards,
)
@@ -134,6 +139,41 @@ def _handle_list_holidays(args: argparse.Namespace) -> int:
return cmd_list_holidays(year=_cli_str_or_none(args.year))
def _handle_extract_invoices(args: argparse.Namespace) -> int:
return cmd_extract_invoices(
username=str(args.username or "").strip(),
password=str(args.password or "").strip(),
profile_dir=str(args.profile_dir or "").strip(),
headless=bool(args.headless),
detail_mode=bool(args.detail_mode),
)
def _handle_test_rpa_connection(args: argparse.Namespace) -> int:
return cmd_test_rpa_connection(
username=str(args.username or "").strip(),
password=str(args.password or "").strip(),
profile_dir=str(args.profile_dir or "").strip(),
)
def _handle_list_rpa_invoices(args: argparse.Namespace) -> int:
return cmd_list_rpa_invoices(
limit=int(args.limit or 20),
batch_id=_cli_str_or_none(args.batch_id),
username=_cli_str_or_none(args.username),
status=_cli_str_or_none(args.status),
)
def _handle_show_rpa_invoice(args: argparse.Namespace) -> int:
return cmd_show_rpa_invoice(record_id=int(args.record_id))
def _handle_rpa_invoice_stats(args: argparse.Namespace) -> int:
return cmd_rpa_invoice_stats()
def _print_full_usage() -> None:
print("票据合规预审助手(main.py)可用命令:")
print(" python main.py prereview --invoice-json <file|-> [--purpose 文本] [--project-no 编号]")
@@ -152,6 +192,9 @@ def _print_full_usage() -> None:
print(" python main.py list-holidays [--year YYYY]")
print(" python main.py stats")
print(" python main.py run [target [input_id]] [-t target] [-i input_id]")
print(" python main.py extract-invoices --username U --password P --profile-dir DIR")
print(" [--headless] [--detail-mode]")
print(" python main.py test-rpa-connection --username U --password P --profile-dir DIR")
print(" python main.py health")
print(" python main.py config-path")
print(" python main.py version")
@@ -244,6 +287,36 @@ def build_parser() -> ZhArgumentParser:
sp = sub.add_parser("stats", help="预审统计")
sp.set_defaults(handler=lambda _a: cmd_stats())
# RPA commands
sp = sub.add_parser("extract-invoices", help="从网站提取发票信息")
sp.add_argument("--username", required=True, metavar="用户名")
sp.add_argument("--password", required=True, metavar="密码")
sp.add_argument("--profile-dir", required=True, metavar="浏览器配置目录", dest="profile_dir")
sp.add_argument("--headless", action="store_true", help="无头模式(生产不建议)")
sp.add_argument("--detail-mode", action="store_true", help="提取详细信息", dest="detail_mode")
sp.set_defaults(handler=_handle_extract_invoices)
sp = sub.add_parser("test-rpa-connection", help="测试RPA连接和登录")
sp.add_argument("--username", required=True, metavar="用户名")
sp.add_argument("--password", required=True, metavar="密码")
sp.add_argument("--profile-dir", required=True, metavar="浏览器配置目录", dest="profile_dir")
sp.set_defaults(handler=_handle_test_rpa_connection)
# RPA数据查询命令
sp = sub.add_parser("list-rpa-invoices", help="查询RPA提取的发票数据")
sp.add_argument("--limit", default=20, type=int, metavar="条数")
sp.add_argument("--batch-id", default=None, metavar="批次ID", dest="batch_id")
sp.add_argument("--username", default=None, metavar="用户名")
sp.add_argument("--status", default=None, metavar="状态")
sp.set_defaults(handler=_handle_list_rpa_invoices)
sp = sub.add_parser("show-rpa-invoice", help="查看RPA提取的发票详情")
sp.add_argument("--record-id", required=True, type=int, metavar="记录ID", dest="record_id")
sp.set_defaults(handler=_handle_show_rpa_invoice)
sp = sub.add_parser("rpa-invoice-stats", help="获取RPA提取统计信息")
sp.set_defaults(handler=_handle_rpa_invoice_stats)
sp = sub.add_parser("run", help="任务执行命令骨架")
sp.add_argument("--target", "-t", default=None, metavar="目标")
sp.add_argument("--input-id", "-i", default=None, metavar="输入id", dest="input_id")