fix: 填报统计不再限定 role=manager,只看 require_report=True

之前: role='manager' AND require_report=True → 只统计客户经理
现在: require_report=True → 统计所有需填报的用户

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-06-26 16:44:59 +08:00
parent a580eefd14
commit df5b661d5f
2 changed files with 7 additions and 6 deletions
+5 -4
View File
@@ -55,10 +55,11 @@ async def get_reporting_progress(db: AsyncSession, reference_date: date | None =
"""Get per-manager reporting progress. Managers only see themselves."""
monday, sunday = get_week_range(reference_date)
managers_result = await db.execute(select(User).where(User.role == "manager", User.require_report == True))
all_managers = managers_result.scalars().all()
# Get all users who need to report (any role, filtered by require_report)
managers_result = await db.execute(select(User).where(User.require_report == True))
all_reporters = managers_result.scalars().all()
# Filter: managers only see themselves
managers = all_managers if role in ("director", "leader") else [m for m in all_managers if str(m.id) == user_id]
reporters = all_reporters if role in ("director", "leader") else [m for m in all_reporters if str(m.id) == user_id]
# Get visit counts per manager this week
visits_result = await db.execute(
@@ -69,7 +70,7 @@ async def get_reporting_progress(db: AsyncSession, reference_date: date | None =
visit_map = {str(uid): cnt for uid, cnt in visits_result.all()}
progress = []
for m in managers:
for m in reporters:
count = visit_map.get(str(m.id), 0)
# Calculate expected working days (Mon-Fri)
days_passed = min((date.today() - monday).days + 1, 5)