Загрузить изображение для проекта: 'Citeck Community'
  1. Citeck Community
  2. ECOSCOM-4869

Create emodel/documents records DAO

    XMLWordДля печати

Детали задачи

    • Icon: История История
    • Решение: Готово
    • Icon: High High
    • Community 4.1
    • Не заполнено
    • Не заполнено
    • Не заполнено
    • ECOS 6.11-21.11, ECOS 21.11-05.12
    • Требуется

    Описание

      Разработать Records DAO в микросервисе ecos-model для работы виджета документов.

      Все запросы ниже должны учитывать, что alfresco в поставке может и не быть. В этом случае всегда возвращаем пустой список. Проверить доступность alfresco можно следующим запросом:

      EcosWebAppsApi.isAppAvailable(AppName.ALFRESCO)

      Запросы:

      1. Получение списка документов из сущности (в 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"
          }
        ]
      }

      Вложенные файлы

        Активность

          Люди

            roman.viryasov@citeck.ru Roman Viryasov
            pavel.simonov@citeck.ru Pavel Simonov
            Голоса:
            0 Голосовать за эту задачу
            Наблюдатели:
            4 Начать наблюдение за этой задачей

            Даты

              Создано:
              Обновленo:
              Дата решения:

              Учет времени

                Оценка:
                Первоначальная оценка - 1 неделя, 3 дни
                1w 3d
                Осталось:
                Оставшееся время - 0 минуты
                0m
                Затрачено:
                Затраченное время - 1 неделя, 2 дни, 7 часы Незатраченное время
                1w 2d 7h