Метод «Уничтожить документы по акту»¶
Endpoint: POST {hostname}/ldm-digital-archive-service/api/v1/da/destruction-act/{id}/disposet
Метод позволяет запустить процесс уничтожения документов в Cистеме по акту о выделении дел к уничтожению, в результате которого выполняются:
- Изменение статуса акта на «Уничтожение выполнено».
- Изменение статусов дел, томов дел, архивных документов и документов оперативного архива.
- Удаление файлов документов (если значение параметра «deleteFiles» равно «true»).
Сценарий выполнения:
- Верификация входящего сообщения. В теле входящего сообщения передается параметр «deleteFiles» типа boolean. В path запроса передается идентификатор «id» акта о выделении дел к уничтожению.
- Осуществляется получение описания документа, значение параметра «id» которого равно {id}, с помощью метода GET /api/v1/documents/{id} сервиса dh-documents-service.
- Определяется список томов дел, включенных в акт о выделении дел к уничтожению из этапа 2. Осуществляется получение связей акта и томов дела с помощью атрибутивного поиска сервиса dh-relations-service. Передаются параметры «className», значение которого равно «da_relation_documents_destruction_act_files_sections», и «source.id», которое равно идентификатору акта.
- Для каждого тома дела, полученного на этапе 3 («target.id»), определяется список документов, включенных в том дела. Для этого используется метод GET /apiv1/collections/{collectionId}/content сервиса dh-collections-service, где в качестве «collectionId» передается идентификатор тома дела.
- Для каждого из документов, полученных на этапе 4, у которого параметр «className» равен «da_doc_archive», осуществляется получение соответствующего ему документа оперативного архива. Для этого используется метод GET /api/v1/documents/{id} сервиса dh-documents-service. Передается параметр «id», значение которого равно «da_oper_document_id» из атрибута документа из этапа 4.
-
Для каждого документа, полученного на этапе 4 и 5:
a. Обновляются параметры документа в сервисе dh-documents-service с помощью метода PUT /api/v1/documents/{id}/versions/{versionId}, где в качестве «id» и «versionId» передаются идентификатор документа и версии документа соответственно.
i. В атрибуте «da_doc_state» устанавливается ссылка на значение справочника «Состояния документов», у которого значение параметра «da_system_code» равно «DESTROYED». Параметр «uri» для атрибута «da_doc_state» формируется по шаблону:
LDM:///<ldm-digital-archive-service>/<classCode справочника>/<id записи справочника>#applicationCode=<значение настройки для текущего сервиса с ключом ldm.digitalArchiveService.applicationCode>&formCode=<значение настройки для текущего сервиса с ключом ldm.daDocState.formCode>ii. В атрибуте «da_destruction_act» устанавливается ссылка на акт о выделении дел к уничтожению, параметры которого получены на этапе 2. Параметр «uri» для атрибута «da_destruction_act» формируется по шаблону:
LDM:///<ldm-digital-archive-service>/<classCode объекта>/<id объекта>#applicationCode=<значение настройки для текущего сервиса с ключом ldm.digitalArchiveService.applicationCode>&formCode=<значение настройки для текущего сервиса с ключом ldm.daDocDestructionAct.formCode>b. Если в теле сообщения значение параметра «deleteFiles» равно «true»:
i. Осуществляется получение вложенных документов с помощью метода GET /api/v1/documents/{id}/versions/{versionId}/include, где {id} и {versionId} – идентификатор документа и версии документа соответственно. Идентификатор файла для каждого документа берется из параметра «fileId».
ii. Выполняется удаление файлов из предыдущего этапа с помощью метода DELETE /api/v1/files/{fileId} сервиса dh-files-service.
iii. В документе устанавливается значение параметра «fileId», равное «null».
-
Для каждого тома дела, полученного на этапе 3, выполняются следующие действия:
a. Осуществляется получение описания каждого тома дела с помощью метода GET /apiv1/collections/{collectionId} сервиса dh-collections-service.
b. Обновляются атрибуты тома. Для этого в сервисе dh-collections-service используется метод PUT /api/v1/collections/{collectionId}, где в качестве «collectionId» передается идентификатор тома.
i. В атрибуте «fr_file_section_state» устанавливается ссылка на значение справочника с кодом класса «fr_dic_file_section_state», у которого значение параметра «da_system_code» равно «DESTROYED». Параметр «uri» для атрибута «fr_file_section_state» формируется по шаблону:
LDM:///<ldm-digital-archive-service>/<classCode справочника>/<id записи справочника>#applicationCode=<значение настройки для текущего сервиса с ключом ldm.digitalArchiveService.applicationCode>&formCode=<значение настройки для текущего сервиса с ключом ldm.fileSectionState.formCode>ii. В атрибуте «fr_file_section_destruction_act» устанавливается ссылка на акт о выделении дел к уничтожению, параметры которого получены на этапе 2. Параметр «uri» для атрибута «fr_file_section_destruction_act» формируется по шаблону:
LDM:///<ldm-digital-archive-service>/<classCode объекта>/<id объекта>#applicationCode=<значение настройки для текущего сервиса с ключом ldm.digitalArchiveService.applicationCode>&formCode=<значение настройки для текущего сервиса с ключом ldm.daDocDestructionAct.formCode>c. Осуществляется получение описания дела по идентификатору, содержащемуся в атрибуте «fr_file_id» тома дела.
d. Определяется список всех томов дела. Для этого используется метод GET /api/v1/collections/{collectionId}/content сервиса dh-collections-service, где в качестве «collectionId» передается идентификатор дела из параметра «file_id» подзадачи, а затем осуществляется получение описания каждого тома дела с помощью метода GET /api/v1/collections/{collectionId} сервиса dh-collections-service:
i. Проводится проверка, есть ли в списке, полученном на этапе 7d, тома в статусе, отличном от «Уничтожен» (значение параметра «fr_system_code» равно «DESTROYED»).
-
Если есть, то осуществляется переход к следующему шагу.
-
Если нет, то обновляются параметры дела в сервисе dh-collections-service с помощью метода PUT /api/v1/collections/{collectionId}, передавая в качестве «collectionId» идентификатор дела.
a. В атрибуте «fr_file_state» устанавливается ссылка на значение справочника с кодом класса «fr_dic_file_state», у которого значение параметра «da_system_code» равно «DESTROYED». Параметр «uri» для атрибута «fr_file_state» формируется по шаблону:
LDM:///<ldm-digital-archive-service>/<classCode справочника>/<id записи справочника>#applicationCode=<значение настройки для текущего сервиса с ключом ldm.digitalArchiveService.applicationCode>&formCode=<значение настройки для текущего сервиса с ключом ldm.fileState.formCode>b. В атрибуте «fr_file_destruction_act» устанавливается ссылка на акт о выделении дел к уничтожению, параметры которого получены на этапе 2. Параметр «uri» для атрибута «fr_file_destruction_act» формируется по шаблону:
LDM:///<ldm-digital-archive-service>/<classCode объекта>/<id объекта>#applicationCode=<значение настройки для текущего сервиса с ключом ldm.digitalArchiveService.applicationCode>&formCode=<значение настройки для текущего сервиса с ключом ldm.daDocDestructionAct.formCode>c. Для параметра «fr_storage_date_expired» устанавливается значение «false».
-
-
Обновляются параметры акта в сервисе dh-documents-service с помощью метода PUT /api/v1/documents/{id}/versions/{versionId}, где в качестве «id» передается идентификатор акта. Устанавливается в атрибуте «da_documents_destruction_act_state» ссылка на значение справочника с кодом класса «da_dic_documents_destruction_act_state», у которого «da_system_code» равно «DESTROYED». Параметр «uri» для атрибута «da_documents_destruction_act_state» формируется по шаблону:
LDM:///<ldm-digital-archive-service>/<classCode справочника>/<id записи справочника>#applicationCode=<значение настройки для текущего сервиса с ключом ldm.digitalArchiveService.applicationCode>&formCode=<значение настройки для текущего сервиса с ключом ldm.documentsDestructionActState.formCode> - Сервис возвращает в ответе <200 OK> и DocumentDto с описанием акта после изменения.
Маппинг параметров запроса метода «Уничтожить документы по акту»
| Входящие параметры | Тип данных | Способ передачи параметров | Требования к заполнению |
|---|---|---|---|
| id | string($uuid) | path | ID акта о выделении дел к уничтожению |
| deleteFiles | boolean | query | Удаление файлов документа |
Пример запроса:
curl -X 'POST' \
'https://editor-next.swagger.io/api/v1/da/destruction-act/1b494d3b-dcac-4090-bdda-0cd364bcab95/dispose\
-H 'accept: text/plain'