feat: scheduler skips on-leave managers; AI summary includes leave data
Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -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"}
|
||||
|
||||
Reference in New Issue
Block a user