Files

32 lines
1.2 KiB
Python

"""运输计划 - 证件到期提醒定时扫描"""
import logging
from datetime import datetime
from zoneinfo import ZoneInfo
from app.core.config import settings
from app.core.database import SessionLocal
from app.services.pl_cert_service import scan_cert_expiry
logger = logging.getLogger(__name__)
def scan_pl_cert_expiry_job():
"""每日扫描 pl_cert,生成证件到期提醒。"""
db = SessionLocal()
try:
logger.info("======== 开始执行证件到期扫描任务 ========")
created_count = scan_cert_expiry(db, today=datetime.now(ZoneInfo("Asia/Shanghai")).date())
db.commit()
logger.info("证件到期扫描完成,新建提醒 %d 条", created_count)
if settings.WECHAT_OA_ENABLED and settings.WECHAT_OA_CERT_REMINDER_ENABLED:
from app.services.wechat_cert_notices import enqueue_daily_cert_notices
notice_count = enqueue_daily_cert_notices(db)
db.commit()
logger.info("证件到期微信汇总已入队 %d 条", notice_count)
except Exception:
db.rollback()
logger.exception("证件到期扫描任务失败")
raise
finally:
db.close()