- Создатель Неизвестный пользователь (a.s.voronin@rt-sk.ru), отредактировано янв 07, 2025

OLD GIT - https://git.gosuslugi.local/ervu/source/mz-xsd-storage/-/tree/master/mnsv-ervu-measures-temporary-confirm-fsb

GIT (вынесено в отдельный репозиторий в рамках Невозможно найти сервер Jira для этого макроса. Причиной может быть конфигурация ссылки на приложение. ) - https://git.gosuslugi.local/ervu/source/mz-mnsv-ervu-measures-temporary-confirm-fsb/-/tree/dev/

## Описание

Сервис для работы с ВС "ЕРВУ_Подтверждение введения временной меры запрет на выезд из РФ для граждан в целях обеспечения воинского учета" для ФОИВ ФСБ (urn://rostelekom.ru/ERVU-MeasuresTemporaryConfirmFSB/1.0.1). Обрабатывает сообщения, поступающие от ФОИВ через СМЭВ по этому виду сведений.

Сервис вынесен в отдельный репозиторий с использованием библиотеки `mzServiceCore`

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

Сервис реализует передачу данных о введении или отмене временной меры "Запрет на выезд из Российской Федерации". JSON передаётся из процессов, преобразуется в XML сообщение по формату ВС https://lkuv.gosuslugi.ru/paip-portal/#/inquiries/card/e475ed84-8781-4646-8a4f-0cfa965c12ef

На текущий момент работает с версией ВС 1.0.1

## Схема взаимодействия ФОИВ ФСБ по части введения и отмены временных мер

## Примеры запроса-ответа

Инициатором сеанса выступает система ЕРВУ, передавая сообщение о введении или отмене временной меры через вид сведений urn://rostelekom.ru/ERVU-AbroadForbiddenTemporary (текущая версия 1.0.5)

После получения сообщения от системы ЕРВУ, ФОИВ передаёт подтверждение через соответствующий ВС

### Структура запроса (инициатор - ФОИВ)

Поле в XML | Назначение поля | ФЛК | Кол-во вхождений | Комментарий
--- | --- | --- | --- | ---
Поле в XML | Назначение поля | ФЛК | Кол-во вхождений | Комментарий
Начало блока common - общая информация о гражданине
lastName | Передача фамилии гражданина | Кириллица, пробел, дефис. Максимум - 100 символов | 1..1 |
firstName | Передача имени гражданина | Кириллица, пробел, дефис. Максимум - 100 символов | 1..1 |
middleName | Передача отчества гражданина | Кириллица, пробел, дефис. Максимум - 100 символов | 0..1 |
Начало блока birthDate - сведения о дате рождения гражданина
day | День рождения гражданина | Число от 01 до 31 | 1..1 |
month | Месяц рождения гражданина | Число от 01 до 12 | 1..1 |
year | Год рождения гражданина | Число от 1900 до 2099 | 1..1 |
Конец блока birthDate - сведения о дате рождения гражданина
snils | Передача СНИЛС гражданина | 11 цифр | 0..1 | СНИЛС передаётся без пробелов/дефисов
idErn | Передача ИД ЕРН гражданина | 12 цифр | 0..1 |
Конец блока common - общая информация о гражданине
Начало блока passport - сведения о ДУЛ гражданина
series | Серия ДУЛ гражданина | 4 цифры | 1..1 |
number | Номер ДУЛ гражданина | 6 цифр | 1..1 |
issueDate | Дата выдачи ДУЛ гражданина | Дата в формате dd.mm.yyyy | 1..1 |
Конец блока passport - сведения о ДУЛ гражданина
Начало блока measuresTemporary - сведения о временной мере
measureId | Идентификатор временной меры | Латиница, цифры, дефис, пробел. Максимум - 85 символов | 1..1 |
number | Номер решения о введении меры | Цифры, дефис. Максимум 250 символов | 1..1 |
date | Дата решения о введении меры | Дата в формате dd.mm.yyyy | 1..1 |
militaryCommissariatName | Наименование организации, принявшей решение о введении меры | Кириллица, цифры, пробел, спецсимволы. Максимум - 512 символов | 0..1 |
measureCode | Код временной меры | Справочник (список значений правее) | 1..1 |

- 1 (Запрет на выезд из Российской Федерации)

measureName | Тип временной меры | Кириллица, пробел. Максимум - 100 символов | 1..1 |
statusCode | Код статуса меры | Справочник (список значений правее) | 1..1 |

- 01 (Введено в действие)
- 02 (Отменено)
- 03 (Невозможно однозначно идентифицировать лицо)

statusName | Наименование статуса меры | Справочник (список значений правее) | 1..1 |

- Введено в действие
- Отменено
- Невозможно однозначно идентифицировать лицо

Конец блока measuresTemporary - сведения о временной мере

#### Сообщение в формате XML

request Развернуть исходный код
expand source?

1 2 3 4 5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
`<``request` `xmlns``=``"urn://rostelekom.ru/ERVU-MeasuresTemporaryConfirmFSB/1.0.1"` `routing``=``"MNSV116"``>`
`<``common``>`
`<``lastName``>Иванов</``lastName``>`
`<``firstName``>Сергей</``firstName``>`
`<``middleName``>Федорович</``middleName``>`
`<``birthDate``>`
`<``day``>12</``day``>`
`<``month``>01</``month``>`
`<``year``>2005</``year``>`
`</``birthDate``>`
`<``snils``>08301894460</``snils``>`
`<``idERN``>456712331234</``idERN``>`
`</``common``>`
`<``passport``>`
`<``series``>4502</``series``>`
`<``number``>160381</``number``>`
`<``issueDate``>12.01.2019</``issueDate``>`
`</``passport``>`
`<``measuresTemporary``>`
`<``measureId``>11111111-1111-1111-1111-111111111112</``measureId``>`
`<``number``>123-2023</``number``>`
`<``date``>24.05.2023</``date``>`
`<``militaryCommissariatName``>Военный комиссариат Ивановского района</``militaryCommissariatName``>`
`<``measureCode``>1</``measureCode``>`
`<``measureName``>Запрет на выезд из Российской Федерации</``measureName``>`
`<``statusCode``>01</``statusCode``>`
`<``statusName``>Введено в действие</``statusName``>`
`</``measuresTemporary``>`
`</``request``>`

#### Атрибут routing

В XML передаётся атрибут routing, в котором от ФОИВ передаётся код маршрутизации (мнемоника) стенда, на который отправляется запрос. Значение для атрибута передаётся в теге sender в сообщении от ЕРВУ по виду сведений urn://rostelekom.ru/ERVU-AbroadForbiddenTemporary (текущая версия 1.0.5)

### Структура ответа (ответчик - ЕРВУ)

Поле в XML | Назначение поля | ФЛК | Кол-во вхождений | Комментарий
--- | --- | --- | --- | ---
Поле в XML | Назначение поля | ФЛК | Кол-во вхождений | Комментарий
statusCode | Код статуса сообщения | Справочник (значения правее) | 1..1 |

- 1 (Информация принята)
- 2 (Получен один или несколько некорректных (ошибочных) уникальных идентификаторов measureId)
- 3 (Запрос на подтверждение о снятии временной меры получен раньше, чем подтверждение о введении временной меры)
- 99 (Данная версия вида сведения не поддерживается. Воспользуйтесь для отправки запросов актуальной версией вида сведения)

statusName | Наименование статуса сообщения | Максимально количество символов - 250 | 1..1 |

Сообщение в формате XML

request Развернуть исходный код
expand source?

1 2 3 4 5
6
`<``response` `xmlns``=``"urn://rostelekom.ru/ERVU-MeasuresTemporaryConfirmFSB/1.0.1"``>`
`<``changeInfo``>`
`<``statusCode``>1</``statusCode``>`
`<``statusName``>Информация принята</``statusName``>`
`</``changeInfo``>`
`</``response``>`

## Kafka

### Consumer

- mz.petition.in.request
- ervu.subpoena.restriction.updated

### Producer

- ervu.subpoena.restriction.update
- mz.petition.out.request
- mz.petition.in.response
- mz.scenario.info
- mz.impl.mock
- mz.impl.info
- pgs.proxy.endpoints.access.info

## Проверка XML на валидность

В сервисе реализована проверка XML согласно XSD-схеме вида сведений. Флаг, отвечающий за функционал, лежит в конфиге сервиса по пути extra_options.validator.xml.enabled с значением true

validator config Развернуть исходный код
expand source?

`extra_options:` `` `validator:` `` `xml:` `` `enabled:` `true`

В такой реализации некорректный JSON, поступающий из процессов и преобразованный в XML, проверяется внутри сервиса на валидность по схеме вида сведений. Схема расположена по пути /src/main/resources в папке с версией ВС

На текущий момент путь до XSD-схемы /src/main/resources/1_0_1/schema/schema.xsd

Если JSON некорректен, в логах сервиса будет ошибка

### Пример ошибки из логов

validation error log Развернуть исходный код
expand source?

`Caused by: org.xml.sax.SAXParseException: cvc-pattern-valid: Value 'Фамилия476592111354' is not facet-valid with respect to pattern '[-А-Яа-яёЁ ]{1,100}' for type 'string-100'.`

В данном случае

Value 'Фамилия476592111354' - значение из процесса

pattern '[-А-Яа-яёЁ ]{1,100}' - паттерн RegExp, установленный для поля

type 'string-100' - тип данных для элемента, установленный в XSD схеме

Самая частая ошибка на тестовых стендах - в ФИО гражданина есть цифры (т.к. большинство записей заводится в таком формате: 'Фамилия476592111354 Имя476592111354 Отчество476592111354'), которые не предусмотрены в XSD

Фильтровать данные таблицы Создать сводную таблицу Создать диаграмму
Configure buttons visibility
Нравится Станьте первыми кому понравится это

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

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

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

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

- Абзац

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

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

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

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

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

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

- Ссылка

- Таблица

- Вставить

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

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

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

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

Подключение...
1 / 1
FSB [1]