Метод «Создать новое дело»¶
Endpoint: POST {hostname}/ldm-file-register-service/api/v1/files
Сценарий выполнения:
- Верификация входящего сообщения.
-
Выполняется расчет срока окончания хранения дела (атрибут «fr_file_storage_end_date»), если значение атрибута «fr_transit_file» равно «false»:
a. Из параметра «fr_standart_document_types» (значение параметра «cardinality» равно «MULTI») из входящего сообщения берется первый попавшийся объект и осуществляется получение его описания по id. Для получения описания используется метод GET /api/v1/items/{id} сервиса dh-documents-service.
b. Рассчитывается срок хранения дела по формуле: «fr_file_storage_start_date» (дата из тела входящего сообщения) + количество лет из параметра «fr_storage_period» записи справочника, полученного на этапе 2a, минус 1 день (например, дата начала 01.01.2025 + 5 лет = 31.12.2029). Если значение параметра «fr_file_storage_start_date» и/или «fr_storage_period» не указаны или имеют значение «null», то не выполняется расчет.
-
По значению «id» параметра «frFileStorageType» из входящего сообщения выполняется запрос в таблицу «dh_items» и получается значение «frSystemCode». Значение параметра «frSystemCode» равно «ELECTRONIC».
- Выполняется создание нового дела с помощью метода POST /api/v1/collections сервиса dh-collections-service.
- Выполняется создание нового тома дела с помощью метода POST /api/v1/files/{id}/volumes. В теле запроса передаются данные, указанные в таблице. Предварительно необходимо получить описание записи бизнес-объекта с кодом класса, равным значению параметра «r_dic_file_section_state», у которого значение параметра «fr_system_code» равно «CREATED».
- Сервис возвращает ответ <201 Created> и DhCollectionDto с созданным делом.
Маппинг параметров запроса метода «Создать новое дело»
| Входящие параметры | Тип данных | Способ передачи параметров | Требования к заполнению |
|---|---|---|---|
| name | string | Body | Заполняется по шаблону: <name дела> пробел Том <frFileSectionNumber>». Например, «Приказы по основной деятельности Том 1» |
| className | string | Body | Значение «fr_dic_file_sections» |
| description | string | Body | Заполняется по шаблону: <name дела> пробел Том <frFileSectionNumber>». Например, «Приказы по основной деятельности Том 1 |
| fr_file_section_number | - | - | Значение «1» |
| fr_file_section_storage_type | - | - | Элемент справочника «Способы хранения», аналогичный объекту link, переданному в теле сообщения при создании дела |
| fr_file | - | - | Ссылка на дело, которое создается в рамках данного метода. Параметр «uri» формируется по шаблону: LDM:///<ldm-file-register-service>/<classCode справочника>/<id дела>#applicationCode=<значение настройки для текущего сервиса с ключом ldm.fileRegisterService.applicationCode>&forrmCode=<значение настройки для текущего сервиса с ключом ldm.file.formCode> |
| fr_file_section_state | - | - | Ссылка на запись справочника, описание которого получено на этапе 4. Параметр «uri» формируется по шаблону: LDM:///<ldm-file-register-service>/<classCode справочника>/<id тома дела>#applicationCode=<значение настройки для текущего сервиса с ключом ldm.fileRegisterService.applicationCode>&forrmCode=<значение настройки для текущего сервиса с ключом ldm.fileSectionState.formCode> |
Пример запроса:
curl -X 'POST' \
'https://editor-next.swagger.io/api/v1/files' \
-H 'accept: text/plain' \
-H 'Content-Type: application/json' \
-d '{
{
"name": "string",
"description": "string",
"className": "string",
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
}
}'