- Создал(а) Неизвестный пользователь (a.akbarov@micord.ru) мар 10, 2025

## Содержание

##
Назначение

Сервис логирует действия выполненные пользователями в ЛК РП.

Описание
Сервис обеспечивает следующие функции:

- Запись информации о авторизации и выходе из системы
- Запись информации о пользовательских операциях выполненных в ЛК РП
- Запись информации о выгружаемых документах
- Запись информации о загружаемых документах

Взаимодействие с другими сервисами

Сервис вычитывает информацию направляемую ЛК РП в топиках ervu.lkrp.auth.events, ervu.lkrp.action.events, ervu.lkrp.import.file, и информацию направляемую ervu-validate-recruits в топиках ervu.lkrp.validate.response и ervu.lkrp.upload.failed.

Для реализации возможности журналирования действий выполняемых на стороне ЛК РП, принято решение о необходимости добавления базы данных. Так же для минимизации объема данных и ускорения работы сервиса в указанной базе данных будет использовать расширение TimescaleDB (возможность использования согласована с Солар)Журналирование ЛК РП 20241113_TPS.docx

События срок давности которых превысить 6 месяцев, должны удаляться из журналов и их БД.

Строение БД ervu-lkrp-journal-service

##
Журнал авторизаций ЛК РП

### Описание Журнала авторизаций ЛК РП

В Журнале авторизаций ЛК РП будет записываться информация о успешной авторизации, ошибки при авторизации, успешном выходе из системы и ошибке при выходе из системы.

### Алгоритм работы сервиса при авторизации

#### Вход в систему

draw.io

Diagram attachment access error: cannot display diagram

#### Выход из системы

draw.io

Diagram attachment access error: cannot display diagram

#### Сообщения в Kafka

ФЛ

ervu.lkpr.person.search.request

    {
       "lastName": "Фамилия",
       "firstName": "Имя",
       "middleName": "Отчество",
       "birthDate": "01.01.2000",
       "snils": "123-456-789 00",
       "document": {
          "series": "0001",
          "number": "123123",
          "issueDate": "21.02.2001"
       }
    }
    {
       "lastName": "Фамилия",
       "firstName": "Имя",
       "middleName": "Отчество",
       "birthDate": "01.01.2000",
       "snils": "123-456-789 00",
       "document": {
          "series": "0001",
          "number": "123123",
          "issueDate": "21.02.2001"
       }
    }

ervu.lkpr.person.search.response

    {
       "ervuId": "146c7719-7eee-47fb-87b6-bb477ac99497",
       "errorData": null
    }
    {
       "ervuId": "146c7719-7eee-47fb-87b6-bb477ac99497",
       "errorData": null
    }

ЮЛ

ervu.organization.request

{
       "orgOid": "1002421641",
       "orgFullName": "ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ \"РОМАШКА\"",
       "orgShortName": "ООО \"Ромашка\"",
       "orgType": "LEGAL",
       "inn": "2128010951",
       "ogrn": "1022101138180",
       "orgTypeLeg": "12300",
       "orgTypeName": "Общества с ограниченной ответственностью",
       "kpp": "213001001",
       "addresses": [],
       "contacts": [],
       "staffCount": 2,
       "branchesCount": 0,
       "brhs": [],
       "chiefInfo": {
          "prnOid": "1002421219",
          "orgOid": "1002421641",
          "chief": true,
          "blocked": false,
          "position": null,
          "lastName": "Кротов",
          "firstName": "Степан",
          "middleName": "Александрович",
          "birthDate": "02.02.2001",
          "gender": "M",
          "citizenship": "RUS",
          "snils": "268-148-632 04",
          "inn": "110475698107",
          "birthPlace": "гор Саратов",
          "email": null,
          "phoneNumber": null
       },
       "senderInfo": {
          "prnOid": "1002421219",
          "orgOid": "1002421641",
          "chief": true,
          "blocked": false,
          "position": null,
          "lastName": "Кротов",
          "firstName": "Степан",
          "middleName": "Александрович",
          "birthDate": "02.02.2001",
          "gender": "M",
          "citizenship": "RUS",
          "snils": "268-148-632 04",
          "inn": "110475698107",
          "birthPlace": "гор Саратов",
          "email": null,
          "phoneNumber": null
       },
       "orgAgencyTerRange": null,
       "orgAgencyType": null,
       "liquidated": false
    }
{
       "orgOid": "1002421641",
       "orgFullName": "ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ \"РОМАШКА\"",
       "orgShortName": "ООО \"Ромашка\"",
       "orgType": "LEGAL",
       "inn": "2128010951",
       "ogrn": "1022101138180",
       "orgTypeLeg": "12300",
       "orgTypeName": "Общества с ограниченной ответственностью",
       "kpp": "213001001",
       "addresses": [],
       "contacts": [],
       "staffCount": 2,
       "branchesCount": 0,
       "brhs": [],
       "chiefInfo": {
          "prnOid": "1002421219",
          "orgOid": "1002421641",
          "chief": true,
          "blocked": false,
          "position": null,
          "lastName": "Кротов",
          "firstName": "Степан",
          "middleName": "Александрович",
          "birthDate": "02.02.2001",
          "gender": "M",
          "citizenship": "RUS",
          "snils": "268-148-632 04",
          "inn": "110475698107",
          "birthPlace": "гор Саратов",
          "email": null,
          "phoneNumber": null
       },
       "senderInfo": {
          "prnOid": "1002421219",
          "orgOid": "1002421641",
          "chief": true,
          "blocked": false,
          "position": null,
          "lastName": "Кротов",
          "firstName": "Степан",
          "middleName": "Александрович",
          "birthDate": "02.02.2001",
          "gender": "M",
          "citizenship": "RUS",
          "snils": "268-148-632 04",
          "inn": "110475698107",
          "birthPlace": "гор Саратов",
          "email": null,
          "phoneNumber": null
       },
       "orgAgencyTerRange": null,
       "orgAgencyType": null,
       "liquidated": false
    }

ervu.organization.response

    {
       "success": true,
       "message": "Success",
       "data": {
          "orgId_ERVU": "f1ae84e5-c365-41e9-a489-a34577877ec2"
       }
    }
    {
       "success": true,
       "message": "Success",
       "data": {
          "orgId_ERVU": "f1ae84e5-c365-41e9-a489-a34577877ec2"
       }
    }

Для передачи полученных данных в новый сервис ervu-lkpr-journal необходимо создать новый топик lkrp.auth.event.

    {
       "esiaPersonId": "1000352722", // Идентификатор пользователя из ЕСИА
       "esiaOrgId": "1000352722", // (обязательно только для   "subsystem": "UL")
       "subsystem": "FL", // подсистема. FL - для физ. лиц, UL - для юр. лиц
       "eventTime": "0000-00-00T00:00:00.000Z", // дата и время события
       "eventType": "logout", // тип события. login - вход, logout - выход
       "status": "success", // статус. success - успех, failure - ошибка
       "firstName": "Иван", // имя пользователя
       "lastName": "Иванов", //фамилия пользователя
       "middleName": "Иванович", //отчество пользователя
       "snils": "123-456-789 00", // СНИЛС пользователя (обязательно только для   "subsystem": "FL")
       "inn": "7731347089", // ИНН организации (обязательно только для   "subsystem": "UL")
       "organizationName": "PRIMER PROEKT" //  Наименование организации (обязательно только для   "subsystem": "UL")
    }
    {
       "esiaPersonId": "1000352722", // Идентификатор пользователя из ЕСИА
       "esiaOrgId": "1000352722", // (обязательно только для   "subsystem": "UL")
       "subsystem": "FL", // подсистема. FL - для физ. лиц, UL - для юр. лиц
       "eventTime": "0000-00-00T00:00:00.000Z", // дата и время события
       "eventType": "logout", // тип события. login - вход, logout - выход
       "status": "success", // статус. success - успех, failure - ошибка
       "firstName": "Иван", // имя пользователя
       "lastName": "Иванов", //фамилия пользователя
       "middleName": "Иванович", //отчество пользователя
       "snils": "123-456-789 00", // СНИЛС пользователя (обязательно только для   "subsystem": "FL")
       "inn": "7731347089", // ИНН организации (обязательно только для   "subsystem": "UL")
       "organizationName": "PRIMER PROEKT" //  Наименование организации (обязательно только для   "subsystem": "UL")
    }

## Журнал пользовательских операций ЛК РП

В Журнале пользовательских операций ЛК РП должна выводится информация о времени и дате события, с учетом часового пояса пользователя и часового пояса по Москве. Записям присваивается идентификатор. Должны отображаться: Фамилия, Имя, Отчество. Выводится информация об адресе страницы, идентификаторе нажатой кнопки и тип события. Для события "Поиск по фильтру" должны отображаться атрибуты по которым осуществлен поиск, а также значения этих атрибутов.

Какие действия подлежат логированию в ЖПО?
ФЛ:
Переход в личный профиль

Нажатие на кнопку "Открыть повестку" в блоке "Повестки"

Нажатие на кнопку "Посмотреть делали" в блоке "Временные меры"
ЮЛ:
Нажатие на кнопку "Журнал взаимодействий"
Проставление/сброс фильтрации в журнале взаимодействий

Информация о выполненных пользователем действиях записывается в новый топик lkrp.action.event, данный топик читается сервисом ervu-lkrp-journal с дальнейшим формированием записи в разделе Журнал пользовательских операций ЛК РП.

    {
     "esiaPersonId": "1000352722", // Идентификатор пользователя из ЕСИА
     "esiaOrgId": "1000352722", // (обязательно только для   "subsystem": "UL")
     "eventTime" : "0000-00-00T00:00:00.000Z", // дата и время события
     "subsystem" : "FL",  // подсистема. FL - для физ. лиц, UL - для юр. лиц
     "eventType" : "Поиск по фильтру", // Указывается выполненное пользователем действие, например: открытие страницы, поиск по фильтру, Скачивание шаблона.
     "description" : "Журнал взаимодействий", // Указывается Описание раздела либо блока в котором произведено действие
     "searchAttribute" : [Атрибут поиска], // Указывается атрибут на основании которого выполнялась фильтрация (необязательный атрибут)
     "searchValue" : [Значение атрибута], // Указывается значение атрибута на основании которого выполнялась фильтрация(необязательный атрибут)
     "fileName" : "Прил.12_Ежегод_сверка", // необязательный атрибут
     "sourceUrl" : "https://" // Заполняется ссылкой на источник
      }
    {
     "esiaPersonId": "1000352722", // Идентификатор пользователя из ЕСИА
     "esiaOrgId": "1000352722", // (обязательно только для   "subsystem": "UL")
     "eventTime" : "0000-00-00T00:00:00.000Z", // дата и время события
     "subsystem" : "FL",  // подсистема. FL - для физ. лиц, UL - для юр. лиц
     "eventType" : "Поиск по фильтру", // Указывается выполненное пользователем действие, например: открытие страницы, поиск по фильтру, Скачивание шаблона.
     "description" : "Журнал взаимодействий", // Указывается Описание раздела либо блока в котором произведено действие
     "searchAttribute" : [Атрибут поиска], // Указывается атрибут на основании которого выполнялась фильтрация (необязательный атрибут)
     "searchValue" : [Значение атрибута], // Указывается значение атрибута на основании которого выполнялась фильтрация(необязательный атрибут)
     "fileName" : "Прил.12_Ежегод_сверка", // необязательный атрибут
     "sourceUrl" : "https://" // Заполняется ссылкой на источник
      }

## Журнал импорта файлов из ЕРВУ

В журнале импорта файлов из ЕРВУ должны выводиться документы запрошенные пользователем, например: Выписка повестки, Выписка воинского учета, для ЮЛ Выписка журнала взаимодействий.

lkrp.import.file

    {
        "esiaPersonId", "1000352722", // Идентификатор пользователя из ЕСИА
        "esiaOrgId": "1000352722", // (обязательно только для   "subsystem": "UL")
        "eventTime" : "0000-00-00T00:00:00.000Z", // дата и время события
        "subsystem" : "FL",  // подсистема. FL - для физ. лиц, UL - для юр. лиц
        "downloadType" : "Повестки ФЛ", // наименование подраздела из которого выполнялось скачивание файла: Журнал взаимодействий ЮЛ, Воинский учет ФЛ, Повестки ФЛ.
        "status" : "succes", // // статус. success - успех, failure - не успешно
        "fileName" : "Выписка.xlsx", // отображает наименование выгруженного файла
        "s3FileUrl": "ссылка на файл из s3"
        "fileSize" : "500b" //??
    }
    {
        "esiaPersonId", "1000352722", // Идентификатор пользователя из ЕСИА
        "esiaOrgId": "1000352722", // (обязательно только для   "subsystem": "UL")
        "eventTime" : "0000-00-00T00:00:00.000Z", // дата и время события
        "subsystem" : "FL",  // подсистема. FL - для физ. лиц, UL - для юр. лиц
        "downloadType" : "Повестки ФЛ", // наименование подраздела из которого выполнялось скачивание файла: Журнал взаимодействий ЮЛ, Воинский учет ФЛ, Повестки ФЛ.
        "status" : "succes", // // статус. success - успех, failure - не успешно
        "fileName" : "Выписка.xlsx", // отображает наименование выгруженного файла
        "s3FileUrl": "ссылка на файл из s3"
        "fileSize" : "500b" //??
    }

## Журнал экспорта файлов в ЕРВУ

В журнале экспорта файлов в ЕРВУ должны выводиться документы загруженные пользователем в систему. Форма шаблона соответствует номеру загружаемого в ЛК РП документа.

ervu.lkrp.validate.response

    {
       "eventTime": "0000-00-00T00:00:00.000Z", // дата и время события
        "orgInfo": {
       "orgName": "Звезда",
       "esiaOrgId": "1000352722", // Идентификатор организации из ЕСИА"
       "orgId": "a9cd9118-2e00-44ee-ba63-6d379ee1b45f",
       "prnOid": "1000322154",
        "senderInfo": {
       // информация об отправителе документов
        "lastName": "Максимов", // фамилия пользователя
        "firstName": "Геннадий",    // имя пользователя
        "middleName": "Валентинович",    // отчество пользователя
      },
        "fileInfo": {
        "fileId": "001f999d-49fc-4c57-9311-720fe5536fd9",
         "fileUrl": "s3://lkrp-av/test_12.csv",
          "filePatternCode": "9",
          "filePatternName": "Сведение о приеме на работу (увольнении), зачислении в образовательное учреждение (или отчислении)",
          "fileName": "Прил.12_Ежегодн_сверк", // наименование файла
          "fileSize": "100kb",  //размер файла
          "fileStatus": {
          "code": "07",
          "status": "Принято ЕРВУ",
          "description": "Все записи успешно прошли проверку ФЛК"
        }
      },
      "validationInfo": [
       {
         "code": "SUC01",
          "description": "Пройден ФЛК",
          "rows": [
            2
          ]
        }
      ],
      "rowsSuccess": 1,
      "rowsCount": 1
    }
    {
       "eventTime": "0000-00-00T00:00:00.000Z", // дата и время события
        "orgInfo": {
       "orgName": "Звезда",
       "esiaOrgId": "1000352722", // Идентификатор организации из ЕСИА"
       "orgId": "a9cd9118-2e00-44ee-ba63-6d379ee1b45f",
       "prnOid": "1000322154",
        "senderInfo": {
       // информация об отправителе документов
        "lastName": "Максимов", // фамилия пользователя
        "firstName": "Геннадий",    // имя пользователя
        "middleName": "Валентинович",    // отчество пользователя
      },
        "fileInfo": {
        "fileId": "001f999d-49fc-4c57-9311-720fe5536fd9",
         "fileUrl": "s3://lkrp-av/test_12.csv",
          "filePatternCode": "9",
          "filePatternName": "Сведение о приеме на работу (увольнении), зачислении в образовательное учреждение (или отчислении)",
          "fileName": "Прил.12_Ежегодн_сверк", // наименование файла
          "fileSize": "100kb",  //размер файла
          "fileStatus": {
          "code": "07",
          "status": "Принято ЕРВУ",
          "description": "Все записи успешно прошли проверку ФЛК"
        }
      },
      "validationInfo": [
       {
         "code": "SUC01",
          "description": "Пройден ФЛК",
          "rows": [
            2
          ]
        }
      ],
      "rowsSuccess": 1,
      "rowsCount": 1
    }

Нравится Станьте первыми кому понравится это

- Нет меток
- Редактировать метки

Написать комментарий...

Добавить комментарий

Обзор
Инструменты контента
{"serverDuration": 132, "requestCorrelationId": "8859b5c3a154f193"}
search
recentlyviewed
attachments
weblink
advanced
image-effects
image-attributes

- Абзац

- Жирный
- Курсив
- Подчеркнутый
- Cредство выбора цвета
  Дополнительные цвета
- Форматирование

- Маркированный список
- Нумерованный список

- Список задач

- Убрать отступ
- Сделать отступ

- Выровнить по левому краю
- Выровнить по центру
- Выровнить по правому краю

- Разметка страницы

- Ссылка

- Таблица

- Вставить

- Разметка страницы

- Отменить
- Восстановить

- Найти/Заменить

- Справка по быстрым ссылкам на клавиатуре

Подключение...