Детали задачи
-
История
-
Решение: Готово
-
High
-
Не заполнено
-
Не заполнено
-
Не заполнено
-
ECOS 6.11-21.11, ECOS 21.11-05.12
-
Требуется Долг
Описание
Разработать Records DAO в микросервисе ecos-model для работы виджета документов.
Все запросы ниже должны учитывать, что alfresco в поставке может и не быть. В этом случае всегда возвращаем пустой список. Проверить доступность alfresco можно следующим запросом:
EcosWebAppsApi.isAppAvailable(AppName.ALFRESCO)
Запросы:
- Получение списка документов из сущности (в alfresco этот список формируется на основе чеклистов).
{ "query": { "sourceId": "emodel/documents", "language": "document-types", "query": { "recordRef": "alfresco/@workspace://SpacesStore/df2dcc62-aade-4230-81d0-42d71cb7d8c5" } }, "attributes": [ "type?id", "multiple?bool", "mandatory?bool" ] }
Если recordRef - это alfresco нода, то запрос следует делегировать в alfresco. Иначе возвращаем пустой список т.к. чеклистов вне alfresco не существует.
В ответе должен быть список из сущностей с тремя полями:
type: RecordRef multiple: Boolean mandatory: Boolean
2. Получение документов по типам
{ "query": { "sourceId": "emodel/documents", "query": { "recordRef": "alfresco/@workspace://SpacesStore/df2dcc62-aade-4230-81d0-42d71cb7d8c5", "types": [ "emodel/type@category-document-type/kind-d-counterparty-documents", "emodel/type@category-document-type/kind-d-scan-documents", "emodel/type@ecos-fin-request-attachments", "emodel/type@ecos-fin-request-attachments/ecos-fin-request-attachment-other", "emodel/type@category-document-type/cat-document-other", "emodel/type@cat-personal-documents/kind-d-miscellaneous" ] }, "language": "types-documents" }, "attributes": [ ".atts(n:\"documents\"){recordRef:id,__id:id,__name:att(n:\"name\"){disp},__modified:att(n:\"_modified\"){disp},__loadedBy:att(n:\"_modifier\"){disp},}", "type" ] }
В результате должен быть список из сущностей с двумя полями:
type: RecordRef documents: RecordRef[]
Если sourceId у типов равен “alfresco/”, то отправляем запрос по этим типам в alfresco. При этом нужно собрать все такие типы в один запрос.
Если sourceId не равен “alfresco/“, то делаем следующий запрос за документами на sourceId из типа предварительно сгруппировав все типы по sourceId:
{ "t": "and", "val": [ { "t": "in", "att": "_type", "val": [ "_тут_все_типы_по_которым_идет_поиск_с_одним_sourceId" ] }, { "t": "eq", "att": "_parent", "val": "_тут_значение_из_record_ref_поля_в_query" } ] }
Вложенные файлы
Связи запроса
- mentioned on