#!/usr/bin/env python3 """手动触发地磅计划按月自动生成(与 APScheduler 任务同逻辑)。""" from __future__ import annotations import argparse import sys from pathlib import Path BACKEND_ROOT = Path(__file__).resolve().parents[1] if str(BACKEND_ROOT) not in sys.path: sys.path.insert(0, str(BACKEND_ROOT)) from app.core.database import SessionLocal from app.services.db.auto_generate_plans import run_auto_generate_monthly_plans def main() -> int: parser = argparse.ArgumentParser(description="Run db monthly plan auto-generation once") parser.add_argument( "--force", action="store_true", help="Skip first-day-of-month guard (for local verification)", ) args = parser.parse_args() db = SessionLocal() try: result = run_auto_generate_monthly_plans(db, force=args.force) print(result) return 0 except Exception: db.rollback() raise finally: db.close() if __name__ == "__main__": raise SystemExit(main())