Метод «Обновить статусы документов и описей после приемки в архив»

Endpoint: PATCH {hostname}/ldm-long-term-archive-service/api/v1/inventory-task/{id}/complete

Метод позволяет установить новые статусы для описи, томов дел и документов, включенных в опись.

Сценарий выполнения:

  1. Верификация входящего сообщения. В теле входящего сообщения передается идентификатор описи дел структурного подразделения.
  2. Осуществляется поиск задачи в таблице «inventory_task», где «inventory_id» равно {id}.
  3. Осуществляется поиск всех задач по документам в таблице «document_subtask», где «inventory_task_id» равно «id» задачи из этапа 2.
  4. Определяется список томов дела, включенных в опись дел структурного подразделения. Осуществляется получение связей описи и томов дела с помощью атрибутивного поиска сервиса dh-relations-service, где передается «className», равный «da_relation_inventory_files_sections» и «source.id», равный идентификатору описи дел структурного подразделения.
  5. Для каждого документа из задач, полученных на этапе 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.

  6. Обновляются параметры всех томов дела из подзадач с документами. Для этого в сервисе 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>

  7. Для каждого дела из подзадач с документами:

    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>

  8. Обновляются параметры описи в сервисе 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 заполнить текущей датой.

  9. Сервис возвращает ответ <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'