statistics-service

StatisticsService

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

Задача

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

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

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

API Statistics V2

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

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

Результат

День

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

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

Оператор

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

TU

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

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

Дані

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

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

HR

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

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

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

Golden Operators Report

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

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