Метод «Обновить статусы документов и описей после приемки в архив»¶
Endpoint: PATCH {hostname}/ldm-long-term-archive-service/api/v1/inventory-task/{id}/complete
Метод позволяет установить новые статусы для описи, томов дел и документов, включенных в опись.
Сценарий выполнения:
- Верификация входящего сообщения. В теле входящего сообщения передается идентификатор описи дел структурного подразделения.
- Осуществляется поиск задачи в таблице «inventory_task», где «inventory_id» равно {id}.
- Осуществляется поиск всех задач по документам в таблице «document_subtask», где «inventory_task_id» равно «id» задачи из этапа 2.
- Определяется список томов дела, включенных в опись дел структурного подразделения. Осуществляется получение связей описи и томов дела с помощью атрибутивного поиска сервиса dh-relations-service, где передается «className», равный «da_relation_inventory_files_sections» и «source.id», равный идентификатору описи дел структурного подразделения.
-
Для каждого документа из задач, полученных на этапе 3:
a. Осуществляется получение описания документа с помощью метода GET /api/v1/documents/{id} сервиса dh-documents-service, где передается идентификатор документа из «document_id» подзадачи.
b. Обновляется параметр документа в сервисе dh-documents-service с помощью метода PUT /api/v1/documents/{id}/versions/{versionId}, где передается в качестве «id» и «versionId» идентификатор документа и версии документа соответственно из этапа 5a. Устанавливается в атрибуте «da_doc_state» ссылка на значение справочника «Состояния документов», у которого значение параметра «da_system_code» равно «TRANSFERRED_TO_ARCHIVE». Параметр «uri» для атрибута «da_doc_state» формируется по шаблону:
LDM:///<ldm-digital-archive-service>/<classCode справочника>/<id записи справочника>#applicationCode=<значение настройки для текущего сервиса с ключом ldm.digitalArchiveService.applicationCode>&forrmCode=<значение настройки для текущего сервиса с ключом ldm.daDocState.formCode>c. Выполняется удаление документа оперативной зоны из тома дела. Для этого используется метод DELETE /api/v1/collections/{collectionId}/content/{contentId} сервиса dh-collections-service, где «collectionId» равно «file_section_id» подзадачи, «contentId» равно «document_id» подзадачи.
d. Выполняется добавление архивного документа («id» равно «archive_doc_id» из подзадачи) в том дела. Для этого используется метод POST /api/v1/collections/{collectionId}/content сервиса dh-collections-service, где передается «collectionId», равный «file_section_id» подзадачи, «contentId» равен «archive_doc_id» подзадачи, «contentClass» равен «da_doc_archive», равен «serviceName» dh-collections-service.
e. В архивном документе обновляется параметр «da_archive_document_file», в котором указывается ссылка на дело, в которое он был включен на предыдущем этапе. Для этого используется метод PUT /api/v1/documents/{id}/versions/{versionId}, где в качестве «id» и «versionId» передается идентификатор документа и версии архивного документа соответственно. В атрибуте «da_archive_document_file» устанавливаются данные из атрибута «da_file» документа из этапа 5a.
-
Обновляются параметры всех томов дела из подзадач с документами. Для этого в сервисе dh-collections-service используется метод PUT /api/v1/collections/{collectionId}, где в качестве «collectionId» передается идентификатор тома из подзадачи. В атрибуте «fr_file_section_state» устанавливается ссылка на значение справочника с кодом класса «fr_dic_file_section_state», у которого «fr_system_code» равно «TRANSFERRED_TO_ARCHIVE». Параметр «uri» для атрибута «fr_file_section_state» формируется по шаблону:
LDM:///<ldm-digital-archive-service>/<classCode справочника>/<id записи справочника>#applicationCode=<значение настройки для текущего сервиса с ключом ldm.digitalArchiveService.applicationCode>&forrmCode=<значение настройки для текущего сервиса с ключом ldm.fileSectionState.formCode> -
Для каждого дела из подзадач с документами:
a. Определяется список всех томов дела. Для этого используется метод GET /apiv1/collections/{collectionId}/content сервиса dh-collections-service, где в качестве «collectionId» передается идентификатор дела из параметра «file_id» подзадачи, а затем осуществляется получение описания каждого тома дела с помощью метода GET /apiv1/collections/{collectionId} сервиса dh-collections-service.
b. Выполняется проверка есть ли в списке, полученном на этапе 7a, тома в статусе, отличном от «Передан на архивное хранение» («fr_system_code» равно «TRANSFERRED_TO_ARCHIVE»):
i. Если есть, то осуществляется переход к следующему шагу.
ii. Если нет, то обновляются параметры дела в сервисе dh-collections-service с помощью метода PUT /api/v1/collections/{collectionId}, где в качестве «collectionId» передается идентификатор дела из этапа 9. В атрибуте «fr_file_state» устанавливается ссылка на значение справочника с кодом класса «fr_dic_file_state», у которого «fr_system_code» равно «TRANSFERRED_TO_ARCHIVE». Параметр «uri» для атрибута «fr_file_state» формируется по шаблону:
LDM:///<ldm-digital-archive-service>/<classCode справочника>/<id записи справочника>#applicationCode=<значение настройки для текущего сервиса с ключом ldm.digitalArchiveService.applicationCode>&forrmCode=<значение настройки для текущего сервиса с ключом ldm.fileState.formCode> -
Обновляются параметры описи в сервисе dh-documents-service с помощью метода PUT /api/v1/documents/{id}/versions/{versionId}, где в качестве «id» передается идентификатор описи. В атрибуте «da_inventory_file_state» устанавливается ссылка на значение справочника с кодом класса «da_dic_inventory_file_state», у которого «da_system_code» равно «TRANSFERRED_TO_ARCHIVE». Параметр «uri» для атрибута «da_inventory_file_state» формируется по шаблону:
LDM:///<ldm-digital-archive-service>/<classCode справочника>/<id записи справочника>#applicationCode=<значение настройки для текущего сервиса с ключом ldm.digitalArchiveService.applicationCode>&forrmCode=<значение настройки для текущего сервиса с ключом ldm.inventoryFileState.formCode>, параметр da_approval_date заполнить текущей датой. - Сервис возвращает ответ <200 OK> и DocumentDto с описанием описи после изменения.
Маппинг параметров запроса метода «Обновить статусы документов и описей после приемки в архив»
| Входящие параметры | Тип данных | Способ передачи параметров | Требования к заполнению |
|---|---|---|---|
| id | string($uuid) | path | Идентификатор описи дел структурного подразделения |
Пример запроса:
curl -X 'PATCH' \
'https://editor-next.swagger.io/api/v1/inventory-task/ 3fa85f64-5717-4562-b3fc-2c963f66afa6/complete' \
-H 'accept: text/plain'