Детали задачи
-
История
-
Решение: Готово
-
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