feat: scheduler skips on-leave managers; AI summary includes leave data

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-07-12 13:10:36 +08:00
parent 56adc625c0
commit eb05a0420e
2 changed files with 48 additions and 4 deletions
+21 -1
View File
@@ -41,6 +41,7 @@ def build_summary_prompt(
light_board: dict,
period: str,
reference_date: str,
leaves: list | None = None,
) -> str:
"""Build the user prompt with structured visit data for the LLM."""
@@ -140,6 +141,20 @@ def build_summary_prompt(
lvd = rc.get("last_visit_date") or "从未"
data_block += f" - {rc['customer_name']}(上次拜访: {lvd}\n"
# ── Leave data ──
if leaves:
data_block += "\n## 本周请假情况\n"
for lv in leaves:
data_block += (
f"- {lv.get('manager_name', '未知')} ({lv.get('leave_type', '请假')}): "
f"{lv.get('start_date', '')} ~ {lv.get('end_date', '')} "
f"({lv.get('days', 0)}天)\n"
)
if not leaves:
data_block += "无请假记录\n"
else:
data_block += "\n## 本周请假情况\n无请假记录\n"
return data_block
@@ -220,7 +235,12 @@ async def generate_summary(
db=db, user_id=user_id, role=role, reference_date=ref,
)
light_board = await get_light_board(db, ref, user_id, role)
user_prompt = build_summary_prompt(weekly_report, light_board, period, str(ref))
from app.services.leaves import get_leave_overview
leave_overview = await get_leave_overview(db, str(user_id), role, ref)
user_prompt = build_summary_prompt(
weekly_report, light_board, period, str(ref),
leaves=leave_overview.get("leave_list", []),
)
# Call LLM
headers = {"Content-Type": "application/json"}