diff --git a/src/app/(admin)/stats/page.tsx b/src/app/(admin)/stats/page.tsx
index 71daef4..82e3b38 100644
--- a/src/app/(admin)/stats/page.tsx
+++ b/src/app/(admin)/stats/page.tsx
@@ -28,7 +28,7 @@ export default async function StatsPage() {
const stats = await getStatsOverview();
const maxChannelCount = Math.max(...Object.values(stats.channelCounts), 1);
- const maxAgentWorkload = Math.max(...stats.agentWorkload.map((a) => a.openCount), 1);
+ const maxAgentWorkload = Math.max(...stats.agentWorkload.map((a) => a.ticketCount), 1);
return (
@@ -89,7 +89,7 @@ export default async function StatsPage() {
-
Загрузка агентов (открытые заявки)
+
Заявки по агентам (все статусы)
{stats.agentWorkload.length === 0 ? (
Пока нет данных.
) : (
@@ -98,7 +98,7 @@ export default async function StatsPage() {
diff --git a/src/lib/tickets/service.ts b/src/lib/tickets/service.ts
index 0474d37..19a0054 100644
--- a/src/lib/tickets/service.ts
+++ b/src/lib/tickets/service.ts
@@ -705,7 +705,7 @@ export interface StatsOverview {
statusCounts: Record
;
channelCounts: Record;
ticketsPerDay: { label: string; count: number }[];
- agentWorkload: { name: string; openCount: number }[];
+ agentWorkload: { name: string; ticketCount: number }[];
}
/**
@@ -771,20 +771,20 @@ export async function getStatsOverview(): Promise {
: null;
const agents = await listAgents();
- const openCountByAgent = new Map();
- let unassignedOpen = 0;
+ const ticketCountByAgent = new Map();
+ let unassignedCount = 0;
for (const t of allTickets) {
- if (t.status === "closed") continue;
if (t.assigneeId) {
- openCountByAgent.set(t.assigneeId, (openCountByAgent.get(t.assigneeId) ?? 0) + 1);
+ ticketCountByAgent.set(t.assigneeId, (ticketCountByAgent.get(t.assigneeId) ?? 0) + 1);
} else {
- unassignedOpen += 1;
+ unassignedCount += 1;
}
}
- const agentWorkload = agents.map((a) => ({ name: a.name, openCount: openCountByAgent.get(a.id) ?? 0 }));
- if (unassignedOpen > 0) {
- agentWorkload.push({ name: "Не назначено", openCount: unassignedOpen });
+ const agentWorkload = agents.map((a) => ({ name: a.name, ticketCount: ticketCountByAgent.get(a.id) ?? 0 }));
+ if (unassignedCount > 0) {
+ agentWorkload.push({ name: "Не назначено", ticketCount: unassignedCount });
}
+ agentWorkload.sort((a, b) => b.ticketCount - a.ticketCount);
return {
totalTickets: allTickets.length,