statistics-service

StatisticsService

Спільний модуль family-application-api для статистики TU та операторів. За основу береться поточний Statistics V2 Golden — такий самий набір операцій уже є у Prime, Chathouse та Udate.

Задача

  1. Показати операторів за вибраний місяць: баланс, online, стан кожного дня, робочі дні та кількість TU.
  2. Показати одного оператора і його TU за місяць.
  3. Показати TU за місяць: баланс і стан кожного дня.
  4. Формувати зрізи за всією Family, supervisor, top manager та client manager.
  5. Враховувати історію призначень: у статистику потрапляють користувачі й суми, які належали вибраному зрізу саме у відповідний день.

Типи статистики

ТипРезультат
1ОператориСписок операторів із балансом, online, статусами днів і кількістю TU
2Один операторОператор і список його TU з денними значеннями
3TUСписок TU з балансом і станом за кожен день
4HRОператори, які належали HR у вибраний період; формується окремим Stack flow

API Statistics V2

ОпераціяEndpointОсновні параметри
1Усі оператори FamilyPOST /statistics/v2/operatorsdate, onlineType
2Оператори supervisorPOST /statistics/v2/supervisor-operatorsdate, supervisorFamilyId, onlineType
3Оператори supervisor-ів top managerPOST /statistics/v2/top-supervisors-operatorsdate, supervisorFamilyId, stackTopManagerId, onlineType
4Один операторPOST /statistics/v2/operatordate, operatorFamilyId, onlineType
5Один оператор supervisorPOST /statistics/v2/supervisor-operatordate, supervisorFamilyId, operatorFamilyId, onlineType
6Один оператор у scope top managerPOST /statistics/v2/top-supervisors-operatordate, supervisorFamilyId, operatorFamilyId, stackTopManagerId, onlineType
7Усі TU FamilyPOST /statistics/v2/ladiesdate
8TU client managerPOST /statistics/v2/client-manager-ladiesdate, clientManagerFamilyId
9TU supervisorPOST /statistics/v2/supervisor-ladiesdate, supervisorFamilyId
10TU supervisor-ів top managerPOST /statistics/v2/top-supervisors-ladiesdate, supervisorFamilyId, clientManagerFamilyId, stackTopManagerId
11TU client manager у вибраних supervisorPOST /statistics/v2/client-manager-supervisors-ladiesdate, clientManagerFamilyId, supervisorFamilyIds[]

family-application-api зберігає ці операції та однакові request/response для всіх Family. Відмінність Family передається окремо, а не визначається різними controller-ами.

Результат

День

  • date — дата.
  • sum — баланс за день.
  • online, onlineSec — час online.
  • status — стан користувача або робочий статус дня оператора.

onlineType: day рахує online за календарну добу, onlineType: shift — у межах зміни supervisor.

Оператор

  • Stack і Family ID, ім’я та nickname.
  • Денний баланс і online.
  • Робочі статуси: day off, absenteeism, auto absenteeism, internship та excused absence.
  • Стан у кожен день: активний, заблокований або вже поза вибраним scope.
  • ladyTotal — кількість TU.
  • isOnline і sleepMode — поточний live-стан.
  • total — баланс за місяць.

TU

  • Family ID, ім’я, avatar і level.
  • Денний баланс.
  • Денний стан: активна, заблокована або поза вибраним scope.
  • total — баланс за місяць.

Результат одного оператора має форму { operator, ladies[] }. Інші типи повертають відповідний список операторів або TU.

Дані

ДаніДжерело
Денний баланс і історичний scopeFamilyStatisticsRelation
Дані TUFamilyTU
Online оператораOperatorOnlineSession
Online TU в деталях оператораTUWorkspaceOnlineSession
Користувачі, структура команди та робочі статуси днівstack collections

StatisticsService читає ці collections напряму через спільні repositories і формує відповідь без RMQ-передачі великих списків.

HR

HR-статистика залишається окремою операцією POST /statistics/getHrOperatorStatistics у Stack.

  1. Stack визначає операторів, які належали HR у вибраний період.
  2. За потреби список звужується до supervisor.
  3. Для кожного Family формується звичайна статистика операторів.
  4. Дні поза HR або supervisor scope позначаються неактивними для цього зрізу.

Зміна робочих статусів виконується окремою Stack-операцією POST /statistics/setOperatorDays. StatisticsService читає готові operator days під час формування таблиці.

Golden Operators Report

Golden окремо формує місячний XLSX-звіт операторів: balance, OTRR, середній effective online і відсоток вчасно виконаних тасків.

Це важливий Golden-only report. Поки він залишається окремою операцією StatisticsService; універсальну систему звітів та експортів не проєктуємо.