kz.arta.synergy.api.rest.admin

Class DBService

kz.arta.synergy.api.rest.admin

Class UsersService

kz.arta.synergy.api.rest.admin

Class ProcessesService

kz.arta.synergy.api.rest.person

Class PersonService

kz.arta.synergy.api.rest.person

Class PersonLoad

kz.arta.synergy.api.rest.person

Class UserPhotoServlet

kz.arta.synergy.api.rest.logger

Class LoggerService

kz.arta.synergy.api.rest.common

Class SettingsService

kz.arta.synergy.api.rest.mobile

Class MobileUtilsService

kz.arta.synergy.api.rest.cors

Class AccessForbiddenServlet

kz.arta.synergy.api.rest.userchooser

Class UserChooserService

kz.arta.synergy.api.rest.ab

Class AddressBookService

kz.arta.synergy.api.rest.translation

Class TranslationService

kz.arta.synergy.api.rest.delegation

Class DelegationService

kz.arta.synergy.api.rest.works

Class WorkFlowService

kz.arta.synergy.api.rest.registry

Class RegistryService

kz.arta.synergy.api.rest.auth

Class AuthService



  • public class AuthService
    extends java.lang.Object
    Сервис в котором есть методы для авторизации пользователя Created by: Abzal Kultayev Date: 28.04.16 Time: 16:03
    • Constructor Summary

      Constructors 
      Constructor and Description
      AuthService() 
    • Method Summary

      Methods 
      Modifier and Type Method and Description
      Response checkUser()
      API для авторизации пользователя
      Response checkUserIsAdmin(java.lang.String role)
      API для авторизации суперадмина и суперметодолога

      URL rest/api/auth/{role}
      Method GET
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • AuthService

        public AuthService()
    • Method Detail

      • checkUserIsAdmin

        public Response checkUserIsAdmin(java.lang.String role)
        API для авторизации суперадмина и суперметодолога

        URL rest/api/auth/{role}
        Method GET
        Parameters:
        role - роль пользователя, с которой он хочет авторизоваться, один из трех вариантов
        • user - пользователь (по умолчанию)
        • methodologist - суперметодолог
        • administrator - суперадминистратор
        Returns:
        HTTP код 200 в случае успешной аутентификации, 401 - если пользователь не имеет доступа в систему, не найден или передан неправильный пароль, 403 - в случае, если он не обладает указанной ролью, 500 - ошибка на сервере.

        Альтернативные потоки событий.
        Альтернативный поток №1. Переданный в HTTP Basic Auth пароль пользователя неверен, такой пользователь отсутствует в системе или он не имеет доступа в систему. Сервер возвращает ошибку HTTP 401.
        Альтернативный поток №2. Пользователь не обладает указанной в параметре ролью. Сервер возвращает ошибку HTTP 403.
        Альтернативный поток №3. Во время выполнения метода на сервере произошла ошибка. Сервер возвращает ошибку HTTP 500.
kz.arta.synergy.api.rest.projects.template

Class ProjectTemplateService

    • Method Summary

      Methods 
      Modifier and Type Method and Description
      void changeVisibility(java.lang.String id, boolean visible)
      Изменяет видимость шаблона
      URL: /rest/projects/templates/{id}/visible/{true | false}
      Метод: POST
      java.util.Set<java.lang.String> filterDictionaryItems(java.util.Set<java.lang.String> idsToFilter)
      arta.synergy.common.mbo.actions.ActionsIF#filterWorkResultDicItems(Set)
      PlanTemplate get(java.lang.String id)
      Возвращает шаблон проекта с заданным id JSON ответа - список объектов, описанных в ProjectTemplateService.saveTemplate(String, PlanTemplate), за исключением рисков и отображаемых полей, которые null.
      java.util.List<PlanTemplateAction> getActions(java.lang.String templateId)
      Возвращает список действий для шаблона
      URL: /rest/projects/templates/actions/list
      Метод: GET
      getTemplateForm(java.lang.String actionId)
      arta.synergy.common.mbo.actions.ActionsIF#getProjectTemplate(String)
      java.util.List<PlanTemplateName> getTemplateNames()
      Возвращает список названий шаблонов, их id и коды.
      java.lang.Integer getTemplatePages(int countInPart, java.lang.String search)
      Возвращает количество страниц при заданных параметрах.
      java.util.List<PlanTemplate> list(ProjectTemplateSearchParams params)
      Возвращает список всех шаблонов, удовлетворяющих запросу.
      newTemplate(PlanTemplate template)
      Добавляет новый шаблон.
      java.lang.String saveLink(java.lang.String structNumber, java.lang.String link, java.lang.String locale) 
      saveTemplate(java.lang.String id, PlanTemplate template)
      Сохраняет шаблон проекта
      URL: /rest/projects/templates/{id}
      Метод: POST

      JSON запроса: calcType - int тип расчета сроков 0 - автоматический 1 - ручной progressCalcType - int тип расчета прогресса 0 - Среднее арифметическое 1 - Среднее взвешенное progressRecalculation - boolean перерасчет прогресса при изменении сроков true - настройка включена false - настройка выключена actionWeightField - String вес мероприятия (строка) datesType - int тип ввода сроков 0 - стандартный (дата начала и длительность) 1 - абсолютный (дата начала и завершения) progressType - int тип прогресса 1 - фактический прогресс / прогресс по работе 2 - фактический прогресс / плановый прогресс id - String идентификатор шаблона name - String название шаблона code - String код шаблона visible - boolean признак видимости шаблона true - видимый false - скрыт risks - список рисков riskID - String идентификатор риска riskName - String название риска planID - String идентификатор проекта enterDate - Date дата начала deleted - Date удален ли риск authorInfo: userID - String идентификатор владельца проекта userName - String имя владельца проекта resUserInfo userID - String идентификатор ответственного userName - String имя ответственного probability - int вероятность impact - int воздействие description - String описание риска (мероприятия) statusID - int идентификатор статус status - String название статуса typeID - String идентификатор типа риска typeName - String тип риска fields - List String список отображаемых полей length - длительность start_date - начало finish_date - завершение depends_on - зависит responsible - ответственный cost_planned - плановая стоимость cost_fact - фактическая стоимость percent - прогресс actions - List PlanTemplateAction список мероприятий: id - String идентификатор мероприятия structNumber - List Integer структурный номер мероприятия name - String название мероприятия duration - double длительность мероприятия (в днях) links - List PlanLink зависимости мероприятия: fromSN - StructNumber структурный номер мероприятия, от которого зависит данное linkType - enum PlanLinkType тип зависимости SS - зависимость типа Начало-Начало SF - зависимость типа Начало-Окончание FS - зависимость типа Окончание-Начало FF - зависимость типа Окончание-Окончание delay - int задержка (в днях) valid - boolean признак валидности зависимости true - валидна false - не валидна parentId - String идентификатор родительского мероприятия
      Пример:
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ProjectTemplateService

        public ProjectTemplateService()
    • Method Detail

      • saveLink

        public java.lang.String saveLink(java.lang.String structNumber,
                                java.lang.String link,
                                java.lang.String locale)
      • list

        public java.util.List<PlanTemplate> list(ProjectTemplateSearchParams params)
        Description copied from interface: ProjectTemplateService
        Возвращает список всех шаблонов, удовлетворяющих запросу. JSON ответа - список объектов, описанных в ProjectTemplateService.get(String)
        URL: /rest/projects/templates/list
        Метод: POST

        JSON запроса:
        • ascending - boolean направление сортировки
          • true - по возрастанию (по умолчанию)
          • false - по убыванию
        • countInPart - int количество шаблонов на странице (не обязательное, по умолчанию - 30)
        • pageNumber - int номер страницы (не обязательное, по умолчанию - 0)
        • search - String поисковый запрос

        Пример отсылаемого JSON
            {
                "ascending": true,
                "search": "тест",
                "pageNumber": 0,
                "countInPart": 30
            }
             
        Specified by:
        list in interface ProjectTemplateService
        Parameters:
        params - параметры поиска
        Returns:
        список шаблонов
      • saveTemplate

        public  saveTemplate(java.lang.String id,
                         PlanTemplate template)
        Description copied from interface: ProjectTemplateService
        Сохраняет шаблон проекта
        URL: /rest/projects/templates/{id}
        Метод: POST

        JSON запроса:
        • calcType - int тип расчета сроков
          • 0 - автоматический
          • 1 - ручной
        • progressCalcType - int тип расчета прогресса
          • 0 - Среднее арифметическое
          • 1 - Среднее взвешенное
        • progressRecalculation - boolean перерасчет прогресса при изменении сроков
          • true - настройка включена
          • false - настройка выключена
        • actionWeightField - String вес мероприятия (строка)
        • datesType - int тип ввода сроков
          • 0 - стандартный (дата начала и длительность)
          • 1 - абсолютный (дата начала и завершения)
        • progressType - int тип прогресса
          • 1 - фактический прогресс / прогресс по работе
          • 2 - фактический прогресс / плановый прогресс
        • id - String идентификатор шаблона
        • name - String название шаблона
        • code - String код шаблона
        • visible - boolean признак видимости шаблона
          • true - видимый
          • false - скрыт
        • risks - список рисков
          • riskID - String идентификатор риска
          • riskName - String название риска
          • planID - String идентификатор проекта
          • enterDate - Date дата начала
          • deleted - Date удален ли риск
          • authorInfo:
            • userID - String идентификатор владельца проекта
            • userName - String имя владельца проекта
          • resUserInfo
            • userID - String идентификатор ответственного
            • userName - String имя ответственного
          • probability - int вероятность
          • impact - int воздействие
          • description - String описание риска (мероприятия)
          • statusID - int идентификатор статус
          • status - String название статуса
          • typeID - String идентификатор типа риска
          • typeName - String тип риска
        • fields - List String список отображаемых полей
          • length - длительность
          • start_date - начало
          • finish_date - завершение
          • depends_on - зависит
          • responsible - ответственный
          • cost_planned - плановая стоимость
          • cost_fact - фактическая стоимость
          • percent - прогресс
        • actions - List PlanTemplateAction список мероприятий:
          • id - String идентификатор мероприятия
          • structNumber - List Integer структурный номер мероприятия
          • name - String название мероприятия
          • duration - double длительность мероприятия (в днях)
          • links - List PlanLink зависимости мероприятия:
            • fromSN - StructNumber структурный номер мероприятия, от которого зависит данное
            • linkType - enum PlanLinkType тип зависимости
              • SS - зависимость типа Начало-Начало
              • SF - зависимость типа Начало-Окончание
              • FS - зависимость типа Окончание-Начало
              • FF - зависимость типа Окончание-Окончание
          • delay - int задержка (в днях)
          • valid - boolean признак валидности зависимости
            • true - валидна
            • false - не валидна
        • parentId - String идентификатор родительского мероприятия

        • Пример:
               {
                  "settings": {
                      "calcType": 0,
                      "progressCalcType": 0,
                      "progressRecalculation": false,
                      "actionWeightField": null,
                      "datesType": 0,
                      "progressType": 1
                  },
                  "id": "dd081e05-7a2c-454b-9972-441fd465704a",
                  "name": "example",
                  "code": "example",
                  "visible": true,
                  "risks": [
                      {
                          "riskID": null,
                          "riskName": "example_risk",
                          "planID": "dd081e05-7a2c-454b-9972-441fd465704a",
                          "enterDate": null,
                          "deleted": null,
                          "authorInfo": {
                              "userID": "1",
                              "userName": null
                          },
                          "resUserInfo": {
                              "userID": null,
                              "userName": null
                          },
                          "probability": 13,
                          "impact": 50,
                          "description": "Мероприятия по риску",
                          "statusID": 3,
                          "status": "Проводятся мероприятия",
                          "typeID": "inst",
                          "typeName": "Институциональные риски"
                      },
                      {
                          "riskID": "a2c32707-8a1b-4fba-8609-ca54adb554db",
                          "riskName": "dsfdfsdf",
                          "planID": "dd081e05-7a2c-454b-9972-441fd465704a",
                          "enterDate": "2015-08-12T00:00:00.000+0600",
                          "deleted": "2015-08-12T11:12:08.076+0600",
                          "authorInfo": {
                              "userID": "0a9eb338-9176-4ae3-8f0f-c3800f5685d9",
                              "userName": "Иванов И."
                          },
                          "resUserInfo": {
                              "userID": null,
                              "userName": ""
                          },
                          "probability": 13,
                          "impact": 50,
                          "description": "Описание мероприятий по риску",
                          "statusID": 2,
                          "status": "Запланирован",
                          "typeID": "inst",
                          "typeName": "Институциональные риски"
                      }
                  ],
                  "fields": [
                      "length",
                      "start_date",
                      "finish_date",
                      "depends_on",
                      "responsible",
                      "percent"
                  ],
                  "actions": [
                      {
                          "id": "13e88fd9-9225-4f9d-8e54-c8cde0596774",
                          "structNumber": {
                              "numbers": []
                          },
                          "name": "example",
                          "duration": 1,
                          "links": null,
                          "parentId": null
                      }
                  ]
              }
           
        Specified by:
        saveTemplate in interface ProjectTemplateService
        Returns:
        измененный шаблон в таком же формате, обернутый в ServerResult
      • changeVisibility

        public void changeVisibility(java.lang.String id,
                            boolean visible)
        Description copied from interface: ProjectTemplateService
        Изменяет видимость шаблона
        URL: /rest/projects/templates/{id}/visible/{true | false}
        Метод: POST
        Specified by:
        changeVisibility in interface ProjectTemplateService
        Parameters:
        id - - идентификатор шаблона
        visible - - видимость. Возможные варианты: true - видимый, false - скрытый
      • getTemplatePages

        public java.lang.Integer getTemplatePages(int countInPart,
                                         java.lang.String search)
        Description copied from interface: ProjectTemplateService
        Возвращает количество страниц при заданных параметрах.
        URL: /rest/projects/templates/pagesCount
        Метод: GET
        Specified by:
        getTemplatePages in interface ProjectTemplateService
        Parameters:
        countInPart - количество элементов на странице
        search - строка поиска
        Returns:
        количество страниц. если параметр search будет пустым, должно вернуться общее количество страниц; если ни одно значение не будет соответствовать запросу, должно вернуться значение 0.
      • getActions

        public java.util.List<PlanTemplateAction> getActions(java.lang.String templateId)
        Description copied from interface: ProjectTemplateService
        Возвращает список действий для шаблона
        URL: /rest/projects/templates/actions/list
        Метод: GET
        Specified by:
        getActions in interface ProjectTemplateService
        Parameters:
        templateId - id шаблона
        Returns:
        список действий над шаблоном. Возвращается список с элементами типа PlanTemplateAction
        Пример возвращаемого JSON:
         [
          {
               "id": "13e88fd9-9225-4f9d-8e54-c8cde0596774",
               "structNumber": {
                   "numbers": [1,2,3]
               },
               "name": "example",
               "duration": 1,
               "links": null,
               "parentId": null
           }
         ]
         
      • getTemplateNames

        public java.util.List<PlanTemplateName> getTemplateNames()
        Description copied from interface: ProjectTemplateService
        Возвращает список названий шаблонов, их id и коды.
        URL: /rest/projects/templates/names
        Метод: GET
        Specified by:
        getTemplateNames in interface ProjectTemplateService
        Returns:
        - список с элементами типа PlanTemplateName
        Пример возвращаемого JSON.
        [
            {
                "name": "1000005",
                "id": "1a8ce533-57c9-47fb-b102-fc60d4ab5a32",
                "code": "hgsudshguopsdjg"
            },
            {
                "name": "1000005",
                "id": "ad20fc0c-0202-4e85-8d5c-ba5d67100d97",
                "code": "1000005"
            },
            {
                "name": "1000010",
                "id": "1bc126a4-b56d-4598-84f3-445da8fd3bdf",
                "code": "1000010"
            },
            {
                "name": "100006",
                "id": "0c151228-8e24-4eb9-bda5-773a054c4e5a",
                "code": "100006"
            }
        ]
         
      • filterDictionaryItems

        public java.util.Set<java.lang.String> filterDictionaryItems(java.util.Set<java.lang.String> idsToFilter)
        Description copied from interface: ProjectTemplateService
        arta.synergy.common.mbo.actions.ActionsIF#filterWorkResultDicItems(Set)
        Specified by:
        filterDictionaryItems in interface ProjectTemplateService
kz.arta.synergy.api.rest.projects

Class ProjectService



  • public class ProjectService
    extends java.lang.Object
    Created by vitaliy.zaretskiy on 10.10.14.
    • Field Summary

      Fields 
      Modifier and Type Field and Description
      static java.lang.String AF_DICTIONARY_NAME 
      static java.lang.String NAME
      Имена колонок
      static java.lang.String PORTFOLIO 
      static java.lang.String PROJECT 
      static java.lang.String TYPE 
    • Constructor Summary

      Constructors 
      Constructor and Description
      ProjectService() 
    • Method Summary

      Methods 
      Modifier and Type Method and Description
      java.lang.String assignActionResponsible(java.util.List<java.lang.String> userID, java.lang.String actionID, java.lang.String locale)

      Назначение ответственных за мероприятие проекта

      URL: rest/api/projects/assign_action_responsible

      Type: POST

      java.lang.String createArrangement(java.lang.String name, double costFact, double costExpected, java.lang.String groupID, boolean veha, java.lang.String startDate, java.lang.String finishDate, double length, int workloadType, double workloadValue, java.lang.String locale)
      Метод создает мероприятие для указанного проекта
      java.lang.String createProject(java.lang.String name, java.lang.String code, double costFact, double costExpected, java.lang.String parentItemID, java.lang.String startDate, java.lang.String finishDate, double length, int workloadType, double workloadValue, java.lang.String locale)
      Метод создает проект для указанного портфеля
      java.lang.String editArrangement(java.lang.String name, double costFact, double costExpected, java.lang.String actionID, java.lang.String groupID, java.lang.String startDate, java.lang.String finishDate, double length, int workloadType, double workloadValue, java.lang.String locale)
      Метод изменяет существующее мероприятие
      java.lang.String editPointers(java.lang.String items, java.lang.String actionID, java.lang.String locale)
      Метод изменяет значения дополнительных полей у мероприятия
      java.lang.String editProject(java.lang.String name, java.lang.String code, java.lang.String actionID, java.lang.String parentItemID, double costFact, double costExpected, java.lang.String startDate, java.lang.String finishDate, double length, int workloadType, double workloadValue, java.lang.String locale)
      Метод предназначен для редактирования проекта
      java.lang.String findProjectByName(java.lang.String search, java.lang.String folderType, java.lang.String locale)

      Поиск проекта по названию

      URL: rest/api/projects/find_by_name

      Type: GET

      java.lang.String getActionsInfo(ActionsList aList)
      метод для получения сроков и процента мероприятий
      java.lang.String getAf(java.lang.String actionID, java.lang.String type, java.lang.String locale)
      Метод используется для получения информации о дополнительных полях для проекта/портфеля
      java.lang.String getAllActionsOfProject(java.lang.String actionID, java.lang.String locale)

      Получение прогресса/сроков мероприятий проекта

      URL: rest/api/projects/get_project_actions

      Type: GET

      java.lang.String getArrangements(java.lang.String actionID, boolean child, java.lang.String locale)
      Метод возвращает список мероприятий/мероприятие
      java.lang.String getPlanFolder(java.lang.String actionID, java.lang.String locale)

      Получение идентификатора папки проекта

      URL: rest/api/projects/get_folder

      Type: GET

      java.lang.String getProjectTree(java.lang.String itemID, java.lang.String folderType, boolean onlyFolders, java.lang.String locale)
      Для того, чтобы создать проект - нужно знать, где его создать.
      Response getProjectTreeItemInfo(java.lang.String actionID, java.lang.String locale)
      получение информации о проекте или портфеле
      java.lang.String getWorkLoads(java.lang.String locale)
      Метод возвращает описание нагрузок в системе
      java.lang.String removeAf(java.lang.String actionID, java.util.List<java.lang.String> fieldID, java.lang.String type, java.lang.String locale)
      Метод позволяет удалять доп.
      java.lang.String setAf(java.lang.String actionID, java.util.List<java.lang.String> fieldID, java.lang.String type, java.lang.String locale)
      Метод позволяет добавлять доп.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ProjectService

        public ProjectService()
    • Method Detail

      • findProjectByName

        public java.lang.String findProjectByName(java.lang.String search,
                                         java.lang.String folderType,
                                         java.lang.String locale)

        Поиск проекта по названию

        URL: rest/api/projects/find_by_name

        Type: GET

        Parameters:
        search - - название, по которому идет поиск
        folderType - - тип дерева (ROOT - корпоративное дерево, PERSONAL - личное дерево ("Мои проекты"), FAVORITE - "Избранное")
        locale - - локаль
        Returns:
        json массив всех проектов, названия которых содержат слово, веденное для поиска


        Пример возвращаемых данных метода
        [
        {
        "name": "название проекта",
        "objectId": "adbb429c-2b85-4f35-b29f-8bdd6ec7eb7c",
        "objectType": 256,
        "parentId": "140f59fa-a852-452c-9d8e-d4bb63abdadc",
        "parentObjectType": 128,
        "parentTreeType": 0,
        "path": "ROOT/Портфель 1",
        "icon": "",
        "date": null,
        "aiType": ""
        }
        ]

      • getAllActionsOfProject

        public java.lang.String getAllActionsOfProject(java.lang.String actionID,
                                              java.lang.String locale)

        Получение прогресса/сроков мероприятий проекта

        URL: rest/api/projects/get_project_actions

        Type: GET

        Parameters:
        actionID - - ид проекта
        locale - - локаль
        Returns:
        json массив объектов с полями - errorCode - код выполнения операции (0 успешно, иначе - ошибка) если нет элементов, то вернется пустой массив
      • getActionsInfo

        public java.lang.String getActionsInfo(ActionsList aList)
        метод для получения сроков и процента мероприятий
        Parameters:
        aList - - объект класса ActionList, откуда мы берем все мероприятия проекта
        Returns:
        json массив мероприятий с урезанными полями (actionID, percent, finish date, start date)
      • getPlanFolder

        public java.lang.String getPlanFolder(java.lang.String actionID,
                                     java.lang.String locale)

        Получение идентификатора папки проекта

        URL: rest/api/projects/get_folder

        Type: GET

        Parameters:
        actionID - - идентификатор проекта
        locale - - локаль
        Returns:
        json идентификатор папки Пример : {"folderID": }
      • assignActionResponsible

        public java.lang.String assignActionResponsible(java.util.List<java.lang.String> userID,
                                               java.lang.String actionID,
                                               java.lang.String locale)

        Назначение ответственных за мероприятие проекта

        URL: rest/api/projects/assign_action_responsible

        Type: POST

        Parameters:
        userID - - список идентификаторов ответственных
        actionID - - идентификатор мероприятия
        locale - - локаль
        Returns:
        json объект с полями - errorCode - код выполнения операции (0 успешно, иначе - ошибка)
      • getProjectTree

        public java.lang.String getProjectTree(java.lang.String itemID,
                                      java.lang.String folderType,
                                      boolean onlyFolders,
                                      java.lang.String locale)

        Для того, чтобы создать проект - нужно знать, где его создать.
        Данный метод возвращает информацию о деревьях и портфелях
        По умолчанию возвращает портфели находящиеся в корпоративном дереве (это происходит если не передавать параметр folderType)


        URL: rest/api/projects/get_project_tree
        Method: GET
        Parameters:
        itemID - itemID портфеля (может быть null - в таком случае возвращает информацию по корпоративному дереву)
        folderType - тип дерева (ROOT - корпоративное дерево, PERSONAL - личное дерево ("Мои проекты"), FAVORITE - "Избранное")
        locale - локаль
        Returns:
        возвращает json строку - описание текущей директории и портфели находящиеся в ней (если есть)

        К примеру пользователь вызвал метод без каких-либо параметров, который будет выглядеть так:
        rest/api/projects/get_project_tree
        Если все прошло успешно - сервер вернет:
        {
        "elementType": "128",
        "name": "ROOT",
        "hasChildren": "true",
        "items": [
        {
        "itemID": "64881f27-12c3-4568-86b2-7eec0fc7b4a5",
        "actionID": "140f59fa-a852-452c-9d8e-d4bb63abdadc",
        "elementType": "128",
        "name": "Портфель 1",
        "parentID": "null",
        "hasChildren": "true",
        "userName": "neox n.n.",
        "data" : []
        }
        ]
        }

        где:

        items - элементы находящиеся в текущем элементе (могут быть либо портфели, либо проекты)
        data - дополнительные поля у проекта/мероприятия
        elementType - тип элемента (128 - портфель проектов, 256 - мероприятие)

        Чтобы получить элементы портфеля "Портфель 1" - надо передать параметр itemID в запрос, который будет выглядеть следующим образом:
        rest/api/projects/get_project_tree?parentID=64881f27-12c3-4568-86b2-7eec0fc7b4a5
        Сервер вернет:
        {
        "itemID": "64881f27-12c3-4568-86b2-7eec0fc7b4a5",
        "actionID": "140f59fa-a852-452c-9d8e-d4bb63abdadc",
        "elementType": "128",
        "parentID": "null",
        "name": "Портфель 1",
        "hasChildren": "true",
        "items": [
        {
        "itemID": "dc120e96-e27d-401c-8a8c-bd2b5ca9f5e8",
        "actionID": "066914c1-ac10-4d7f-84a3-55f4a7ba314d",
        "elementType": "256",
        "name": "Мероприятие 1",
        "hasChildren": "false",
        "userName": "neox n.n.",
        "data" : []
        }
        ]
        }
        Практически тоже самое, что и в предыдущем примере, за исключением того, что теперь параметр elementType = 256.
        Это значит, что теперь этот элемент является проектом, а не портфелем.
        Чтобы получить список мероприятий для проекта - нужно вызывать метод - /rest/api/projects/get_arrangements и передать в него itemID проекта.
        К примеру:
        rest/api/projects/get_arrangements?actionID=066914c1-ac10-4d7f-84a3-55f4a7ba314d
      • getProjectTreeItemInfo

        public Response getProjectTreeItemInfo(java.lang.String actionID,
                                      java.lang.String locale)
        получение информации о проекте или портфеле
        Parameters:
        actionID - идентификатор элмента
        locale -
        Returns:
      • createProject

        public java.lang.String createProject(java.lang.String name,
                                     java.lang.String code,
                                     double costFact,
                                     double costExpected,
                                     java.lang.String parentItemID,
                                     java.lang.String startDate,
                                     java.lang.String finishDate,
                                     double length,
                                     int workloadType,
                                     double workloadValue,
                                     java.lang.String locale)

        Метод создает проект для указанного портфеля



        URL: rest/api/projects/create_project
        Method: POST
        Parameters:
        name - название проекта
        code - код проекта
        costFact - плановая стоимость (double)
        costExpected - фактическая стоимость (double)
        parentItemID - itemID портфеля (для того, чтобы получить это значение - надо поработать с апи методом get_project_tree, параметр будет называться - itemID)
        startDate - дата начала (формат: "yyyy-MM-dd HH:mm:00")
        finishDate - дата завершения (формат: "yyyy-MM-dd HH:mm:00") (нужна в том случае, если в конфигураторе в настройках проекта выбрано "Тип ввода дат мероприятий проекта" - "Абсолютный (начало и завершение)")
        length - продолжительность (в днях)
        workloadType - тип нагрузки (необходимо вызывать метод get_work_loads)
        workloadValue - значение нагрузки (необходимо вызывать метод get_work_loads)
        locale - локаль
        Returns:
        возвращает json строку с данными о созданном проекте, в случае неуспешного создания проекта - сообщение об ошибке


        Пример:

        {
        "groupID": "8671aca4-4adc-45a2-8bf4-d3d75e721cf1",
        "name": "мероприятие 1",
        "code": "код",
        "authorID": "0db332d4-9dc6-4323-ab3d-f6b782e5d585",
        "costExpected": "0.0",
        "costFact": "0.0",
        "startDate": "19.12.13 09:00",
        "finishDate": "20.12.13 20:00",,
        "length": "1.0"
        "workLoadType": "0"
        "workLoadValue": "20"
        }

        где:

        groupID - группа мероприятия
        name - название проекта
        code - код
        authorID - id автора
        costExpected - плановая стоимость (double)
        costFace - фактическая стоимость (double)
        startDate - дата начала
        finishDate - дата завершения
        length - длительность мероприятия
        workLoadType - тип нагрузки
        workLoadValue - значение нагрузки

      • editProject

        public java.lang.String editProject(java.lang.String name,
                                   java.lang.String code,
                                   java.lang.String actionID,
                                   java.lang.String parentItemID,
                                   double costFact,
                                   double costExpected,
                                   java.lang.String startDate,
                                   java.lang.String finishDate,
                                   double length,
                                   int workloadType,
                                   double workloadValue,
                                   java.lang.String locale)

        Метод предназначен для редактирования проекта



        URL: rest/api/projects/edit_project
        Method: POST
        Parameters:
        name - название проекта
        code - код проекта
        actionID - actionID проекта
        costFact - плановая стоимость (double)
        costExpected - фактическая стоимость (double)
        parentItemID - itemID портфеля (для того, чтобы получить это значение - надо поработать с апи методом get_project_tree, параметр будет называться - itemID)
        workloadType - тип нагрузки (необходимо вызывать метод get_work_loads)
        workloadValue - значение нагрузки (необходимо вызывать метод get_work_loads)
        startDate - дата начала (формат: "yyyy-MM-dd HH:mm:00")
        finishDate - дата завершения (формат: "yyyy-MM-dd HH:mm:00") (нужна в том случае, если в конфигураторе в настройках проекта выбрано "Тип ввода дат мероприятий проекта" - "Абсолютный (начало и завершение)")
        length - продолжительность (в днях)
        locale - локаль
        Returns:
        возвращает json строку с данными о измененном проекте (аналогичную строку, как и в методе rest/api/projects/create_project), в случае неуспешного создания проекта - сообщение об ошибке
      • createArrangement

        public java.lang.String createArrangement(java.lang.String name,
                                         double costFact,
                                         double costExpected,
                                         java.lang.String groupID,
                                         boolean veha,
                                         java.lang.String startDate,
                                         java.lang.String finishDate,
                                         double length,
                                         int workloadType,
                                         double workloadValue,
                                         java.lang.String locale)

        Метод создает мероприятие для указанного проекта



        URL: rest/api/projects/create_arrangement
        Method: POST
        Parameters:
        name - название мероприятия
        costFact - фактическая стоимость (double)
        costExpected - плановая стоимость (double)
        groupID - groupID - группа мероприятия (можно получить из метода get_project_tree (нужно получить список портфелей), параметр будет называться actionID)
        startDate - дата начала (формат: "yyyy-MM-dd HH:mm:00")
        finishDate - дата завершения (формат: "yyyy-MM-dd HH:mm:00")
        length - продолжительность (в днях)
        veha - мероприятие не имеющее длительности (true/false)
        workloadType - тип нагрузки (необходимо вызывать метод get_work_loads)
        workloadValue - значение нагрузки (необходимо вызывать метод get_work_loads)
        locale - локаль
        Returns:
        в случае успешного создания - метод возвращает описание созданного мероприятия, в случае неуспешного - сообщение об ошибке
        Пример:
        {
        "actionID": "4a9d0b3d-c5b2-4c0f-a2aa-0da6353af90b",
        "groupID": "066914c1-ac10-4d7f-84a3-55f4a7ba314d",
        "name": "Созданное мероприятие с дополнительными параметрами",
        "progress": "50",
        "hasChildren": "true",
        "authorName": "Калиев",
        "authorID": "51fb2ba9-bbd4-437d-9993-9f02279a58f4",
        "length": "30.0",
        "costFact": "10.0",
        "costExpected": "20.0",
        "startDate": "15.10.14 09:00",
        "finishDate": "25.11.14 18:00",
        "typeID": "0",
        "stateID": "3",
        "workLoadType": "0",
        "workLoadValue": "20",
        "data": []
        }
        actionID - id мероприятия
        groupID - группа мероприятия
        name - название мероприятия
        progress - прогресс
        hasChildren - имеются ли дочерние
        authorName - имя автора
        authorID - id автора
        length - продолжительность мероприятия
        costFact - фактическая стоимость (double)
        costExpected - плановая стоимость (double)
        startDate - дата начала
        finishDate - дата завершения
        type - тип мероприятия
        workLoadValue - значение нагрузки
        workLoadType - тип нагрузки
        state - статус
        data - дополнительные поля
      • editArrangement

        public java.lang.String editArrangement(java.lang.String name,
                                       double costFact,
                                       double costExpected,
                                       java.lang.String actionID,
                                       java.lang.String groupID,
                                       java.lang.String startDate,
                                       java.lang.String finishDate,
                                       double length,
                                       int workloadType,
                                       double workloadValue,
                                       java.lang.String locale)

        Метод изменяет существующее мероприятие



        URL: rest/api/projects/edit_arrangement
        Method: POST
        Parameters:
        name - название мероприятия
        costFact - плановая стоимость (double)
        costExpected - фактическая стоимость (double)
        actionID - actionID мероприятия
        groupID - groupID мероприятия
        startDate - дата начала (формат: "yyyy-MM-dd HH:mm:00")
        finishDate - дата завершения (формат: "yyyy-MM-dd HH:mm:00")
        length - продолжительность (в днях)
        workloadType - тип нагрузки (необходимо вызывать метод get_work_loads)
        workloadValue - значение нагрузки (необходимо вызывать метод get_work_loads)
        locale - локаль
        Returns:
        возвращает json строку с данными о измененном мероприятии (аналогичную строку, как и в методе rest/api/projects/create_arrangement), в случае неуспешного создания проекта - сообщение об ошибке
      • getArrangements

        public java.lang.String getArrangements(java.lang.String actionID,
                                       boolean child,
                                       java.lang.String locale)

        Метод возвращает список мероприятий/мероприятие



        URL: rest/api/projects/get_arrangements
        Method: GET
        Parameters:
        actionID - actionID мероприятия
        child - если false - возвращает информацию по мероприятию по его идентификатору (actionID), если true - возвращает все дочерние мероприятия для текущего
        locale - локаль
        Returns:
        json строка - описание одного мероприятия, либо список мероприятий (зависит от передаваемого параметра child)


        Примеры:
        Для url вида: rest/api/projects/get_arrangements?actionID=6404f6d3-ba85-4ea1-964c-9ebc5acf3c1a&child=true

        [
        {
        "actionID": "2468e20a-50dd-4563-baf6-79141ed22b01",
        "groupID": "aa66fc08-a684-4c97-9a36-fe6fd0f42dd1",
        "name": "Мероприятие 1",
        "progress": "0",
        "hasChildren": "false",
        "authorName": "Бобров С.Е.",
        "authorID": "0db332d4-9dc6-4323-ab3d-f6b782e5d585",
        "responsible": [],
        "costExpected": "0.0",
        "costFact": "0.0",
        "depends": [],
        "length": "1.0",
        "startDate": "30.10.14 09:00",
        "finishDate": "31.10.14 20:00",
        "workLoadType": "0",
        "workLoadValue": "20.0",
        "data": [
        {
        "pointerID": "abe4ee0a-3e66-4d86-90e1-c4234dbd81da",
        "afID": "0f93a545-e528-4fac-8f3d-47e607deff77",
        "value": "ж/д",
        "values": [
        "ж/д",
        "авиа",
        "авто"
        ],
        "nameField": "Значение",
        "type": "DICTIONARY"
        },
        {
        "pointerID": "735fe12f-29f6-4a52-a407-3bfcbd5c8319",
        "afID": "de96d6f5-45d4-46ad-9cad-3bbd7d84a423",
        "value": "1",
        "type": "NUMBER"
        },
        {
        "pointerID": "c7b08ab6-af6d-444a-ad65-c4532fb00a5b",
        "afID": "8412f304-553e-4157-928f-7b6e20313cba",
        "value": "2",
        "type": "TEXT"
        }
        ]
        },
        {
        "actionID": "6afa2730-e95d-4468-a031-68bc98ef7184",
        "groupID": "aa66fc08-a684-4c97-9a36-fe6fd0f42dd1",
        "name": "Мероприятие 2",
        "progress": "0",
        "hasChildren": "false",
        "authorName": "Бобров С.Е.",
        "authorID": "0db332d4-9dc6-4323-ab3d-f6b782e5d585",
        "responsible": [],
        "costExpected": "0.0",
        "costFact": "0.0",
        "depends": [],
        "length": "1.0",
        "startDate": "30.10.14 09:00",
        "finishDate": "31.10.14 20:00",
        "workLoadType": "0",
        "workLoadValue": "20.0",
        "data": [
        {
        "pointerID": "9cb3ff5b-260e-4b55-b262-242acd82c6cd",
        "afID": "0f93a545-e528-4fac-8f3d-47e607deff77",
        "value": "авто",
        "values": [
        "ж/д",
        "авиа",
        "авто"
        ],
        "nameField": "Значение",
        "type": "DICTIONARY"
        },
        {
        "pointerID": "7cbbd15e-cbf3-4d3a-8035-b11429ebfaec",
        "afID": "de96d6f5-45d4-46ad-9cad-3bbd7d84a423",
        "value": "3",
        "type": "NUMBER"
        },
        {
        "pointerID": "b7ef48cf-3175-462e-9dc7-0ac57c73035d",
        "afID": "8412f304-553e-4157-928f-7b6e20313cba",
        "value": "4",
        "type": "TEXT"
        }
        ]
        }
        ]

        Для url вида: rest/api/projects/get_arrangements?actionID=6404f6d3-ba85-4ea1-964c-9ebc5acf3c1a
        {
        "actionID": "aa66fc08-a684-4c97-9a36-fe6fd0f42dd1",
        "groupID": "null",
        "name": "4",
        "progress": "0",
        "hasChildren": "true",
        "authorName": "Бобров С.Е.",
        "authorID": "0db332d4-9dc6-4323-ab3d-f6b782e5d585",
        "responsible": [],
        "costExpected": "12.0",
        "costFact": "12.0",
        "depends": [],
        "length": "17.666666666666668",
        "startDate": "30.10.14 09:00",
        "finishDate": "30.11.14 20:00",
        "workLoadType": "0",
        "workLoadValue": "20.0",
        "data": []
        }

        actionID - id мероприятия
        groupID - группа мероприятия
        name - название мероприятия
        progress - прогресс
        hasChildren - имеются ли дочерние мероприятия
        authorName - имя автора
        authorID - id автора
        responsible - список ответственных
        costExpected - плановая стоимость (double)
        costFace - фактическая стоимость (double)
        length - длительность мероприятия
        depends - зависит
        startDate - дата начала
        finishDate - дата завершения
        workLoadValue - значение нагрузки
        workLoadType - тип нагрузки
        data - дополнительные поля

      • editPointers

        public java.lang.String editPointers(java.lang.String items,
                                    java.lang.String actionID,
                                    java.lang.String locale)

        Метод изменяет значения дополнительных полей у мероприятия



        URL: rest/api/projects/edit_pointer
        Method: POST
        Parameters:
        locale - локаль
        items - поля
        Returns:

        Пример параметра items:
        [
        {
        "pointerID": "f32c8441-cc25-4a0e-a885-35f0c74bc530",
        "value": "test 1"
        },
        {
        "pointerID": "58116c2f-e017-4ba6-afb6-bd8cb7834232",
        "value": "test 2"
        }
        ]
      • getWorkLoads

        public java.lang.String getWorkLoads(java.lang.String locale)

        Метод возвращает описание нагрузок в системе



        URL: rest/api/projects/get_work_loads
        Method: GET
        Parameters:
        locale - локаль
        Returns:
        возвращает описание нагрузок

        Пример:
        [
        {
        "categoryID": "percent",
        "defaultValue": "20.0",
        "workLoadType": "0",
        "name": "% рабочего времени"
        },
        {
        "categoryID": "0eff1a2a-7b30-4518-a915-9fdc029a8ae5",
        "defaultValue": "50.0",
        "workLoadType": "3",
        "name": "xd"
        },
        {
        "categoryID": "days_whole",
        "defaultValue": "1.0",
        "workLoadType": "4",
        "name": "Кол-во раб. дн."
        }
        ]
      • getAf

        public java.lang.String getAf(java.lang.String actionID,
                             java.lang.String type,
                             java.lang.String locale)

        Метод используется для получения информации о дополнительных полях для проекта/портфеля



        URL: rest/api/projects/get_af
        Method: GET
        Parameters:
        actionID - асtionID мероприятия/проекта
        type - тип. возможные значения: PORTFOLIO - портфель, PROJECT - проект
        locale - локаль
        Returns:

        Примеры использования метода:
        URL: http://127.0.0.1:8080/Synergy/rest/api/projects/get_af?actionID=1f45ac5d-5f7f-4a11-88ca-4a535b8e98d2&type=PORTFOLIO
          {
              "added": [
                  {
                      "name": "Номер итерации",
                      "afID": "e645ac3f-2707-420a-a1ef-3e5841b22d45",
                      "type": "NUMBER"
                  },
                  {
                      "name": "Вид поставки",
                      "afID": "0f93a545-e528-4fac-8f3d-47e607deff77",
                      "type": "DICTIONARY"
                  }
              ],
              "not_added": [
                  {
                      "name": "Бюджет",
                      "afID": "de96d6f5-45d4-46ad-9cad-3bbd7d84a423",
                      "type": "NUMBER"
                  }
              ]
         }
         

        Первый массив added - доп. поля, которые уже добавлены к текущему проекту/мероприятию
        Второй массив not_added - доп. поля, которые еще можно добавить к текущему проекту/мероприятию

        Элемент массива:
        name - имя доп. поля
        afID type
        Примечание: для портфелей нельзя добавить компонент с типом TEXT, соответственно он не будет возвращен.

        Возможные ошибки:
        1. Не существует справочника pm_custom_fields - "Справочник pm_custom_fields не найден"
        2. Пустой справочник pm_custom_fields - "Не найдено элементов в справочнике"
        3. Не передан параметр actionID, либо он пустой - "Не передан параметр actionID"
        4. Не передан параметр type, либо он пустой - "Не передан параметр actionID"
        5. Передан некорректный параметр type - "Некорректный параметр type"
        6. Передан некорректный параметр actionID:
        Для портфеля: Портфель с таким actionID не найден
        Для проекта: Проект с таким actionID не найден
      • setAf

        public java.lang.String setAf(java.lang.String actionID,
                             java.util.List<java.lang.String> fieldID,
                             java.lang.String type,
                             java.lang.String locale)

        Метод позволяет добавлять доп. поля проекта/портфеля



        URL: rest/api/projects/add_af
        Method: POST
        Parameters:
        actionID - uuid проекта/мероприятия
        fieldID - uuid'ы доп. полей, которые необходимо добавить для проекта/мероприятия
        type - тип (PORTFOLIO, PROJECT)
        locale - локаль
        Returns:

        В случае успешного выполнения метода - сервер вернет описание доп. полей для текущего проекта/мероприятия (аналогичная строка, как и в методе get_af)
        В случае неуспешного выполнения метода (что-то пошло не так, возможно переданы невалидные параметры и т.д.) сервер вернет сообщение: "Ошибка выполнения метода"

        Возможные ошибки:
        1. Не существует справочника pm_custom_fields - "Справочник pm_custom_fields не найден"
        2. Пустой справочник pm_custom_fields - "Не найдено элементов в справочнике"
        3. Не передан параметр actionID, либо он пустой - "Не передан параметр actionID"
        4. Не передан параметр type, либо он пустой - "Не передан параметр type"
        5. Передан некорректный параметр type - "Некорректный параметр type"
        6. Передан некорректный параметр actionID:
        Для портфеля: Портфель с таким actionID не найден
        Для проекта: Проект с таким actionID не найден
        7. Если пользователь не передал параметр fieldID - сервер вернет сообщение - "Не передан параметр fieldID"
        8. В случае неуспешного выполнения метода - сервер вернет сообщение "Ошибка выполнения метода"

        Пример использования метода:
        К примеру есть портфель, который имеет следующие доп. поля:
         {
              "added": [],
              "not_added": [
                  {
                      "name": "Номер итерации",
                      "afID": "e645ac3f-2707-420a-a1ef-3e5841b22d45",
                      "type": "NUMBER"
                  },
                  {
                      "name": "Вид поставки",
                      "afID": "0f93a545-e528-4fac-8f3d-47e607deff77",
                      "type": "DICTIONARY"
                  },
                  {
                      "name": "Бюджет",
                      "afID": "de96d6f5-45d4-46ad-9cad-3bbd7d84a423",
                      "type": "NUMBER"
                  }
              ]
         }
         

        Пользователь решил добавить добавить 3 поля, параметры которые надо отправить на сервер будут выглядеть следующим образом:

        actionID=1f45ac5d-5f7f-4a11-88ca-4a535b8e98d2
        type=PORTFOLIO
        fieldID=0f93a545-e528-4fac-8f3d-47e607deff77
        fieldID=e645ac3f-2707-420a-a1ef-3e5841b22d45
        fieldID=de96d6f5-45d4-46ad-9cad-3bbd7d84a423

        При успешном выполнении метода сервер вернет:
         {
          "added": [
              {
                  "name": "Вид поставки",
                  "afID": "0f93a545-e528-4fac-8f3d-47e607deff77",
                  "type": "DICTIONARY"
              },
              {
                  "name": "Номер итерации",
                  "afID": "e645ac3f-2707-420a-a1ef-3e5841b22d45",
                  "type": "NUMBER"
              },
              {
                  "name": "Бюджет",
                  "afID": "de96d6f5-45d4-46ad-9cad-3bbd7d84a423",
                  "type": "NUMBER"
              }
              ],
          "not_added": []
         }
         


        Можно поменять местами порядок полей, для этого надо передать uuid'ы в таком порядке, в каком нужно отображение. К примеру пользователь хочет, чтобы порядок был такой:

        Бюджет
        Номер итерации
        Вид поставки

        Соответственно на сервер надо передать следующие параметры:

        actionID=1f45ac5d-5f7f-4a11-88ca-4a535b8e98d2
        type=PORTFOLIO
        fieldID=de96d6f5-45d4-46ad-9cad-3bbd7d84a423
        fieldID=e645ac3f-2707-420a-a1ef-3e5841b22d45
        fieldID=0f93a545-e528-4fac-8f3d-47e607deff77

        Сервер вернет:
         {
          "added": [
              {
                  "name": "Бюджет",
                  "afID": "de96d6f5-45d4-46ad-9cad-3bbd7d84a423",
                  "type": "NUMBER"
              },
              {
                  "name": "Номер итерации",
                  "afID": "e645ac3f-2707-420a-a1ef-3e5841b22d45",
                  "type": "NUMBER"
              },
              {
                  "name": "Вид поставки",
                  "afID": "0f93a545-e528-4fac-8f3d-47e607deff77",
                  "type": "DICTIONARY"
              }
          ],
          "not_added": []
          }
         
         

        Для проектов поведение метода аналогичное.
      • removeAf

        public java.lang.String removeAf(java.lang.String actionID,
                                java.util.List<java.lang.String> fieldID,
                                java.lang.String type,
                                java.lang.String locale)

        Метод позволяет удалять доп. поля проекта/портфеля



        URL: rest/api/projects/remove_af
        Method: POST
        Parameters:
        actionID - uuid проекта/мероприятия
        fieldID - uuid'ы доп. полей, которые необходимо удалить для проекта/мероприятия
        type - тип (PORTFOLIO, PROJECT)
        locale - локаль
        Returns:

        В случае успешного выполнения метода - сервер вернет описание доп. полей для текущего проекта/мероприятия (аналогичная строка, как и в методе get_af)
        В случае неуспешного выполнения метода (что-то пошло не так, возможно переданы невалидные параметры и т.д.) сервер вернет сообщение: "Ошибка выполнения метода"

        Возможные ошибки:
        1. Не существует справочника pm_custom_fields - "Справочник pm_custom_fields не найден"
        2. Пустой справочник pm_custom_fields - "Не найдено элементов в справочнике"
        3. Не передан параметр actionID, либо он пустой - "Не передан параметр actionID"
        4. Не передан параметр type, либо он пустой - "Не передан параметр type"
        5. Передан некорректный параметр type - "Некорректный параметр type"
        6. Передан некорректный параметр actionID:
        Для портфеля: Портфель с таким actionID не найден
        Для проекта: Проект с таким actionID не найден
        7. Если пользователь не передал параметр fieldID - сервер вернет сообщение - "Не переданы параметр fieldID"
        8. В случае неуспешного выполнения метода - сервер вернет сообщение "Ошибка выполнения метода"

        Пример использования метода:
        К примеру есть портфель, который имеет следующие доп. поля:
         {
          "added": [
              {
                  "name": "Номер итерации",
                  "afID": "e645ac3f-2707-420a-a1ef-3e5841b22d45",
                  "type": "NUMBER"
              },
              {
                  "name": "Вид поставки",
                  "afID": "0f93a545-e528-4fac-8f3d-47e607deff77",
                  "type": "DICTIONARY"
              },
              {
                  "name": "Бюджет",
                  "afID": "de96d6f5-45d4-46ad-9cad-3bbd7d84a423",
                  "type": "NUMBER"
              }
          ],
          "not_added": []
         }
         

        Пользователь решил Удалить поле 2 и 3, параметры которые надо отправить на сервер будут выглядеть следующим образом:

        actionID=1f45ac5d-5f7f-4a11-88ca-4a535b8e98d2
        type=PORTFOLIO
        fieldID=0f93a545-e528-4fac-8f3d-47e607deff77
        fieldID=de96d6f5-45d4-46ad-9cad-3bbd7d84a423

        При успешном выполнении метода сервер вернет:
         {
          "added": [
              {
                  "name": "Номер итерации",
                  "afID": "e645ac3f-2707-420a-a1ef-3e5841b22d45",
                  "type": "NUMBER"
              }
          ],
          "not_added": [
              {
                  "name": "Вид поставки",
                  "afID": "0f93a545-e528-4fac-8f3d-47e607deff77",
                  "type": "DICTIONARY"
              },
              {
                  "name": "Бюджет",
                  "afID": "de96d6f5-45d4-46ad-9cad-3bbd7d84a423",
                  "type": "NUMBER"
              }
          ]
         }
         


        Для проектов поведение метода аналогичное.
kz.arta.synergy.api.rest.report

Class ReportService



  • public class ReportService
    extends java.lang.Object
    Класс отвечает за API взаимодействия с модулем отчетов. User: MGetmanov Date: 05.09.14 Time: 11:32
    • Constructor Summary

      Constructors 
      Constructor and Description
      ReportService() 
    • Method Summary

      Methods 
      Modifier and Type Method and Description
      java.lang.String getReport(java.lang.String fileName, java.lang.String reportID, java.lang.String parentIdentifier, java.lang.Boolean inline, java.lang.String locale)
      Метод позволяет получить результат выполнения отчета для пользователя.
      java.lang.String getReportListForUser(java.lang.String locale)
      Метод позволяет получить информацию о доступных текущему пользователю отчетов.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ReportService

        public ReportService()
    • Method Detail

      • getReportListForUser

        public java.lang.String getReportListForUser(java.lang.String locale)
        Метод позволяет получить информацию о доступных текущему пользователю отчетов. Данные передаются в формате JSON в кодировке utf-8. JSON имеет поля: reportID - идентификатор отчета nameen - название отчета для англоязычной локали nameru - название отчета для русскоязычной локали namekz - название отчета для казахскоязычной локали defaultName - имя файла по умолчанию fileName - имя файла objectType - идентификатор objectType отчета. Object Type - задается битовой маской

        Объект конфигуратора - 0

        Тип объекта цель - 2

        Тип объекта поручение - 4

        Тип объекта мероприятие (план) - 64

        Тип объекта Задача - 8

        Тип объекта показатель - 16

        Пользователь - 32

        План - 256

        Портфель проектов - 128

        Документ в журнале документов - 1024

        Процесс - 512

        Департамент - 2048

        Должность - 4096

        Маршрут - 8192

        Карта - 16384

        Файл - 32768

        Реестр - 65536

        Карточка документа - 131072

        Группа - 262144

        loadType - идентификатор типа загрузки отчета

        1 - загрузить файл, 2 - сохранить в хранилище

        Так же предаются параметры для каждого отчета. Они предаются в поле params, являющимся массивом JSON объектов Объект с описанием параметров содержит поля: code - Код параметра label - Подпись параметра value - Значение параметра по умолчанию type - Java класс, определяющий тип данных принимаемым в качетсве объекта параметра isOptional - является ли данный параметр опциональным

        Для обращения к API методу необходимо обратиться по URL [SYNERGY_HOST]/Synergy/rest/api/report/list

        Parameters:
        locale - - не обязательный параметр указывающий необходимую локаль
        Returns:
        - JSON с результатами запроса
      • getReport

        public java.lang.String getReport(java.lang.String fileName,
                                 java.lang.String reportID,
                                 java.lang.String parentIdentifier,
                                 java.lang.Boolean inline,
                                 java.lang.String locale)
        Метод позволяет получить результат выполнения отчета для пользователя. Данные передаются в формате JSON в кодировке utf-8 или байтовым потоком - в зависимости от настроек отчета. При передаче параметров необходимо учитывать, что идентификаторы параметров регистрозависимые JSON имеет поля: reportDate - Дата создания отчета в формате GWT identifier - идентификатор файла отчета в хранилище path - путь отчету в хранилище parentIdentifier - идентификатор родительской директории В случае если отчет требует передачи параметров они должны быть переданы в url параметрах. Например если отчет требует передачи userID то в строку запроса необходимо добавить &userID=[USER_ID]. Для параметров users_names, user_names, department_name, departments_name, action_name, actions_name нужно передавать соответствующие идентификаторы. В случае перечисления идентификаторы разделять запятыми. Например, &user_names=userID1, userID2 Обязательные параметры для отчета обязательно должны присутствовать в строке запроса. Для обращения к API методу необходимо обратиться по URL [SYNERGY_HOST]/Synergy/rest/api/report/do
        Parameters:
        fileName - - требуемое имя файла. Если имя файла не было передано то будет использовано имя файла по умолчанию.
        reportID - - идентификатор отчета
        parentIdentifier - - идентификатор папки для сохранения отчета
        inline - - тип передачи (true - inline/false - attachment)
        locale - - требуемая локаль
        Returns:
        - результат выполнения запроса
kz.arta.synergy.api.rest.groups

Class GroupsService



  • public class GroupsService
    extends java.lang.Object
    Created by exile Date: 18.02.16 Time: 14:36
    • Constructor Summary

      Constructors 
      Constructor and Description
      GroupsService() 
    • Method Summary

      Methods 
      Modifier and Type Method and Description
      java.lang.String getGroupContent(java.lang.String search, java.lang.Integer parentGroupID, java.lang.Integer startRecord, java.lang.Integer recordsCount, java.lang.Integer right, boolean loadAutoGroups, java.lang.String locale) 
      java.lang.String getGroups(java.lang.String search, java.lang.Integer parentGroupID, java.lang.Integer startRecord, java.lang.Integer recordsCount, boolean loadAllHierarchy, java.lang.Integer right, boolean loadAutoGroups, java.lang.String locale)
      поиск групп
      url: /rest/api/groups/find
      method: GET
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • GroupsService

        public GroupsService()
    • Method Detail

      • getGroups

        public java.lang.String getGroups(java.lang.String search,
                                 java.lang.Integer parentGroupID,
                                 java.lang.Integer startRecord,
                                 java.lang.Integer recordsCount,
                                 boolean loadAllHierarchy,
                                 java.lang.Integer right,
                                 boolean loadAutoGroups,
                                 java.lang.String locale)
        поиск групп
        url: /rest/api/groups/find
        method: GET
        Parameters:
        search - поисковая строка
        parentGroupID - родительская группа
        startRecord - начальная запись
        recordsCount - количество записей
        loadAllHierarchy - поднимать ли всю иерархию
        right - право пользователя (поднимать только группы, на котрые у пользователя соответствующее право)
        loadAutoGroups - подгружать автогруппы
        locale - локаль
        Returns:
        json с полями
        count: количество
        begin: начальная позиция
        length: последняя
        array: массив групп, каждый элемент которого содержит
        - groupID: идентификатор группы
        - name: наименование
        - parentName: наименование родительской группы
        - innerGroupsCount: количество вложенных групп
        - usersCount: количество пользователей
        - parentID: идентификатор родительской группы
      • getGroupContent

        public java.lang.String getGroupContent(java.lang.String search,
                                       java.lang.Integer parentGroupID,
                                       java.lang.Integer startRecord,
                                       java.lang.Integer recordsCount,
                                       java.lang.Integer right,
                                       boolean loadAutoGroups,
                                       java.lang.String locale)
kz.arta.synergy.api.rest.personalrecord

Class PersonalRecordService



  • public class PersonalRecordService
    extends java.lang.Object
    Created by IntelliJ IDEA. User: topa Date: 06.05.13 Time: 12:57 To change this template use File | Settings | File Templates.
    • Method Summary

      Methods 
      Modifier and Type Method and Description
      java.lang.String getForms(java.lang.String userID, java.lang.String locale)
      Метод возвращает информацию о личных карточках пользователя (названия и идентификаторы форм)
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • PersonalRecordService

        public PersonalRecordService()
    • Method Detail

      • getForms

        public java.lang.String getForms(java.lang.String userID,
                                java.lang.String locale)

        Метод возвращает информацию о личных карточках пользователя (названия и идентификаторы форм)

        URL rest/api/personalrecord/forms/{userID}
        Method GET

        Метод возвращает список из элементов, каждый из которых описывает одну личную карточку. Для каждой личной карточки возвращаются поля:
        form-uuid - идентификатор формы
        formCode - код формы
        name - название личной карточки
        editable - есть ли право у данного пользователя менять поля данной карточки
        data-uuid - идентификатор файла по форме
        mandatory - является ли данная карточка обязательной к заполнению

        Parameters:
        userID - UUID пользователя, чьи карточки необходимо получить (PathParam)
        locale - локаль пользователя, делающего запрос (QueryParam)
        Returns:
        список элементов json
kz.arta.synergy.api.rest.bp

Class ProcessesService



  • public class ProcessesService
    extends java.lang.Object
    Created by IntelliJ IDEA. User: topa Date: 12.11.13 Time: 11:31 To change this template use File | Settings | File Templates.
    • Constructor Summary

      Constructors 
      Constructor and Description
      ProcessesService() 
    • Method Summary

      Methods 
      Modifier and Type Method and Description
      java.lang.String getHost() 
      java.lang.String signalProcess(java.lang.String signal, java.lang.String executionID, java.lang.String locale)
      Метод отправляет сигнал блокирующему процессу для его завершения в системе и восстановления работы маршрута
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ProcessesService

        public ProcessesService()
    • Method Detail

      • signalProcess

        public java.lang.String signalProcess(java.lang.String signal,
                                     java.lang.String executionID,
                                     java.lang.String locale)

        Метод отправляет сигнал блокирующему процессу для его завершения в системе и восстановления работы маршрута

        URL rest/api/processes/signal
        Method GET

        Так же метод принимает дополнительные опциональные параметры, передаваемые процессу.
        Для того чтобы передать параметр и значение необходимо передать запросу параметры :
        paramN=название_параметра и valueN=значение_параметра, где N - порядковый номер параметра (нумерация с 1)
        Поддерживаемые параметры:

        • resolution
        • - комментарий, который будет отображаться в ходе исполнения документа для данного процесса

        Примеры:

        Успешное завершение процесса с комментарием
        rest/api/processes/signal?signal=got_agree¶m1=resolution&value1=Действие успешно выполнено&executionID=id_процесса

        Успешное завершение процесса без комментария
        rest/api/processes/signal?signal=got_agree&executionID=id_процесса

        Не успешное завершение процесса с комментарием
        rest/api/processes/signal?signal=got_refuse¶m1=resolution&value1=Действие не выполнено&executionID=id_процесса

        Не успешное завершение процесса без комментария
        rest/api/processes/signal?signal=got_refuse&executionID=id_процесса

        Parameters:
        signal - результат завершения блокирующего процесса: got_agree - успешное завершения, got_refuse - неуспешное завершение
        executionID - идентификатор процесса
        locale - локаль
        Returns:
      • getHost

        public java.lang.String getHost()
kz.arta.synergy.api.rest.docs

Class DocFlowService



  • public class DocFlowService
    extends java.lang.Object
    Created by vitaliy.zaretskiy on 11.09.14.
    • Constructor Summary

      Constructors 
      Constructor and Description
      DocFlowService() 
    • Method Summary

      Methods 
      Modifier and Type Method and Description
      java.lang.String addComment(java.lang.String documentID, java.lang.String workID, java.lang.String commentID, java.lang.String comment, java.lang.String locale)
      Добавляет/изменяет комментарий к документу

      URL: rest/api/docflow/doc/comments/save
      Тип POST
      java.lang.String addDtiIDLink(java.lang.String dtiId, java.lang.String docID) 
      java.lang.String createAttachment(java.lang.String documentID, java.lang.String path, java.lang.String fileName, java.lang.String filePath, java.lang.String locale)
      Метод добавляет вложение к документу из временного файла, загруженного на сервер с помощью API метода rest/api/storage/start_upload
      java.lang.String deleteAttachment(java.lang.String fileUUID, java.lang.String locale)
      Метод удаляет вложение

      URL: rest/api/docflow/doc/attachment/remove
      Тип GET
      java.lang.String deleteComment(java.lang.String commentID, java.lang.String locale)
      Метод удаляет комментарий

      URL: rest/api/docflow/doc/comments/remove
      Тип GET
      java.lang.String doCreateAttachment(java.lang.String documentID, java.lang.String path, java.lang.String fileName, java.lang.String filePath, java.lang.String locale, boolean warning, java.lang.String successMessage) 
      java.lang.String finDocByNumber(java.lang.String number)
      API-метод, позволяющий получить идентификатор документа по его номеру (если таких документов несколько, возвращается первый).
      java.lang.String getAttachments(java.lang.String documentID, int count, boolean getCounters, java.lang.String locale)
      Метод возвращает отсортированный в обратном порядке по дате добавления список файлов документа (из вложений и прочих)

      URL: /rest/api/doc/last_attachments
      Тип: GET

      Возвращает информацию о вложениях как список json.
      java.lang.String getChildDocumentsList(java.lang.String documentID, java.lang.String locale)
      Метод возвращает список дочерних документов для родительского

      URL: rest/api/docflow/doc/child_documents
      Тип: GET
      java.lang.String getComments(java.lang.String documentID, int start, int count, boolean getCounters, java.lang.String locale)
      Метод возвращает комментарии к документу отсортированные в обратном порядке по дате добавления

      URL: rest/api/docflow/doc/comments/list
      Method GET

      Возвращает информацию о комментариях как список json
      Поле одного комментария

      commentID - uuid комментария
      comment - текст комментария
      author - автор
      author.userID - uuid автора
      author.name - имя автора
      created - дата создания
      comment_icon_type - тип иконки комментария
      created_label - время от даты создания либо время создания
      type - тип комментария (константы в arta.synergy.web.common.client.constants.CommentType)
      is_editable - возможно ли редактирование данного комментария
      is_deletable - возможно ли удаление данного комментария

      Пример получения последних трех комментариев
      http://хост:порт/Synergy/rest/api/docflow/doc/comments/list?documentID=UUID&count=3
      java.lang.String getDocCode(java.lang.String typeId) 
      Response getDocType(java.lang.String code, java.lang.String locale)
      Метод API для получения описания типа документа
      URL: rest/api/docflow/doctypes/{docTypeCode}
      Method GET
      Response getDocTypes(java.lang.String registerID, java.lang.String description, int page, int recordsCount, java.lang.String locale)
      Метод API для получения списка типов документов
      URL: rest/api/docflow/doctypes
      Method GET
      java.lang.String getDocumentFilters(java.lang.String filterType, java.lang.String filterID, java.lang.String objectID, java.lang.String locale)
      Метод возвращает список фильтров в документах по заданным параметрам

      URL: rest/api/docflow/doc/documents_filters
      Тип: GET
      java.util.List<ProcessHistory> getDocumentHistory(java.lang.String documentID, java.lang.String locale) 
      java.lang.String getDocumentInfo(java.lang.String documentID, java.lang.String locale)
      Метод возвращает полную информацию о документе

      URL: rest/api/docflow/doc/document_info
      Тип: GET

      Пример работы метода:
      URL: http://127.0.0.1:8080/Synergy/rest/api/docflow/doc/document_info?documentID=8c081b77-5d03-4ce3-89a8-b551a73fc1d9
      Сервер вернет информацию о документе:
      java.lang.String getDocumentItems(java.lang.String documentID, java.lang.String locale)
      Метод возвращает набор действий, которые может совершить авторизованный пользователь над документом

      URL: rest/api/docflow/document_actions
      Тип: GET

      Каждое действие характеризуется следующими полями:
      action - идентификатор действия, значение из WorkActionType
      operation - идентификатор операции, значение из WorkActionSubType (может отсутствовать)
      label - название действия
      color - идентификатор цвета, значение из ActionColor
      java.lang.String getDocumentRCC(java.lang.String documentID, java.lang.String locale)
      API-метод, позволяющий получить РКК документа.
      java.lang.String getDocumentsList(java.lang.String filterType, java.lang.String filterID, java.lang.String objectID, int pageNumber, int countInPart, java.lang.String locale)
      Метод возвращает список документов для заданных параметров

      URL: rest/api/docflow/doc/documents
      Тип: GET
      java.util.Map<java.lang.String,java.lang.String> getDocumetInfo(java.lang.String dtiId, java.lang.String docID) 
      java.lang.String getFavoriteFilters(java.lang.String locale)
      Метод возвращает описание избранных фильтров
      Поведение метода аналогично api методу /rest/api/doc/documents_filters - разница лишь в том, что данный метод не принимает никаких параметров (кроме локали)
      Если избранных фильтров нет - сервер вернет пустой массив ("[]")

      URL: rest/api/docflow/doc/favorite_doc_filters
      Тип: GET
      java.lang.String getFullAttachments(java.lang.String documentID, java.lang.String locale)
      Метод возвращает все файлы данного документа по двум группам - вложения и прочие

      URL: rest/api/docflow/doc/attachments
      Тип: GET

      Возвращает информацию о файлах как объект json:

      {attachments: [..list of attachments ..], work_files: [..list of work files ..]}

      Каждый файл из attachments и work_files описывается следующими полями
      uuid - идентификатор файла
      name - название файла
      is_editable - возможно ли изменять/удалять файл
      created_label - читабельное время создания файла от текущего момента
      created - время создания файла
      icon урл изображения для предпросмотра, в случае его отсутствия - урл иконки типа файла

      Пример ответа, в котором есть один файл вложений и один файл прочих
      java.lang.String getRegUserByDtiID(java.lang.String dtiId) 
      java.lang.String getResolutions(java.lang.String workID, java.lang.String documentID, java.lang.String locale)
      Возвращает информацию о резолюциях

      URL: rest/api/docflow/doc/get_resolution
      Тип: GET
      java.lang.String getRoutes(java.lang.String search, boolean bookmarks, java.lang.String locale)
      Получение списка маршрутов доступных пользователю

      URL: rest/api/docflow/doc/routes
      Тип: GET
      java.lang.String getSignList(java.lang.String documentID, java.lang.String locale)
      API-метод, позволяющий получить список подписей для данного документа.
      java.lang.String saveCorrespondentOrg(java.lang.String name)
      Добавление корреспондента-организации в общесистемный список
      Тип: POST
      URL: rest/api/docflow/doc/create_correspondent_org
      java.lang.String saveResolutionRoute(java.lang.String data, java.lang.String workID, java.lang.String documentID, java.lang.String type, boolean controlled, java.lang.String projectID, java.lang.String locale)
      Метод сохраняет/подтверждает резолюцию

      URL: rest/api/docflow/doc/save_resolution
      Тип: POST
      Response sendDocument(DocSendInfo sendInfo)
      Метод API для пересылки документов URL: rest/api/docflow/doc/send
      Method POST
      Метод принимает следующие входные параметры (json):

      documentID - uuid документа, который необходимо переслать (обяз.);
      users - массив uuid пользователей, которым необходимо переслать документ;
      groups - массив uuid групп пользователей, которым необходимо переслать документ;
      emails - массив произвольных e-mail, которым необходимо переслать документ;
      locale - локаль.
      java.lang.String setHidden(java.lang.String documentID, boolean hidden, java.lang.String filterType, java.lang.String locale)
      Метод скрывает/восстанавливает документ

      URL: rest/api/docflow/doc/hide
      Тип: GET
      java.lang.String setSeen(java.lang.String documentID, boolean seen, java.lang.String filterType, java.lang.String locale)
      Метод отмечает документ как "Просмотренный"

      URL: rest/api/docflow/doc/set_seen
      Тип: GET
      Response sign(java.lang.String locale, java.lang.String documentID, java.lang.String rawdata, java.lang.String signdata, java.lang.String certificate, java.lang.String certID)
      API-метод подписания документа
      Response transferDocumentAttachments(FileTransferOperation operation)
      Метод API для трансфера файлов вложений из одного документа в другой
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • DocFlowService

        public DocFlowService()
    • Method Detail

      • getResolutions

        public java.lang.String getResolutions(java.lang.String workID,
                                      java.lang.String documentID,
                                      java.lang.String locale)
        Возвращает информацию о резолюциях

        URL: rest/api/docflow/doc/get_resolution
        Тип: GET
        Parameters:
        workID - actionID работы
        documentID - uuid документа
        locale - локаль
        Returns:
        json массив с описанием резолюций
        Пример:
         [
             {
                 "statusID": 0,
                 "projectID": "64750f61-3393-425b-b07d-f63974372fa5",
                 "author": "Messi Leonel",
                 "canEdit": "true",
                 "controlled": "true",
                 "maxFinishDate" : "2014-12-17 00:00:00"
                 "items": [
                     {
                         "name": "12345",
                         "itemID" : "32310f61-3393-425b-b07d-f63974372fa5",
                         "userID": "e45a1a15-3c8a-434f-afa7-4d4df8baa579",
                         "user": "Messi Leonel",
                         "users": [
                             {
                                 "user": "AAПроверка AA",
                                 "userID": "9a426339-a140-4ca1-ada5-e441257660f1"
                             },
                             {
                                 "user": "AABBCC ddff",
                                 "userID": "da902b13-a3e8-4e7e-adfd-0bf5e67be5ae"
                             }
                         ],
                         "finishdate": {
                             "date": "1414519200000"
                         },
                         "typeID": 3,
                         "completionFormID": "4eb20dc9-e0ca-4a8a-846b-4ea3b9a46150",
                         "dict_id": "bebebebe-fefe-cece-dede-1234567890ab",
                         "item_name": "Работа"
                     }
                 ]
             }
         ]
         


        В данном примере видим, что наложена одна резолюция. Может быть и больше. Если резолюций вообще нет - сервер вернет пустую резолюцию.

        Параметры описания резолюции:
        statusID - статус резолюции (0 - резолюция сохранена, 1 - резолюция наложена, 2 - резолюция удалена)
        projectID - projectID резолюции. нужен для редактирования резолюции, этот projectID будет передан в api метод /doc/save_resolution
        author - автор резолюции
        canEdit - есть ли возможность редактировать резолюцию текущему пользователю
        controlled - выставлена ли галочка "Является контрольным"
        maxFinishDate - максимальная дата пункта резолюции (данный параметр актуален, если выставлена галочка в конфигураторе "Разрешить ставить работы по резолюции, завершающиеся позже документа")
        items - пункты резолюции

        Параметры пунктов резолюции:
        name - имя пункта резолюции
        itemID - id пункта резолюции
        userID - uuid ответственного
        user - имя ответственного
        users - исполнители
        finishdate - дата завершения в миллисекундах
        type - тип (3 - работа, 0 - согласование, 1 - утверждение, 2 - ознакомление, 17 - отправка документа, 28 - блокирующий процесс)
        completionFormID - id формы завершения
        dict_id - id пункта типа работ по резолюции
        item_name - наименование пункта типа работ по резолюции
      • saveResolutionRoute

        public java.lang.String saveResolutionRoute(java.lang.String data,
                                           java.lang.String workID,
                                           java.lang.String documentID,
                                           java.lang.String type,
                                           boolean controlled,
                                           java.lang.String projectID,
                                           java.lang.String locale)
        Метод сохраняет/подтверждает резолюцию

        URL: rest/api/docflow/doc/save_resolution
        Тип: POST
        Parameters:
        data - json строка с пунктами резолюции
        workID - uuid работы
        documentID - uuid доукмента
        controlled - "является контрольным" (по умолчанию - false)
        type - тип резолюции (SAVE - сохранить, ACCEPT - подтвердить)
        projectID - projectID резолюции. можно получить из api метода rest/api/docflow/doc/get_resolution. если создается новая резолюция - передавать этот параметр не надо, во всех остальных случаях надо (редактирование существующей)
        locale - локаль
        Returns:
        json объект с полями - errorCode - код выполнения операции (0 успешно, иначе - ошибка)

        Пример строки data:
         [
             {
                 "name": "item 1",
                 "userID": "fdb874fa-e5cf-4454-bd7c-1727fed23a3e",
                 "usersID": [
                     "fdb874fa-e5cf-4454-bd7c-1727fed23a3e",
                     "c6caf840-d39b-41fc-83c6-e015a264677a"
                 ],
                 "finishDate": "1411722780000",
                 "typeID": "0",
                 "completionFormID": "4eb20dc9-e0ca-4a8a-846b-4ea3b9a46150",
                 "itemID": "52230dc9-e0ca-4a8a-846b-4ea3b9a46150",
                 "dict_id": "fefefefe-cafe-babe-face-1234567890ab"
             }
         ]
         


        где:

        name - имя резолюции
        userID - id ответственного
        usersID - id исполнителей
        finishDate - время завершения в миллисекундах
        typeID - тип резолюции (3 - работа, 0 - согласование, 1 - утверждение, 2 - ознакомление, 33 - резолюция, 17 - отправка документа))
        completionFormID - id формы завершения
        itemID - id пункта резолюции
        dict_id - id пункта справочника работ по резолюции
        *один из параметров typeID или dict_id является обязательным, если указаны оба, то typeID игнорируется
      • saveCorrespondentOrg

        public java.lang.String saveCorrespondentOrg(java.lang.String name)
        Добавление корреспондента-организации в общесистемный список
        Тип: POST
        URL: rest/api/docflow/doc/create_correspondent_org
        Parameters:
        name - название организации(FormParam)
        Returns:
        json объект с полями - errorCode - код выполнения операции (0 успешно, иначе - ошибка)
      • getDocumentFilters

        public java.lang.String getDocumentFilters(java.lang.String filterType,
                                          java.lang.String filterID,
                                          java.lang.String objectID,
                                          java.lang.String locale)
        Метод возвращает список фильтров в документах по заданным параметрам

        URL: rest/api/docflow/doc/documents_filters
        Тип: GET
        Parameters:
        filterType - тип фильтра
        filterID - uuid фильтра
        objectID - objectID фильтра
        locale - локаль
        Returns:
        json строка (список фильтров)
        Примеры работы метода:
        Все начинается с отправки метода без каких-либо параметров (кроме локали)
        URL: http://127.0.0.1:8080/Synergy/rest/api/docflow/doc/documents_filters?locale=ru
        Сервер вернет:
         [
             {
                 "name": "Журналы",
                 "filterType": "REGISTER_FILTER",
                 "count": "17",
                 "hasChildren": "true"
             },
             {
                 "name": "Дела",
                 "filterType": "DOCFILE_FILTER",
                 "count": "0",
                 "hasChildren": "true"
             },
             {
                 "name": "Все",
                 "filterType": "ALL_USER_DOCUMENTS",
                 "count": "321",
                 "hasChildren": "true"
             }
         ]
         


        Если параметр hasChildren = true - это значит, что данный фильтр содержит дочерние.
        К примеру пользователь захотел получить список фильтров, которые находится «внутри» фильтра «Журналы».
        Чтобы это осуществить — нужно обратиться к этому же методу + добавить один параметр filterType (тип фильтра).
        URL: http://127.0.0.1:8080/Synergy/rest/api/docflow/doc/documents_filters?filterType=REGISTER_FILTER&locale=ru
        Сервер вернет описание фильтров второго уровня, к примеру:
         [
             {
                 "name": "Внутренние документы",
                 "filterType": "REGISTER_FILTER",
                 "objectID": "internal_docs",
                 "count": "2",
                 "hasChildren": "true"
             },
             {
                 "name": "Входящие документы",
                 "filterType": "REGISTER_FILTER",
                 "objectID": "in_docs",
                 "count": "12",
                 "hasChildren": "true"
             },
             {
                 "name": "Договоры",
                 "filterType": "REGISTER_FILTER",
                 "objectID": "2f74f563-7366-4d60-a86d-15843108f256",
                 "count": "0",
                 "hasChildren": "true"
             }
         ]
         


        Например пользователь захотел провалиться еще глубже, к примеру в фильтр «Внутренние документы».
        Для этого надо добавить к существующему запросу еще один параметр — objectID.
        URL: http://127.0.0.1:8080/Synergy/rest/api/docflow/doc/documents_filters?filterType=REGISTER_FILTER?objectID=internal_docs&locale=ru
        Сервер вернет описание фильтров третьего уровня, к примеру:
         [
             {
                 "name": "On registration",
                 "filterType": "REGISTER_FILTER",
                 "filterID": "3e54a5c4-603a-418f-bb43-c34117b7f855",
                 "objectID": "internal_docs",
                 "count": "1",
                 "hasChildren": "true"
             },
             {
                 "name": "In progress",
                 "filterType": "REGISTER_FILTER",
                 "filterID": "03f46a0c-bafb-4aa0-b4dd-708be03f5c35",
                 "objectID": "internal_docs",
                 "count": "0",
                 "hasChildren": "true"
             },
             {
                 "name": "Expired",
                 "filterType": "REGISTER_FILTER",
                 "filterID": "8dfdd85d-3c55-47fc-8ab6-d76387e359a0",
                 "objectID": "internal_docs",
                 "count": "0",
                 "hasChildren": "true"
             }
         ]
         


        Можно попасть на четвертый уровень — в таком случае необходимо еще добавить параметр filterID.
        URL: http://192.168.2.153:8080/Synergy/rest/api/docflow/doc/documents_filters?filterType=REGISTER_FILTER&objectID=internal_docs&filterID=3e54a5c4-603a-418f-bb43-c34117b7f855&locale=ru
        Сервер вернет описание фильтров четвертого уровня, к примеру:
         [
             {
                 "name": "Фильтр четвертого уровня 1",
                 "filterType": "REGISTER_FILTER",
                 "filterID": "8e0b82ff-7832-4e7b-adbe-6b495fe8f617",
                 "objectID": "internal_docs",
                 "count": "1",
                 "hasChildren": "false"
             },
             {
                 "name": "Фильтр четвертого уровня 2",
                 "filterType": "REGISTER_FILTER",
                 "filterID": "e5c62d5e-df03-43cc-8899-c1a91855f432",
                 "objectID": "internal_docs",
                 "count": "1",
                 "hasChildren": "false"
             }
         ]
         


        Начиная с четвертого уровня — новых параметров не добавляется.
        Для других фильтров («Дела», «Все») поведение метода аналогично.
      • getFavoriteFilters

        public java.lang.String getFavoriteFilters(java.lang.String locale)
        Метод возвращает описание избранных фильтров
        Поведение метода аналогично api методу /rest/api/doc/documents_filters - разница лишь в том, что данный метод не принимает никаких параметров (кроме локали)
        Если избранных фильтров нет - сервер вернет пустой массив ("[]")

        URL: rest/api/docflow/doc/favorite_doc_filters
        Тип: GET
        Parameters:
        locale - локаль
        Returns:
        json строка (список фильтров)
      • getDocumentsList

        public java.lang.String getDocumentsList(java.lang.String filterType,
                                        java.lang.String filterID,
                                        java.lang.String objectID,
                                        int pageNumber,
                                        int countInPart,
                                        java.lang.String locale)
        Метод возвращает список документов для заданных параметров

        URL: rest/api/docflow/doc/documents
        Тип: GET
        Parameters:
        filterType - тип фильтра
        filterID - id фильтра
        objectID - objectID фильтра
        locale - локаль
        Returns:
        json строка (список документов)
        Примеры работы метода:
        URL: http://127.0.0.1:8080/Synergy/rest/api/docflow/doc/documents
        Сервер вернет список документов, в данном примере 1 документ.
         [
             {
                 "name": "Документ 1",
                 "content" : "",
                 "documentID": "8c081b77-5d03-4ce3-89a8-b551a73fc1d9",
                 "number": "",
                 "author": "Бобров С.Е.",
                 "docTypeId": "inner"
                 "user": "Абдрешен Л.С.",
                 "regUser": "",
                 "resUsers": "",
                 "to": "",
                 "from": "",
                 "correspondent": "",
                 "correspondentOrg": "",
                 "type": "DOCUMENT",
                 "createDate": "2014-11-13 15:50:00",
                 "regDate": "2014-11-13 16:42:00",
                 "statusID": "NOT_STARTED",
                 "isExpired": "false",
                 "isSoonExpired": "true",
                 "hasChildren": "false",
                 "hasResolution": "false",
                 "isNew": "false",
                 "hidden": "false",
                 "registered": "false",
                 "finished": "false",
                 "inProgress": "false",
                 "controlled": "false",
                 "hasAttachments": "true",
                 "defective": "false",
                 "actions":["35d757cf-5c91-4939-9b72-7bc4af84ebf4","305fa7a9-6497-4cdf-a14a-6fb344199538","41755a49-9d37-4beb-8814-03d69dce55c9"]
             }
         ]
         


        Описание параметров:

        name - краткое содержание документа
        content - значащее содержимое
        documentID - uuid документа
        number - номер документа
        author - ФИО автора документа
        docTypeID - тип журнала документа (внутренний, исходящий, входящий)
        user - ФИО пользователя, которому отписан документ
        regUser - ФИО пользователя, зарегистрировавшего документ
        resUsers - ФИО пользователей, у которых документ находится на исполнении
        to - ФИО адресатов
        from - ФИО адресантов
        correspondent - корреспондент
        correspondentOrg - корреспондент (орг)
        type - признак происхождения (EMAIL/DOCUMENT)
        createDate - время и дата создания документа в формате (DD.MM.YY hh:mm)
        regDate - время и дата регистрации документа в формате (DD.MM.YY hh:mm)
        statusID - статус документа (NOT_STARTED - на регистрации, IN_PROGRESS - на исполнении, FINISHED - завершен, DRAFT - отклонен)
        isExpired - хотя бы одна работа по маршруту документа просрочена
        isSoonExpired - хотя бы у одной работы по маршруту документа истекает срок
        hasChildren - имеет ли данный документ дочерние
        hasResolution - наложена ли резолюция на данный документ
        isNew - есть ли изменения в документе непросмотренные пользователем
        hidden - скрыт ли документ
        registered - зарегистрирован ли документ
        finished - завершен ли документ
        inProgress - находится ли документ в процессе
        actions - массив, состоящий из идентификаторов работ по данному документу. В массиве возвращаются работы, которые находятся на исполнении пользователя, вызвавшего API метод.
        controlled - является ли документ контрольным
        hasAttachments - имеет ли данный документ вложения
        defective - бракованный ли документ

        Чтобы получить список документов в находящиеся в каком-либо фильтре - нужно передать параметры этого фильтра в текущий метод. (Параметры получаются путем вызова метода /rest/api/doc/documents_filters).
        К примеру:
        1. http://127.0.0.1:8080/Synergy/rest/api/docflow/doc/documents?filterType=REGISTER_FILTER
        2. http://127.0.0.1:8080/Synergy/rest/api/docflow/doc/documents?filterType=REGISTER_FILTER&objectID=internal_docs
        3. http://127.0.0.1:8080/Synergy/rest/api/docflow/doc/documents?filterType=REGISTER_FILTER&objectID=internal_docs&filterID=3e54a5c4-603a-418f-bb43-c34117b7f855
      • getChildDocumentsList

        public java.lang.String getChildDocumentsList(java.lang.String documentID,
                                             java.lang.String locale)
        Метод возвращает список дочерних документов для родительского

        URL: rest/api/docflow/doc/child_documents
        Тип: GET
        Parameters:
        documentID - documentID (uuid родительского документа, для которого получаются дочерние, имеет смысл передавать только в том случае, если параметр hasChildren у родителя = true)
        locale - локаль
        Returns:
        json строка (список документов)
      • getDocumentInfo

        public java.lang.String getDocumentInfo(java.lang.String documentID,
                                       java.lang.String locale)
        Метод возвращает полную информацию о документе

        URL: rest/api/docflow/doc/document_info
        Тип: GET

        Пример работы метода:
        URL: http://127.0.0.1:8080/Synergy/rest/api/docflow/doc/document_info?documentID=8c081b77-5d03-4ce3-89a8-b551a73fc1d9
        Сервер вернет информацию о документе:
         [
             {
                 "name": "Документ 1",
                 "content" : "",
                 "documentID": "8c081b77-5d03-4ce3-89a8-b551a73fc1d9",
                 "number": "",
                 "author": "Бобров С.Е.",
                 "docTypeId": "inner"
                 "user": "Абдрешен Л.С.",
                 "regUser": "",
                 "resUsers": "",
                 "to": "",
                 "from": "",
                 "correspondent": "",
                 "correspondentOrg": "",
                 "type": "DOCUMENT",
                 "createDate": "2014-11-13 15:50:00",
                 "regDate": "2014-11-13 16:42:00",
                 "statusID": "NOT_STARTED",
                 "isExpired": "false",
                 "isSoonExpired": "true",
                 "hasChildren": "false",
                 "hasResolution": "false",
                 "isNew": "false",
                 "hidden": "false",
                 "registered": "false",
                 "finished": "false",
                 "inProgress": "false",
                 "controlled": "false",
                 "hasAttachments": "true",
                 "defective": "false",
                 "wasOpened": "true",
                 "actions" : ["fb051b77-6ds3-4c3f-833a8-b551a73fc1fs"],
                 "bases" : ["3c051b77-5ds3-4ce3-84a8-b551a73fc1d9"]
                 "rawdata" : "Z5IhLZaw8Ne8WCr0JkGlNn4hXdI="
             }
         ]
         


        Описание параметров:

        name - краткое содержание документа
        content - значащее содержимое
        documentID - uuid документа
        number - номер документа
        author - ФИО автора документа
        docTypeID - тип журнала документа (внутренний, исходящий, входящий)
        user - ФИО пользователя, которому отписан документ
        regUser - ФИО пользователя, зарегистрировавшего документ
        resUsers - ФИО пользователей, у которых документ находится на исполнении
        to - ФИО адресатов
        from - ФИО адресантов
        correspondent - корреспондент
        correspondentOrg - корреспондент (орг)
        type - признак происхождения (EMAIL/DOCUMENT)
        createDate - время и дата создания документа в формате (DD.MM.YY hh:mm)
        regDate - время и дата регистрации документа в формате (DD.MM.YY hh:mm)
        statusID - статус документа (NOT_STARTED - на регистрации, IN_PROGRESS - на исполнении, FINISHED - завершен, DRAFT - отклонен)
        isExpired - хотя бы одна работа по маршруту документа просрочена
        isSoonExpired - хотя бы у одной работы по маршруту документа истекает срок
        hasChildren - имеет ли данный документ дочерние
        hasResolution - наложена ли резолюция на данный документ
        isNew - есть ли изменения в документе непросмотренные пользователем
        hidden - скрыт ли документ
        registered - зарегистрирован ли документ
        finished - завершен ли документ
        inProgress - находится ли документ в процессе
        controlled - является ли документ контрольным
        hasAttachments - имеет ли данный документ вложения
        defective - бракованный ли документ
        wasOpened - был ли документ просмотрен
        actions - если пользователь по данному документу имеет несколько работ - uuid'ы этих работ будут находиться в массиве actions.
        bases - основания документа
        registryID - идентификатор реестра, в котором находится документ (может отсутствовать, если документ не принадлежит никакому реестру)
        registryName - имя реестра, в котором находится документ (может отсутствовать, если документ не принадлежит никакому реестру)
        formName - имя формы
        formID - идентификатор формы
        formCode - код формы
        asfDataID - идентификатор данных по форме реестра документа (может отсутствовать, если документ не принадлежит никакому реестру)
        rawdata - Base64 подписываемых данных документа
        processing - статус записи реестра (true - находится в процессе)
        activate - статус записи реестра (true - запись активирована)
        Parameters:
        documentID - documentID
        locale - локаль
        Returns:
        json строка
      • getAttachments

        public java.lang.String getAttachments(java.lang.String documentID,
                                      int count,
                                      boolean getCounters,
                                      java.lang.String locale)
        Метод возвращает отсортированный в обратном порядке по дате добавления список файлов документа (из вложений и прочих)

        URL: /rest/api/doc/last_attachments
        Тип: GET

        Возвращает информацию о вложениях как список json.
        Поле одного вложения:
        uuid - идентификатор файла
        dataUUID - идентификатор данных по форме (только если это файл по форме)
        mobile - имеется ли мобильное представление у формы (только если это файл по форме)
        name - название файла
        is_editable - возможно ли изменять/удалять файл
        created_label - читабельное время создания файла от текущего момента
        created - время создания файла
        icon урл изображения для предпросмотра, в случае его отсутствия - урл иконки типа файла

        Пример запроса на получение трех последних вложений
        http://хост:порт/Synergy/rest/api/docflow/doc/last_attachments?count=3&documentID=UUID
        Parameters:
        documentID - uuid документа
        count - количество файлов которое должно быть возвращено (по умолчанию 3)
        getCounters - если true - метод так же возвращает общее количество вложений документа (по умолчанию false)
        locale - локаль пользователя
        Returns:
        если getCounters= true, возвращается json вида
        {list: [{вложение_1}, {вложение_2}, ..., {вложение_n}], count: количество_вложений документа }
        если getCounters=false, возвращается просто список вложений [{вложение_1}, {вложение_2}, ..., {вложение_n}]
      • getFullAttachments

        public java.lang.String getFullAttachments(java.lang.String documentID,
                                          java.lang.String locale)
        Метод возвращает все файлы данного документа по двум группам - вложения и прочие

        URL: rest/api/docflow/doc/attachments
        Тип: GET

        Возвращает информацию о файлах как объект json:

        {attachments: [..list of attachments ..], work_files: [..list of work files ..]}

        Каждый файл из attachments и work_files описывается следующими полями
        uuid - идентификатор файла
        name - название файла
        is_editable - возможно ли изменять/удалять файл
        created_label - читабельное время создания файла от текущего момента
        created - время создания файла
        icon урл изображения для предпросмотра, в случае его отсутствия - урл иконки типа файла

        Пример ответа, в котором есть один файл вложений и один файл прочих
         {
              "attachments": [
                  {
                      "uuid": "d55ae76a-f451-452d-93cb-3c6b28ba2335",
                      "name": "Изображение.jpg",
                      "is_editable": "true",
                      "created_label": "15 минут назад",
                      "created": "2013-06-26 09:12:54",
                      "icon": "preview?identifier=d55ae76a-f451-452d-93cb-3c6b28ba2335"
                  }
              ],
              "work_files": [
                  {
                      "uuid": "d55ae76a-f451-452d-93cb-3c6b28ba2332",
                      "name": "Документ.doc",
                      "is_editable": "true",
                      "created_label": "15 минут назад",
                      "created": "2013-06-26 09:12:54",
                      "icon": "preview?identifier=d55ae76a-f451-452d-93cb-3c6b28ba2332"
                  }
              ]
         }
         
        Parameters:
        documentID - - uuid документа
        locale - - локаль пользователя
        Returns:
        описано выше
      • createAttachment

        public java.lang.String createAttachment(java.lang.String documentID,
                                        java.lang.String path,
                                        java.lang.String fileName,
                                        java.lang.String filePath,
                                        java.lang.String locale)

        Метод добавляет вложение к документу из временного файла, загруженного на сервер с помощью API метода rest/api/storage/start_upload



        URL: rest/api/docflow/doc/attachment/create
        Тип: POST
        Parameters:
        documentID - UUID документа
        path - строка показывающая, в какой контейнер необходимо положить файл. (ase:attachmentContainer, ase:workContainer)
        fileName - название загружаемого файла
        filePath - путь к временному файлу, загруженному на сервер
        locale - локаль пользователя
        Returns:
        json объект с полями - errorCode - код выполнения операции (0 успешно, иначе - ошибка),
      • doCreateAttachment

        public java.lang.String doCreateAttachment(java.lang.String documentID,
                                          java.lang.String path,
                                          java.lang.String fileName,
                                          java.lang.String filePath,
                                          java.lang.String locale,
                                          boolean warning,
                                          java.lang.String successMessage)
      • deleteAttachment

        public java.lang.String deleteAttachment(java.lang.String fileUUID,
                                        java.lang.String locale)
        Метод удаляет вложение

        URL: rest/api/docflow/doc/attachment/remove
        Тип GET
        Parameters:
        fileUUID - идентификатор файла, который надо удалить
        locale - локаль пользователя
        Returns:
        Объект json с полями
        errorCode код выполнения (0- успешно, иначе - ошибка)
        errorMessage сообщение, характеризующее успешное выполнение либо ошибку
      • getComments

        public java.lang.String getComments(java.lang.String documentID,
                                   int start,
                                   int count,
                                   boolean getCounters,
                                   java.lang.String locale)
        Метод возвращает комментарии к документу отсортированные в обратном порядке по дате добавления

        URL: rest/api/docflow/doc/comments/list
        Method GET

        Возвращает информацию о комментариях как список json
        Поле одного комментария

        commentID - uuid комментария
        comment - текст комментария
        author - автор
        author.userID - uuid автора
        author.name - имя автора
        created - дата создания
        comment_icon_type - тип иконки комментария
        created_label - время от даты создания либо время создания
        type - тип комментария (константы в arta.synergy.web.common.client.constants.CommentType)
        is_editable - возможно ли редактирование данного комментария
        is_deletable - возможно ли удаление данного комментария

        Пример получения последних трех комментариев
        http://хост:порт/Synergy/rest/api/docflow/doc/comments/list?documentID=UUID&count=3
        Parameters:
        documentID - uuid документа
        start - номер первой записи (отсчет с 0)
        count - количество записей в возвращаемом списке (по умолчанию 3)
        getCounters - true - получить количество комментариев, иначе - false
        locale - локаль пользователя
        Returns:
        если getCounters= true, возвращается json вида
        {list: [{комментарий_1}, {комментарий_2}, ..., {комментарий_n}], count: количество_комментариев_в_фильтре}
        если getCounters = false, возвращается просто список комментариев [{комментарий_1}, {комментарий_2}, ..., {комментарий_n}]
      • addComment

        public java.lang.String addComment(java.lang.String documentID,
                                  java.lang.String workID,
                                  java.lang.String commentID,
                                  java.lang.String comment,
                                  java.lang.String locale)
        Добавляет/изменяет комментарий к документу

        URL: rest/api/docflow/doc/comments/save
        Тип POST
        Parameters:
        documentID - uuid документа
        workID - uuid работы
        commentID - uuid комментария, для добавления нового комментария - не передавать
        comment - текст комментария (передается как параметр формы)
        locale - локаль пользователя На данный момент поддерживается только один тип simple - к телу комментария добавляются названия объектов.
      • deleteComment

        public java.lang.String deleteComment(java.lang.String commentID,
                                     java.lang.String locale)
        Метод удаляет комментарий

        URL: rest/api/docflow/doc/comments/remove
        Тип GET
        Parameters:
        commentID - uuid комментария
        locale - локаль пользователя
      • getDocumentItems

        public java.lang.String getDocumentItems(java.lang.String documentID,
                                        java.lang.String locale)
        Метод возвращает набор действий, которые может совершить авторизованный пользователь над документом

        URL: rest/api/docflow/document_actions
        Тип: GET

        Каждое действие характеризуется следующими полями:
        action - идентификатор действия, значение из WorkActionType
        operation - идентификатор операции, значение из WorkActionSubType (может отсутствовать)
        label - название действия
        color - идентификатор цвета, значение из ActionColor
        Parameters:
        documentID - uuid работы
        locale - локаль пользователя
        Returns:
        массив json объектов с информацией о возможных действиях
        See Also:
        WorkActionType, WorkActionSubType, ActionColor
      • setHidden

        public java.lang.String setHidden(java.lang.String documentID,
                                 boolean hidden,
                                 java.lang.String filterType,
                                 java.lang.String locale)
        Метод скрывает/восстанавливает документ

        URL: rest/api/docflow/doc/hide
        Тип: GET
        Parameters:
        documentID - documentID (uuid документа)
        filterType - фильтр, в котором скрывается документ
        hidden - true - скрыть документ, false - восстановить
        locale - локаль
        Returns:

        В случае неуспешного выполнения возвращается json с полями
        errorCode - код выполнения (число, отличное от 0)
        errorMessage - сообщение об ошибке
        See Also:
        arta.synergy.web.common.client.data.bp.docflow.DocSearchParams#USER_OWN_DOCUMENTS, arta.synergy.web.common.client.data.bp.docflow.DocSearchParams#USER_SENT_DOCUMENTS, arta.synergy.web.common.client.data.bp.docflow.DocSearchParams#USER_RECEIVED_DOCUMENTS, arta.synergy.web.common.client.data.bp.docflow.DocSearchParams#ALL_USER_DOCUMENTS
      • setSeen

        public java.lang.String setSeen(java.lang.String documentID,
                               boolean seen,
                               java.lang.String filterType,
                               java.lang.String locale)
        Метод отмечает документ как "Просмотренный"

        URL: rest/api/docflow/doc/set_seen
        Тип: GET
        Parameters:
        documentID - documentID (uuid документа)
        seen - true/false (просмотрен документ либо нет)
        filterType - тип фильтра, из которого скрывается документ
        locale - локаль
        Returns:

        В случае неуспешного выполнения возвращается json с полями
        errorCode - код выполнения (число, отличное от 0)
        errorMessage - сообщение об ошибке
      • getRoutes

        public java.lang.String getRoutes(java.lang.String search,
                                 boolean bookmarks,
                                 java.lang.String locale)
        Получение списка маршрутов доступных пользователю

        URL: rest/api/docflow/doc/routes
        Тип: GET
        Parameters:
        search - строка поиска (поиск производится только по наименованию маршрутов)
        bookmarks - true - отображать только скрытые, false - отображать все (по умолчанию)
        locale - локаль
        Returns:
        json строка (успешно/неуспешно) Пример:
            [
            {
            "routeID": "c4ddd6b1-ade2-4ee2-ace5-aaec6a81d02a",
            "routeName": "Анализ бухгалтерского баланса",
            "authorID": "ee71a4c6-888a-4f04-86de-44ab394f5749",
            "authorName": "Слепаков И.И.",
            "isBookmark": "false"
            },
            {
            "routeID": "22a48f88-199a-4398-8eb6-15ba8ef35deb",
            "routeName": "Анализ бухгалтерского баланса №2",
            "authorID": "ee71a4c6-888a-4f04-86de-44ab394f5749",
            "authorName": "Слепаков И.И.",
            "isBookmark": "true"
            }
            ]
         

        routeID - uuid маршрута
        routeName - наименование реестра
        authorID - uuid автора
        authorName - имя автора
        isBookmark - является ли реестр "Избранным"
      • getDocCode

        public java.lang.String getDocCode(java.lang.String typeId)
      • getRegUserByDtiID

        public java.lang.String getRegUserByDtiID(java.lang.String dtiId)
      • addDtiIDLink

        public java.lang.String addDtiIDLink(java.lang.String dtiId,
                                    java.lang.String docID)
      • getDocumetInfo

        public java.util.Map<java.lang.String,java.lang.String> getDocumetInfo(java.lang.String dtiId,
                                                                      java.lang.String docID)
      • getDocumentHistory

        public java.util.List<ProcessHistory> getDocumentHistory(java.lang.String documentID,
                                                        java.lang.String locale)
      • getDocumentRCC

        public java.lang.String getDocumentRCC(java.lang.String documentID,
                                      java.lang.String locale)

        API-метод, позволяющий получить РКК документа.

        URL rest/api/docflow/doc/rcc
        Method GET

        Parameters:
        documentID - UUID документа (обяз.);
        locale - локаль;
        Returns:
        В случае успешного выполнения возвращаемая json в самом общем виде имеет следующие поля:

        (1) Для документов с типом журнала внутренний:


        • content - краткое содержание в строковом формате;
        • registerID - UUID журнала, по которому был выбран тип документа;
        • registerName - название журнала, по которому был выбран тип документа. Отобразить название в соответствии с локалью в строковом формате;
        • number - номер в строковом формате, установленном для данного документа;
        • regDate - отображается для зарегистрированных документов в формате "ГГГГ-ММ-ДД ЧЧ:ММ:СС";
        • length - отображается в числовом формате в случае, если при настройке типа документа был использован способ ввода срока "Длительность";
        • lengthType - отображает тип длительности в зависимости от установленной настройки "Способ расчета срока" (отображается в случае отображения поля length) и принимает один из следующих значений:
          • "WORKING_DAYS" - в рабочих днях;
          • "CALENDAR_DAYS" - в календарных днях;
        • finishDate - отображается в формате "ГГГГ-ММ-ДД" в случае, если при настройке типа документа был использован способ ввода срока "Дата завершения";
        • authorID - UUID автора документа;
        • authorName - ФИО автора документа;
        • registeredByID - UUID зарегестрировавшего документ;
        • registeredByName - ФИО зарегистрировавшего документ;
        • controlled - является ли контрольным (true - да, false - нет);
        • caseID - UUID дела;
        • caseName - название дела, в которое был списан документ. Отобразить название в соответствии с локалью в строковом формате;
        • bases - массив, содержащий UUID оснований;
        • executorID - UUID исполнителя.
        • executorName - ФИО исполнителя.
        • mandatoryFields - представляет собой массив строк с кодами обязательных для заполнения полей. В случае, если какое-либо из полей РКК передается в виде нескольких полей JSON, в mandatoryFields указываются они все

        (2) Для документов с типом журнала входящий:


        • content - краткое содержание в строковом формате;
        • registerID - UUID журнала, по которому был выбран тип документа
        • registerName - название журнала, по которому был выбран тип документа. Отобразить название в соответствии с локалью в строковом формате
        • number - номер в строковом формате, установленном для данного документа;
        • regDate - отображается для зарегистрированных документов в формате "ГГГГ-ММ-ДД ЧЧ:ММ:СС";
        • length - отображается в числовом формате в случае, если при настройке типа документа был использован способ ввода срока "Длительность";
        • lengthType - отображает тип длительности в зависимости от установленной настройки "Способ расчета срока" (отображается в случае отображения поля length) и принимает один из следующих значений:
          • "WORKING_DAYS" - в рабочих днях;
          • "CALENDAR_DAYS" - в календарных днях;
        • finishDate - отображается в формате "ГГГГ-ММ-ДД" в случае, если при настройке типа документа был использован способ ввода срока "Дата завершения";
        • correspondentOrg - название корреспондента-организации в строковом формате;
        • correspondent - название корреспондента в строковом формате;
        • registeredByID - UUID зарегестрировавшего документ;
        • registeredByName - ФИО зарегистрировавшего документ;
        • controlled - является ли контрольным (true - да, false - нет);
        • numberOut - номер исх. в строковом формате, установленном для данного документа;
        • dateOut - дата исх. в формате "ГГГГ-ММ-ДД ЧЧ:ММ:СС";
        • caseID - UUID дела;
        • caseName - название дела, в которое был списан документ. Отобразить название в соответствии с локалью в строковом формате;
        • bases - массив, содержащий UUID оснований;
        • executorID - UUID исполнителя.
        • executorName - ФИО исполнителя.
        • mandatoryFields - представляет собой массив строк с кодами обязательных для заполнения полей. В случае, если какое-либо из полей РКК передается в виде нескольких полей JSON, в mandatoryFields указываются они все

        (3) Для документов с типом журнала исходящий:


        • content - краткое содержание в строковом формате;
        • registerID - UUID журнала, по которому был выбран тип документа;
        • registerName - название журнала, по которому был выбран тип документа. Отобразить название в соответствии с локалью в строковом формате;
        • number - номер в строковом формате, установленном для данного документа;
        • regDate - отображается для зарегистрированных документов в формате "ГГГГ-ММ-ДД ЧЧ:ММ:СС";
        • correspondentOrg - название корреспондента-организации в строковом формате;
        • correspondent - название корреспондента в строковом формате;
        • authorID - UUID автора документа;
        • authorName - ФИО автора;
        • registeredByID - UUID зарегестрировавшего документ;
        • registeredByName - ФИО зарегистрировавшего документ;
        • controlled - является ли контрольным (true - да, false - нет);
        • caseID - UUID дела;
        • caseName - название дела, в которое был списан документ. Отобразить название в соответствии с локалью в строковом формате
        • bases - массив, содержащий UUID оснований;
        • data - Также должны отображаться данные из формы "Дополнительной карточки";
        • mandatoryFields - представляет собой массив строк с кодами обязательных для заполнения полей. В случае, если какое-либо из полей РКК передается в виде нескольких полей JSON, в mandatoryFields указываются они все
        *так же вовращаются недефолтные поля, что включены в особой настройке карточки хотя бы одного типа документа данного типа журнала. Такими полями могут быть

        для документов с типом журнала входящий:

        • authorID - UUID автора документа

        для документов с типом журнала внутренний:

        • correspondentOrg - название корреспондента-организации в строковом формате
        • correspondent - название корреспондента в строковом формате
        • numberOut - номер исх. в строковом формате, установленном для данного документа
        • dateOut - дата исх. в формате "ГГГГ-ММ-ДД ЧЧ:ММ:СС"

        для документов с типом журнала исходящий:

        • numberOut - номер исх. в строковом формате, установленном для данного документа
        • dateOut - дата исх. в формате "ГГГГ-ММ-ДД ЧЧ:ММ:СС"

        В случае неуспешного выполнения возвращается json с полями:

        • errorCode - код выполнения (число, отличное от 0);
        • errorMessage - "Ошибка получения РКК документа".

        Пример возвращаемого массива:

         {
              "content": "Future requests.",
              "registerID": "888cfa2e-6d55-4ed5-b1be-890ffad560dq",
              "registerName": "Исходящие документы",
              "number": "{obwii}-{dd}.{MM}.{yyyy}",
              "regDate": "",
              "correspondentOrg": "",
              "correspondent": "",
              "authorID": "179bda2e-6d55-4ed5-b1be-890ffad280ba",
              "authorName": "Aбдрешен Леонид Аркадьевич",
              "registeredByID": "",
              "registeredByName": ""
              "controlled": true,
              "caseID": "",
              "caseName": "",
              "bases": [],
              "data":[
                  {
                  "id": "cmp-numericinput",
                  "type": "numericinput",
                  "value": "20.00"
                  },
                  {
                  "id": "cmp-id",
                  "type": "personlink",
                  "label": "Label-text",
                  "value": "идентификатор записи адресной книги"
                  }
              ],
              "mandatoryFields": [
                  "caseID", "caseName", "executorID", "executorName"
              ]
         }
         
      • finDocByNumber

        public java.lang.String finDocByNumber(java.lang.String number)

        API-метод, позволяющий получить идентификатор документа по его номеру (если таких документов несколько, возвращается первый).

        URL rest/api/docflow/findDocByNumber
        Method GET

        Parameters:
        number - номер (обяз.);
        Returns:
        В случае успешного выполнения возвращается идентификатор документа

        В случае неуспешного выполнения возвращается json с полями:

        • errorCode - код выполнения (число, отличное от 0)
        • errorMessage - "Ошибка получения подписей документа"
      • getSignList

        public java.lang.String getSignList(java.lang.String documentID,
                                   java.lang.String locale)

        API-метод, позволяющий получить список подписей для данного документа.

        URL rest/api/docflow/doc/sign_list
        Method GET

        Parameters:
        documentID - UUID документа (обяз.)
        locale - локаль
        Returns:
        В случае успешного выполнения json возвращает массив, содержащий элементы со следующими полями:
        • userID - UUID подписавшего сотрудника
        • userName - Ф.И.О. подписавшего сотрудника
        • userPosition - должность подписавшего сотрудника
        • date - стамп времени подписания в формате: "ГГГГ-ММ-ДД ЧЧ:ММ:СС"
        • comment - комментарий
        • actionType - тип действия, при котором совершили подписание. Один из следующих вариантов:
          • SIGN_ITEM - подписано с помощью действия "Подписать"
          • AGREEMENT_ITEM - подписано при согласовании
          • APPROVAL_ITEM - подписано при утверждении
          • ACQUAINTANCE_ITEM - подписано при ознакомлении
        • signType - тип подписи. Один из следующих вариантов
          • SIMPLE - обычная подпись
          • ECS - электронная подпись, при её валидности

        В случае неуспешного выполнения возвращается json с полями:

        • errorCode - код выполнения (число, отличное от 0)
        • errorMessage - "Ошибка получения подписей документа"

        Пример возвращаемого массива:

             [
             {
              "userID": "179bda2e-6d55-4ed5-b1be-890ffad280ba",
              "userName": "Калиев И.О.",
              "userPosition": "Генеральный директор",
              "date": "2015-05-19 11:12:13",
              "comment": "",
              "actionType": "SIGN_ITEM",
              "signType": "SIMPLE"
             },
             {
              "userID": "78w96q2e-6d55-4ed5-b1be-890ffad280ba",
              "userName": "Захаров М.П.",
              "userPosition": "Заместитель директора",
              "date": "2015-05-20 10:11:12",
              "comment": "OK",
              "actionType": "AGREEMENT_ITEM"
              "signType": "ECS"
             }
             ]
         
      • sign

        public Response sign(java.lang.String locale,
                    java.lang.String documentID,
                    java.lang.String rawdata,
                    java.lang.String signdata,
                    java.lang.String certificate,
                    java.lang.String certID)

        API-метод подписания документа

        URL rest/api/docflow/sign
        Method POST

        Parameters:
        locale - локаль пользователя
        documentID - UUID документа (обяз.)
        rawdata - данные для подписи base64 (обяз.)
        signdata - Base64 закодированная строка с подписью (обяз., если включена настройка "Требовать ключ и сертификат")
        certificate - сертификат base64 (обяз. если включена настройка требовать ключ и сертификат)
        certID - идентификатор сертификата, получаемый в методе verificationkey (certID::::sigalg) (обяз., если включена настройка "Требовать ключ и сертификат");
        Returns:
        В случае успешного выполнения json со следующими полями:
        • errorCode = 0
        • errorMessage = Данные сохранены
        в случае ошибки вернет json со следующими полями
        • errorCode = код ошибки
        • errorMessage = сообщение
      • transferDocumentAttachments

        public Response transferDocumentAttachments(FileTransferOperation operation)

        Метод API для трансфера файлов вложений из одного документа в другой

        URL: rest/api/docflow/doc/attachment/transfer
        Method POST
        Parameters:
        operation - - Метод принимает следующие параметры (json):

        toDocId - UUID документа, в который будут отправлены файлы (обяз.)
        path - параметр, определяющий в какую папку контейнера файлов документа необходимо положить файл. Возможные значения:
        • ase:attachmentContainer - папка "Приложения"
        • ase:workContainer - папка "Прочие"
        По умолчанию принимается значение ase:attachmentContainer.
        fromDocId - UUID документа, из которого будут отправлены файлы (обяз.)
        fileCollision - параметр (необяз., по умолчанию skip), который определяет поведение метода при совпадении названия файла или идентификатора файла (в том числе файл с другим идентификатором, но одинаковым названием, если передача файла производится по идентификатору). Принимает следующие параметры:
        • overwrite - файл полностью перезаписывается
        • skip - данный файл пропускается, то есть не передается
        • version - файл добавляется в качестве новой версии файла.

        files - массив отправляемых файлов из документа fromDocId со следующими полями (обяз.):
        • fileUUID - идентификатор файла
        • fileName - название файла с расширением
        • filePath - папка, контейнера файлов документа, в которой находится данный файл (необяз., по умолчанию ase:attachmentContainer). Используется только вместе с параметром fileName. Может принимать следующие значения:
          • ase:attachmentContainer - папка "Приложения"
          • ase:workContainer - папка "Прочие".

        В элементе массива обязательно должен присутствовать либо параметр fileUUID, либо fileName.
        Если в элементе массива введен fileUUID, то параметры fileName, filePath игнорируются и передается файл с указанным идентификатором. Если в элементе массива не введен fileUUID, то передается файл с указанным названием.
        Если в массиве один и тот же файл указан несколько раз, то передается он только один раз. Для следующих случаев:
        • два элемента массива содержат одинаковые fileUUID
        • два элемента массива содержат одинаковые fileName и filePath (одновременно)
        • один из элементов массива содержит fileName и filePath файла, идентификатор которого соответствует одному из fileUUID, указанному в другом элементе массива.

        Пример передаваемого запроса:
             {
                 "toDocId" : "359e0450-5248-11e6-81e4-5a14ad700067",
                 "path": "ase:workContainer",
                 "fromDocId" : "96491790-4e33-11e6-a28a-5a14ad700067",
                 "fileCollision" : "version",
                 "files":
                     [
                         { "fileUUID" : "0db3a170-4e38-11e6-8030-001ef892a4ee"},
                         { "fileUUID" : "f30f6b31-4cbe-11e6-8030-001ef892a4ee"},
                         {
                             "fileUUID" : "831b5d10-4da5-11e6-812b-5a14ad700067",
                             "fileName" : "test.pdf",
                             "filePath" : "ase:workContainer"
                         },
        
                         {
                             "fileName" : "test.htd",
                             "filePath" : "ase:workContainer`"
                         },
                         {  "fileName" : "file1.pdf"}
                     ]
             }
         
        Returns:
        В случае успешного выполнения json со следующими полями:
        • errorCode = 0
        • errorMessage = Файлы добавлены
        в случае ошибки вернет json со следующими полями
        • errorCode = код ошибки
        • errorMessage = сообщение
        Пример возвращаемого json-объекта при успешном выполнении метода:
               {
                    "errorCode": 0,
                    "errorMessage": "Файлы добавлены"
               }
         
      • getDocTypes

        public Response getDocTypes(java.lang.String registerID,
                           java.lang.String description,
                           int page,
                           int recordsCount,
                           java.lang.String locale)

        Метод API для получения списка типов документов
        URL: rest/api/docflow/doctypes
        Method GET

        Parameters:
        registerID - идентификатор журнала (необяз.). При вводе данного параметра возвращаются те типы документов, которые относятся к данному журналу
        description - параметр (необяз., по умолчанию short), который принимает следующие значения:
        • full - возвращается полное описание типа документа
        • short - возвращается только идентификатор, код и название типа документа
        page - номер страницы результатов, начиная с которой будут возвращены записи (по умолчанию 0)
        recordsCount - количество результатов, которые необходимо вернуть (по умолчанию 30). Максимальное значение параметра 100
        locale - локаль
        Returns:
        Данный метод возвращает список всех типов документов либо при указании идентификатора журнала список типов документов данного журнала с полным либо кратким описанием. Список типов документов возвращается с учетом прав пользователя, который вызывает API метод, на данные типы документов. Если у пользователя нет доступа к какому-либо типу документа, то данный тип не возвращается в списке.
        Метод при условии description=short возвращает массив JSON, состоящий из следующих полей
        • typeID - идентификатор типа документа
        • code - код типа документа
        • name - название типа документа
        Метод при условии description=full возвращает массив JSON, состоящий из следующих полей:
        • typeID - идентификатор типа документа
        • code - код типа документа
        • name - название типа документа
        • calc_method_term - способ расчета срока, один из следующих вариантов:
          • WORKING_DAYS - в рабочих днях
          • CALENDAR_DAYS - в календарных днях
        • duration - длительность по умолчанию (в днях)
        • input_method_term - способ ввода срока, один из следующих вариантов:
          • DURATION - длительность
          • FINISH_DATE - дата завершения
        • registerID - идентификатор журнала
        • baseRegisterID - идентификатор базового журнала
        • formID - идентификатор формы
        • form_type - тип реализации формы, один из следующих вариантов:
          • 0 - форма на основе xform
          • 1 - новая реализация форм
        • routes - массив, который содержит названия шаблонов маршрутов
        • checkDocCard - валидация ркк перед отправкой: true - проводится валидация РКК перед отправкой документа, false - валидация не проводится
        • demand_resuser - требовать ввода исполнителя: true - требуется ввод исполнителя перед отправкой документа, false - ввод исполнителя не требуется
        • demand_docfile - требовать указания дела: true - требуется указание дела перед отправкой документа, false - указание дела не требуется
        • demand_regcomment - требовать ввода комментария при регистрации: true - требуется ввод комментария при регистрации, false - ввод комментария не требуется
        • reg_condition - массив, который содержит условия регистрации. В данном массиве возвращаются только те условия, которые отмечены для проверки на наличие. Если ни одно из условий не отмечено, то массив возвращается пустой. Условия регистрации следующие
          • `demand_signature` - наличие подписи
          • `demand_approval` - наличие утверждения
          • `demand_resolution` - наличие резолюции
        • fields - массив объектов со следующими полями:
          • name - название поля РКК, один из следующих вариантов:
            • subject - краткое содержание
            • doc_type - тип документа
            • number - номер
            • reg_date - дата регистрации
            • duration - длительность/завершение
            • correspondent_org - корреспондент (орг)
            • correspondent - корреспондент
            • author - автор
            • reg_user - зарегистрировал
            • control - является контрольным
            • base_number - номер исх.
            • base_date - дата исх.
            • doc_file - дело
            • base - основание
            • user - исполнитель
            В данном массиве объектов возвращаются только те поля, которые отмечены для отображения в карточке документа. Поля, которые не отображаются в карточке документа, в данном массиве объектов не возвращаются.
          • number - порядковый номер поля, отсутствует только для поля user.
        Пример возвращаемого массива при условии description=full:
            [
            {
                "typeID" : "f30f6b31-4cbe-12e31f70-8030-0012a4ee",
                    "code" : "internal",
                    "name" : "Внутренние документы",
                    "calc_method_term" : "WORKING_DAYS",
                    "duration" : 5,
                    "input_method_term" : "DURATION",
                    "registerID" : "8f85e270-ebf1-11e5-835c-525400bb7fc6",
                    "baseRegisterID" : "aa55e270-ebf1-11e5-835c-525400bb7fc6",
                    "formID" : "52sf2270-4cc0-11e6-8030-001ef892a4ee",
                    "form_type" : 0,
                    "routes" :
                [
                "Шаблон приказов",
                        "Шаблон заявлений"
                ],
                "checkDocCard" : false,
                    "demand_resuser" : false,
                    "demand_docfile" : false,
                    "demand_regcomment" : false,
                    "reg_condition" :
                [
                "demand_signature",
                        "demand_approval"
                ],
                "fields" :
                [
                { "name" : "subject", "number" : 1  },
                { "name" : "doc_type", "number" : 2  },
                { "name" : "number", "number" : 3   },
                { "name" : "reg_date", "number" : 4  },
                { "name" : "correspondent_org", "number" : 5  },
                { "name" : "correspondent", "number" : 6  },
                { "name" : "author", "number" : 7 },
                { "name" : "reg_user", "number" : 9 },
                { "name" : "control", "number" : 10  },
                { "name" : "doc_file", "number" : 13  },
                { "name" : "base", "number" : 14  }
                ]
            },
            {
                "typeID" : "0db3a170-4e38-11e6-8030-001ef892a4ee",
                    "code" : "incoming",
                    "name" : "Входящие документы",
                    "calc_method_term" : "WORKING_DAYS",
                    "duration" : 5,
                    "input_method_term" : "DURATION",
                    "registerID" : "8f85e270-ebf1-11e5-835c-525400bb7fc6",
                    "baseRegisterID" : "aa55e270-ebf1-11e5-835c-525400bb7fc6",
                    "formID" : "22s12270-4cc0-11e6-8030-001ef892a4ee",
                    "form_type" : 0,
                    "routes" :
                [
                "Шаблон входящих писем",
                        "Шаблон писем"
                ],
                "checkDocCard" : false,
                    "demand_resuser" : false,
                    "demand_docfile" : false,
                    "demand_regcomment" : false,
                    "reg_condition" :
                [
                "demand_signature",
                        "demand_approval"
                ],
                "fields" :
                [
                { "name" : "subject", "number" : 1  },
                { "name" : "doc_type", "number" : 2  },
                { "name" : "number", "number" : 3   },
                { "name" : "reg_date", "number" : 4  },
                { "name" : "correspondent_org", "number" : 5  },
                { "name" : "correspondent", "number" : 6  },
                { "name" : "author", "number" : 7 },
                { "name" : "reg_user", "number" : 9 },
                { "name" : "control", "number" : 10  },
                { "name" : "doc_file", "number" : 13  },
                { "name" : "base", "number" : 14  }
                ]
            },
            {
                "typeID" : "fd96dff0-4e37-11e6-8030-001ef892a4ee",
                    "code" : "outgoing",
                    "name" : "Исходящие документы",
                    "calc_method_term" : "WORKING_DAYS",
                    "duration" : 5,
                    "input_method_term" : "DURATION",
                    "registerID" : "8f85e270-ebf1-11e5-835c-525400bb7fc6",
                    "baseRegisterID" : "aa55e270-ebf1-11e5-835c-525400bb7fc6",
                    "formID" : "21df270-4cc0-11e6-8030-001ef892a4ee",
                    "form_type" : 0,
                    "routes" :
                [
                "Шаблон заявок",
                        "Шаблон заявок на закуп"
                ],
                "checkDocCard" : false,
                    "demand_resuser" : false,
                    "demand_docfile" : false,
                    "demand_regcomment" : false,
                    "reg_condition" :
                [
                "demand_signature",
                        "demand_approval"
                ],
                "fields" :
                [
                { "name" : "subject", "number" : 1  },
                { "name" : "doc_type", "number" : 2  },
                { "name" : "number", "number" : 3   },
                { "name" : "reg_date", "number" : 4  },
                { "name" : "correspondent_org", "number" : 5  },
                { "name" : "correspondent", "number" : 6  },
                { "name" : "author", "number" : 7 },
                { "name" : "reg_user", "number" : 9 },
                { "name" : "control", "number" : 10  },
                { "name" : "doc_file", "number" : 13  },
                { "name" : "base", "number" : 14  }
                ]
            }
            ]
         
      • getDocType

        public Response getDocType(java.lang.String code,
                          java.lang.String locale)

        Метод API для получения описания типа документа
        URL: rest/api/docflow/doctypes/{docTypeCode}
        Method GET

        Parameters:
        code - код типа документа (обяз.);
        locale - локаль
        Returns:
        Метод возвращает полное описание типа документа по его коду, в том числе и перечень отображаемых в карточке документа полей с учетом прав пользователя, который вызывает API метод, на данный тип документа. Метод возвращает объект JSON, состоящий из следующих полей
        • typeID - идентификатор типа документа
        • code - код типа документа
        • name - название типа документа
        • calc_method_term - способ расчета срока, один из следующих вариантов:
          • WORKING_DAYS - в рабочих днях
          • CALENDAR_DAYS - в календарных днях
        • duration - длительность по умолчанию (в днях)
        • input_method_term - способ ввода срока, один из следующих вариантов:
          • DURATION - длительность
          • FINISH_DATE - дата завершения
        • registerID - идентификатор журнала
        • baseRegisterID - идентификатор базового журнала
        • formID - идентификатор формы
        • form_type - тип реализации формы, один из следующих вариантов:
          • 0 - форма на основе xform
          • 1 - новая реализация форм
        • routes - массив, который содержит названия шаблонов маршрутов
        • checkDocCard - валидация ркк перед отправкой: true - проводится валидация РКК перед отправкой документа, false - валидация не проводится
        • demand_resuser - требовать ввода исполнителя: true - требуется ввод исполнителя перед отправкой документа, false - ввод исполнителя не требуется
        • demand_docfile - требовать указания дела: true - требуется указание дела перед отправкой документа, false - указание дела не требуется
        • demand_regcomment - требовать ввода комментария при регистрации: true - требуется ввод комментария при регистрации, false - ввод комментария не требуется
        • reg_condition - массив, который содержит условия регистрации. В данном массиве возвращаются только те условия, которые отмечены для проверки на наличие. Если ни одно из условий не отмечено, то массив возвращается пустой. Условия регистрации следующие
          • `demand_signature` - наличие подписи
          • `demand_approval` - наличие утверждения
          • `demand_resolution` - наличие резолюции
        • fields - массив объектов со следующими полями:
          • name - название поля РКК, один из следующих вариантов:
            • subject - краткое содержание
            • doc_type - тип документа
            • number - номер
            • reg_date - дата регистрации
            • duration - длительность/завершение
            • correspondent_org - корреспондент (орг)
            • correspondent - корреспондент
            • author - автор
            • reg_user - зарегистрировал
            • control - является контрольным
            • base_number - номер исх.
            • base_date - дата исх.
            • doc_file - дело
            • base - основание
            • user - исполнитель
            В данном массиве объектов возвращаются только те поля, которые отмечены для отображения в карточке документа. Поля, которые не отображаются в карточке документа, в данном массиве объектов не возвращаются.
          • number - порядковый номер поля, отсутствует только для поля user.
        Пример возвращаемого объекта JSON при указании кода типа документа:
            {
                "typeID" : "fd96dff0-4e37-11e6-8030-001ef892a4ee",
                    "code" : "outgoing",
                    "name" : "Исходящие документы",
                    "calc_method_term" : "WORKING_DAYS",
                    "duration" : 5,
                    "input_method_term" : "DURATION",
                    "registerID" : "8f85e270-ebf1-11e5-835c-525400bb7fc6",
                    "baseRegisterID" : "aa55e270-ebf1-11e5-835c-525400bb7fc6",
                    "formID" : "66df2270-4cc0-11e6-8030-001ef892a4ee",
                    "form_type" : 0,
                    "routes" :
                [
                "Шаблон заявок",
                        "Шаблон заявок на закуп"
                ],
                "checkDocCard" : false,
                    "demand_resuser" : false,
                    "demand_docfile" : false,
                    "demand_regcomment" : false,
                    "reg_condition" :
                [
                "demand_signature",
                        "demand_approval"
                ],
                "fields" :
                [
                { "name" : "subject", "number" : 1  },
                { "name" : "doc_type", "number" : 2  },
                { "name" : "number", "number" : 3   },
                { "name" : "reg_date", "number" : 4  },
                { "name" : "correspondent_org", "number" : 5  },
                { "name" : "correspondent", "number" : 6  },
                { "name" : "author", "number" : 7 },
                { "name" : "reg_user", "number" : 9 },
                { "name" : "control", "number" : 10  },
                { "name" : "doc_file", "number" : 13  },
                { "name" : "base", "number" : 14  }
                ]
            }
         
      • sendDocument

        public Response sendDocument(DocSendInfo sendInfo)

        Метод API для пересылки документов URL: rest/api/docflow/doc/send
        Method POST
        Метод принимает следующие входные параметры (json):

        documentID - uuid документа, который необходимо переслать (обяз.);
        users - массив uuid пользователей, которым необходимо переслать документ;
        groups - массив uuid групп пользователей, которым необходимо переслать документ;
        emails - массив произвольных e-mail, которым необходимо переслать документ;
        locale - локаль. Пример передаваемого запроса: { "documentID": "7ce1feff-a3f0-4f4e-8bf6-59e37caf553f", "users": ["7b953be8-bddb-4ce4-bbfd-ae9548f69c7f", "e65f62fa-7045-4b5b-b61d-46ca00ea7af1"], "groups": [1, 5], "emails": ["bobrov@arta.kz"] }

        Parameters:
        sendInfo - json-объект;
        Returns:
        В случае успешного выполнения json со следующими полями:
        • errorCode = 0
        • errorMessage = Документ отправлен
        в случае ошибки вернет json со следующими полями
        • errorCode = код ошибки
        • errorMessage = сообщение
        Пример возвращаемого json-объекта при успешном выполнении метода:
                {
                    "errorCode": 0,
                    "errorMessage": "Документ отправлен"
                }
         
kz.arta.synergy.api.rest.events

Class EventsService



  • public class EventsService
    extends java.lang.Object
    Created by vitaliy.zaretskiy on 12.12.14.
    • Constructor Summary

      Constructors 
      Constructor and Description
      EventsService() 
    • Method Summary

      Methods 
      Modifier and Type Method and Description
      java.lang.String createEvent(java.lang.String eventName, java.lang.String eventMsg)
      Метод добавляет событие
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • EventsService

        public EventsService()
    • Method Detail

      • createEvent

        public java.lang.String createEvent(java.lang.String eventName,
                                   java.lang.String eventMsg)

        Метод добавляет событие


        URL rest/api/events/create
        Method POST

        Все параметры запроса должны быть параметрами формы

        Parameters:
        eventName - название события
        eventMsg - набор параметров события
        Returns:
        json объект:
        errorCode код выполнения, 0 - успешно, иначе - произошла ошибка
        errorMessage сообщение о результате выполнения (в случае не успешного выполнения)
kz.arta.synergy.api.rest.dictionary

Class DictionariesService



  • public class DictionariesService
    extends java.lang.Object
    Created by: Abzal Kultayev Date: 21.06.16 Time: 12:45
    • Method Summary

      Methods 
      Modifier and Type Method and Description
      Response getDictionariesList(boolean getHidden, java.lang.String locale)
      Получение списка справочников
      Response getDictionaryInfo(java.lang.String code, boolean getColumns, boolean getItems, java.lang.String locale)
      Получение описания и/или записей справочника
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • DictionariesService

        public DictionariesService()
    • Method Detail

      • getDictionariesList

        public Response getDictionariesList(boolean getHidden,
                                   java.lang.String locale)

        Получение списка справочников

        URL rest/api/dictionaries
        Method GET

        Метод принимает следующие входные параметры:

        Parameters:
        getHidden - возвращать ли скрытые справочники, true/false (не обяз., по умолчанию false)
        locale - код локали (не обяз., по умолчанию ru)
        Returns:
        Данные в JSON формате

        Пример возвращаемого массива:

                [
                    {
                    "id": "eb77639e-60b8-4a50-8327-0482063e8935",
                    "code": "resolution_work_types",
                    "name": "Типы работ по резолюции",
                    "comment": "Значения выпадающего списка типа работы при наложении резолюции"
                    },
                    {
                    "id": "467d3eac-252c-427e-bd27-ba8704587257",
                    "code": "calendar_types",
                    "name": "Назначения календаря",
                    "comment": "Статусы сотрудников"
                    },
                    {
                    "id": "7b953be8-bddb-4ce4-bbfd-ae9548f69c7f",
                    "code": "BookPointer",
                    "name": "Уровень проведения тренингов",
                    "comment": ""
                    },
                    {
                    "id": "a830ed90-1ef5-4829-b3a4-efa8d087ed6a",
                    "code": "BookPointer2",
                    "name": "Уровень корпоративного духа",
                    "comment": ""
                    },
                    {
                    "id": "9b077c41-4efa-48ce-8ce9-af2fe6145e96",
                    "code": "send_items",
                    "name": "Пункты меню отправки",
                    "comment": "Пункты меню отправки документа/работы"
                    },
                    {
                    "id": "f75e8f6a-7b5a-493b-946b-ac35a628624f",
                    "code": "Vid_otpuska",
                    "name": "Виды отпусков",
                    "comment": ""
                    },
                    {
                    "id": "dfb986ca-6dd2-415f-9304-bfab19d6d4af",
                    "code": "nazionalnost",
                    "name": "Национальности",
                    "comment": ""
                    },
                    {
                    "id": "a0b8ee66-2820-4fb7-991d-4723955ccef5",
                    "code": "action_progress",
                    "name": "Подписи прогресса поручений",
                    "comment": "Подписи прогресса поручений"
                    },
                    {
                    "id": "2d7729d7-1230-4c1c-a952-ebb4cf65278a",
                    "code": "resolution",
                    "name": "Тексты резолюций",
                    "comment": "Справочник стандартных текстов резолюций"
                    },
                    {
                    "id": "b08289f0-fd6b-4b3c-bc99-fae8d4296acb",
                    "code": "obrazovanie",
                    "name": "Образование",
                    "comment": ""
                    }
                ]
         
      • getDictionaryInfo

        public Response getDictionaryInfo(java.lang.String code,
                                 boolean getColumns,
                                 boolean getItems,
                                 java.lang.String locale)

        Получение описания и/или записей справочника

        URL rest/api/dictionaries/{code}
        Method GET

        Parameters:
        code - код справочника.
        getColumns - возвращать ли описание справочника, true/false (не обяз., по умолчанию true)
        getItems - возвращать ли записи справочника, true/false (не обяз., по умолчанию true)
        locale - код локали (не обяз., по умолчанию ru)
        Returns:
        Данные в JSON формате.

        Метод должен возвращать массив с параметрами:

        • id - идентификатор справочника
        • code - код справочника
        • name - имя справочника
        • comment - комментарий к справочнику
        • columns - список столбцов справочника (для getColumns = true)
        • items - список значений справочника (для getItems = true)

        Для каждого столбца справочника (columns) передается:

        • id - идентификатор столбца
        • code - код столбца
        • name - имя столбца
        • comment - комментарий столбца
        • translate - переводить ли значение столбца, true/false
        Примечание: Каждый столбец из columns определяется ключом, который соответствует значению кода столбца (поле code).

        Для каждой записи справочника (items) передаются значения кода столбца, а внутри каждого столбца - непосредственно значения записи

        • id - идентификатор значения
        • value - значение
        • translation - перевод значения согласно локали пользователя; может отсутствовать (соответствует значению null), тогда в качестве значения для данного столбца надо использовать значение поля value
        Примечание

        Каждая запись из items определяется ключом, который соответствует значению идентификатора значения (поле id)

        В свою очередь, внутри записи каждый вложенный массив определяется ключом, который соответствует значению кода столбца (поле code)

        Пример возвращаемого массива
                {
                    "id": "eb77639e-60b8-4a50-8327-0482063e8935",
                    "code": "send_items",
                    "name": "Пункты меню отправки",
                    "comment": "Пункты меню отправки документа/работы",
                    "columns": {
                        "item_number": {
                            "id": "e5d3ce83-25d1-46ae-94f9-c33930fc1565",
                            "code": "item_number",
                            "name": "Порядковый номер",
                            "comment": "Используется для задания порядка пунктов меню отправки",
                            "translate": false
                        },
                        "item_name": {
                            "id": "03e23318-71ec-4ced-a54c-73affaf43079",
                            "code": "item_name",
                            "name": "Название пункта меню отправки",
                            "comment": "Текст, который будет отображаться в соответствующем пункте меню",
                            "translate": true
                        },
                        "item_process": {
                            "id": "27f3090b-0a57-4c1f-8343-c56e8d39117d",
                            "code": "item_process",
                            "name": "Действие, которое осуществляет пункт",
                            "comment": "",
                            "translate": false
                        }
                    },
                    "items": {
                        "b7c8861f-37df-4fe4-9f67-4f1cb243b008": {
                            "item_number": {
                                "id": "b7c8861f-37df-4fe4-9f67-4f1cb243b008",
                                "value": "3",
                                "translation": null
                            },
                            "item_name": {
                                "id": "b7c8861f-37df-4fe4-9f67-4f1cb243b008",
                                "value": "Перепоручить",
                                "translation": "Перепоручить"
                            },
                            "item_process": {
                                "id": "b7c8861f-37df-4fe4-9f67-4f1cb243b008",
                                "value": "assignment",
                                "translation": null
                            }
                        },
                        "80c92a72-988f-422a-92b9-70cd37f15dbc": {
                            "item_number": {
                                "id": "80c92a72-988f-422a-92b9-70cd37f15dbc",
                                "value": "6",
                                "translation": null
                            },
                            "item_name": {
                                "id": "80c92a72-988f-422a-92b9-70cd37f15dbc",
                                "value": "На утверждение",
                                "translation": "На утверждение"
                            },
                            "item_process": {
                                "id": "80c92a72-988f-422a-92b9-70cd37f15dbc",
                                "value": "approval",
                                "translation": null
                            }
                        }
                    }
                }
         

        Альтернативный поток событий. Передан некорректный параметр code: справочника с таким кодом не существует. Сервер возвращает следующий ответ (с HTTP-кодом 200):

                {
                    "errorCode": "13",
                    "errorMessage": "Справочник с кодом %значение% не найден"
                }
         
kz.arta.synergy.api.rest.dictionary

Class DictionaryService



  • public class DictionaryService
    extends java.lang.Object
    Created by IntelliJ IDEA. User: topa Date: 31.10.13 Time: 14:34 To change this template use File | Settings | File Templates.
    • Method Summary

      Methods 
      Modifier and Type Method and Description
      java.lang.String addRecord(DictionaryRecord record)
      Добавляет запись справочника
      java.lang.String editRecord(DictionaryRecord record)
      Изменяет запись справочника
      java.util.Collection<DictionaryItem> findDictionaryItems(java.lang.String organizationRecordIdColumnId, java.lang.String orgID) 
      java.util.Dictionary getDictionaryByCode(java.lang.String fieldsDictionaryCode, boolean loadItems) 
      java.lang.String getDictionaryValues(java.lang.String locale, java.lang.String dictionaryCode)
      Возвращает информацию о справочнике по его коду: столбцы, значения
      java.lang.String getHost() 
      java.lang.String removeRecord(DictionaryRecord record)
      Удаляет запись справочника
      java.lang.String saveItem(DictionaryItem item) 
      java.lang.String saveTranslations(java.lang.String id, java.lang.String nameId, java.lang.String mapJS) 
      java.lang.String updateDictionary(java.util.Dictionary dictionary) 
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • DictionaryService

        public DictionaryService()
    • Method Detail

      • getDictionaryValues

        public java.lang.String getDictionaryValues(java.lang.String locale,
                                           java.lang.String dictionaryCode)

        Возвращает информацию о справочнике по его коду: столбцы, значения

        URL rest/api/dictionary/get_by_code
        Method GET


        Метод возвращает json с полями:
        dictionary_code - код справочника
        dictionaryID - идентификатор справочника
        columns - список столбцов справочника
        items - список значений справочника

        Для каждого столбца (columns) передается:
        columnID идентификатор столбца
        code код столбца

        Для каждого значения (items) передаются:
        itemID - идентификатор значения
        values - список значений каждого столбца. Для каждого значения передаются:
        columnID - идентификатор столбца
        value - значение
        translation - перевод значения согласно локали пользователя (перевод может отсутствовать. Если перевод присутствует, значит в качестве значения для данного столбца надо брать его, если отсутствует - значение поля value)


        Рассмотрим пример справочника форм завершения с кодом work_completion:

         {"dictionary_code" : "work_completion", "dictionaryID": "0b247762-f049-49e7-93e5-fa7c93a779d7", "columns": [
         {
         "columnID": "27e8d020-5db5-4b05-a3e2-ba364453a940",
         "code": "form_type"
         },
         {
         "columnID": "5b3ab9bc-ea13-4fce-a37c-a83298dee427",
         "code": "form_type_name"
         },
         {
         "columnID": "9f7778ba-c3b9-4653-ba4e-560ddb800ded",
         "code": "is_result_free"
         },
         {
         "columnID": "3b359c6b-5f17-4324-a6c2-3a3bc2e400b6",
         "code": "additional_params"
         }
         ], "items": [
         {
         "itemID": "36826cf9-5da9-49bf-9b79-3e3f9c0873a1",
         "values": [
         {
         "value": "child=true",
         "columnID": "3b359c6b-5f17-4324-a6c2-3a3bc2e400b6"
         },
         {
         "value": "0",
         "columnID": "9f7778ba-c3b9-4653-ba4e-560ddb800ded"
         },
         {
         "value": "2",
         "columnID": "27e8d020-5db5-4b05-a3e2-ba364453a940"
         },
         {
         "value": "Документ",
         "columnID": "5b3ab9bc-ea13-4fce-a37c-a83298dee427" ,
         "translation": "Документ"
         }
         ]
         },
         {
         "itemID": "55dad228-2653-47c2-898a-ad263c2e7def",
         "values": [
         {
         "value": "0",
         "columnID": "9f7778ba-c3b9-4653-ba4e-560ddb800ded"
         },
         {
         "value": "0",
         "columnID": "27e8d020-5db5-4b05-a3e2-ba364453a940"
         },
         {
         "value": "Комментарий",
         "columnID": "5b3ab9bc-ea13-4fce-a37c-a83298dee427" ,
         "translation": "Комментарий"
         }
         ]
         },
         {
         "itemID": "5a753b31-db44-4e56-b922-fabeb29502ff",
         "values": [
         {
         "value": "1",
         "columnID": "27e8d020-5db5-4b05-a3e2-ba364453a940"
         },
         {
         "value": "Файл",
         "columnID": "5b3ab9bc-ea13-4fce-a37c-a83298dee427" ,
         "translation": "Файл"
         }
         ]
         }
         ]}
         

        В табличном виде значения данного справочника можно отобразить следующим образом:
             ____________________________________________________________________________________________________________________________
             |form_type       |form_type_name         | is_result_free        |additional_params  | Идентификатор значения              |
             |2               |Документ               |0                      |child=true         |36826cf9-5da9-49bf-9b79-3e3f9c0873a1 |
             |0               |Комментарий            |0                      |                   |55dad228-2653-47c2-898a-ad263c2e7def |
             |1               |Файл                   |                       |                   |5a753b31-db44-4e56-b922-fabeb29502ff |
             ____________________________________________________________________________________________________________________________
         


        Parameters:
        locale - локаль пользователя
        dictionaryCode - код справочника
        Returns:
        json с полями описанными выше
      • addRecord

        public java.lang.String addRecord(DictionaryRecord record)
        Добавляет запись справочника

        URL rest/api/dictionary/record/add
        Method POST

        Вызывать метод можно только от имени пользователя с ролью "Методолог"

        "Content-type" запроса должен быть "application/json; charset=utf-8" и в теле запроса JSON в следующем формате

         {
         "dictCode": "apitest",
         "itemID": null,
         "columns": [
          {
              "code": "number",
              "value": "42",
              "valueKZ": null,
              "valueRU": null,
              "valueEN": null
          },
          {
              "code": "field_name",
              "value": "Поле с переводами",
              "valueKZ": "казахский",
              "valueRU": "русский",
              "valueEN": "английский"
          },
          {
              "code": "field_desc",
              "value": "Тест переводов",
              "valueKZ": null,
              "valueRU": null,
              "valueEN": null
          }
         ]
         }
         
        , где
        dictCode - код справочника
        itemID - идентификатор записи справочника (в данном методе не используется)
        columns - список столбцов справочника, где
            code - код столбца справочника
            value - значение столбца справочника
            valueKZ, valueRU, valueEN - локализованные значения столбца справочника

        Parameters:
        record - запись справочника в формате JSON
        Returns:
        JSON с результатом выполнения
      • editRecord

        public java.lang.String editRecord(DictionaryRecord record)
        Изменяет запись справочника

        URL rest/api/dictionary/record/edit
        Method POST

        Вызывать метод можно только от имени пользователя с ролью "Методолог"

        "Content-type" запроса должен быть "application/json; charset=utf-8" и в теле запроса JSON в следующем формате

         {
         "dictCode": "apitest",
         "itemID": "195af529-35ee-4bd7-a2b8-bcc04c731283",
         "columns": [
          {
              "code": "number",
              "value": "42",
              "valueKZ": null,
              "valueRU": null,
              "valueEN": null
          },
          {
              "code": "field_name",
              "value": "Поле с переводами",
              "valueKZ": "казахский",
              "valueRU": "русский",
              "valueEN": "английский"
          },
          {
              "code": "field_desc",
              "value": "Тест переводов",
              "valueKZ": null,
              "valueRU": null,
              "valueEN": null
          }
         ]
         }
         
        , где
        dictCode - код справочника
        itemID - идентификатор редактируемой записи справочника
        columns - список столбцов справочника, где
            code - код столбца справочника
            value - значение столбца справочника
            valueKZ, valueRU, valueEN - локализованные значения столбца справочника

        Parameters:
        record - запись справочника в формате JSON
        Returns:
        JSON с результатом выполнения
      • removeRecord

        public java.lang.String removeRecord(DictionaryRecord record)
        Удаляет запись справочника

        URL rest/api/dictionary/record/remove
        Method POST

        Вызывать метод можно только от имени пользователя с ролью "Методолог"

        "Content-type" запроса должен быть "application/json; charset=utf-8" и в теле запроса JSON в следующем формате

         {
         "dictCode": "apitest",
         "itemID": "195af529-35ee-4bd7-a2b8-bcc04c731283",
         }
         
        , где
        dictCode - код справочника
        itemID - идентификатор удаляемой записи справочника

        Parameters:
        record - запись справочника в формате JSON
        Returns:
        JSON с результатом выполнения
      • getHost

        public java.lang.String getHost()
      • findDictionaryItems

        public java.util.Collection<DictionaryItem> findDictionaryItems(java.lang.String organizationRecordIdColumnId,
                                                               java.lang.String orgID)
      • updateDictionary

        public java.lang.String updateDictionary(java.util.Dictionary dictionary)
      • saveItem

        public java.lang.String saveItem(DictionaryItem item)
      • saveTranslations

        public java.lang.String saveTranslations(java.lang.String id,
                                        java.lang.String nameId,
                                        java.lang.String mapJS)
      • getDictionaryByCode

        public java.util.Dictionary getDictionaryByCode(java.lang.String fieldsDictionaryCode,
                                               boolean loadItems)
kz.arta.synergy.api.rest.storage

Class StorageGroupsService



  • public class StorageGroupsService
    extends java.lang.Object
    Created by IntelliJ IDEA. User: topa Date: 26.05.13 Time: 16:37 To change this template use File | Settings | File Templates.
    • Method Summary

      Methods 
      Modifier and Type Method and Description
      java.lang.String addUserToGroup(java.lang.String userID, int groupID, java.lang.String locale)
      Метод добавляет пользователя в группу
      java.lang.String getGroups(java.lang.String locale, int startRecord, int recordsCount)
      Метод возвращает список групп
      java.lang.String removeUserFromGroup(java.lang.String userID, int groupID, java.lang.String locale)
      Удаляет пользователя из группы
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • StorageGroupsService

        public StorageGroupsService()
    • Method Detail

      • addUserToGroup

        public java.lang.String addUserToGroup(java.lang.String userID,
                                      int groupID,
                                      java.lang.String locale)

        Метод добавляет пользователя в группу

        URL rest/api/storage/groups/add_user
        Method GET

        Parameters:
        userID - идентификатор пользователя
        groupID - идентификатор группы
        locale -
        Returns:
      • removeUserFromGroup

        public java.lang.String removeUserFromGroup(java.lang.String userID,
                                           int groupID,
                                           java.lang.String locale)

        Удаляет пользователя из группы

        URL rest/api/storage/groups/remove_user
        Method GET

        Parameters:
        userID - идентификатор пользователя
        groupID - идентификатор группы
        locale -
        Returns:
      • getGroups

        public java.lang.String getGroups(java.lang.String locale,
                                 int startRecord,
                                 int recordsCount)

        Метод возвращает список групп

        URL rest/api/storage/groups/list
        Method GET

        Parameters:
        locale - локаль авторизованного пользователя
        startRecord - номер первой записи
        recordsCount - количество записей в списке
        Returns:
        json объект - список групп, для каждой группы указаны:
        groupID - идентификатор группы
        name - название группы
kz.arta.synergy.api.rest.storage

Class IconServlet



  • public class IconServlet
    extends HttpServlet
    Created by IntelliJ IDEA. User: topa Date: 05.07.13 Time: 16:51 To change this template use File | Settings | File Templates.
    • Constructor Summary

      Constructors 
      Constructor and Description
      IconServlet() 
    • Method Summary

      Methods 
      Modifier and Type Method and Description
      protected void doGet(HttpServletRequest request, HttpServletResponse response) 
      static void init(ServletContext cnxt) 
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • IconServlet

        public IconServlet()
    • Method Detail

      • init

        public static void init(ServletContext cnxt)
      • doGet

        protected void doGet(HttpServletRequest request,
                 HttpServletResponse response)
                      throws ServletException,
                             java.io.IOException
        Throws:
        ServletException
        java.io.IOException
kz.arta.synergy.api.rest.storage

Class ASFFileServlet



  • public class ASFFileServlet
    extends DefaultHttpServlet
    Created by val Date: 01.04.2013 Time: 16:27
    • Constructor Summary

      Constructors 
      Constructor and Description
      ASFFileServlet() 
    • Method Summary

      Methods 
      Modifier and Type Method and Description
      protected void doGet(HttpServletRequest req, HttpServletResponse res) 
      protected void doPost(HttpServletRequest req, HttpServletResponse res) 
      java.util.Map<java.lang.String,java.lang.Object> getImportingForms() 
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ASFFileServlet

        public ASFFileServlet()
    • Method Detail

      • doPost

        protected void doPost(HttpServletRequest req,
                  HttpServletResponse res)
                       throws ServletException,
                              java.io.IOException
        Throws:
        ServletException
        java.io.IOException
      • doGet

        protected void doGet(HttpServletRequest req,
                 HttpServletResponse res)
                      throws ServletException,
                             java.io.IOException
        Throws:
        ServletException
        java.io.IOException
      • getImportingForms

        public java.util.Map<java.lang.String,java.lang.Object> getImportingForms()
kz.arta.synergy.api.rest.storage

Class StorageService



  • public class StorageService
    extends java.lang.Object
    Created by IntelliJ IDEA. User: topa Date: 04.09.13 Time: 10:33 To change this template use File | Settings | File Templates.
    • Constructor Summary

      Constructors 
      Constructor and Description
      StorageService() 
    • Method Summary

      Methods 
      Modifier and Type Method and Description
      java.lang.String add(java.lang.String folderID, java.lang.String path, java.lang.String name, java.lang.String locale)
      Метод используется для добавления файла в хранилище
      Тип: POST
      URL: rest/api/storage/add
      Response addFile(java.lang.String dataUUID, java.lang.String filePath, java.lang.String fileName)
      добавляет загруженный на сервер файл в файл по форме Path rest/api/storage/asffile/addFile
      Response asfFile(MultipartFormDataInput input, java.lang.String nodeID, java.lang.String dataUUID)
      загрузка файла в файл по форме (для реквестов более 2-х мегабайт работать не будет) Path rest/api/storage/asffile/upload
      Response copy(java.util.Map<java.lang.String,java.lang.String> params)
      копировать файл из хранилища в файл по форме Path rest/api/storage/asffile/copy
      java.lang.String copy(java.lang.String fileID, java.lang.String documentID, java.lang.String container, java.lang.String locale)
      Метод используется для копирования файла из хранилища в документ
      Тип: POST
      URL: rest/api/storage/copy
      java.lang.String create(java.lang.String folderID, java.lang.String folderName, java.lang.String locale)
      Метод используется для создания папки в хранилище
      Тип: POST
      URL: rest/api/storage/create
      java.lang.String createAttachment(java.lang.String docID, java.lang.String path, java.lang.String fileName, java.lang.String filePath, java.lang.String locale)
      Метод добавляет вложение к документу из временного файла, загруженного на сервер с помощью API хранилища
      Response createHtd(java.util.Map<java.lang.String,java.lang.String> params)
      Path rest/api/storage/asffile/createHtd
      java.lang.String getDescription(java.lang.String elementID, boolean mobile, java.lang.String locale)
      Возвращает детальную информацию папки/файла
      URL: rest/api/storage/description
      Тип: GET
      java.lang.String getIdentifierByPath(java.lang.String path)
      Получение идентификатора файла либо папки по пути

      URL: rest/api/storage/get_identifier_by_path
      Тип: GET

      java.lang.String getPathToElement(java.lang.String elementID, java.lang.String locale) 
      java.lang.String listFavoriteFolders()
      Метод возвращает избранные папки в хранилище
      java.lang.String listFiles(java.lang.String parentID, boolean getOnlyFolders, java.lang.String locale)
      Метод возвращает список файлов в папке с идентификатором parentID
      java.lang.String move(java.lang.String elementID, java.lang.String folderID, java.lang.String locale)
      Метод используется для перемещения файла или папки в хранилище
      Тип: POST
      URL: rest/api/storage/move
      java.lang.String remove(java.lang.String elementID, java.lang.String locale)
      Метод используется для удаления файла или папки в хранилище
      Тип: POST
      URL: rest/api/storage/remove
      java.lang.String rename(java.lang.String elementID, java.lang.String elementName, java.lang.String locale)
      Метод используется для переименования файла/папки в хранилище
      Тип: POST
      URL: rest/api/storage/rename
      java.lang.String search(java.lang.String contains, java.lang.String notContains, java.util.List<java.lang.Integer> categoryID, java.lang.String aiType, java.lang.String folderID, java.lang.String modifiedFrom, java.lang.String modifiedTo, int sizeType, int sortType, boolean includeUnpublished, boolean includeExpired, boolean includeCompanions, int firstResult, int maxResult, java.lang.String searchArea, java.lang.String locale)
      Выполняет поиск в хранилище и возвращает список найденных файлов/папок
      java.lang.String startUploadFile(java.lang.String locale)
      Метод создает временный файл на стороне сервера
      java.lang.String uploadPart(MultipartFormDataInput input, java.lang.String file, java.lang.String locale)
      Дописывает байты во временный файл
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • StorageService

        public StorageService()
    • Method Detail

      • startUploadFile

        public java.lang.String startUploadFile(java.lang.String locale)

        Метод создает временный файл на стороне сервера


        URL rest/api/storage/start_upload
        Method GET

        Метод создает временный файл, для дальнейшего его использования в процессе загрузки файла на сервер. Метод возвращает путь к созданному файлу, который необходимо использовать далее в методе upload_part

        Процесс загрузки файла на сервер должен выглядить следующим образом:

        • 1. Вызываем метод start_upload и получаем путь ко временному файлу
        • 2. Записываем частями байты файла, несколько раз последовательно вызывая метод upload_part
        • 3. используем идентификатор файла в другом методе API, где это необходимо (добавление файла к работе, указание результата работы и т.п.)

        Parameters:
        locale - локаль пользователя
        Returns:
        json объект с полями
        errorCode 0 - результат выполнения (0 - удачно, иначе - ошибка)
        errorMessage - сообщение об ошибке (в случае неуспешного завершения)
        file - путь к созданному временному файлу
      • uploadPart

        public java.lang.String uploadPart(MultipartFormDataInput input,
                                  java.lang.String file,
                                  java.lang.String locale)

        Дописывает байты во временный файл


        URL rest/api/storage/upload_part
        Method POST
        Enctype multipart/form-data

        название поля формы для части файла должно называться - body

        Parameters:
        file - имя временного файла, полученного методом startUploadFile (QueryParam)
        locale - локаль пользователя (QueryParam)
        Returns:
        See Also:
        startUploadFile(String)
      • getIdentifierByPath

        public java.lang.String getIdentifierByPath(java.lang.String path)
        Получение идентификатора файла либо папки по пути

        URL: rest/api/storage/get_identifier_by_path
        Тип: GET

        Parameters:
        path - путь до файла или папки хранилища
        Returns:
        json с описанием папки/файла:
        * identifier - идентификатор папки или файла;
        * is_folder (true/false) - папка («true») или файл («false»);
        * size - размер файла в байтах (для папки значение = 0);
        * path - полный путь до папки или файла;
        * name - название папки или файла;
        * modified - дата и время последнего изменения папки или файла (в формате yyyy-mm-dd hh:mm:ss);
        * userName - ФИО пользователя, выполнившего последнее изменение папки или файла (в формате Фамилия Имя О.);
        * userID - идентификатор пользователя, выполнившего последнее изменение папки или файла;
        * right - сумма чисел, определяющая набор прав на папку или файл;
        * mime - mime тип файла (отображается только при значении is_folder = «false»);
        * icon - ссылка до иконки файла (отображается только при значении is_folder = «false»).

        Пример возвращаемого json для папки http://host:port/Synergy/rest/api/storage/get_identifier_by_path?path=Хранилище/01_
             {
                "identifier": "6cacb59f-a1d6-447b-9f85-06829e942309",
                "is_folder": true,
                "size": "0",
                "path": "/company_root/01_",
                "name": "01_",
                "modified": "2013-05-24 16:15:03",
                "userName": "Admin1 Admin1 A.",
                "userID": "1",
                "right": 0,
                "notEmpty": true
             }
         
        
         Пример возвращаемого json для файла http://host:port/Synergy/rest/api/storage/get_identifier_by_path?path=Хранилище/01_/1.doc
         
             {
                "identifier": "d2a75a06-618a-4058-a6ae-99f8440d8973",
                "is_folder": false,
                "size": "2218",
                "path": "/company_root/01_/1.doc",
                "name": "1.doc",
                "modified": "2014-01-28 11:05:39",
                "userName": "Petrov Petrov ",
                "userID": "a8b370ee-138a-40a6-bd32-7f6435a1b4af",
                "right": 0,
                "mime": "text/html",
                "ai_type": "ai_text",
                "icon": "rest/api/storage/icons/get?aiType=ai_text&fileName=1.doc",
                "notEmpty": false
             }
         
      • listFiles

        public java.lang.String listFiles(java.lang.String parentID,
                                 boolean getOnlyFolders,
                                 java.lang.String locale)

        Метод возвращает список файлов в папке с идентификатором parentID


        URL rest/api/storage/list
        Method GET

        Parameters:
        parentID - - идентификатор папки, если не передан, то возвращаются все корневые папки, на которые пользователь имеет право, в том числе личная папка пользователя
        getOnlyFolders - - (true/false) - отображать ли только папки (не обяз., по умолчанию значение false);
        locale - - локаль пользователя
        Returns:
        json со списком файлов и папок:
        * identifier - идентификатор папки или файла;
        * is_folder (true/false) - папка («true») или файл («false»);
        * size - размер файла в байтах (для папки значение = 0);
        * path - полный путь до папки или файла;
        * name - название папки или файла;
        * modified - дата и время последнего изменения папки или файла (в формате yyyy-mm-dd hh:mm:ss);
        * userName - ФИО пользователя, выполнившего последнее изменение папки или файла (в формате Фамилия Имя О.);
        * userID - идентификатор пользователя, выполнившего последнее изменение папки или файла;
        * right - сумма чисел, определяющая набор прав на папку или файл;
        * mime - mime тип файла (отображается только при значении is_folder = «false»);
        * icon - ссылка до иконки файла (отображается только при значении is_folder = «false»).

        Пример возвращаемого массива для папок
           [
             {
               "identifier": "5719212b-97b9-4558-9e67-baa04d0adc62",
               "is_folder": true,
               "size": "0",
               "path": "/aiservice/home/ee71a4c6-888a-4f04-86de-44ab394f5749",
               "name": "Мои документы",
               "modified": "0007-05-04 10:12:00",
               "userName": "Слепаков Иван И.",
               "userID": "ee71a4c6-888a-4f04-86de-44ab394f5749",
               "right": 7,
              },
              {
                "identifier": "91d1816a-b30e-47ea-988c-bd8864daa253",
                "is_folder": true,
                "size": "0",
                "path": "/company_root",
                "name": "company_root",
                "modified": "2011-10-10 09:13:39",
                "userName": " ",
                "userID": "0000-0000-0000-0002",
                "right": 7,
              }
           ]
         
        Пример возвращаемого массива для файлов
           [
             {
               "identifier":"f5003070-3740-4920-a4c5-01f8bf440774",
               "is_folder":false,
               "size":"19644",
               "path":"/company_root/Проект/Файл1.odt",
               "name":"Файл1.odt",
               "modified":"2013-03-13 16:35:45",
               "userName":"Слепаков Иван И.",
               "userID":"ee71a4c6-888a-4f04-86de-44ab394f5749",
               "right":7,
               "mime ":"application/vnd.oasis.opendocument.text",
               "icon":"rest/api/storage/icons/get?aiType=ai_text&fileName=Файл1.odt"
             },
             {
               "identifier":"a8bb8fba-b418-4fcb-9b86-519c261c446f",
               "is_folder":false,
               "size":"850",
               "path":"/company_root/Проект/Файл2.htd",
               "name":"Файл2.htd",
               "modified":"0016-05-03 03:15:00",
               "userName":"Слепаков Иван И.",
               "userID":"ee71a4c6-888a-4f04-86de-44ab394f5749",
               "right":7,
               "mime ":"text/htd",
               "icon":"rest/api/storage/icons/get?aiType=ai_htd&fileName=Файл2.htd"
             }
           ]
           
      • listFavoriteFolders

        public java.lang.String listFavoriteFolders()

        Метод возвращает избранные папки в хранилище

        Метод не принимает никакие параметры.


        URL: rest/api/storage/favorite_folders
        Тип: GET

        Returns:

        В случае успешного выполнения возвращаемый json содержит, в свою очередь, список json, каждый из которых имеет следующее поле:

        • identifier - идентификатор папки
        • name - название закладки.

        Пример возвращаемого массива
          [
             {
                 "identifier": "5719212b-97b9-4558-9e67-baa04d0adc62"
                 "name": "Общие документы"
             },
             {
                 "identifier": "91d1816a-b30e-47ea-988c-bd8864daa253"
                 "name": "Регламенты"
             }
          ]
         
      • search

        public java.lang.String search(java.lang.String contains,
                              java.lang.String notContains,
                              java.util.List<java.lang.Integer> categoryID,
                              java.lang.String aiType,
                              java.lang.String folderID,
                              java.lang.String modifiedFrom,
                              java.lang.String modifiedTo,
                              int sizeType,
                              int sortType,
                              boolean includeUnpublished,
                              boolean includeExpired,
                              boolean includeCompanions,
                              int firstResult,
                              int maxResult,
                              java.lang.String searchArea,
                              java.lang.String locale)

        Выполняет поиск в хранилище и возвращает список найденных файлов/папок


        URL rest/api/storage/search
        Method POST

        Parameters:
        contains - строка, которая должна содержаться в искомых файлах
        notContains - строка, которая не должна содержаться в искомых файлах
        categoryID - идентификатор классификатора, которому должны принадлежать искомые файлы. Значение данного параметра может быть передано несколько раз.
        aiType - определяет тип искомых файлов. Может быть передано значение одной из констант:
        • AIConstants.AI_FOLDER
        • AIConstants.AI_DOCUMENT
        • AIConstants.AI_IMAGE
        • AIConstants.AI_AUDIO
        • AIConstants.AI_VIDEO
        • AI_APPLICATION

        Параметр можно не передавать. В этом случае поиск вернет все файлы.
        folderID - идентификатор папки хранилища, в которой необходимо осуществить поиск. Параметр можно не передавать, в этом случае поиск будет произведен по всем файлам, на которые у пользователя есть права
        modifiedFrom - начало периода последнего изменения в формате yyyy-MM-dd, параметр не нужно передавать если нет необходимости выполнять поиск по дате изменения
        modifiedTo - завершение периода последнего изменения в формате yyyy-MM-dd, параметр не нужно передавать если нет необходимости выполнять поиск по дате изменения
        sizeType - определяет размер искомого файла. Значением параметра может быть одно из значений констант:
        • AIConstants.ALL_SIZES
        • AIConstants.LITTLE
        • AIConstants.MIDDLE
        • AIConstants.BIG
        Значение по-умолчанию: AIConstants.ALL_SIZES
        sortType - параметр определяет тип сортировки файлов. Значением параметра может быть одно из значений констант:
        • ExtendedSearchParams.SORT_RELEVANCE
        • ExtendedSearchParams.SORT_DATE
        • ExtendedSearchParams.SORT_READSCOUNT
        Значение по-умолчанию ExtendedSearchParams.SORT_RELEVANCE
        includeUnpublished - отображать ли в результатах поиска неопубликованные файлы, значение по-умолчаню - нет
        includeExpired - отображать ли в результатах поиска файлы, срок действия которых истек,
        includeCompanions - осуществлять ли поиск в папках документов, проектов, значение по-умолчанию - нет
        firstResult - номер первой записи для возвращаемых результатов выборки, значение по-умолчанию - 1
        maxResult - количество записей, которые должны быть возвращены, значение по-умолчанию - 30
        locale - локаль пользователя
        searchArea - определяет область действия поиска. Значением параметра может быть одно из значений констант:
        • name - осуществлять поиск только по названиям файлов
        • content - осуществлять поиск только по содержимому файлов
        • all - осуществлять поиск одновременно и по названию, и по содержимому файлов. Значение по умолчанию.
        Returns:
        json вида
         
        {
        "list": [] список найденных файлов
        "begin": "", номер первой записи
        "length": "", количество возвращенных записей
        "count": "" общее количество найденных записей
        }
        Json каждого результата поиска имеет вид
         
        {
        identifier: идентификатор файла
        ai_type: тип файла
        name: название файла
        path: путь к файлу
        modified: стам изменения
        parentID: идентификатор родительского элемента
        fragments: фрагменты текста файла наиболее удовлетворяющие поиску (поле может отсутствовать)
        icon_url: ссылка до иконки файла (поле может отсутствовать)
        right: сумма чисел, определяющая набор прав на папку или файл
        }
        See Also:
        arta.remote.client.AIConstants#AI_FOLDER, arta.remote.client.AIConstants#AI_DOCUMENT, arta.remote.client.AIConstants#AI_IMAGE, arta.remote.client.AIConstants#AI_AUDIO, arta.remote.client.AIConstants#AI_VIDEO, arta.remote.client.AIConstants#AI_APPLICATION, arta.remote.client.AIConstants#ALL_SIZES, arta.remote.client.AIConstants#LITTLE, arta.remote.client.AIConstants#MIDDLE, arta.remote.client.AIConstants#BIG, ExtendedSearchParams#SORT_RELEVANCE, ExtendedSearchParams#SORT_DATE, ExtendedSearchParams#SORT_READSCOUNT
      • getPathToElement

        public java.lang.String getPathToElement(java.lang.String elementID,
                                        java.lang.String locale)
      • createAttachment

        public java.lang.String createAttachment(java.lang.String docID,
                                        java.lang.String path,
                                        java.lang.String fileName,
                                        java.lang.String filePath,
                                        java.lang.String locale)

        Метод добавляет вложение к документу из временного файла, загруженного на сервер с помощью API хранилища


        URL rest/api/storage/document/{docID}/attachment/create
        Method POST

        Parameters:
        docID - UUID документа
        path - строка, показывающая в какую подпапку контейнера файлов документа необходимо положить файл. Возможные значения:
        • ase:attachmentContainer (DocFileType.INBOX_FILE)
        • ase:workContainer (DocFileType.WORK_FILE)
        fileName - Название загружаемого файла
        filePath - Путь к временному файлу, загруженному на сервер
        locale - локаль пользователя
        Returns:
        json объект с полями - errorCode - код выполнения операции (0 успешно, иначе - ошибка), id - новый идентификатор файла, errorMessage - сообщение об ошибке. В случае успешного выполнения так же возвращается полная информация о работе.
        See Also:
        startUploadFile(String), StorageService#uploadPart(org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataInput, String, String)
      • remove

        public java.lang.String remove(java.lang.String elementID,
                              java.lang.String locale)
        Метод используется для удаления файла или папки в хранилище
        Тип: POST
        URL: rest/api/storage/remove
        Parameters:
        elementID - идентификатор файла либо папки (обязательный параметр)
        locale - локаль
        Returns:
        метод возвращает объект json с полями
        errorCode код выполнения (0 - успешно, иначе - ошибка)
        errorMessage сообщение, характеризующее успешное выполнение либо ошибку
      • move

        public java.lang.String move(java.lang.String elementID,
                            java.lang.String folderID,
                            java.lang.String locale)
        Метод используется для перемещения файла или папки в хранилище
        Тип: POST
        URL: rest/api/storage/move
        Parameters:
        elementID - идентификатор файла либо папки (что перемещаем, обязательный параметр)
        folderID - идентификатор папки (куда перемещаем, обязательный параметр)
        locale - локаль
        Returns:
        метод возвращает объект json с полями
        errorCode код выполнения (0 - успешно, иначе - ошибка)
        errorMessage сообщение, характеризующее успешное выполнение либо ошибку
      • rename

        public java.lang.String rename(java.lang.String elementID,
                              java.lang.String elementName,
                              java.lang.String locale)
        Метод используется для переименования файла/папки в хранилище
        Тип: POST
        URL: rest/api/storage/rename
        Parameters:
        elementID - идентификатор файла либо папки (обязательный параметр)
        elementName - новое имя файла либо папки (обязательный параметр)
        locale - локаль
        Returns:
        объект json с полями
        errorCode код выполнения (0 - успешно, иначе - ошибка)
        errorMessage сообщение, характеризующее успешное выполнение либо ошибку
      • create

        public java.lang.String create(java.lang.String folderID,
                              java.lang.String folderName,
                              java.lang.String locale)
        Метод используется для создания папки в хранилище
        Тип: POST
        URL: rest/api/storage/create
        Parameters:
        folderID - идентификатор папки, внутри которой происходит создание (обязательный параметр)
        folderName - имя новой папки
        locale - локаль
        Returns:
        в случае успешного выполнения метод возвращает объект json с одним полем folderID - идентификатор новой папки, в случае ошибки:

        errorCode 13
        errorMessage сообщение, характеризующее ошибку
        Пример успешного выполнения: {"folderID" : "550e8400-e29b-41d4-a716-446655440000"}
      • copy

        public java.lang.String copy(java.lang.String fileID,
                            java.lang.String documentID,
                            java.lang.String container,
                            java.lang.String locale)
        Метод используется для копирования файла из хранилища в документ
        Тип: POST
        URL: rest/api/storage/copy
        Parameters:
        fileID - идентификатор файла (обязательный параметр)
        documentID - идентификатор документа, куда будет копироваться файл (обязательный параметр)
        container - контейнер (приложения либо прочие, по умолчанию - ase:attachmentContainer)
        locale - локаль
        Returns:
        в случае успешного выполнения сервер возвращает объект json с одним полем fileID - идентификатор нового файла, в случае ошибки:

        errorCode 13
        errorMessage сообщение, характеризующее ошибку
        Пример успешного выполнения: {"fileID" : "550e8400-e29b-41d4-a716-446655440000"}
        See Also:
        arta.synergy.web.common.client.data.bp.docflow.constants.DocFileType#INBOX_FILE, arta.synergy.web.common.client.data.bp.docflow.constants.DocFileType#WORK_FILE
      • add

        public java.lang.String add(java.lang.String folderID,
                           java.lang.String path,
                           java.lang.String name,
                           java.lang.String locale)
        Метод используется для добавления файла в хранилище
        Тип: POST
        URL: rest/api/storage/add
        Parameters:
        folderID - идентификатор папки куда будет добавляться файл (обязательное поле)
        path - абсолютный путь до файла (обязательное поле)
        name - имя файла (обязательное поле)
        locale - локаль
        Returns:
        в случае успешного выполнения сервер возвращает объект json с одним полем fileID - идентификатор нового файла, в случае ошибки:

        errorCode 13
        errorMessage сообщение, характеризующее ошибку
        Пример успешного выполнения: {"fileID" : "550e8400-e29b-41d4-a716-446655440000"}
      • getDescription

        public java.lang.String getDescription(java.lang.String elementID,
                                      boolean mobile,
                                      java.lang.String locale)
        Возвращает детальную информацию папки/файла
        URL: rest/api/storage/description
        Тип: GET
        Parameters:
        elementID - идентификатор папки или файла (обяз.)
        locale - локаль пользователя
        Returns:
        В случае успешного выполнения возвращаемый json содержит следующие поля:
        • identifier - идентификатор папки или файла
        • is_folder (true/false) - папка («true») или файл («false»)
        • size - размер файла в байтах (для папки значение = 0)
        • path - полный путь до папки или файла
        • name - название папки или файла
        • modified - дата и время последнего изменения папки или файла (в формате yyyy-mm-dd hh:mm:ss)
        • userName - ФИО пользователя, выполнившего последнее изменение папки или файла (в формате Фамилия Имя О.)
        • userID - идентификатор пользователя, выполнившего последнее изменение папки или файла
        • right - сумма чисел, определяющая набор прав на папку или файл
        • mime - mime тип файла (отображается только при значении is_folder = «false»)
        • icon - ссылка до иконки файла (отображается только при значении is_folder = «false»)
        • parents - массив идентификаторов всех папок из path, причем порядок следования идентификаторов в массиве должен соответствовать порядку в параметре path (слева направо)
        • ai_type - тип элемента хранилища, один из следующих вариантов:
          • ai_folder - папка
          • ai_document - текстовый файл
          • ai_image - файл изображения
          • ai_audio - аудиофайл
          • ai_video - видеофайл
          • ai_application - прочие файлы

        Набор прав на папку или файл, права в системе:

           READ = 1 (право на просмотр элемента)
           ADD = 2 (право на добавление нового элемента)
           DELETE = 4 (право на удаление элемента)
           EDIT_FOLDER_VIEW = 8 (право на редактирование index страницы папки)
           EDIT_DOCUMENT = 16 (право на редактирование документа)
           ADD_COMMENT = 32 (право на добавление комментариев)
           EDIT_COMMENT = 64 (право на редактирование комментариев)
           DELETE_COMMENT = 128 (право на удаление комментариев)
           READ_COMMENT = 256 (право на просмотр комментариев)
           READ_VERSIONS = 512 (право на просмотр версий документа)
           EDIT_VERSIONS = 1024 (право на восстановление версий документа)
           EDIT_METADATA = 2048 (право на редактирование свойств документа)
           READ_METADATA = 4096 (право на просмотр свойств документа)
           EDIT_CATEGORIES = 8192 (право на редактирование классификатора документа)
           READ_CATEGORIES = 16384 (право на просмотр классификатора документа)
           ADD_DOCUMENT_REFERENCES = 32768 (право на добавление документа в список ссылок документа)
           EDIT_DOCUMENT_REFERENCES = 65536 (право на редактирование списка ссылок документа)
           DELETE_DOCUMENT_REFERENCES = 131072 (право на удаление ссылок документа)
           READ_DOCUMENT_REFERENCES = 262144 (право на просмотр списка ссылок документа)
           LOAD_DOCUMENT = 524288 (право на загрузку файла документа)
           MOVE = 2097152 (право на перемещение / переименовывание элемента)
           CHANGE_PERMISSION = 4194304 (право на назначение прав)
           FULL_ACCESS = 2147483647
         

        В случае неуспешного выполнения вовзращается json с полями:

        • errorCode - код выполнения (число, отличное от 0)
        • errorMessage - сообщение об ошибке (см. ниже)

        Пример возвращаемого массива

          {
              "identifier": "f5003070-3740-4920-a4c5-01f8bf440774",
              "is_folder": false,
              "size": "19644",
              "path": "/company_root/Проект/Файл1.odt",
              "name": "Файл1.odt",
              "modified": "2013-03-13 16:35:45",
              "userName": "Слепаков Иван И.",
              "userID": "ee71a4c6-888a-4f04-86de-44ab394f5749",
              "right": 7,
              "mime ": "application/vnd.oasis.opendocument.text",
              "icon": "rest/api/storage/icons/get?aiType=ai_text&fileName=Файл1.odt",
              "parents": ["d1f91787-ac5d-4650-a7c0-1cdfbdd12165", "5860da7f-0615-4f46-8264-d8605d97ef9e"],
        "     ai_type": "ai_document"
          }
         
      • createHtd

        public Response createHtd(java.util.Map<java.lang.String,java.lang.String> params)
        Path rest/api/storage/asffile/createHtd
        Parameters:
        params - {name : , nodeId : , dataId : } где name - наименование nodeId - идентификатор ноды данных по форме dataId - идентификатор данных по форме
        Returns:
      • copy

        public Response copy(java.util.Map<java.lang.String,java.lang.String> params)
        копировать файл из хранилища в файл по форме Path rest/api/storage/asffile/copy
        Parameters:
        params - {objectId : , targetId : , dataId : } где objectId - идентификатор объекта targetId - идентификатор ноды данных по форме dataId - идентификатор данных по форме
        Returns:
      • asfFile

        public Response asfFile(MultipartFormDataInput input,
                       java.lang.String nodeID,
                       java.lang.String dataUUID)
                         throws java.io.IOException,
                                javax.naming.NamingException,
                                RepositoryException
        загрузка файла в файл по форме (для реквестов более 2-х мегабайт работать не будет) Path rest/api/storage/asffile/upload
        Parameters:
        input - данные файла
        nodeID - идентификатор ноды
        dataUUID - идентификатор данных
        Returns:
        {fileId : identifier}
        Throws:
        java.io.IOException
        javax.naming.NamingException
        RepositoryException
      • addFile

        public Response addFile(java.lang.String dataUUID,
                       java.lang.String filePath,
                       java.lang.String fileName)
                         throws java.io.IOException,
                                javax.naming.NamingException,
                                RepositoryException
        добавляет загруженный на сервер файл в файл по форме Path rest/api/storage/asffile/addFile
        Parameters:
        dataUUID - идентификатор данных по форме
        filePath - путь до загруженного файла
        fileName - имя файла
        Returns:
        {fileId : identifier}
        Throws:
        java.io.IOException
        javax.naming.NamingException
        RepositoryException
kz.arta.synergy.api.rest.storage

Class FileDownloadServlet



  • public class FileDownloadServlet
    extends DefaultHttpServlet
    Created by IntelliJ IDEA. User: neox Date: 06.02.2015 Time: 14:07:12 Сервелет для загрузки исходного файла
    • Method Summary

      Methods 
      Modifier and Type Method and Description
      protected void doGet(HttpServletRequest req, HttpServletResponse res) 
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • FileDownloadServlet

        public FileDownloadServlet()
    • Method Detail

      • doGet

        protected void doGet(HttpServletRequest req,
                 HttpServletResponse res)
                      throws ServletException,
                             java.io.IOException
        Throws:
        ServletException
        java.io.IOException
kz.arta.synergy.api.rest.storage

Class PDFDownloadServlet



  • public class PDFDownloadServlet
    extends DefaultHttpServlet
    Created by IntelliJ IDEA. User: topa Date: 05.04.2010 Time: 16:17:12
    • Method Summary

      Methods 
      Modifier and Type Method and Description
      protected void doGet(HttpServletRequest req, HttpServletResponse res) 
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • PDFDownloadServlet

        public PDFDownloadServlet()
    • Method Detail

      • doGet

        protected void doGet(HttpServletRequest req,
                 HttpServletResponse res)
                      throws ServletException,
                             java.io.IOException
        Throws:
        ServletException
        java.io.IOException
kz.arta.synergy.api.rest.diary

Class DiaryService



  • public class DiaryService
    extends java.lang.Object
    Created by IntelliJ IDEA. User: topa Date: 19.06.13 Time: 8:45 To change this template use File | Settings | File Templates.
    • Constructor Summary

      Constructors 
      Constructor and Description
      DiaryService() 
    • Method Summary

      Methods 
      Modifier and Type Method and Description
      java.lang.String createTask(java.lang.String task, java.lang.String taskID, java.lang.String start, java.lang.String finish, boolean wholeDay, java.lang.String userID, java.lang.String locale)
      Метод для создания/изменения задачи
      java.lang.String deleteTask(java.lang.String taskID, java.lang.String locale)
      Метод для удаление задачи
      java.lang.String getModifiedTasks(java.lang.String userID, java.lang.String locale, java.lang.String lastModified)

      Response getTask(java.lang.String taskID, java.lang.String locale)
      Получение заметки по идентификатору
      Response getUserTasks(java.lang.String userID, java.lang.String start, java.lang.String finish, java.lang.String locale)
      Получения заметок пользователя из календаря за промежуток времени
      Response setTaskState(java.lang.String taskID, java.lang.String locale)
      Метод для завершения заментки
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • DiaryService

        public DiaryService()
    • Method Detail

      • getModifiedTasks

        public java.lang.String getModifiedTasks(java.lang.String userID,
                                        java.lang.String locale,
                                        java.lang.String lastModified)

        Метод возвращает заметки измененные за последнее время

        URL rest/api/diary/tasks/{userID}
        Method GET


        Пример:
        http://хост:порт/Synergy/rest/api/diary/tasks/uuid_пользователя?last-modified=2013-01-01%2008:00:00
        Для описания оорфмата json смотрите документацию метода taskToJson(Task)
        Parameters:
        userID - uuid пользователя, чьи задачи необходимо посмотреть
        locale - локаль
        lastModified - стамп времени
        Returns:
        список заметок, измененных с момента lastModified в формате json
        See Also:
        #taskToJson(arta.synergy.web.common.client.data.tasks.Task)
      • createTask

        public java.lang.String createTask(java.lang.String task,
                                  java.lang.String taskID,
                                  java.lang.String start,
                                  java.lang.String finish,
                                  boolean wholeDay,
                                  java.lang.String userID,
                                  java.lang.String locale)

        Метод для создания/изменения задачи

        URL rest/api/diary/tasks/{userID}/save
        Method POST

        Parameters:
        task - текст задачи
        taskID - идентификатор задачи (в случае добавления новой задачи должен отсутствовать)
        start - дата начала в формате yyyy-MM-dd либо yyyy-MM-dd HH:mm:00 (первый для задач в течение дня, второй для задач с конкретным временем)
        finish - дата завершения в формате yyyy-MM-dd либо yyyy-MM-dd HH:mm:00 (первый для задач в течение дня, второй для задач с конкретным временем)
        wholeDay - в течение целого дня или нет
        userID - идентификатор пользователя для которого создается задача
        locale - локаль
        Returns:
        json вида {errorCode: code_value, errorMessage: some_message} Если errorCode = 0, значит действие было выполнено успешно, иначе- нет и в errorMessage должна содержаться информация об ошибке
      • deleteTask

        public java.lang.String deleteTask(java.lang.String taskID,
                                  java.lang.String locale)

        Метод для удаление задачи

        URL rest/api/diary/tasks/delete
        Method GET

        Parameters:
        taskID - идентификатор задачи
        locale - локаль
      • setTaskState

        public Response setTaskState(java.lang.String taskID,
                            java.lang.String locale)

        Метод для завершения заментки

        URL rest/api/diary/tasks/complete
        Method GET

        Parameters:
        taskID - идентификатор задачи (в случае добавления новой задачи должен отсутствовать)
        locale - локаль

        Пример запроса:

        `/rest/api/diary/tasks/complete?taskID=e6fc40b0-9fe4-11e6-9ce4-001ef892a4ee`

        Пример возвращаемого объекта:

        { "errorCode": 0, "errorMessage": "Заметка успешно завершена" }

      • getTask

        public Response getTask(java.lang.String taskID,
                       java.lang.String locale)

        Получение заметки по идентификатору

        URL /rest/api/diary/tasks/get
        Method GET Метод принимает следующие входные параметры:

        - `taskID` - `uuid` заметки (обяз.);

        - `locale` - локаль.

        Метод возвращает описание заметки с указанным идентификатором.

        В случае успешного выполнения метод возвращает объект `JSON`, состоящий из следующих полей:

        - `taskID` - `uuid` заметки;

        - `task` - текст заметки;

        - `start` - дата и время начала исполнения заметки, в формате `yyyy-MM-dd HH:mm:ss`;

        - `finish` - дата и время завершения исполнения заметки, в формате `yyyy-MM-dd HH:mm:ss`;

        - `wholeDay` - признак исполнения заметки в течение дня. Одно из следующих значений:

        - `true` - установлен срок исполнения "в течение дня";

        - `false` - не установлен срок исполнения "в течение дня".

        Пример запроса:

        `rest/api/diary/tasks/get?taskID=e6fc40b0-9fe4-11e6-9ce4-001ef892a4ee`

        Пример возвращаемого массива:

        { "taskID" : "e6fc40b0-9fe4-11e6-9ce4-001ef892a4ee", "task" : "заметка №1", "start" : "2016-12-05 10:00:00", "finish" : "2016-12-05 16:00:00", "wholeDay" : false }

      • getUserTasks

        public Response getUserTasks(java.lang.String userID,
                            java.lang.String start,
                            java.lang.String finish,
                            java.lang.String locale)

        Получения заметок пользователя из календаря за промежуток времени

        URL rest/api/diary/tasks/{userID}/all
        Method GET

        Parameters:
        start - дата начала в формате yyyy-MM-dd
        finish - дата завершения в формате yyyy-MM-dd
        userID - идентификатор пользователя чьи заметки необходимо получить
        locale - локаль

        Пример запроса:

        `rest/api/diary/tasks/8f60bf3b-0fff-11e9-bfb4-001ef892a4ee/all?start=2016-12-05&finish=2016-12-25`

        Пример возвращаемого массива:

        [ { "taskID" : "e6fc40b0-9fe4-11e6-9ce4-001ef892a4ee", "task" : "заметка №1", "start" : "2016-12-05 10:00:00", "finish" : "2016-12-05 16:00:00" }, { "taskID" : "5dfc40b0-9fe4-11e6-9ce4-001ef892a4ee", "task" : "заметка №2", "start" : "2016-12-10 09:45:00", "finish" : "2016-12-10 12:00:00" }, { "taskID" : "21sdd1sb0-9fe4-11e6-9ce4-001ef892a4ee", "task" : "заметка №3", "start" : "2016-12-20 09:00:00", "finish" : "2016-12-20 18:00:00" }, { "taskID" : "11lc40b0-5fkh-11e6-9ce4-001ef892a4ee", "task" : "заметка №4", "start" : "2016-12-25 09:00:00", "finish" : "2016-12-25 18:00:00" } ]

kz.arta.synergy.api.rest.confimport

Class ImportConfigurationServlet



  • public class ImportConfigurationServlet
    extends HttpServlet
    User: Mikhail Milyutin Date: 10.08.16. Time: 10:30.

    API импорта конфигурации

    • Method Summary

      Methods 
      Modifier and Type Method and Description
      protected void doPost(HttpServletRequest req, HttpServletResponse res)
      Метод импорта конфигурации
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ImportConfigurationServlet

        public ImportConfigurationServlet()
    • Method Detail

      • doPost

        protected void doPost(HttpServletRequest req,
                  HttpServletResponse res)
                       throws ServletException,
                              java.io.IOException

        Метод импорта конфигурации

        URL rest/api/configuration (requires basic http authorization)
        Method POST enctype/multipart


        Запрос должен содержать следующие параметры
        data файл который необходимо импортировать
        new_version создавать новую версию для объектов типа "форма"
        delete_child_objects Удалять все дочерние объекты при замене родительского
        delete_rights Удалять права при замене объектов
        locale локаль возвращаемых сообщений

        Возвращает: json следующего вида
        {"errorCode":0,"errorMessage":""}

        error_values :
        0 - Импорт прошёл успешно
        3 - Переданы некорректные параметры
        2 - Недостаточно прав для импорта/не авторизован
        13 - В списке подписей встречаются подписи, который нет в системе
        http error 400 - Переданы некорректные параметры
        http error 403 - Недостаточно прав для импорта/не авторизован
        http error 500 - в случае любой другой ошибки
        Parameters:
        req - - HttpServletRequest
        res - - HttpServletResponse
        Throws:
        ServletException
        java.io.IOException
kz.arta.synergy.api.rest.notifications

Class NotificationsService

  • java.lang.Object
    • kz.arta.synergy.api.rest.notifications.NotificationsService


  • public class NotificationsService
    extends java.lang.Object
    Created by IntelliJ IDEA. User: topa Date: 14.01.14 Time: 18:08 To change this template use File | Settings | File Templates.
    • Method Summary

      Methods 
      Modifier and Type Method and Description
      java.lang.String get(long lastGetTime, boolean subscribedOnly, java.util.List<java.lang.Integer> actionType, java.util.List<java.lang.Integer> objectType, java.lang.String locale)
      Метод возвращает уведомления для авторизованного пользователя
      java.lang.String getHost() 
      Response send(NotificationSend sendInfo)
      Метод API для отправки произвольного уведомления пользователю URL: rest/api/notifications/send
      Method POST
      Метод принимает следующие входные параметры (json):

      header - заголовок/тема уведомления (не обяз.);
      message - тело уведомления (обяз.);
      users - массив uuid пользователей, которым необходимо отправить уведомление;
      groups - массив uuid групп пользователей, которым необходимо отправить уведомление;
      logins - массив логинов пользователей, которым необходимо отправить уведомление;
      emails - массив произвольных e-mail, которым необходимо отправить уведомление;
      locale - локаль.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • NotificationsService

        public NotificationsService()
    • Method Detail

      • get

        public java.lang.String get(long lastGetTime,
                           boolean subscribedOnly,
                           java.util.List<java.lang.Integer> actionType,
                           java.util.List<java.lang.Integer> objectType,
                           java.lang.String locale)

        Метод возвращает уведомления для авторизованного пользователя


        URL rest/api/notifications/get
        Method GET

        Parameters:
        lastGetTime - Время последнего получения уведомлений в миллисекундах, если ранее уведомления не запрашивались значние передавать не надо - система сама определит количество последних уведомлений, которые надо вернуть
        subscribedOnly - true - система вернет только те типы уведомлений на получение которых пользователь подписан, согласно настройкам в системе, false - вернет все типы уведомлений
        actionType - идентификатор типа уведомления (action_types.typeID), передача этого ограничивает возвращаемые уведомления данным типом/типами. Если необходимо передать несколько типов уведомлений - параметр надо указать в запросе несколько раз
        objectType - идентификатор объекта, передача этого параметра ограничиывает возвращаемые уведомления по типу объекта, к которому они относятся. Если необходимо передать несколько типов объектов - параметр надо указать в запросе несколько раз Обрабатываются значения парамтра:
        4 - работа, проекты
        8 - задача
        2 - цель
        16 - показатель
        locale - локаль авторизованного пользователя
        Returns:
        список уведомлений, удовлетворяющих параметрам и текущее время в миллисекундах. Это время надо передать при получении следующей порции уведомлений.
        Формат ответа:
         
        {
        "lasGetTime": "yyyy-MM-dd HH:ss:mm", - стамп времени получения уведомлений
        "notifications": - список уведомлений
        [
        {
        "time":"", - время события
        "notification":"" - текст уведомления
        }, ...
        ]
      • send

        public Response send(NotificationSend sendInfo)

        Метод API для отправки произвольного уведомления пользователю URL: rest/api/notifications/send
        Method POST
        Метод принимает следующие входные параметры (json):

        header - заголовок/тема уведомления (не обяз.);
        message - тело уведомления (обяз.);
        users - массив uuid пользователей, которым необходимо отправить уведомление;
        groups - массив uuid групп пользователей, которым необходимо отправить уведомление;
        logins - массив логинов пользователей, которым необходимо отправить уведомление;
        emails - массив произвольных e-mail, которым необходимо отправить уведомление;
        locale - локаль.
        Пример передаваемого запроса: { "header": "Срочное собрание!", "message": "Прошу Вас собраться в 10:00 в актовом зале.", "users": ["7b953be8-bddb-4ce4-bbfd-ae9548f69c7f", "e65f62fa-7045-4b5b-b61d-46ca00ea7af1"], "groups": [1, 5, 7], "logins": ["Абдрешен", "Слепаков", "user_100500", "1"], "emails": ["bobrov@arta.kz"] }

        Parameters:
        sendInfo - json-объект;
        Returns:
        В случае успешного выполнения json со следующими полями:
        • errorCode = 0
        • errorMessage = Уведомление отправлено
        в случае ошибки вернет json со следующими полями
        • errorCode = код ошибки
        • errorMessage = сообщение
        Пример возвращаемого json-объекта при успешном выполнении метода:
            {
                "errorCode": 0,
                "errorMessage": "Уведомление отправлено"
            }
         
      • getHost

        public java.lang.String getHost()
kz.arta.synergy.api.rest.asforms

Class FormPlayerService

  • java.lang.Object
    • kz.arta.synergy.api.rest.asforms.FormPlayerService


  • public class FormPlayerService
    extends java.lang.Object
    Created by exile Date: 18.02.16 Time: 10:02 апи для получения значений для компонентов формы js проигрывателя форм
    • Method Summary

      Methods 
      Modifier and Type Method and Description
      java.lang.String documentAttribute(java.lang.String dataUUID, java.lang.String field, java.lang.String locale)
      получение значения поля ркк документа

      URL rest/api/formPlayer/documentAttribute
      Method GET

      java.lang.String formatDate(java.lang.String format, java.lang.String date, java.lang.String locale)
      получение форматированного локализованного значения даты
      java.lang.String formatDocLink(java.lang.String documentID, java.lang.String format, java.lang.String locale)
      получение значения компонента ссылка на документа

      URL rest/api/formPlayer/documentLink
      Method GET

      Response getAsfDataUUID(java.lang.String documentID)
      получение идентификатора данных по форме

      URL rest/api/formPlayer/getAsfDataUUID
      Method GET

      Response getCustomComponent(java.lang.String code)
      получение информации о пользовательском компоненте
      Response getDocumentBases(java.lang.String dataUUID, java.lang.String locale)
      получение списка оснований документа

      URL rest/api/formPlayer/getDocumentBases
      Method GET

      Response getDocumentId(java.lang.String dataUUID, java.lang.String locale)
      получение идентификатора документа по идентификатору данных по форме

      URL rest/api/formPlayer/documentIdentifier
      Method GET

      Response getDocumentMeaningContent(java.lang.String registryID, java.lang.String asfDataUUID)
      получение значений полей значащих содержимых
      Response getSignHeaders(java.lang.String headersString, int type, java.lang.String locale)
      получение локализованных заголовков списка подписей

      URL rest/api/formPlayer/getSignHeaders
      Method GET

      Response listFiles(java.lang.String parentID, boolean getOnlyFolders, boolean showHomeFolder, java.util.List<java.lang.String> mimeType, java.lang.String locale)
      Метод возвращает список файлов в папке с идентификатором parentID
      Response listResolutions(java.lang.String dataUUID, java.lang.String locale)
      получение списка резолюций документа

      URL rest/api/formPlayer/getResolutions
      Method GET

      Response listSigns(java.lang.String dataUUID, int type, java.lang.String locale)
      получение списка подписей документа

      URL rest/api/formPlayer/getSigns
      Method GET

      Response log(java.lang.String error, java.lang.String formId, java.lang.String asfDataId)
      серверное логгирование ошибок проигрывателя форм

      URL rest/api/formPlayer/log
      Method POST

      Response processHistory(java.lang.String dataUUID, java.lang.String locale)
      получение хода исполнения документа

      URL rest/api/formPlayer/getProcessExecution
      Method GET

      static java.util.List<SignListHeaderConfigDTO> sortColumns(java.util.List<SignListHeaderConfigDTO> rows) 
      java.lang.String translate(java.lang.String value, java.lang.String locale)
      перевод сообщения в нужную локаль
      Response translateMultiple(java.util.List<java.lang.String> value, java.lang.String locale)
      перевод сообщения в нужную локаль
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • FormPlayerService

        public FormPlayerService()
    • Method Detail

      • formatDate

        public java.lang.String formatDate(java.lang.String format,
                                  java.lang.String date,
                                  java.lang.String locale)

        получение форматированного локализованного значения даты

        URL rest/api/formPlayer/formatDate
        Method GET

        Parameters:
        format - формат даты (смотрите формат даты для поля дата в конфигураторе)
        date - дата в формате yyyy-MM-dd HH:mm:ss
        locale - локаль
        Returns:
        форматированное значение даты
      • documentAttribute

        public java.lang.String documentAttribute(java.lang.String dataUUID,
                                         java.lang.String field,
                                         java.lang.String locale)
        получение значения поля ркк документа

        URL rest/api/formPlayer/documentAttribute
        Method GET

        Parameters:
        dataUUID - идентификатор данных по форме
        field - поле ркк ("number", "subject", "createDate", "author", "reg_date", "doc_type", "registry")
        locale - локаль
        Returns:
        значение поля или пустую строку
      • getDocumentId

        public Response getDocumentId(java.lang.String dataUUID,
                             java.lang.String locale)
        получение идентификатора документа по идентификатору данных по форме

        URL rest/api/formPlayer/documentIdentifier
        Method GET

        Parameters:
        dataUUID - идентификатор данных по форме
        locale - локаль
        Returns:
        идентификатор документа если данные по форме не найдены то возвращает http status 500 INTERNAL_SERVER_ERROR
      • getAsfDataUUID

        public Response getAsfDataUUID(java.lang.String documentID)
        получение идентификатора данных по форме

        URL rest/api/formPlayer/getAsfDataUUID
        Method GET

        Parameters:
        documentID - идентификатор документа
        Returns:
        идентификатор данных по форме если данные по форме не найдены то возвращает http status 500 INTERNAL_SERVER_ERROR
      • formatDocLink

        public java.lang.String formatDocLink(java.lang.String documentID,
                                     java.lang.String format,
                                     java.lang.String locale)
        получение значения компонента ссылка на документа

        URL rest/api/formPlayer/documentLink
        Method GET

        Parameters:
        documentID - идентификатор документа
        format - формат (смотрите настройку формата для поля ссылка на документ в конфигураторе)
        locale - локаль
        Returns:
        значение документа или исходный формат
      • getDocumentBases

        public Response getDocumentBases(java.lang.String dataUUID,
                                java.lang.String locale)
        получение списка оснований документа

        URL rest/api/formPlayer/getDocumentBases
        Method GET

        Parameters:
        dataUUID - идентификатор данных по форме
        Returns:
        список оснований
        {
        documentID : идентификатор документа,
        docID : идентификатор ркк документа,
        regDate : дата регистрации в формате dd-MM-yyyy HH:mm:ss,
        number : номер документа,
        subject : краткое содержание
        }

        если в процессе получения оснований произошла ошибка метод возвращает http status 500 INTERNAL_SERVER_ERROR
      • processHistory

        public Response processHistory(java.lang.String dataUUID,
                              java.lang.String locale)
        получение хода исполнения документа

        URL rest/api/formPlayer/getProcessExecution
        Method GET

        Parameters:
        dataUUID - идентификатор данных по форме
        locale - локаль
        Returns:
        возвращает массив объектов со следующей структурой
        {
        procInstID - идентификатор процесса
        processId - идентификатор типа процесса
        name - наименование
        userName - имя исполнителя
        authorName - имя автора
        started - время в миллисекундах даты начала
        finished - время в миллисекундах даты завершения
        finishedUser - завершил
        comment - комментарий
        deleted - время в миллисекундах даты удаления
        subProcesses - массив подпроцессов с той же структурой }



        если в процессе получения хода исполнения произошла ошибка метод возвращает http status 500 INTERNAL_SERVER_ERROR

      • listResolutions

        public Response listResolutions(java.lang.String dataUUID,
                               java.lang.String locale)
        получение списка резолюций документа

        URL rest/api/formPlayer/getResolutions
        Method GET

        Parameters:
        dataUUID - идентификатор данных по форме
        locale - локаль
        Returns:
        возвращает массив объектов со следующей структурой

        projectID - идентификатор проекта резолюции
        authorID - идентификатор автор
        authorName - имя автора
        items - массив пунктов резолюции


        item:
        name - имя пункта
        user - имя главноего исполнителя
        userRow - имена исполнителей через запятую
        finishDate - время в миллисекундах даты завершения



        если в процессе получения списка резолюций произошла ошибка метод возвращает http status 500 INTERNAL_SERVER_ERROR

      • listSigns

        public Response listSigns(java.lang.String dataUUID,
                         int type,
                         java.lang.String locale)
        получение списка подписей документа

        URL rest/api/formPlayer/getSigns
        Method GET

        Parameters:
        dataUUID - идентификатор данных по форме
        type - тип получаемых данных, -1 = подписи, 0 - согласования, 1 - утверждения, 2 - ознакомления
        locale - локаль
        Returns:
        возвращает массив объектов со следующей структурой

        comment коммент
        currentName - текущее имя
        currentPosition - текущая должность
        date - дата подписания
        name - имя пользователя (зависит от настройки что отображать в подписи)
        position - должность (зависит от настройки что отображать в подписи)
        result - результат
        routeItemElementTypeID - тип процесса
        signType - тип подписи
        signedName - имя на момент подписи
        signedPosition - должность на момент подписи
        typeSign - эцп обычная



        если в процессе получения списка подписей произошла ошибка метод возвращает http status 500 INTERNAL_SERVER_ERROR

      • getSignHeaders

        public Response getSignHeaders(java.lang.String headersString,
                              int type,
                              java.lang.String locale)
        получение локализованных заголовков списка подписей

        URL rest/api/formPlayer/getSignHeaders
        Method GET

        Parameters:
        headersString - сериализованый список заголовков
        number номер
        field поле
        en наименование колонки на английском
        kz наименование колонки на казахском
        ru наименование колонки на русском
        type - тип списка -1 = подписи, 0 - согласования, 1 - утверждения, 2 - ознакомления
        locale - локаль
        Returns:
        отсортированный массив заголовков имеющий ту же структуру


        code - код поля
        name наименование
        number номер
        field поле
        en наименование колонки на английском
        kz наименование колонки на казахском
        ru наименование колонки на русском



        если в процессе получения списка заголовков списка подписей произошла ошибка метод возвращает http status 500 INTERNAL_SERVER_ERROR

      • log

        public Response log(java.lang.String error,
                   java.lang.String formId,
                   java.lang.String asfDataId)
        серверное логгирование ошибок проигрывателя форм

        URL rest/api/formPlayer/log
        Method POST

        Parameters:
        error - ошибка
        formId - идентификатор формы
        asfDataId - идентификатор данных по форме



        если в процессе получения списка заголовков списка подписей произошла ошибка метод возвращает http status 500 INTERNAL_SERVER_ERROR

      • listFiles

        public Response listFiles(java.lang.String parentID,
                         boolean getOnlyFolders,
                         boolean showHomeFolder,
                         java.util.List<java.lang.String> mimeType,
                         java.lang.String locale)

        Метод возвращает список файлов в папке с идентификатором parentID


        URL rest/api/formPlayer/listFiles
        Method GET

        Parameters:
        parentID - - идентификатор папки
        getOnlyFolders - - только папки
        showHomeFolder - - отображать домашнюю директорию пользователя
        mimeType - - Миме типы возвращаемых файлов,
        locale - - локаль пользователя
        Returns:
        json со списком файлов:
        ai_type - аи тип
        icon - иконка
        id - идентификатор
        identifier - идентификатор
        is_folder - является папкой
        mime - миме тип
        modified - изменен дата в формате yyyy-MM-dd HH:mm:ss
        name - наименование
        notEmpty - пустая ли папка если папка
        path - путь
        right - права
        size - размер в байтах
        userID - идентификатор пользователя изменившего файл
        userName имя пользователя



        если в процессе получения списка файлов произошла ошибка метод возвращает http status 500 INTERNAL_SERVER_ERROR

      • translate

        public java.lang.String translate(java.lang.String value,
                                 java.lang.String locale)
        перевод сообщения в нужную локаль
        Parameters:
        value - сообщение
        locale - локаль
        Returns:
        перевод
      • translateMultiple

        public Response translateMultiple(java.util.List<java.lang.String> value,
                                 java.lang.String locale)
        перевод сообщения в нужную локаль
        Parameters:
        value - сообщение
        locale - локаль
        Returns:
        {value1: translatedValue1, value2: translatedValue2,}
      • getDocumentMeaningContent

        public Response getDocumentMeaningContent(java.lang.String registryID,
                                         java.lang.String asfDataUUID)
        получение значений полей значащих содержимых
        Parameters:
        registryID - реестр
        asfDataUUID - идентификатор данных по форме
        Returns:
        значение
      • getCustomComponent

        public Response getCustomComponent(java.lang.String code)
        получение информации о пользовательском компоненте
        Parameters:
        code - код компонента
        Returns:
        компонент
kz.arta.synergy.api.rest.asforms

Class FormPlayerIconService

  • java.lang.Object
    • kz.arta.synergy.api.rest.asforms.FormPlayerIconService


  • public class FormPlayerIconService
    extends java.lang.Object
    Created by exile Date: 18.02.16 Time: 10:02 апи для получения значений для компонентов формы js проигрывателя форм
    • Method Summary

      Methods 
      Modifier and Type Method and Description
      Response getUserPhoto(java.lang.String personID, java.lang.Integer maxWidth, java.lang.Integer maxHeight, boolean inscribe) 
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • FormPlayerIconService

        public FormPlayerIconService()
    • Method Detail

      • getUserPhoto

        public Response getUserPhoto(java.lang.String personID,
                            java.lang.Integer maxWidth,
                            java.lang.Integer maxHeight,
                            boolean inscribe)
kz.arta.synergy.api.rest.asforms

Class APIFormsService

  • java.lang.Object
    • kz.arta.synergy.api.rest.asforms.APIFormsService


  • public class APIFormsService
    extends java.lang.Object
    Created by IntelliJ IDEA. User: topa Date: 06.05.13 Time: 15:45 To change this template use File | Settings | File Templates.
    • Constructor Summary

      Constructors 
      Constructor and Description
      APIFormsService() 
    • Method Summary

      Methods 
      Modifier and Type Method and Description
      Response advancedSearch(ASFSearchParameters params)
      Метод для расширенного поиска данных по форме или записям реестра, получения записей реестра
      java.lang.String asErrorToJson(ServerResult result, ObjectMapper mapper)
      Возвращает результат в json, включая поля кода ошибки и сообщения
      Response getDefaultDataContent(java.lang.String formID, java.lang.String formCode)
      получение данных файла по форме по умолчанию (заполняются преднастроенные значения)
      byte[] getDefaultDocumentContent(java.lang.String formID)
      Получение старой формы для dt-int ДУБЛИРОВАННЫЙ КОД - из-за авторизации ИЗ
      java.lang.String getFormData(java.util.List<java.lang.String> dataUUIDs, java.lang.String locale)
      Возвращает данные формы по идентификатору данных (может быть использован для получения данных одновременно по несольким формам)
      java.lang.String getFormData(java.lang.String dataUUID, int version, java.lang.String locale)
      Возвращает данные формы по идентификатору данных
      java.lang.String getFormDefinition(java.lang.String formID, boolean isMobile, java.lang.String locale)
      Метод возвращает описание формы
      Response getFormDefinitionExt(java.lang.String formID, java.lang.String formCode, int version)
      Метод возвращает описание формы
      java.lang.String getPrintable(java.lang.String dataUUID, java.lang.String locale) 
      Response getRegistryAndDocumentIds(java.util.List<java.lang.String> dataUUIDs)
      Получение идентификаторов документов по идентификаторам данных.
      java.lang.String list(java.lang.String formUUID)
      Получение списка UUID данных по форме по UUID формы

      URL rest/api/asforms/data/list/{formUUID}
      Method GET

      java.lang.String loadCollatedDate(java.lang.String regID, java.lang.String collationGroup, java.lang.String dataUUID, int version)
      Получение данных используемых при сопоставлении
      Response printWithMixin(PrintTemplateJson request)
      Печать данных формы на основе ее представления
      byte[] printWithTemplate(java.lang.String dataUUID, java.lang.String format, java.lang.String locale)
      Печать формы на основе ее представления ДУБЛИРОВАННЫЙ КОД - из-за авторизации ИЗ
      Response save(java.lang.String formUUID, java.lang.String formCode, java.lang.String uuid, java.lang.String parentID, boolean isMobile, java.lang.String data)
      Метод сохраняет данные по форме
      Response search(java.lang.String locale)
      Метод для поиска данных по форме или записям реестра, получения записей реестра
      Response searchIndex(java.lang.String locale)
      Метод для поиска данных по форме или записям реестра, получения записей реестра
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • APIFormsService

        public APIFormsService()
    • Method Detail

      • getFormData

        public java.lang.String getFormData(java.lang.String dataUUID,
                                   int version,
                                   java.lang.String locale)

        Возвращает данные формы по идентификатору данных

        URL rest/api/asforms/data/{dataUUID}
        Method GET


        request parameters: locale - optional user locale

        Parameters:
        dataUUID - - идентификатор данных по форме
        locale - - user locale
        Returns:
        data as json
      • getFormData

        public java.lang.String getFormData(java.util.List<java.lang.String> dataUUIDs,
                                   java.lang.String locale)

        Возвращает данные формы по идентификатору данных (может быть использован для получения данных одновременно по несольким формам)

        URL rest/api/asforms/data/get
        Method GET


        request parameters: locale - optional user locale

        Parameters:
        dataUUIDs- - идентификатор данных по форме (может быть передано несколько значений). Например, dataUUID=uuid1&dataUUID=uuid2&dataUUID=uuid3
        locale - - user locale
        Returns:
        data as json
      • getFormDefinition

        public java.lang.String getFormDefinition(java.lang.String formID,
                                         boolean isMobile,
                                         java.lang.String locale)

        Метод возвращает описание формы

        URL rest/api/asforms/form/{formID}
        Method GET

        Parameters:
        formID - идентификатор формы (asf_definition.uuid)
        isMobile - true - работаем с формой которая имеет мобильное представление
        locale - локаль пользователя
        Returns:
        json описание формы
      • getFormDefinitionExt

        public Response getFormDefinitionExt(java.lang.String formID,
                                    java.lang.String formCode,
                                    int version)

        Метод возвращает описание формы

        URL rest/api/asforms/form_ext
        Method GET

        Parameters:
        formID - идентификатор формы (asf_definition.uuid)
        formCode - код формы (asf_definition.code)
        version - номер версии формы. Если в качестве значения передать "0", то вернется последняя (актуальная) версия формы.
        Returns:
        json описание формы
      • search

        public Response search(java.lang.String locale)

        Метод для поиска данных по форме или записям реестра, получения записей реестра

        URL rest/api/asforms/search
        Method GET

        Параметры поиска включают:
        formUUID идентификатор формы (может быть передано несколько значений)
        formCode code формы (может быть передано несколько значений)
        search поисковая строка (может быть передано несколько значений, может отсутствовать)
        field названия компонентов (может быть передано несколько значений, может отсутствовать)
        type тип сравнения (может отсутствовать), может принимать значения:

        • exact - точное совпадение поискового запроса и значения компоненита.
        • partial - вхождения поискового запроса в знаение компонента

        sortField - название компонента по которому будет осуществлена сортировка (может быть передано несколько значений, может отсутствовать)
        sortDir - направление сортировки, возможные значения: "asc", "desc" (может быть передано несколько значений, может отсутствовать). Любое другое значение или его отсутствие будет интерпретировано как "asc".
        sortType - тип сортировки содержимого поля, возможные значения: "string" - сортируется как строка, "decimal" - сортируется как число. (может быть передано несколько значений, может отсутствовать). Любое другое значение или его отсутствие будет интерпретировано как "string".

        При формировании запроса все условия параметров поиска соединяются с помощью оператора OR. Например, в параметры поиска было передано два идентификатора формы (formUUID1, formUUID2), два названия поля (field1, field2) и две поисковых строки (search1, search2) и тип сравнения partial. Тогда в результатах поиска будут все записи по формам formUUID1 и formUUID2, у которых (field1 содержит search1 ИЛИ field2 содержит search1 ИЛИ field1 содержит search2 ИЛИ field2 содержит search2)
        Если не передать параметр field, то метод вернет все данные данной формы.

        Несколько наборов параметров поиска
        Если необходимо наложить разные условия на разные поля формы, то можно передать параметры поиска дополнительно, прибавив к названиям параметров порядковый номер набора параметров. Количество наборов параметров, которые можно добавить неограничено. Главное соблюдать правильную нумерацию названий параметров: 1, 2, 3 и т.д. (первый набор может не иметь порядкового номера)
        Таким образом, метод должен получить дополнительный набор параметров formUUID1, search1, field1, type1, formUUID2, search2, field2, type2 и т.д.
        По-умолчанию условия различных наборов соединяются между собой оператором ИЛИ, чтобы это изменить, необходимо передать параметр term, который может принимать значения: or - для объединения наборов условий оператором ИЛИ, and - для объединения наборов условий оператором И.
        Например, необходимо найти все записи реестра по форме с идентификатором uuid для которых field1 равно str1 и field2 содержит str2, тогда запрос будет выглядеть следующим образом:
        formUUID=uuid&search=str1&field=field1&type=exact&formUUID1=uuid&search1=str2&field1=field2&type1=partial&term=and


        Прочие параметры:
        startRecord номер записи результатов, начиная с которого будут возвращены записи (отсчет с 0)
        recordsCount количество результатов, которые надо вернуть
        showDeleted необходимо ли в результатах возвращать удаленные записи (по-умолчанию true)
        searchInRegistry необходимо передать значение этого параметра false , если осуществляется по данным форм, не входящим в реестр
        getDocIds если передать этот параметр со значением true, то в результаты поиска так же будут включать идентификаторы документов реестра
        Например, необходимо, чтобы метод вернул первые 30 результатов поиска, надо к запросу добавить параметры startRecord=0&recordsCount=30, для того чтобы получить вторую страницу с результатами поиска (следующие 30 записей), необходимо передать параметры startRecord=30&recordsCount=30 и т.д.
        Returns:
        список идентификаторов данных форм как список json: ["uuid1", "uuid2", "uuid3"]
        Если передан параметр getDocIds=true, то так же возвращаются идентификаторы документов: [{"dataUUID": "uuid1", "documentID": "docID1"}, {"dataUUID": "uuid2", "documentID": "docID2"}, {"dataUUID": "uuid3", "documentID": "docID3"}]
      • searchIndex

        public Response searchIndex(java.lang.String locale)

        Метод для поиска данных по форме или записям реестра, получения записей реестра

        URL rest/api/asforms/search_index
        Method GET

        Параметры поиска включают:
        formUUID идентификатор формы (может быть передано несколько значений)
        formCode code формы (может быть передано несколько значений)
        search поисковая строка (может быть передано несколько значений, может отсутствовать)
        field названия компонентов (может быть передано несколько значений, может отсутствовать)
        type тип сравнения (может отсутствовать), может принимать значения:

        • exact - точное совпадение поискового запроса и значения компоненита.
        • partial - вхождения поискового запроса в знаение компонента

        sortField - название компонента по которому будет осуществлена сортировка (может быть передано несколько значений, может отсутствовать)
        sortDir - направление сортировки, возможные значения: "asc", "desc" (может быть передано несколько значений, может отсутствовать). Любое другое значение или его отсутствие будет интерпретировано как "asc".
        sortType - тип сортировки содержимого поля, возможные значения: "string" - сортируется как строка, "decimal" - сортируется как число. (может быть передано несколько значений, может отсутствовать). Любое другое значение или его отсутствие будет интерпретировано как "string".

        При формировании запроса все условия параметров поиска соединяются с помощью оператора OR. Например, в параметры поиска было передано два идентификатора формы (formUUID1, formUUID2), два названия поля (field1, field2) и две поисковых строки (search1, search2) и тип сравнения partial. Тогда в результатах поиска будут все записи по формам formUUID1 и formUUID2, у которых (field1 содержит search1 ИЛИ field2 содержит search1 ИЛИ field1 содержит search2 ИЛИ field2 содержит search2)
        Если не передать параметр field, то метод вернет все данные данной формы.

        Несколько наборов параметров поиска
        Если необходимо наложить разные условия на разные поля формы, то можно передать параметры поиска дополнительно, прибавив к названиям параметров порядковый номер набора параметров. Количество наборов параметров, которые можно добавить неограничено. Главное соблюдать правильную нумерацию названий параметров: 1, 2, 3 и т.д. (первый набор может не иметь порядкового номера)
        Таким образом, метод должен получить дополнительный набор параметров formUUID1, search1, field1, type1, formUUID2, search2, field2, type2 и т.д.
        По-умолчанию условия различных наборов соединяются между собой оператором ИЛИ, чтобы это изменить, необходимо передать параметр term, который может принимать значения: or - для объединения наборов условий оператором ИЛИ, and - для объединения наборов условий оператором И.
        Например, необходимо найти все записи реестра по форме с идентификатором uuid для которых field1 равно str1 и field2 содержит str2, тогда запрос будет выглядеть следующим образом:
        formUUID=uuid&search=str1&field=field1&type=exact&formUUID1=uuid&search1=str2&field1=field2&type1=partial&term=and


        Прочие параметры:
        startRecord номер записи результатов, начиная с которого будут возвращены записи (отсчет с 0)
        recordsCount количество результатов, которые надо вернуть
        showDeleted необходимо ли в результатах возвращать удаленные записи (по-умолчанию true)
        searchInRegistry необходимо передать значение этого параметра false , если осуществляется по данным форм, не входящим в реестр
        Например, необходимо, чтобы метод вернул первые 30 результатов поиска, надо к запросу добавить параметры startRecord=0&recordsCount=30, для того чтобы получить вторую страницу с результатами поиска (следующие 30 записей), необходимо передать параметры startRecord=30&recordsCount=30 и т.д.
        Returns:
        список идентификаторов данных форм и идентификаторов документов, и количество найденных совпадений {count : 1000, data : [{"dataUUID": "uuid1", "documentID": "docID1"}, {"dataUUID": "uuid2", "documentID": "docID2"}, {"dataUUID": "uuid3", "documentID": "docID3"}] }
      • advancedSearch

        public Response advancedSearch(ASFSearchParameters params)

        Метод для расширенного поиска данных по форме или записям реестра, получения записей реестра

        URL rest/api/asforms/search/advanced
        Method POST

        "Content-type" запроса должен быть "application/json; charset=utf-8" и в теле запроса JSON в следующем формате

         {
         "query": "where `цвет фона.TEXT` like 'бел%' and `сложность` like 'очень%'",
         "parameters":   [ "цвет фона.TEXT", "сложность" ],
         "startRecord":      0,
         "recordsCount":     50,
         "showDeleted":      "true",
         "searchInRegistry": "true"
         "registryRecordStatus" : ["STATE_SUCCESSFUL", "STATE_NOT_FINISHED", "NO_ROUTE", "STATE_UNSUCCESSFUL"]
         }
         
        , где

        query - строка SQL-подобного поискового запроса
        Строку надо составлять из преположения, что она добавится к sql-запросу для примерно такой таблицы:

        uuid цвет фона.TEXT сложность
        uuid1 белый сложно
        uuid2 черный легко
        uuid3 желтый просто
        Столбцы таблицы определяются содержимым параметра 'parameters' из запроса. В частности эта таблица составлена для запроса с parameters = [ "цвет фона.TEXT", "сложность" ]. Примечание: набор параметров в запросе `query` не обязательно должен совпадать с `parameters`
        В названия параметров можно добавить суффиксы: 'TEXT', 'INT' или 'DATE'. В случае отстутствия суффикса поведение не отличается от поведения с 'TEXT'. Суффиксы описывают тип данных, который будет находится в соответствущем столбце:
          'TEXT' -- текст 'INT' -- числа 'DATE' -- дата

        В запрос query можно добавлять условие для поиска по идентификатору (uuid) либо коду (code) формы, например

         {
         "query": "where `цвет фона.TEXT` like 'бел%' and `сложность` like 'очень%' and uuid = 'идентификатор_формы'",
         "parameters":   [ "цвет фона.TEXT", "сложность" ],
         "startRecord":      0,
         "recordsCount":     50,
         "showDeleted":      "true",
         "searchInRegistry": "true"
         "registryRecordStatus" : ["STATE_SUCCESSFUL", "STATE_NOT_FINISHED", "NO_ROUTE", "STATE_UNSUCCESSFUL"]
         }
         {
         "query": "where `цвет фона.TEXT` like 'бел%' and `сложность` like 'очень%' and code = 'код_формы'",
         "parameters":   [ "цвет фона.TEXT", "сложность" ],
         "startRecord":      0,
         "recordsCount":     50,
         "showDeleted":      "true",
         "searchInRegistry": "true"
         "registryRecordStatus" : ["STATE_SUCCESSFUL", "STATE_NOT_FINISHED", "NO_ROUTE", "STATE_UNSUCCESSFUL"]
         }
         
        Запрос не должен ограничивать размер, т.е. не должно быть LIMIT clause, эта информация передается в параметрах startRecord и recordsCount. Примеры запросов:

        Выбрать все элементы с uuid1 или uuid2, у которых поле 'field1' равно 'value1' и поле 'field two' содержит 'value2':
        query : "where uuid = ('uuid1' or uuid = 'uuid2') and field1 = 'value1' and `field two` like '%value2%'
        params: ["field1", "field two"]

        Выбрать все элементы с полем `количество наград` > 10
        query: `количество наград.INT` > 10
        params: ["количество наград.INT"]
        В запросе надо добавить кавычки (backtick) вокруг названия "количество наград", потому что там есть пробел.

        Выбрать все элементы, у которых есть поле `количество наград` и отсортировать результаты по этому полю в порядке возрастания
        query: `количество наград.INT` is not null order by `количество наград.INT` asc
        params: ["количество наград.INT"]

        Выбрать все элементы, у которых есть поле `количество наград` и отсортировать результаты по этому полю в порядке убывания
        query: `количество наград.INT` is not null order by `количество наград.INT` desc
        params: ["количество наград.INT"]

        Выбрать все записи с датой, которая входит в последние 30 дней:
        query: WHERE TO_DAYS(NOW()) - TO_DAYS(`date_col.DATE`) <= 30
        params: ["date_col.DATE"]

        Выбрать все записи с датой, ранее 15 ноября 2015 года
        query: WHERE `date_col.DATE` < '2015-11-15 00:00:00'
        params: ["date_col.DATE"]

        Выбрать все записи с датой, позднее 15 ноября 2015 года
        query: WHERE date(`date_col.DATE`) > '2015-11-15'
        params: ["date_col.DATE"]

        Пример запроса с компонентами одной динамической таблицы:

                   {
                     "query": " where ( `user1.TEXT` = 'Иванов%' or `user1.TEXT` = 'Петров%' and ( `startdate1.DATE` > '2016-09-01 00:00:00' and `finishdate1.DATE` < '2016-10-01 00:00:00') ) ",
                     "parameters": [],
                     "dynParams" : [ [ "user1.TEXT", "startdate1.DATE", "finishdate1.DATE" ] ],
                     "startRecord":      0,
                     "recordsCount":     50,
                     "showDeleted":      "true",
                     "searchInRegistry": "true",
                     "registryRecordStatus": ["STATE_SUCCESSFUL"]
                   }
             

        Пример запроса с компонентами нескольких динамических таблиц

                 {
                     "query": " where (  ( `startdate1.DATE` > '2016-09-01 00:00:00' and `finishdate1.DATE` < '2016-10-01 00:00:00')  or (`startdate2.DATE` > '2016-09-01 00:00:00' and `finishdate2.DATE` < '2016-10-01 00:00:00') ) ",
                     "parameters": [],
                     "dynParams" : [ [ "startdate1.DATE", "finishdate1.DATE" ], [ "startdate2.DATE", "finishdate2.DATE" ] ],
                     "startRecord":      0,
                     "recordsCount":     50,
                     "showDeleted":      "true",
                     "searchInRegistry": "true",
                     "registryRecordStatus": ["STATE_SUCCESSFUL"]
                 }
             


        Прочие параметры:
        startRecord номер записи результатов, начиная с которого будут возвращены записи (отсчет с 0)
        recordsCount количество результатов, которые надо вернуть
        showDeleted необходимо ли в результатах возвращать удаленные записи (по-умолчанию true)
        searchInRegistry необходимо передать значение этого параметра false , если осуществляется по данным форм, не входящим в реестр
        dynParams массив, состоящий из массивов параметров, использующихся в строке query. Массив параметров - это массив компонентов одной динамической таблицы. То есть компоненты другой динамической таблицы должны быть записаны в отдельном массиве параметров.

        Компоненты динамической таблицы должны быть указаны в виде названия компонента без имени самой динамической таблицы. dynParams задействованы те же суффиксы, что и в параметре parameters. Они обозначают тип данных, который содержит компонент динамической таблицы: TEXT - текст INT - число DATE - дата При отсутствии суффикса по умолчанию используется суффикс TEXT. При указании параметра в массиве dynParams с одним из данных суффиксов поиск должен производиться по всему столбцу всех динамических таблиц, в которых находится указанный в запросе компонент


        registryRecordStatus передать несколько из параметров:
        STATE_UNSUCCESSFUL - не успешно завершенный,
        NO_ROUTE - не запущенный,
        STATE_NOT_FINISHED - незавершенный,
        STATE_SUCCESSFUL - успешно завершенный
        чтобы произвести поиск по записям реестра который имеют соответствующий статус

        Результат - массив из объектов. Каждый объект содержит поле "dataUUID". Если в параметрах указан поиск в реестре, то каждый объект также содержит поле "documentID", и "registryRecordStatus" - который отображает текущий статус записи реестра.
        Пример: [{"dataUUID": "uuid1", "documentID": "docID1", registryRecordStatus: STATE_UNSUCCESSFUL},
        {"dataUUID": "uuid2", "documentID": "docID2", registryRecordStatus: NO_ROUTE},
        {"dataUUID": "uuid3", "documentID": "docID3", registryRecordStatus: STATE_NOT_FINISHED}].
        {"dataUUID": "uuid3", "documentID": "docID3", registryRecordStatus: STATE_SUCCESSFUL}].

        Parameters:
        params - параметры поиска в JSON
        Returns:
        JSON с результатом выполнения
        See Also:
        RegistryRecordStatus
      • getPrintable

        public java.lang.String getPrintable(java.lang.String dataUUID,
                                    java.lang.String locale)
      • list

        public java.lang.String list(java.lang.String formUUID)
        Получение списка UUID данных по форме по UUID формы

        URL rest/api/asforms/data/list/{formUUID}
        Method GET

        Parameters:
        formUUID - UUID формы
        Returns:
        список идентификаторов данных по форме по указанному formUUID
      • save

        public Response save(java.lang.String formUUID,
                    java.lang.String formCode,
                    java.lang.String uuid,
                    java.lang.String parentID,
                    boolean isMobile,
                    java.lang.String data)

        Метод сохраняет данные по форме

        URL rest/api/asforms/data/save
        Method POST


        Поле data с данными должно иметь формат:
        "data": [{"id":"field1_id", "value": "field1_value", "type":"widgetType1"}, ..., {{"id":"fieldN_id", "value": "fieldN_value", "type":"widgetType1"}}]
        Отдельные поля кроме id и value могут так же иметь параметр label
        Поля обязательно должны содержать тип компонента формы. Типы компонентов содержаться можно посмотреть по ссылке http://goo.gl/arlFtB


        Пример использования можно посмотреть в классе kz.arta.synergy.rest.api.sample.registry.CreateAndFillDocExample
        Parameters:
        formUUID - UUID формы (параметр запроса). В случае если идентификатор формы не указан он будет получен по идентификатору данных. Отсутствие идентификатор формы приводит к повышенной нагрузки при сохранении данных по форме.
        formCode - код формы
        uuid - UUID данных по форме (параметр запроса)
        isMobile - true - работаем с формой которая имеет мобильное представление
        parentID - идентификатор папки в хранилище, в которой должен быть создан файл по форме (обязателен, если не передан uuid)
        data - усеченный json с данными по форме (параметр формы). Смотри пример данных
        Returns:
        В случае успешного выполнения возвращает json с полями:
        errorCode - код результата выполнения (0)
        uuid - uuid данных по форме
        В случае не выполнения, возвращает json с полями:
        errorCode - код выполнения (число, отличное от 0)
        errorMessage - сообщение об ошибке
      • getDefaultDocumentContent

        public byte[] getDefaultDocumentContent(java.lang.String formID)
                                         throws java.lang.Exception
        Получение старой формы для dt-int ДУБЛИРОВАННЫЙ КОД - из-за авторизации ИЗ
        Throws:
        java.lang.Exception
        See Also:
        kz.arta.synergy.ejb.forms.rest.ASFService#getDefaultDocumentContent(java.lang.String)
      • printWithTemplate

        public byte[] printWithTemplate(java.lang.String dataUUID,
                               java.lang.String format,
                               java.lang.String locale)
                                 throws java.lang.Exception
        Печать формы на основе ее представления ДУБЛИРОВАННЫЙ КОД - из-за авторизации ИЗ
        Parameters:
        dataUUID - - идентификатор данных по форме
        format - - формат получаемого файла
        Returns:
        - итоговый файл
        Throws:
        java.lang.Exception
        See Also:
        kz.arta.synergy.ejb.forms.rest.ASFService#printWithTemplate(String, String, String)
      • printWithMixin

        public Response printWithMixin(PrintTemplateJson request)
                                throws java.lang.Exception

        Печать данных формы на основе ее представления

        URL rest/api/asforms/data/print
        Method POST

        Входные параметры:

        • dataUUID (обяз.) - идентификатор данных по форме
        • format (обяз.) - формат печатного представления (PDF/ODT/DOCX/DOC)
        • mixin (не обяз.) - массив данных компонентов форм, которые необходимо заменить (при отсутствии параметра метод вернет стандартное печатное представление)
        • locale (не обяз.) - код локали

        Метод возвращает файл с заполненным печатным представлением в указанном формате.

        Пример запроса

                    {
                        "dataUUID" : "957d39a0-e3b0-11e6-9f62-525400d0e1cb",
                        "format" : "PDF"
                    }
                
        Throws:
        java.lang.Exception
      • getRegistryAndDocumentIds

        public Response getRegistryAndDocumentIds(java.util.List<java.lang.String> dataUUIDs)
                                           throws java.io.IOException

        Получение идентификаторов документов по идентификаторам данных.

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

        Тип:GET

        URL:rest/api/asforms/data/document

        Parameters:
        dataUUIDs - идентификатор данных по форме (обяз.), может быть передано несколько значений Пример: dataUUID=uuid1&dataUUID=uuid2
        Returns:
        JSON результата

        В случае успешного выполнения, метод возвращает json-строку в виде объектов с ключами по dataUUID:

        • documentID - идентификатор документа, которому принадлежит dataUUID
        • registryID - идентификатор реестра, которому принадлежит документ documentID

        Пример:

        
         {
         "7ce1feff-a3f0-4f4e-8bf6-59e37caf553f": {
         "documentID": "0f3a99ac-a712-40ea-98fe-3642af96b860"
         "registryID": "3a170735-4fa3-4e2b-87ae-f346ace3487f"
         },
         "7b953be8-bddb-4ce4-bbfd-ae9548f69c7f": {
         "documentID": "212af63f-597b-41a8-bbaf-6987d84651ac",
         "registryID": "3a170735-4fa3-4e2b-87ae-f346ace3487f"
         }
         }
         
        Throws:
        java.io.IOException
      • loadCollatedDate

        public java.lang.String loadCollatedDate(java.lang.String regID,
                                        java.lang.String collationGroup,
                                        java.lang.String dataUUID,
                                        int version)

        Получение данных используемых при сопоставлении

        Тип:GET

        URL:rest/api/asforms/form/collatedData

        Parameters:
        regID - - UUID документа, из которого будут браться данные (обяз.)
        dataUUID - - UUID данных, в которые будет происходить сопоставление (обяз.)
        collationGroup - - UUID, по которому будет происходить сопоставление (обяз.)
        version - -версия данных по форме (обяз.)

        Правила передачи запроса:

        rest/api/asforms/form/collatedData/regID/dataUUID/collationGroup/?version=0

        Пример: rest/api/asforms/form/collatedData/7fb464cc-f303-4f40-880f-37d3b5879581/f40b665c-f1f4-40b3-bdc5-291911def539/ff94d282-5da1-42fe-95f3-a3db09597ee1/?version=0

        Returns:
        JSON результата

        В случае успешного выполнения метод возвращает массив объектов JSON, состоящий из следующих полей:/p>

        • collatedFormID - UUID сопоставленной формы
        • name - название карточки
        • uuid - UUID сопоставления
        • collationGroup - UUID группы сопоставлений
        • fields - список сопоставленных полей
          • inField - поле-приемник формы
          • outField - поле-исходник формы
          • label - наименование;
          • uuid - UUID сопоставления
          • collationType - способ сопоставления, один из следующих вариантов: EQUAL, PREFIX, POSTFIX, HTD

        В случае же неуспешного выполнения (например, не переданы либо переданы некорректные входные идентификаторы) метод возвращает `null`.

        Пример:

        
         [
            {
               "collatedFormID":"9b077c41-4efa-48ce-8ce9-af2fe6145e96",
               "name":"PROCESS",
               "uuid":"dfb986ca-6dd2-415f-9304-bfab19d6d4af",
               "collationGroup":"ff94d282-5da1-42fe-95f3-a3db09597ee1",
               "fields":  [
                  {
                     "inField": "date1",
                     "outField": "date2",
                     "label": "Дата",
                     "uuid": "dfb986ca-6dd2-415f-9304-bfab19d6d4af",
                     "collationType": "EQUAL"
                  },
                  {
                     "inField": "text1",
                     "outField": "text2",
                     "label": "Текст",
                     "uuid": "dfb986ca-6dd2-415f-9304-bfab19d6d4af",
                     "collationType": "EQUAL"
                  }
               ]
            }
         ]
         
      • asErrorToJson

        public java.lang.String asErrorToJson(ServerResult result,
                                     ObjectMapper mapper)
                                       throws java.io.IOException
        Возвращает результат в json, включая поля кода ошибки и сообщения
        Parameters:
        mapper - маппер для json
        Throws:
        java.io.IOException
      • getDefaultDataContent

        public Response getDefaultDataContent(java.lang.String formID,
                                     java.lang.String formCode)

        получение данных файла по форме по умолчанию (заполняются преднастроенные значения)

        Тип:GET

        URL:rest/api/asforms/getDefaultContent

        Parameters:
        formID - идентификатор формы
        formCode - код формы
        Returns:
        данные по форме по умолчанию {"data" : [ {}, {}, {} ]}
kz.arta.synergy.api.rest.filecabinet

Class UsersService

  • java.lang.Object
    • kz.arta.synergy.api.rest.filecabinet.UsersService


  • public class UsersService
    extends java.lang.Object
     User: topa
     Date: 03.05.13
     Time: 17:52
     
    Since:
    2.31
    • Constructor Summary

      Constructors 
      Constructor and Description
      UsersService() 
    • Method Summary

      Methods 
      Modifier and Type Method and Description
      java.lang.String createUser(java.lang.String lastname, java.lang.String firstname, java.lang.String patronymic, java.lang.String pointersCode, boolean isChancellery, boolean isConfigurator, boolean isAdmin, java.lang.String email, java.lang.String jid, java.lang.String privateFolder, boolean hasAccess, boolean hasPrivateFolder, boolean hasPointersBookAccess, boolean hasStrategyAccess, java.util.List<java.lang.String> hrDepartmentID, java.lang.String userID, java.lang.String locale)
      Метод создает/изменяет пользователя
      java.lang.String deleteUser(java.lang.String userID, java.lang.String locale)
      Метод удаляет пользователя из системы
      java.lang.String getUser(java.lang.String userID, java.lang.String locale, boolean getGroups)
      Load and return basic iformation on user as json object

      URL rest/api/filecabinet/user/{userID}
      Method GET

      java.lang.String getUserContacts(java.lang.String userID, java.lang.String locale)
      Load and return user contacts as list of json objects
      java.lang.String getUsersByFieldValue(java.lang.String formUUID, java.lang.String formCode, java.lang.String fieldName, java.lang.String value, java.lang.String locale)
      ВНИМАНИЕ! Логика данного метода реализована некорректно, поэтому не рекомендуем его использовать.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • UsersService

        public UsersService()
    • Method Detail

      • getUser

        public java.lang.String getUser(java.lang.String userID,
                               java.lang.String locale,
                               boolean getGroups)
        Load and return basic iformation on user as json object

        URL rest/api/filecabinet/user/{userID}
        Method GET

        Parameters:
        userID - user's UUID, path param
        locale - actor's locale, query param
        Returns:
        info on person as json object
        See Also:
        PersonWrapper#getJsonObject(arta.synergy.web.common.client.data.filecabinet.Person)
      • getUserContacts

        public java.lang.String getUserContacts(java.lang.String userID,
                                       java.lang.String locale)
        Load and return user contacts as list of json objects
        Parameters:
        userID -
        locale -
        Returns:
      • createUser

        public java.lang.String createUser(java.lang.String lastname,
                                  java.lang.String firstname,
                                  java.lang.String patronymic,
                                  java.lang.String pointersCode,
                                  boolean isChancellery,
                                  boolean isConfigurator,
                                  boolean isAdmin,
                                  java.lang.String email,
                                  java.lang.String jid,
                                  java.lang.String privateFolder,
                                  boolean hasAccess,
                                  boolean hasPrivateFolder,
                                  boolean hasPointersBookAccess,
                                  boolean hasStrategyAccess,
                                  java.util.List<java.lang.String> hrDepartmentID,
                                  java.lang.String userID,
                                  java.lang.String locale)

        Метод создает/изменяет пользователя

        URL rest/api/filecabinet/user/save
        Method POST

        Parameters:
        lastname - фамилия, FormParam
        firstname - имя, FormParam
        patronymic - отчество, FormParam
        pointersCode - код показателя, FormParam
        isChancellery - является ли сотрудником канцелярии, FormParam
        isConfigurator - является ли методологом, FormParam
        isAdmin - является ли администратором системы, FormParam
        email - почтовый адрес для уведомлений, FormParam
        jid - адрес jabber аккаунта, FormParam
        privateFolder - личная папка, FormParam
        hasAccess - имеет ли доступ в систему, FormParam
        hasPointersBookAccess - имеет ли доступ к справочнику показателей, FormParam
        hasStrategyAccess - имеет ли доступ к стратегии, FormParam
        hrDepartmentID - UUID подразделений, в которых является сотрудником ОКК, FormParam
        userID - идентификатор пользователя. Необходимо передавать если должно выполниться изменение существующего пользователя
        hasPrivateFolder - создавать ли личную папку пользователя. Имеет смысл только при создании пользователя
        locale - локаль пользователя, QueryParam
        Returns:
        json объект с полями - errorCode - код выполнения операции (0 успешно, иначе - ошибка), errorMessage - сообщение об ошибке. В случае успешного выполнения так же возвращается userID идентификатор созданного/измененного пользователя
      • deleteUser

        public java.lang.String deleteUser(java.lang.String userID,
                                  java.lang.String locale)

        Метод удаляет пользователя из системы

        URL rest/api/filecabinet/user/delete
        Method GET

        Parameters:
        userID - UUID пользователя, которого надо удалить (QueryParam)
        locale - локаль пользователя, выполняющего действие (QueryParam)
        Returns:
        json объект с полями - errorCode - код выполнения операции (0 успешно, иначе - ошибка), errorMessage - сообщение об ошибке.
      • getUsersByFieldValue

        public java.lang.String getUsersByFieldValue(java.lang.String formUUID,
                                            java.lang.String formCode,
                                            java.lang.String fieldName,
                                            java.lang.String value,
                                            java.lang.String locale)

        ВНИМАНИЕ! Логика данного метода реализована некорректно, поэтому не рекомендуем его использовать. В скором времени метод будет заменен на правильный

        Находит пользователей по значению поля дополнительной карточки и возвращает список их идентификаторов

        URL rest/api/filecabinet/get_by_field_value
        Method GET


        Предполагается, что данный метод будет использоваться для реализации интеграционных решений (синхронизации пользователей ARTA Synergy с пользователями сторонней системы). В дополнительной карточке пользователя может храниться идентификатор соответствующего пользователя в сторонней системе (или иное поле, присутствующее в обоих системах и позволяющее установить соответствие между пользователями, например, ИИН) этот метод позволит найти идентификатор пользователя в нашей системе по его идентификатору из сторонней системы

        Поиск производится по сначала по ключу, а в случае отсутствия ключа - по значению (key и value из данных компонента, /api/asforms/data/{dataUUID}).

        Для компонента "Переключатель вариантов" это порядок обратный, сначала по value, затем - по key. Надо учитывать, что в этом компоненте из-за особенностей реализации в key хранится название вариантов, а в value - значение.

        Parameters:
        formUUID - uuid формы, по полю которой необходимо произвести поиск
        formCode - uuid формы, по полю которой необходимо произвести поиск
        fieldName - название поля, по которому необходимо произвести поиск
        value - значение поля
        locale - локаль пользователя
        Returns:
        список, состоящий из идентификаторов пользователей
kz.arta.synergy.api.rest.filecabinet

Class DepartmetnsService

  • java.lang.Object
    • kz.arta.synergy.api.rest.filecabinet.DepartmetnsService


  • public class DepartmetnsService
    extends java.lang.Object

    Created by IntelliJ IDEA.
    User: topa
    Date: 23.08.13
    Time: 18:30
    Содержит методы для управления департаментами - создание/изменение, удаление, получение информации о департаменте
    Корневым подразделением орг структуры является депертамент, создаваемый по умолчанию, он имеет идентификатор "1".
    • Method Summary

      Methods 
      Modifier and Type Method and Description
      java.lang.String deleteDepartment(java.lang.String departmentID, java.lang.String locale)
      Метод удаляет подразделение
      java.lang.String getDepartment(java.lang.String departmentID, java.lang.String locale)
      Метод возвращает информацию о подразделении подразделение
      java.lang.String getDepartmentCards(java.lang.String departmentID, java.lang.String locale)
      Возвращает список дополнительных карточек для данного подразделения
      java.lang.String getDepartmentsAsList(java.lang.String locale, java.lang.Integer partNumber, java.lang.Integer countInPart)
      Метод возвращает список подразделений (без учета структуры)
      java.lang.String getDepartmentsByFieldValue(java.lang.String formUUID, java.lang.String formCode, java.lang.String fieldName, java.lang.String value, java.lang.String locale)
      ВНИМАНИЕ! Логика данного метода реализована некорректно, поэтому не рекомендуем его использовать.
      java.lang.String getDepartmentsContent(java.lang.String departmentID, boolean onlyPosition, boolean onlyDepartments, java.lang.String locale)
      Метод используется для получения информации о департаменте (подразделения и должности)
      Тип: GET
      URL: rest/api/departments/content
      java.lang.String saveDepartment(java.lang.String nameRu, java.lang.String nameKz, java.lang.String nameEn, java.lang.String positionNameRu, java.lang.String positionNameKz, java.lang.String positionNameEn, java.lang.String pointersCode, java.lang.String departmentID, java.lang.String parentDepartmentID, int number, java.lang.String locale)
      Метод создает/изменяет подразделение орг структуры
      Response searchDepartments(java.util.List<java.lang.String> codes, java.util.List<java.lang.String> names, int recordsCount, int startRecord, java.lang.String codeSearchTypeP, java.lang.String nameSearchTypeP, java.lang.String deleted, java.lang.String locale)
      Метод поиска подразделений
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • DepartmetnsService

        public DepartmetnsService()
    • Method Detail

      • saveDepartment

        public java.lang.String saveDepartment(java.lang.String nameRu,
                                      java.lang.String nameKz,
                                      java.lang.String nameEn,
                                      java.lang.String positionNameRu,
                                      java.lang.String positionNameKz,
                                      java.lang.String positionNameEn,
                                      java.lang.String pointersCode,
                                      java.lang.String departmentID,
                                      java.lang.String parentDepartmentID,
                                      int number,
                                      java.lang.String locale)

        Метод создает/изменяет подразделение орг структуры

        URL rest/api/departments/save
        Method POST

        Parameters:
        nameRu - Название подразделения на русском языке, FormParam
        nameKz - Название подразделения на казахском языке, FormParam
        nameEn - Название подразделения на английском языке, FormParam
        positionNameRu - Название должности руководителя на русском языке, FormParam
        positionNameKz - Название должности руководителя на казахском языке, FormParam
        positionNameEn - Название должности руководителя на английском языке, FormParam
        pointersCode - код показателя, FormParam
        number - порядковый номер подразделения
        departmentID - UUID подразделения (для создания нового подразделения необходимо передать null), FormParam
        parentDepartmentID - UUID родительского подразделения, FormParam
        locale - локаль, QueryParam
        Returns:
        json объект с полями - errorCode - код выполнения операции (0 успешно, иначе - ошибка), errorMessage - сообщение об ошибке. В случае успешного выполнения так же возвращается departmentID созданного/измененного подразделения.
      • deleteDepartment

        public java.lang.String deleteDepartment(java.lang.String departmentID,
                                        java.lang.String locale)

        Метод удаляет подразделение

        URL rest/api/departments/delete
        Method GET

        Parameters:
        departmentID - UUID подразделения, которое надо удалить (QueryParam)
        locale - локаль (QueryParam)
        Returns:
        json объект с полями - errorCode - код выполнения операции (0 успешно, иначе - ошибка), errorMessage - сообщение об ошибке/успешном выполнении
      • getDepartment

        public java.lang.String getDepartment(java.lang.String departmentID,
                                     java.lang.String locale)

        Метод возвращает информацию о подразделении подразделение

        URL rest/api/departments/get
        Method GET

        Parameters:
        departmentID - UUID подразделения, QueryParam
        locale - локаль, QueryParam
        Returns:
        json, описание полей см в FileCabinetWrapper#getDepartmentasJson
        See Also:
        FileCabinetWrapper#getDepartmentasJson(arta.synergy.web.common.client.data.filecabinet.Department, String)
      • getDepartmentsAsList

        public java.lang.String getDepartmentsAsList(java.lang.String locale,
                                            java.lang.Integer partNumber,
                                            java.lang.Integer countInPart)

        Метод возвращает список подразделений (без учета структуры)

        URL rest/api/departments/list
        Method GET
        * @return Список департаментов, описание полей департамента смотрите в методе FileCabinetWrapper#getDepartmentasJson

        See Also:
        FileCabinetWrapper#getDepartmentasJson(arta.synergy.web.common.client.data.filecabinet.Department, String)
      • getDepartmentsContent

        public java.lang.String getDepartmentsContent(java.lang.String departmentID,
                                             boolean onlyPosition,
                                             boolean onlyDepartments,
                                             java.lang.String locale)
        Метод используется для получения информации о департаменте (подразделения и должности)
        Тип: GET
        URL: rest/api/departments/content
        Parameters:
        departmentID - идентификатор департамента
        onlyPosition - true - отображение должностей только одного департамента (по умолчанию false)
        onlyDepartments - true - отображение подотделов только одного департамента (по умолчанию false)
        locale - локаль
        Returns:
        Пример возвращаемого массива:
                [
                  {
                    "departments":
                    [
                      {
                        "departmentID": "7b097e72-e303-487f-83a1-cb76397abd57",
                        "departmentName": "Департамент технологий",
                        "hasChildDepartments" : false,
                        "departmentHead":
                        {
                          "headID": "f9b0b304-c856-4bcf-8615-e13cded16a14",
                          "headName": "Иванов И.И."
                        }
                      },
                      {
                        "departmentID": "8ii056e72-e563-667f-14j7-cb31867qwe66",
                        "departmentName": "Департамент развития",
                        "hasChildDepartments" : true,
                        "departmentHead":
                        {
                          "headID": "179bda2e-6d55-4ed5-b1be-890ffad280ba",
                          "headName": "Петров П.П."
                        }
                      }
                    ],
                    "positions":
                    [
                      {
                        "positionID": "dc890ecf-e340-4ada-b7e6-d6541486a599",
                        "positionName": "Маркетолог",
                        "employees":
                        [
                          {
                            "employeeID": "f40b665c-f1f4-40b3-bdc5-291911def539",
                            "employeeName": "Попов П.В."
                          },
                          {
                            "employeeID": "22cc3118-3bcd-4543-98b4-a30982ba5c2a",
                            "employeeName": "Сидоров С.В."
                          },
                          {
                            "employeeID": "414acd59-aaf8-4202-8c00-b39e1fe73bbc",
                            "employeeName": "Орлов О.О."
                          }
                        ]
                      },
                      {
                        "positionID": "2d9a641d-178c-4b05-b2f4-a231958718fd",
                        "positionName": "Финансовый аналитик",
                        "employees":
                        [
                          {
                            "employeeID": "c4ddd6b1-ade2-4ee2-ace5-aaec6a81d02a",
                            "employeeName": "Мартынов М.М."
                          },
                          {
                            "employeeID": "ee71a4c6-888a-4f04-86de-44ab394f5749",
                            "employeeName": "Быков Г.Г."
                          }
                        ]
                      },
                      {
                        "positionID": "22a48f88-199a-4398-8eb6-15ba8ef35deb",
                        "positionName": "Юрист",
                        "employees":
                        [
                          {
                            "employeeID": "a2ba229b-366f-4d9c-b8bd-31742a7a519a",
                            "employeeName": "Мусина А.М."
                          },
                          {
                            "employeeID": "a5b67a57-bcba-4513-bc2d-089400457a53",
                            "employeeName": "Дарбаева Г.Г."
                          },
                          {
                            "employeeID": "ca936f83-3d4e-4c09-b393-9e548d18bc04",
                            "employeeName": "Жакин Н.Б."
                          },
                          {
                            "employeeID": "ff666f77-7ii8-5b09-o565-2f555v33qq11",
                            "employeeName": "Васильев Г.В."
                          }
                        ]
                      }
                    ]
                  }
                ]
             
        departments - массив подотделов данного департамента:
        departmentID - UUID подразделения
        departmentName - название подотдела на языке локали, переданной в параметре locale
        hasChildDepartments - есть ли дочерние департаменты
        departmentHead - руководитель подотдела:
        headID - UUID руководителя
        headName - Ф.И.О. руководителя в формате "Фамилия И.О."
        positions - массив должностей данного департамента:
        positionID - UUID должности
        positionName - название должности на языке локали, переданной в параметре locale
        employees - массив сотрудников на данной должности:
        employeeID - UUID сотрудника
        employeeName - Ф.И.О. сотрудника в формате "Фамилия И.О."
      • getDepartmentCards

        public java.lang.String getDepartmentCards(java.lang.String departmentID,
                                          java.lang.String locale)

        Возвращает список дополнительных карточек для данного подразделения

        URL rest/api/departments/get_cards
        Method GET
        Для заполнения полей карточки надо использовать метод APIFormsService#save

        Parameters:
        departmentID - UUID подразделения
        locale - локаль пользователя
        Returns:
        список json объектов с информацией о карточке подразделения, для каждой карточки присутствуют поля:
        form-uuid uuid формы
        formCode - код формы
        name название карточки
        editable true - есть право наредактирование, иначе - false
        data-uuid uuid данных по данной карточке
        mandatory true - карточкая обязательна для заполнения, иначе - false
        See Also:
        APIFormsService#save(String, String, String, boolean, String)
      • getDepartmentsByFieldValue

        public java.lang.String getDepartmentsByFieldValue(java.lang.String formUUID,
                                                  java.lang.String formCode,
                                                  java.lang.String fieldName,
                                                  java.lang.String value,
                                                  java.lang.String locale)

        ВНИМАНИЕ! Логика данного метода реализована некорректно, поэтому не рекомендуем его использовать. В скором времени метод будет заменен на правильный

        Находит подразделения по значению поля дополнительной карточки и возвращает список их идентификаторов

        URL rest/api/departments/get_by_field_value
        Method GET


        Предполагается, что данный метод будет использоваться для реализации интеграционных решений (синхронизации орг структуры ARTA Synergy с орг структурой сторонней системы). В дополнительной карточке подразделения может храниться идентификатор соответствующего подразделения в сторонней системе, этот метод позволит найти идентификатор подразделения в нашей системе по его идентификатору из сторонней системы

        Поиск производится по сначала по ключу, а в случае отсутствия ключа - по значению (key и value из данных компонента, /api/asforms/data/{dataUUID}).

        Для компонента "Переключатель вариантов" это порядок обратный, сначала по value, затем - по key. Надо учитывать, что в этом компоненте из-за особенностей реализации в key хранится название вариантов, а в value - значение.

        Parameters:
        formUUID - uuid формы, по полю которой необходимо произвести поиск
        formCode - code формы, по полю которой необходимо произвести поиск
        fieldName - название поля, по которому необходимо произвести поиск
        value - значение поля
        locale - локаль пользователя
        Returns:
        список, состоящий из идентификаторов подразделений
      • searchDepartments

        public Response searchDepartments(java.util.List<java.lang.String> codes,
                                 java.util.List<java.lang.String> names,
                                 int recordsCount,
                                 int startRecord,
                                 java.lang.String codeSearchTypeP,
                                 java.lang.String nameSearchTypeP,
                                 java.lang.String deleted,
                                 java.lang.String locale)

        Метод поиска подразделений

        URL: /rest/api/departments/search

        Тип: GET

        Parameters:

        Метод - принимает следующие параметры:

        • name - название подразделения (необяз.), может быть передано несколько значений
        • pointer_code - код показателя (необяз.), может быть передано несколько значений
        • recordsCount - количество результатов, которые необходимо вернуть (по умолчанию 30). Максимальное значение параметра 100
        • startRecord - номер записи результатов, начиная с которой будут возвращены записи (по умолчанию 0)
        • searchTypeN - тип сравнения для параметра name (по умолчанию partial). Может принимать следующие значения:
          • exact - точное совпадение поискового запроса и значения поля
          • partial - вхождение поискового запроса в значение поля
        • searchTypePC - тип сравнения для параметра pointer_code (по умолчанию exact). Может принимать следующие значения:
          • exact - точное совпадение поискового запроса и значения поля
          • partial - вхождение поискового запроса в значение поля
        • deleted - включать ли в результат поиска удаленные департаменты. Допустимые значения: true или false
        • locale - локаль пользователя. Данный параметр учитывается при поиске по названию должности
        Returns:

        В случае успешного выполнения метод возвращает массив строк, являющихся идентификаторами подразделений.

        Пример запроса:

        /rest/api/departments/search?pointer_code=dep1&pointer_code=dep3

        Пример возвращаемого ответа:

        [ "rgg66d1-ad54-5462-aef5-aggrr55fd02a", "vgikwj4c6-88gh-ef44-3ffe-oepjfee5d6" ]

        При указании одновременно разных параметров результат запроса будет связан логическим И.

        Пример запроса: /rest/api/departments/search?pointer_code=dep5&name=Департамент5

        А при указании одновременно одинаковых параметров, результат будет производится по логическому ИЛИ.

        Пример запроса: /rest/api/departments/search?pointer_code=code1&pointer_code=code2

        В случае если по переданным входным параметрам ничего не найдено, сервер возвращает пустой массив.

kz.arta.synergy.api.rest.filecabinet

Class PositionsService

  • java.lang.Object
    • kz.arta.synergy.api.rest.filecabinet.PositionsService


  • public class PositionsService
    extends java.lang.Object
    Created by IntelliJ IDEA. User: topa Date: 23.08.13 Time: 18:08

    Содержит методы для управления должностями, назначением на должности

    • Constructor Summary

      Constructors 
      Constructor and Description
      PositionsService() 
    • Method Summary

      Methods 
      Modifier and Type Method and Description
      java.lang.String appointAssistant(java.lang.String nameRu, java.lang.String nameKz, java.lang.String nameEn, int number, java.lang.String departmentID, java.util.List<java.lang.String> childDepartmentID, java.lang.String userID, java.lang.String locale)
      Метод создает должность заместителя подразделения и назначает на него пользователя
      java.lang.String appointToPosition(java.lang.String positionID, java.lang.String userID, java.lang.String locale)
      Метод назначает на должность специалиста/руководителя подразделения
      java.lang.String deleteAssistant(java.lang.String assistantID, java.lang.String locale)
      Метод удаляет должность заместителя и увольняет с нее назначенного пользователя
      java.lang.String deletePosition(java.lang.String positionID, java.lang.String locale)
      Метод удаляет должность специалиста
      java.lang.String dischargeFromPosition(java.lang.String positionID, java.lang.String userID, java.lang.String locale)
      Метод снимает с должности специалиста/руководителя подразделения
      java.lang.String getAssistants(java.lang.String departmentID, java.lang.String locale)
      Возвращает информацию о заместителях руководителя подразделения
      java.lang.String getPosition(java.lang.String positionID, java.lang.String locale)
      Метод возвращает информацию о должности
      java.lang.String getPositionCards(java.lang.String positionID, java.lang.String locale)
      Возвращает список дополнительных карточек для данной должности
      java.lang.String getPositionsByFieldValue(java.lang.String formUUID, java.lang.String formCode, java.lang.String fieldName, java.lang.String value, java.lang.String locale)
      ВНИМАНИЕ! Логика данного метода реализована некорректно, поэтому не рекомендуем его использовать.
      Response getPositionsWithCards(java.lang.String departmentID, int startRecord, int recordsCount, java.lang.String locale)
      Метод для получения информации о должностях департамента с карточками
      java.lang.String saveAssistant(java.lang.String nameRu, java.lang.String nameKz, java.lang.String nameEn, int number, java.lang.String departmentID, java.util.List<java.lang.String> childDepartmentID, java.lang.String userID, java.lang.String assistantID, java.lang.String locale)
      Метод изменяет данные заместителя руководителя
      java.lang.String savePosition(java.lang.String nameRu, java.lang.String nameKz, java.lang.String nameEn, java.lang.String pointersCode, java.lang.String departmentID, java.lang.String positionID, int positionType, int number, java.lang.String locale)
      Метод создает/изменяет должность (специалиста/руководителя) орг структуры
      Response searchPositions(java.util.List<java.lang.String> pointerCodes, java.lang.String pointerCodeSearchTypeP, java.util.List<java.lang.String> names, java.lang.String nameSearchTypeP, java.util.List<java.lang.String> codes, java.lang.String codeSearchTypeP, java.lang.String deleted, int recordsCount, int startRecord, java.lang.String locale)
      Метод поиска должностей
      Response searchPositionWithCardFields(int startRecord, int recordsCount, boolean showAll, boolean showOnlyVacant, java.lang.String locale, java.lang.String userID, java.lang.String search, java.lang.String departmentID, java.lang.String filterDepartmentID, java.lang.String filterUserID, java.lang.String formID, java.util.List<java.lang.String> cmpIds)
      получение списка должностей с полями карточек
      url: /rest/api/userchooser/searchPositionWithCardFields
      method : GET
      startRecord - по умолчанию 0
      recordsCount - по умолчанию 30
      locale - локаль
      departmentID идентификатора департамент чьи дочерние должности (всю иерархию) нужно вернуть
      search параметр текстового поиска
      showAll - false по умолчанию; отображать все должности (false - отображать подчиненные должности)
      showOnlyVacant - false по умолчанию, отображать только вакантные должности (по ним определяется максимальный уровень иерархии верх который нужно отображать и подчиненные должности)
      userID пользователь от имени которого выполнять поиск
      filterDepartmentID идентификатор непосредственного родительского подразделения
      filterUserID идентификатор пользователя чьи должности необходимо показать
      formID идентификатор формы поля карточки которой нужно поднять
      cmpId идентификаторы полей (можно передавать несколько cmpId=id1&cmpId=id2&cmpId=id3 и так далее)
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • PositionsService

        public PositionsService()
    • Method Detail

      • savePosition

        public java.lang.String savePosition(java.lang.String nameRu,
                                    java.lang.String nameKz,
                                    java.lang.String nameEn,
                                    java.lang.String pointersCode,
                                    java.lang.String departmentID,
                                    java.lang.String positionID,
                                    int positionType,
                                    int number,
                                    java.lang.String locale)

        Метод создает/изменяет должность (специалиста/руководителя) орг структуры

        URL rest/api/positions/save
        Method POST

        Parameters:
        nameRu - Название должности на русском языке, FormParam
        nameKz - Название должности на казахском языке, FormParam
        nameEn - Название должности на английском языке, FormParam
        pointersCode - код показателя, FormParam
        positionID - UUID должности, FormParam
        departmentID - UUID родительского подразделения, FormParam
        positionType - тип должности, FormParam
        number - порядковый номер дожности, может отсутствовать, FormParam
        locale - локаль, QueryParam
        Returns:
        json объект с полями - errorCode - код выполнения операции (0 успешно, иначе - ошибка), errorMessage - сообщение об ошибке. В случае успешного выполнения так же возвращается positionID идентификатор созданной/измененной должности
      • deletePosition

        public java.lang.String deletePosition(java.lang.String positionID,
                                      java.lang.String locale)

        Метод удаляет должность специалиста

        URL rest/api/positions/delete
        Method GET

        Parameters:
        positionID - UUID должности, которую необходимо удалить (QueryParam)
        locale - локаль (QueryParam)
        Returns:
        json объект с полями - errorCode - код выполнения операции (0 успешно, иначе - ошибка), errorMessage - сообщение об ошибке/успешном выполнении
      • getPosition

        public java.lang.String getPosition(java.lang.String positionID,
                                   java.lang.String locale)

        Метод возвращает информацию о должности

        URL rest/api/positions/get
        Method GET

        Parameters:
        positionID - UUID должности (QueryParam)
        locale - локаль (QueryParam)
        Returns:
      • getPositionsWithCards

        public Response getPositionsWithCards(java.lang.String departmentID,
                                     int startRecord,
                                     int recordsCount,
                                     java.lang.String locale)

        Метод для получения информации о должностях департамента с карточками

        URL /rest/api/positions/getPositionsWithCards
        Method GET

        Можно указать несколько компонентов для каждой карточки. При этом необходимо будет указать параметр positionFormID и один или несколько cmpID.
        При указании одновременно нескольких наборов параметров необходимо дополнительно передать параметры поиска, прибавив к названиям параметров
        порядковый номер набора параметров. Количество наборов параметров, которые можно добавить неограничено. Главное соблюдать правильную нумерацию
        названий параметров: 1, 2, 3 и т.д. Первый набор не имеет порядкового номера. Таким образом, метод получит дополнительный набор параметров
        positionFormID1, cmpID1, positionFormID2, cmpID2 и т.д.Соотношение positionFormIDx к cmpIDx - один ко многим.
        Пример запроса:
        /rest/api/positions/getPositionsWithCards?departmentID=4df92af0-da1d-11e5-9c63-1e88d1bc0767&positionFormID=373c3270-cf0b-11e5-a154-1e88d1bc0767&cmpID=category&cmpID=rang
        &positionFormID1=23727710-cf22-11e5-a154-1e88d1bc0767&cmpID1=group&positionFormID2=13727710-cf22-11e5-a154-1e88d1bc0767&cmpID2=text&cmpID2=date

        Parameters:
        departmentID - идентификатор подразделения, должности которого необходимо вернуть;
        recursive - флаг рекурсивности поиска должностей (по умолч. false, необязательный):
        • true - поиск производится по всему дереву подразделения;
        • false - поиск производится непосредственно в указанном подразделении;

        cmpIsNeeded - флаг необходимости возврата полей карточки (по умолч. true, не обязательный). Принимает значения:
        • true - возврат полей карточки требуется;
        • false - возврат полей карточки не требуется;

        positionFormID - идентификатор карточки должностей, данные которой необходимо вернуть,обязателен, если в запросе не указан параметр cmpIsNeeded=false;
        positionFormCode - код карточки должностей, данные которой необходимо вернуть,обязателен, если в запросе не указан параметр cmpIsNeeded=false;
        cmpID - идентификатор элемента формы, информацию из которого необходимо вернуть. Может быть передано несколько значений, обязателен, если в запросе не указан параметр cmpIsNeeded=false;
        startRecord - номер записи результатов, начиная с которой будут возвращены записи(по умолчанию 0, не обязательный);
        recordsCount - количество результатов, которые необходимо вернуть (по умолчанию 30, максимум 50, не обязательный);
        locale - локаль;
        Returns:
        В случае успешного выполнения метод возвращает JSON в виде объектов с ключами по positionFormID и cmpID:
        • positionID - идентификатор должности;
        • positionName - наименование должности;
        • positionType - тип должности, один из следующих вариантов:
          • 1 - Руководитель;
          • 2 - Специалист;
          • 32 - Исполняющий обязанности;
          • 256 - Заместитель;
        • formUUID - идентификатор формы карточки должности;
        • formCode - код формы карточек должностей;
        • cmpData - данные из поля в карточке должностей.

        Пример возвращаемого массива:

         [
         { "positionID": "81ac53f0-c351-11e5-ab17-1e88d1bc0767",
          "positionName": "Водитель",
          "positionType": "256",
          "forms":[
            {
               "formUUID":"373c3270-cf0b-11e5-a154-1e88d1bc0767",
               "formCode":"form_code",
               "asfDataUUID":"41fd8240-b822-11e5-8630-525400bb7fc6",
            "values":[
               { "category":"2" },
               { "rang":"5" } ]
         },
         {
           "formUUID":"23727710-cf22-11e5-a154-1e88d1bc0767",
           "formCode":"form_code",
          "asfDataUUID":"182eeca0-d98e-11e5-8c91-525400bb7fc6",
           "values":[
               { "group":"основная" } ]
         },
         {
           "formUUID":"13727710-cf22-11e5-a154-1e88d1bc0767",
           "formCode":"form_code",
           "asfDataUUID":"45dg8240-b822-11e5-8630-525400bb7fc6",
           "values":[
               { "text":"Добавить в штатное расписание" },
               { "date":"2016-05-02" } ]
         }
           ]
         },
         { "positionID": "693616c0-d49b-11e5-a5fb-1e88d1bc0767",
          "positionName": "Водитель",
          "positionType": "2",
          "forms":[
          {
            "formUUID":"373c3270-cf0b-11e5-a154-1e88d1bc0767",
            "formCode":"form_code",
            "asfDataUUID":"c952f930-cfd5-11e5-bae8-525400bb7fc6",
            "values":[
               { "category":"3" },
               { "rang":"7" } ]
         },
         {
           "formUUID":"23727710-cf22-11e5-a154-1e88d1bc0767",
           "formCode":"form_code",
           "asfDataUUID":"1d8b0c40-91dd-11e5-9fa7-525400bb7fc6",
           "values":[
               { "group":"вспомогательная" } ]
         },
         {
           "formUUID":"13727710-cf22-11e5-a154-1e88d1bc0767",
           "formCode":"form_code",
           "asfDataUUID":"26lg8240-25jz-11e5-8630-525400bb7fc6",
           "values":[
               { "text":"Есть в штатном расписании" },
               { "date":"2015-06-02" } ]
               }
         ]
         },
         { "positionID": "ccee5340-c991-11e5-afba-1e88d1bc0767",
          "positionName": "Водитель",
          "positionType": "2",
          "forms":[
         {
            "formUUID":"373c3270-cf0b-11e5-a154-1e88d1bc0767",
            "formCode":"form_code",
            "asfDataUUID":"822ac240-b428-11e5-8630-525400bb7fc6",
            "values":[
               { "category":"2" },
               { "rang":"6" } ]
         },
         {
           "formUUID":"23727710-cf22-11e5-a154-1e88d1bc0767",
           "formCode":"form_code",
           "asfDataUUID":"39877130-9f17-11e5-9ae6-525400bb7fc6",
           "values":[
               { "group":"обслуживающая" } ]
         },
         {
           "formUUID":"13727710-cf22-11e5-a154-1e88d1bc0767",
           "formCode":"form_code",
           "asfDataUUID":"d66dd140-b822-11e5-8630-525400bb7fc6",
           "values":[
               { "text":"Добавить в штатное расписание" },
               { "date":"2016-02-15" } ]
         }
           ]
         }
         ]
         

        В случае передачи неверных параметров или внутренней ошибки сервера будет возвращен массив следующего содержания (сообщение об ошибке будет менятся):

         {
         "errorCode": 13,
         "errorMessage": "Передан некорректный параметр departmentID"
         }
         
        Код ответа для внутренней ошибки - HTTP 500(INTERNAL_SERVER_ERROR), для неверных параметров - HTTP 400(BAD_REQUEST)
      • appointToPosition

        public java.lang.String appointToPosition(java.lang.String positionID,
                                         java.lang.String userID,
                                         java.lang.String locale)

        Метод назначает на должность специалиста/руководителя подразделения

        URL rest/api/positions/appoint
        Method GET

        Parameters:
        positionID - UUID должности на которую надо назначить специалиста (QueryParam)
        userID - UUID пользоватля, которого надо назначить на должность (QueryParam)
        locale - локаль пользователя, вызвавшего метод (QueryParam)
        Returns:
        json объект с полями - errorCode - код выполнения операции (0 успешно, иначе - ошибка), errorMessage - сообщение об ошибке/успешном выполнении
      • dischargeFromPosition

        public java.lang.String dischargeFromPosition(java.lang.String positionID,
                                             java.lang.String userID,
                                             java.lang.String locale)

        Метод снимает с должности специалиста/руководителя подразделения

        URL rest/api/positions/discharge
        Method GET

        Parameters:
        positionID - UUID должности (QueryParam)
        userID - UUID пользователя, которого надо снять с должности positionID (QueryParam)
        locale - локаль пользователя, вызвавшего метод (QueryParam)
        Returns:
        json объект с полями - errorCode - код выполнения операции (0 успешно, иначе - ошибка), errorMessage - сообщение об ошибке/успешном выполнении
      • appointAssistant

        public java.lang.String appointAssistant(java.lang.String nameRu,
                                        java.lang.String nameKz,
                                        java.lang.String nameEn,
                                        int number,
                                        java.lang.String departmentID,
                                        java.util.List<java.lang.String> childDepartmentID,
                                        java.lang.String userID,
                                        java.lang.String locale)

        Метод создает должность заместителя подразделения и назначает на него пользователя

        URL rest/api/positions/assistant/appoint
        Method POST

        Parameters:
        nameRu - название должности на русском языке (FormParam)
        nameKz - название должности на казахском языке (FormParam)
        nameEn - название должности на русском языке (FormParam)
        departmentID - UUID родительского департамента (FormParam)
        childDepartmentID - UUID-ы дочерних подразделений (FormParam)
        userID - UUID пользователя которого надо назначить на должность (FormParam)
        number - порядковый номер для сортировки (по умолчанию 0) (FormParam)
        locale - локаль пользователя, вызвавшего метод (QueryParam)
        Returns:
        json объект с полями - errorCode - код выполнения операции (0 успешно, иначе - ошибка), errorMessage - сообщение об ошибке. В случае успешного выполнения так же возвращается assistantID идентификатор созданной должности заместителя
      • saveAssistant

        public java.lang.String saveAssistant(java.lang.String nameRu,
                                     java.lang.String nameKz,
                                     java.lang.String nameEn,
                                     int number,
                                     java.lang.String departmentID,
                                     java.util.List<java.lang.String> childDepartmentID,
                                     java.lang.String userID,
                                     java.lang.String assistantID,
                                     java.lang.String locale)

        Метод изменяет данные заместителя руководителя

        URL rest/api/positions/assistant/save
        Method POST

        Parameters:
        nameRu - название должности на русском языке (FormParam)
        nameKz - название должности на казахском языке (FormParam)
        nameEn - название должности на русском языке (FormParam)
        departmentID - UUID родительского департамента (FormParam)
        childDepartmentID - UUID-ы дочерних подразделений (FormParam)
        userID - UUID пользователя которого надо назначить на должность (FormParam)
        number - порядковый номер для сортировки (по умолчанию 0) (FormParam)
        assistantID - идентификатор заместителя (FormParam)
        locale - локаль пользователя, вызвавшего метод (QueryParam)
        Returns:
        json объект с полями - errorCode - код выполнения операции (0 успешно, иначе - ошибка), errorMessage - сообщение об ошибке. В случае успешного выполнения так же возвращается assistantID идентификатор созданной должности заместителя
      • getAssistants

        public java.lang.String getAssistants(java.lang.String departmentID,
                                     java.lang.String locale)

        Возвращает информацию о заместителях руководителя подразделения

        URL rest/api/positions/assistant/get
        Method GET

        Parameters:
        departmentID - идентификатор подразделения, для которого необходимо получить заместителей
        locale - локаль пользователя
        Returns:
        список заместителей, см FileCabinetWrapper#getAssistantJson
        See Also:
        FileCabinetWrapper#getAssistantJson(arta.synergy.web.common.client.data.filecabinet.Assistant)
      • deleteAssistant

        public java.lang.String deleteAssistant(java.lang.String assistantID,
                                       java.lang.String locale)

        Метод удаляет должность заместителя и увольняет с нее назначенного пользователя

        URL rest/api/positions/assistant/delete
        Method GET

        Parameters:
        assistantID - UUID должности заместителя
        locale - локаль пользователя, вызвавшего метод
        Returns:
        json объект с полями - errorCode - код выполнения операции (0 успешно, иначе - ошибка), errorMessage - сообщение об ошибке
      • getPositionCards

        public java.lang.String getPositionCards(java.lang.String positionID,
                                        java.lang.String locale)

        Возвращает список дополнительных карточек для данной должности

        URL rest/api/positions/get_cards
        Method GET


        Для заполнения полей карточки надо использовать метод APIFormsService#save

        Parameters:
        positionID - uuid должности
        locale - локаль пользователя
        Returns:
        список json объектов с информацией о карточке должности, для каждой карточки присутствуют поля:
        form-uuid uuid формы
        formCode код формы
        name название карточки
        editable true - есть право наредактирование, иначе - false
        data-uuid uuid данных по данной карточке
        mandatory true - карточкая обязательна для заполнения, иначе - false
        See Also:
        APIFormsService#save(String, String, String, boolean, String)
      • getPositionsByFieldValue

        public java.lang.String getPositionsByFieldValue(java.lang.String formUUID,
                                                java.lang.String formCode,
                                                java.lang.String fieldName,
                                                java.lang.String value,
                                                java.lang.String locale)

        ВНИМАНИЕ! Логика данного метода реализована некорректно, поэтому не рекомендуем его использовать. В скором времени метод будет заменен на правильный

        Находит должности по значению поля дополнительной карточки и возвращает список их идентификаторов

        URL rest/api/positions/get_by_field_value
        Method GET


        Предполагается, что данный метод будет использоваться для реализации интеграционных решений (синхронизации орг структуры ARTA Synergy с орг структурой сторонней системы). В дополнительной карточке должности может храниться идентификатор соответствующей должности в сторонней системе, этот метод позволит найти идентификатор должности в нашей системе по ее идентификатору в сторонней системы

        Поиск производится по сначала по ключу, а в случае отсутствия ключа - по значению (key и value из данных компонента, /api/asforms/data/{dataUUID}).

        Для компонента "Переключатель вариантов" это порядок обратный, сначала по value, затем - по key. Надо учитывать, что в этом компоненте из-за особенностей реализации в key хранится название вариантов, а в value - значение.

        Parameters:
        formUUID - идентификатор формы
        formCode - код формы
        fieldName - название поля
        value - значение поля
        locale - локаль пользователя
        Returns:
        список идентификаторов должностей
      • searchPositions

        public Response searchPositions(java.util.List<java.lang.String> pointerCodes,
                               java.lang.String pointerCodeSearchTypeP,
                               java.util.List<java.lang.String> names,
                               java.lang.String nameSearchTypeP,
                               java.util.List<java.lang.String> codes,
                               java.lang.String codeSearchTypeP,
                               java.lang.String deleted,
                               int recordsCount,
                               int startRecord,
                               java.lang.String locale)

        Метод поиска должностей

        URL: /rest/api/positions/search

        Тип: GET

        Parameters:

        Метод - принимает следующие параметры:

        • name - название должности (необяз.), может быть передано несколько значений
        • code - шифр должности (необяз.), может быть передано несколько значений
        • pointer_code - код показателя (необяз.), может быть передано несколько значений
        • recordsCount - количество результатов, которые необходимо вернуть (по умолчанию 30). Максимальное значение параметра 100
        • startRecord - номер записи результатов, начиная с которой будут возвращены записи (по умолчанию 0)
        • searchTypeN - тип сравнения для параметра name (по умолчанию partial). Может принимать следующие значения:
          • exact - точное совпадение поискового запроса и значения поля
          • partial - вхождение поискового запроса в значение поля
        • searchTypeC - тип сравнения для параметра code (по умолчанию partial). Может принимать следующие значения:
          • exact - точное совпадение поискового запроса и значения поля
          • partial - вхождение поискового запроса в значение поля
        • searchTypePC - тип сравнения для параметра pointer_code (по умолчанию exact). Может принимать следующие значения:
          • exact - точное совпадение поискового запроса и значения поля
          • partial - вхождение поискового запроса в значение поля
        • deleted - включать ли в результат поиска удаленные должности. Допустимые значения: true или false
        • locale - локаль пользователя. Данный параметр учитывается при поиске по названию должности
        Returns:

        В случае успешного выполнения метод возвращает массив строк, являющихся идентификаторами должностей.

        Пример запроса:

        /rest/api/positions/search?name=Администратор&name=Менеджер

        Пример возвращаемого ответа:

        [ "rgg66d1-ad54-5462-aef5-aggrr55fd02a", "vgikwj4c6-88gh-ef44-3ffe-oepjfee5d6" ]

        При указании одновременно разных параметров результат запроса будет связан логическим И.

        Пример запроса: /rest/api/positions/search?pointer_code=dep5&code=TRJ163

        А при указании одновременно одинаковых параметров, результат будет производится по логическому ИЛИ.

        Пример запроса: /rest/api/positions/search?name=Админ&name=Ассистент

        В случае если по переданным входным параметрам ничего не найдено, сервер возвращает пустой массив.

      • searchPositionWithCardFields

        public Response searchPositionWithCardFields(int startRecord,
                                            int recordsCount,
                                            boolean showAll,
                                            boolean showOnlyVacant,
                                            java.lang.String locale,
                                            java.lang.String userID,
                                            java.lang.String search,
                                            java.lang.String departmentID,
                                            java.lang.String filterDepartmentID,
                                            java.lang.String filterUserID,
                                            java.lang.String formID,
                                            java.util.List<java.lang.String> cmpIds)
        получение списка должностей с полями карточек
        url: /rest/api/userchooser/searchPositionWithCardFields
        method : GET
        startRecord - по умолчанию 0
        recordsCount - по умолчанию 30
        locale - локаль
        departmentID идентификатора департамент чьи дочерние должности (всю иерархию) нужно вернуть
        search параметр текстового поиска
        showAll - false по умолчанию; отображать все должности (false - отображать подчиненные должности)
        showOnlyVacant - false по умолчанию, отображать только вакантные должности (по ним определяется максимальный уровень иерархии верх который нужно отображать и подчиненные должности)
        userID пользователь от имени которого выполнять поиск
        filterDepartmentID идентификатор непосредственного родительского подразделения
        filterUserID идентификатор пользователя чьи должности необходимо показать
        formID идентификатор формы поля карточки которой нужно поднять
        cmpId идентификаторы полей (можно передавать несколько cmpId=id1&cmpId=id2&cmpId=id3 и так далее)
        Returns:
        массив найденных должностей поля возвращаемой сущности
        code код
        departmentName наименование департамента
        elementID идентификатор должности
        elementName наименование должности
        translation не используется
        type не используется
        customFields дополнительные поля тут будет информация о карточке должности и полях (cmpIds)
        например
        customFields.asfDataId - идентификатор файла по форме карточки должности
        customFields.cmpId1_key - ключ значения поля карточки 1
        customFields.cmpId1_value - значение поле карточки 1
        customFields.cmpId2_key - ключ значения поля карточки 2
        customFields.cmpId2_value - значение поле карточки 2

        если в процессе произошла ошибка метод возвращает http status 500 INTERNAL_SERVER_ERROR
kz.arta.synergy.api.rest.map

Class PointersService

  • java.lang.Object
    • kz.arta.synergy.api.rest.map.PointersService


  • public class PointersService
    extends java.lang.Object
    Created by IntelliJ IDEA. User: topa Date: 13.02.14 Time: 12:20 To change this template use File | Settings | File Templates.
    • Constructor Summary

      Constructors 
      Constructor and Description
      PointersService() 
    • Method Summary

      Methods 
      Modifier and Type Method and Description
      java.lang.String createPointer()
      Метод создает/изменяет показатель
      java.lang.String deletePointer(java.lang.String pointerID)
      Метод удаляет показатель
      java.lang.String getHost() 
      java.lang.String getLocale() 
      java.lang.String search(java.lang.String search, int type, boolean loadFullInfo, int partNumber, int countInPart)
      Метод возвращает список показателей, с возможностью поиска
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • PointersService

        public PointersService()
    • Method Detail

      • createPointer

        public java.lang.String createPointer()

        Метод создает/изменяет показатель


        URL rest/api/pointers/save
        Method GET

        Метод предназначен для создания/изменения показателей типов: базовый, расчитываемый, внешний. Тип создаваемого показателя зависит от параметра type, набор параметров зависит от типа показателя. Ниже перечислены все возможные параметры для каждого типа.
        Обязательные для передачи параметры отмечены *


        Базовый
        pointerID идентификатор показателя, необходимо передавать для обновления существующего показателя. Для создания нового - передавать параметр не нужно.
        type* тип показателя, значение должно быть 2
        name* название показателя
        code код показателя
        measure* единица измерения значений показателя
        update_type* Тип обновления значений показателя. Может принимать значения:

        • 1 - ежедневно
        • 2 - по дням недели
        • 3 - по дням месяца
        • 4 - ежеквартально

        update_days значение (одно или несколько) данного параметра необходимо передать, только если update_type=2 или update_type=3. Для update_type=2 - это должны быть номера дней недели от 1 до 7, для дней месяца - номера дней месяца от 1 до 31
        resUserID* идентификатор пользователя, ответственного за ввод значения показателя
        default_value значение показателя по-умолчанию
        dict_code код справочника (необходимо в том случае если значения показателя должны выбираться из справочника, а не вводиться вручную)
        min_value минимальное возможное значение показателя (число либо код другого показателя)
        max_value максимальное возможное значение показателя (число либо код другого показателя)


        Внешний
        pointerID идентификатор показателя, необходимо передавать для обновления существующего показателя. Для создания нового - передавать параметр не нужно.
        type* тип показателя, значение должно быть 4
        name* название показателя
        code код показателя
        measure* единица измерения значений показателя
        min_value минимальное возможное значение показателя (число либо код другого показателя)
        max_value максимальное возможное значение показателя (число либо код другого показателя)


        Расчитываемый
        pointerID идентификатор показателя, необходимо передавать для обновления существующего показателя. Для создания нового - передавать параметр не нужно.
        type* тип показателя, значение должно быть 1
        name* название показателя
        code код показателя
        measure* единица измерения значений показателя
        formula* формула расчета показателя

        Returns:
      • deletePointer

        public java.lang.String deletePointer(java.lang.String pointerID)

        Метод удаляет показатель


        URL rest/api/pointers/delete
        Method GET

        Parameters:
        pointerID - идентификатор показателя
        Returns:
      • search

        public java.lang.String search(java.lang.String search,
                              int type,
                              boolean loadFullInfo,
                              int partNumber,
                              int countInPart)

        Метод возвращает список показателей, с возможностью поиска


        URL rest/api/pointers/delete
        Method GET

        Parameters:
        search - поисковая строка (может отсутствовать для получения всего списка)
        type - тип показателей: 2 - базовый, 4 - внешний, 1- расчитываемый (может отсутствовать для получения полного списка)
        loadFullInfo - необходимо передать значение данного параметра true, чтобы метод вернул все поля показателей. Иначе возвращаются только поля общие для показателей всех типов: идентификатор, название, код, единица измерения
        partNumber - номер страницы возвращаемых результатов (отсчет с 0)
        countInPart - количество результатов в одной странице
        Returns:
        json следующего формата
             
        {
        "pages_count": общее количество страниц, соответствующее данным параметрам поиска
        "list": список показателей, для каждого показателя возвращаются данные согласно PointerWrapper#getPointerJson
        }
        See Also:
        PointerWrapper#getPointerJson(arta.synergy.web.common.client.data.pointers.Pointer)
      • getHost

        public java.lang.String getHost()
      • getLocale

        public java.lang.String getLocale()
kz.arta.synergy.api.rest.map

Class MapService

  • java.lang.Object
    • kz.arta.synergy.api.rest.map.MapService


  • public class MapService
    extends java.lang.Object
    Created by IntelliJ IDEA. User: topa Date: 13.02.14 Time: 9:35 To change this template use File | Settings | File Templates.
    • Constructor Summary

      Constructors 
      Constructor and Description
      MapService() 
    • Method Summary

      Methods 
      Modifier and Type Method and Description
      java.lang.String addPointersToMap(java.lang.String mapID, java.util.List<java.lang.String> pointerID)
      Метод добавляет показатели на карту
      java.lang.String createMap(java.lang.String name, boolean isPublic, java.lang.String parentID, int width, int height)
      Метод создает карту показателей
      java.lang.String deleteMap(java.lang.String mapID)
      Метод удаляет карту показателей
      java.lang.String get(java.lang.String mapID)
      Метод возвращает информацию о карте показателей
      java.lang.String getHost() 
      java.lang.String getLocale() 
      java.lang.String list(java.lang.String parentMapID)
      Метод возвращает список карт
      java.lang.String removePointerFromMap(java.lang.String mapID, java.lang.String pointerID)
      Метод удаляет показатель с карты
      java.lang.String save(java.lang.String name, boolean isPublic, java.lang.String parentID, int width, int height, java.lang.String mapID)
      Метод изменяет карту показателей
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • MapService

        public MapService()
    • Method Detail

      • createMap

        public java.lang.String createMap(java.lang.String name,
                                 boolean isPublic,
                                 java.lang.String parentID,
                                 int width,
                                 int height)

        Метод создает карту показателей


        URL rest/api/maps/create
        Method POST

        Parameters:
        name - Название карты
        isPublic - true - доступна всем пользователям, иначе - только тем, кому даны права
        parentID - идентификатор родительской карты (значение по-умолчанию корневой элемент "Стратегия")
        width - ширина карты (значение по-умолчанию MapConstants.DEFAULT_WIDTH)
        height - высота карты (значение по-умолчанию MapConstants.DEFAULT_HEIGHT)
        Returns:
      • save

        public java.lang.String save(java.lang.String name,
                            boolean isPublic,
                            java.lang.String parentID,
                            int width,
                            int height,
                            java.lang.String mapID)

        Метод изменяет карту показателей


        URL rest/api/maps/save
        Method POST

        Parameters:
        name - Название карты
        isPublic - true - доступна всем пользователям, иначе - только тем, кому даны права
        parentID - идентификатор родительско карты (значение по-умолчанию корневой элемент "Стратегия")
        width - ширина карты (значение по-умолчанию MapConstants.DEFAULT_WIDTH)
        height - высота карты (значение по-умолчанию MapConstants.DEFAULT_HEIGHT)
        mapID - идентификатор карты
        Returns:
        See Also:
        MapConstants#DEFAULT_WIDTH, MapConstants#DEFAULT_HEIGHT
      • deleteMap

        public java.lang.String deleteMap(java.lang.String mapID)

        Метод удаляет карту показателей


        URL rest/api/maps/delete
        Method GET

        Parameters:
        mapID - идентификатор карты
        Returns:
      • get

        public java.lang.String get(java.lang.String mapID)

        Метод возвращает информацию о карте показателей


        URL rest/api/maps/get
        Method GET

        Parameters:
        mapID - идентификатор карты
        Returns:
        информацию о карте, см метод MapWrapper#getMapJson
        See Also:
        MapWrapper#getMapJson(arta.synergy.web.common.client.data.pointers.maps.Map, String)
      • list

        public java.lang.String list(java.lang.String parentMapID)

        Метод возвращает список карт


        URL rest/api/maps/list
        Method GET

        Parameters:
        parentMapID - идентификатор родительской карты (значение по-умолчанию корневой элемент карт "Стратегия")
        Returns:
        информацию о картах как список json объектов, см. метод MapWrapper#getTreeMapJson
        See Also:
        MapWrapper#getTreeMapJson(arta.synergy.web.common.client.data.pointers.maps.TreeMap, String)
      • addPointersToMap

        public java.lang.String addPointersToMap(java.lang.String mapID,
                                        java.util.List<java.lang.String> pointerID)

        Метод добавляет показатели на карту


        URL rest/api/maps/add_pointers
        Method POST

        Parameters:
        mapID - идентификатор карты
        pointerID - идентификатор показателя (может быть передано несколько значений)
        Returns:
      • removePointerFromMap

        public java.lang.String removePointerFromMap(java.lang.String mapID,
                                            java.lang.String pointerID)

        Метод удаляет показатель с карты


        URL rest/api/maps/remove_pointer
        Method GET

        Parameters:
        mapID - идентификатор карты
        pointerID - идентификатор показателя
        Returns:
      • getHost

        public java.lang.String getHost()
      • getLocale

        public java.lang.String getLocale()
kz.arta.synergy.ejb.forms.servlet

Class ASFormSaveServlet

  • java.lang.Object
    • HttpServlet
      • kz.arta.synergy.ejb.forms.servlet.ASFormSaveServlet


  • public class ASFormSaveServlet
    extends HttpServlet
    Created by exile Date: 28.04.15 Time: 9:42
    • Method Summary

      Methods 
      Modifier and Type Method and Description
      protected void doPost(HttpServletRequest req, HttpServletResponse res)
      Метод сохраняет данные по форме
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ASFormSaveServlet

        public ASFormSaveServlet()
    • Method Detail

      • doPost

        protected void doPost(HttpServletRequest req,
                  HttpServletResponse res)
                       throws ServletException,
                              java.io.IOException

        Метод сохраняет данные по форме

        URL rest/api/asforms/form/multipartdata (requires basic http authorization)

        URL rest/asforms/form/multipartdata
        Method POST


        Запрос должен содержать следующие параметры
        form - UUID формы
        uuid - UUID данных по форме
        typeform - 1 - работаем с формой которая имеет мобильное представление
        data - усеченный json с данными по форме. Смотри пример данных
        synergyUserID - идентификатор пользователя, от имени которого совершается действие (необязательный параметр, если не передается, то вместо него берется значение идентификатора авторизованного пользователя)

        Поле data с данными должно иметь формат:
        "data": [{"id":"field1_id", "value": "field1_value", "type":"widgetType1"}, ..., {{"id":"fieldN_id", "value": "fieldN_value", "type":"widgetType1"}}]
        Отдельные поля кроме id и value могут так же иметь параметр label
        Поля формы обязательно должны содержать тип компонента формы. Типы компонентов содержаться можно посмотреть по ссылке http://goo.gl/arlFtB


        Пример использования можно посмотреть в классе kz.arta.synergy.rest.api.sample.registry.CreateAndFillDocExample

        Возвращает:
        uuid файла по форме - В случае успешного выполнения,
        http error 403 - если пользователь не авторизован
        http error 400 - в случае другой ошибки (невалидные данные, не переданы параметры и т.д.)
        Parameters:
        req - - HttpServletRequest
        res - - HttpServletResponse
        Throws:
        ServletException
        java.io.IOException
arta.synergy.web.common.client.util

Interface ProjectTemplateService

  • All Known Implementing Classes:
    ProjectTemplateService


    public interface ProjectTemplateService
    Структура данных ServerResult :
    • "errorCode" : int - код ошибки
    • "errorMessage" : String - текст ошибки
    • "object" : Object - объект сообщения (в данном случае PlanTemplate)
    • "sessionState": INT - состояние сессии
    • "comment": String - комментарий
    • "messages" : List String - список сообщений
    Для ошибок характерно присутствие 2 - полей errorCode и errorMessage. Типичное значение кода ошибки 13 Для успешного результата характерен код ошибки 0 и не пустое значение object ProjectTemplateSearchParams *
    • ascending - boolean направление сортировки
      • true - по возрастанию (по умолчанию)
      • false - по убыванию
    • countInPart - int количество шаблонов на странице (не обязательное, по умолчанию - 30)
    • pageNumber - int номер страницы (не обяз, по умолчанию - 0)
    • search - int поисковый запрос
    PlanTemplate:
    • settings - PlanTemplateSettings настройки
      • calcType - int тип расчета сроков
        • 0 - автоматический
        • 1 - ручной
      • progressCalcType - int тип расчета прогресса
        • 0 - Среднее арифметическое
        • 1 - Среднее взвешенное
      • progressRecalculation - boolean перерасчет прогресса при изменении сроков
        • true - настройка включена
        • false - настройка выключена
      • actionWeightField - String вес мероприятия (строка)
      • datesType - int тип ввода сроков
        • 0 - стандартный (дата начала и длительность)
        • 1 - абсолютный (дата начала и завершения)
      • progressType - int тип прогресса
        • 1 - фактический прогресс / прогресс по работе
        • 2 - фактический прогресс / плановый прогресс
    • id - String идентификатор шаблона
    • name - String название шаблона
    • code - String код шаблона
    • visible - boolean признак видимости шаблона
      • true - видимый
      • false - скрыт
    • risks - List список рисков
      • riskID - String идентификатор риска
      • riskName - String название риска
      • planID - String идентификатор проекта
      • enterDate - Date дата начала
      • deleted - Date удален ли риск
      • authorInfo:
        • userID - String идентификатор владельца проекта
        • userName - String имя владельца проекта
      • resUserInfo
        • userID - String идентификатор ответственного
        • userName - String имя ответственного
      • probability - int вероятность
      • impact - int воздействие
      • description - String описание риска (мероприятия)
      • statusID - int идентификатор статус
      • status - String название статуса
      • typeID - String идентификатор типа риска
      • typeName - String тип риска
    • fields - List String список отображаемых полей
      • length - длительность
      • start_date - начало
      • finish_date - завершение
      • depends_on - зависит
      • responsible - ответственный
      • cost_planned - плановая стоимость
      • cost_fact - фактическая стоимость
      • percent - прогресс
    • actions - List PlanTemplateAction список мероприятий:
      • id - String идентификатор мероприятия
      • structNumber - List Integer структурный номер мероприятия
      • name - String название мероприятия
      • duration - double длительность мероприятия (в днях)
      • links - List PlanLink зависимости мероприятия:
        • fromSN - StructNumber структурный номер мероприятия, от которого зависит данное
        • linkType - enum PlanLinkType тип зависимости
          • SS - зависимость типа Начало-Начало
          • SF - зависимость типа Начало-Окончание
          • FS - зависимость типа Окончание-Начало
          • FF - зависимость типа Окончание-Окончание
      • delay - int задержка (в днях)
      • valid - boolean признак валидности зависимости
        • true - валидна
        • false - не валидна
    • parentId - String идентификатор родительского мероприятия
    • PlanTemplateAction:
      • "id" : String - код ошибки
      • "structNumber" : StructNumber - текст ошибки
        • "numbers": List Integer - список с номерами
      • "name" : String - объект сообщения (в данном случае PlanTemplate)
      • "duration": double - состояние сессии
      • "links": List PlanLink - комментарий
      PlanTemplateName:
      • "name" : String - Название
      • "id" : String - Идентификатор
      • "code" : String - Код
      enum PlanLink:
      • NO - Нет ошибки
      • FORMAT - Введен неверный формат зависимости
      • CYCLE - Создание связей со следующими мероприятиями приведет к возникновению циклической ссылки
      • NOT_EXIST - Не найдены мероприятия с номерами
      • REPEAT - Невозможно создать несколько связей к одному мероприятию
      • PARENT - Вложенные мероприятия
      User: vsl Date: 7/17/15 Time: 1:55 PM
    • Method Summary

      Methods 
      Modifier and Type Method and Description
      void changeVisibility(java.lang.String id, boolean visible)
      Изменяет видимость шаблона
      URL: /rest/projects/templates/{id}/visible/{true | false}
      Метод: POST
      java.util.Set<java.lang.String> filterDictionaryItems(java.util.Set<java.lang.String> idsToFilter)
      arta.synergy.common.mbo.actions.ActionsIF#filterWorkResultDicItems(Set)
      PlanTemplate get(java.lang.String id)
      Возвращает шаблон проекта с заданным id JSON ответа - список объектов, описанных в saveTemplate(String, PlanTemplate), за исключением рисков и отображаемых полей, которые null.
      java.util.List<PlanTemplateAction> getActions(java.lang.String templateId)
      Возвращает список действий для шаблона
      URL: /rest/projects/templates/actions/list
      Метод: GET
      getTemplateForm(java.lang.String actionId)
      arta.synergy.common.mbo.actions.ActionsIF#getProjectTemplate(String)
      java.util.List<PlanTemplateName> getTemplateNames()
      Возвращает список названий шаблонов, их id и коды.
      java.lang.Integer getTemplatePages(int countInPart, java.lang.String search)
      Возвращает количество страниц при заданных параметрах.
      java.util.List<PlanTemplate> list(ProjectTemplateSearchParams params)
      Возвращает список всех шаблонов, удовлетворяющих запросу.
      newTemplate(PlanTemplate template)
      Добавляет новый шаблон.
      saveTemplate(java.lang.String id, PlanTemplate template)
      Сохраняет шаблон проекта
      URL: /rest/projects/templates/{id}
      Метод: POST

      JSON запроса: calcType - int тип расчета сроков 0 - автоматический 1 - ручной progressCalcType - int тип расчета прогресса 0 - Среднее арифметическое 1 - Среднее взвешенное progressRecalculation - boolean перерасчет прогресса при изменении сроков true - настройка включена false - настройка выключена actionWeightField - String вес мероприятия (строка) datesType - int тип ввода сроков 0 - стандартный (дата начала и длительность) 1 - абсолютный (дата начала и завершения) progressType - int тип прогресса 1 - фактический прогресс / прогресс по работе 2 - фактический прогресс / плановый прогресс id - String идентификатор шаблона name - String название шаблона code - String код шаблона visible - boolean признак видимости шаблона true - видимый false - скрыт risks - список рисков riskID - String идентификатор риска riskName - String название риска planID - String идентификатор проекта enterDate - Date дата начала deleted - Date удален ли риск authorInfo: userID - String идентификатор владельца проекта userName - String имя владельца проекта resUserInfo userID - String идентификатор ответственного userName - String имя ответственного probability - int вероятность impact - int воздействие description - String описание риска (мероприятия) statusID - int идентификатор статус status - String название статуса typeID - String идентификатор типа риска typeName - String тип риска fields - List String список отображаемых полей length - длительность start_date - начало finish_date - завершение depends_on - зависит responsible - ответственный cost_planned - плановая стоимость cost_fact - фактическая стоимость percent - прогресс actions - List PlanTemplateAction список мероприятий: id - String идентификатор мероприятия structNumber - List Integer структурный номер мероприятия name - String название мероприятия duration - double длительность мероприятия (в днях) links - List PlanLink зависимости мероприятия: fromSN - StructNumber структурный номер мероприятия, от которого зависит данное linkType - enum PlanLinkType тип зависимости SS - зависимость типа Начало-Начало SF - зависимость типа Начало-Окончание FS - зависимость типа Окончание-Начало FF - зависимость типа Окончание-Окончание delay - int задержка (в днях) valid - boolean признак валидности зависимости true - валидна false - не валидна parentId - String идентификатор родительского мероприятия
      Пример:
    • Method Detail

      • list

        java.util.List<PlanTemplate> list(ProjectTemplateSearchParams params)
        Возвращает список всех шаблонов, удовлетворяющих запросу. JSON ответа - список объектов, описанных в get(String)
        URL: /rest/projects/templates/list
        Метод: POST

        JSON запроса:
        • ascending - boolean направление сортировки
          • true - по возрастанию (по умолчанию)
          • false - по убыванию
        • countInPart - int количество шаблонов на странице (не обязательное, по умолчанию - 30)
        • pageNumber - int номер страницы (не обязательное, по умолчанию - 0)
        • search - String поисковый запрос

        Пример отсылаемого JSON
            {
                "ascending": true,
                "search": "тест",
                "pageNumber": 0,
                "countInPart": 30
            }
             
        Parameters:
        params - параметры поиска
        Returns:
        список шаблонов
      • get

        PlanTemplate get(java.lang.String id)
        Возвращает шаблон проекта с заданным id JSON ответа - список объектов, описанных в saveTemplate(String, PlanTemplate), за исключением рисков и отображаемых полей, которые null.
        URL: /rest/projects/templates/{id}
        Метод: GET
        Parameters:
        id - id шаблона
        Returns:
        JSON ответа - список объектов, описанных в saveTemplate(String, PlanTemplate), за исключением рисков и отображаемых полей, которые null.
      • saveTemplate

         saveTemplate(java.lang.String id,
                         PlanTemplate template)
        Сохраняет шаблон проекта
        URL: /rest/projects/templates/{id}
        Метод: POST

        JSON запроса:
        • calcType - int тип расчета сроков
          • 0 - автоматический
          • 1 - ручной
        • progressCalcType - int тип расчета прогресса
          • 0 - Среднее арифметическое
          • 1 - Среднее взвешенное
        • progressRecalculation - boolean перерасчет прогресса при изменении сроков
          • true - настройка включена
          • false - настройка выключена
        • actionWeightField - String вес мероприятия (строка)
        • datesType - int тип ввода сроков
          • 0 - стандартный (дата начала и длительность)
          • 1 - абсолютный (дата начала и завершения)
        • progressType - int тип прогресса
          • 1 - фактический прогресс / прогресс по работе
          • 2 - фактический прогресс / плановый прогресс
        • id - String идентификатор шаблона
        • name - String название шаблона
        • code - String код шаблона
        • visible - boolean признак видимости шаблона
          • true - видимый
          • false - скрыт
        • risks - список рисков
          • riskID - String идентификатор риска
          • riskName - String название риска
          • planID - String идентификатор проекта
          • enterDate - Date дата начала
          • deleted - Date удален ли риск
          • authorInfo:
            • userID - String идентификатор владельца проекта
            • userName - String имя владельца проекта
          • resUserInfo
            • userID - String идентификатор ответственного
            • userName - String имя ответственного
          • probability - int вероятность
          • impact - int воздействие
          • description - String описание риска (мероприятия)
          • statusID - int идентификатор статус
          • status - String название статуса
          • typeID - String идентификатор типа риска
          • typeName - String тип риска
        • fields - List String список отображаемых полей
          • length - длительность
          • start_date - начало
          • finish_date - завершение
          • depends_on - зависит
          • responsible - ответственный
          • cost_planned - плановая стоимость
          • cost_fact - фактическая стоимость
          • percent - прогресс
        • actions - List PlanTemplateAction список мероприятий:
          • id - String идентификатор мероприятия
          • structNumber - List Integer структурный номер мероприятия
          • name - String название мероприятия
          • duration - double длительность мероприятия (в днях)
          • links - List PlanLink зависимости мероприятия:
            • fromSN - StructNumber структурный номер мероприятия, от которого зависит данное
            • linkType - enum PlanLinkType тип зависимости
              • SS - зависимость типа Начало-Начало
              • SF - зависимость типа Начало-Окончание
              • FS - зависимость типа Окончание-Начало
              • FF - зависимость типа Окончание-Окончание
          • delay - int задержка (в днях)
          • valid - boolean признак валидности зависимости
            • true - валидна
            • false - не валидна
        • parentId - String идентификатор родительского мероприятия

        • Пример:
               {
                  "settings": {
                      "calcType": 0,
                      "progressCalcType": 0,
                      "progressRecalculation": false,
                      "actionWeightField": null,
                      "datesType": 0,
                      "progressType": 1
                  },
                  "id": "dd081e05-7a2c-454b-9972-441fd465704a",
                  "name": "example",
                  "code": "example",
                  "visible": true,
                  "risks": [
                      {
                          "riskID": null,
                          "riskName": "example_risk",
                          "planID": "dd081e05-7a2c-454b-9972-441fd465704a",
                          "enterDate": null,
                          "deleted": null,
                          "authorInfo": {
                              "userID": "1",
                              "userName": null
                          },
                          "resUserInfo": {
                              "userID": null,
                              "userName": null
                          },
                          "probability": 13,
                          "impact": 50,
                          "description": "Мероприятия по риску",
                          "statusID": 3,
                          "status": "Проводятся мероприятия",
                          "typeID": "inst",
                          "typeName": "Институциональные риски"
                      },
                      {
                          "riskID": "a2c32707-8a1b-4fba-8609-ca54adb554db",
                          "riskName": "dsfdfsdf",
                          "planID": "dd081e05-7a2c-454b-9972-441fd465704a",
                          "enterDate": "2015-08-12T00:00:00.000+0600",
                          "deleted": "2015-08-12T11:12:08.076+0600",
                          "authorInfo": {
                              "userID": "0a9eb338-9176-4ae3-8f0f-c3800f5685d9",
                              "userName": "Иванов И."
                          },
                          "resUserInfo": {
                              "userID": null,
                              "userName": ""
                          },
                          "probability": 13,
                          "impact": 50,
                          "description": "Описание мероприятий по риску",
                          "statusID": 2,
                          "status": "Запланирован",
                          "typeID": "inst",
                          "typeName": "Институциональные риски"
                      }
                  ],
                  "fields": [
                      "length",
                      "start_date",
                      "finish_date",
                      "depends_on",
                      "responsible",
                      "percent"
                  ],
                  "actions": [
                      {
                          "id": "13e88fd9-9225-4f9d-8e54-c8cde0596774",
                          "structNumber": {
                              "numbers": []
                          },
                          "name": "example",
                          "duration": 1,
                          "links": null,
                          "parentId": null
                      }
                  ]
              }
           
        Returns:
        измененный шаблон в таком же формате, обернутый в ServerResult
      • changeVisibility

        void changeVisibility(java.lang.String id,
                            boolean visible)
        Изменяет видимость шаблона
        URL: /rest/projects/templates/{id}/visible/{true | false}
        Метод: POST
        Parameters:
        id - - идентификатор шаблона
        visible - - видимость. Возможные варианты: true - видимый, false - скрытый
      • newTemplate

         newTemplate(PlanTemplate template)
        Добавляет новый шаблон. Принимаемый JSON такой же как и в saveTemplate(String, PlanTemplate), но id шаблона должно быть null. Возвращает JSON шаблона проектов, описанный в get(String)
        URL: /rest/projects/templates/newTemplate
        Метод: POST
        Parameters:
        template - - новый шаблон
        Returns:
        - сохраненный шаблон, обернутый JSON PlanTemplate в ServerResult
      • getTemplatePages

        java.lang.Integer getTemplatePages(int countInPart,
                                         java.lang.String search)
        Возвращает количество страниц при заданных параметрах.
        URL: /rest/projects/templates/pagesCount
        Метод: GET
        Parameters:
        countInPart - количество элементов на странице
        search - строка поиска
        Returns:
        количество страниц. если параметр search будет пустым, должно вернуться общее количество страниц; если ни одно значение не будет соответствовать запросу, должно вернуться значение 0.
      • getActions

        java.util.List<PlanTemplateAction> getActions(java.lang.String templateId)
        Возвращает список действий для шаблона
        URL: /rest/projects/templates/actions/list
        Метод: GET
        Parameters:
        templateId - id шаблона
        Returns:
        список действий над шаблоном. Возвращается список с элементами типа PlanTemplateAction
        Пример возвращаемого JSON:
         [
          {
               "id": "13e88fd9-9225-4f9d-8e54-c8cde0596774",
               "structNumber": {
                   "numbers": [1,2,3]
               },
               "name": "example",
               "duration": 1,
               "links": null,
               "parentId": null
           }
         ]
         
      • getTemplateNames

        java.util.List<PlanTemplateName> getTemplateNames()
        Возвращает список названий шаблонов, их id и коды.
        URL: /rest/projects/templates/names
        Метод: GET
        Returns:
        - список с элементами типа PlanTemplateName
        Пример возвращаемого JSON.
        [
            {
                "name": "1000005",
                "id": "1a8ce533-57c9-47fb-b102-fc60d4ab5a32",
                "code": "hgsudshguopsdjg"
            },
            {
                "name": "1000005",
                "id": "ad20fc0c-0202-4e85-8d5c-ba5d67100d97",
                "code": "1000005"
            },
            {
                "name": "1000010",
                "id": "1bc126a4-b56d-4598-84f3-445da8fd3bdf",
                "code": "1000010"
            },
            {
                "name": "100006",
                "id": "0c151228-8e24-4eb9-bda5-773a054c4e5a",
                "code": "100006"
            }
        ]
         
      • filterDictionaryItems

        java.util.Set<java.lang.String> filterDictionaryItems(java.util.Set<java.lang.String> idsToFilter)
        arta.synergy.common.mbo.actions.ActionsIF#filterWorkResultDicItems(Set)
      • getTemplateForm

         getTemplateForm(java.lang.String actionId)
        arta.synergy.common.mbo.actions.ActionsIF#getProjectTemplate(String)
arta.synergy.ejb.rest

Class SignService

  • java.lang.Object
    • arta.synergy.ejb.rest.SignService


  • public class SignService
    extends java.lang.Object
    REST сервис взаимодействия c applet-ом подписей
    Since:
    09.01.14 8:50
    • Constructor Summary

      Constructors 
      Constructor and Description
      SignService() 
    • Method Summary

      Methods 
      Modifier and Type Method and Description
      java.lang.String getAlg(java.lang.String cert)
      Получение алгоритма сертификата
      java.lang.String getSOH(java.lang.String sn)
      Метод получения подписываемого ключа
      KeyJoinResult joinByKey(java.lang.String certificate, java.lang.String signedSerialNumber, java.lang.String keyInfo, java.lang.String username, java.lang.String firstName, java.lang.String lastName)
      Добавление пользователя для авторизации по ключу
      java.lang.String saveSign(java.lang.String keyID, java.lang.String sourceDate, java.lang.String signedData) 
      java.lang.String testSign(java.lang.String keyID, java.lang.String docID, java.lang.String locale, java.lang.String userID)
      проверка подписей документа
      java.lang.String verificationKey(java.lang.String uuid, java.lang.String oid, java.lang.String pemCer, java.lang.String endTime, java.lang.String caID, java.lang.String edsInfo)
      проверяет статус ключа и в случае действительности сохраняет его в базе данных

      URL /rest/sign/verificationkey
      Method POST

      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • SignService

        public SignService()
    • Method Detail

      • verificationKey

        public java.lang.String verificationKey(java.lang.String uuid,
                                       java.lang.String oid,
                                       java.lang.String pemCer,
                                       java.lang.String endTime,
                                       java.lang.String caID,
                                       java.lang.String edsInfo)
        проверяет статус ключа и в случае действительности сохраняет его в базе данных

        URL /rest/sign/verificationkey
        Method POST

        Parameters:
        uuid - - идентификатор пользователя, от которого происходит проверка ключа (обяз.);
        oid - - устаревший параметр, не используется (необяз.);
        pemCer - - сериализированный сертификат в кодировке Base64 (обяз.);
        endTime - - дата завершения сертификата (обяз.);
        caID - - идентификатор корневого сертификата (необяз., по умолч. 0);
        edsInfo - - информация о сертификате, отображается при проверке сертификата KeyInf.KEY_CN, KeyInf.KEY_O для Synergy агента (необяз.);
        Returns:
        строка следующего вида ::::, состояющую из параметров:
        • entryID - идентификатор сертификата, публичная часть ключа;
        • algorithm - алгоритм подписи, используемый для сертификата.

        Пример возвращаемой строки: 4::::Sha1WithRSA
        • Если переданный сертификат был просрочен, метод возвращает ошибку в виде строки с текстом "CERT END".
        • Если переданный сертификат был отозван, метод возвращает ошибку в виде строки с текстом "CERT REVOKED".
        • Если не найден сертификационный центр переданного сертификата, метод возвращает ошибку в виде строки с текстом "DISTRIBUTION_CENTER_NOT_FOUND".

        Примечание. Отсутствие "::::" в возвращаемой строке указывает на наличие прочих ошибок.
      • saveSign

        public java.lang.String saveSign(java.lang.String keyID,
                                java.lang.String sourceDate,
                                java.lang.String signedData)
      • testSign

        public java.lang.String testSign(java.lang.String keyID,
                                java.lang.String docID,
                                java.lang.String locale,
                                java.lang.String userID)
        проверка подписей документа
        Parameters:
        keyID - - идентификатор ключа
        docID - - идентификатор документа
        locale - - локаль с которой необходимо вернуть данные
        Returns:
        данные проверки
      • joinByKey

        public KeyJoinResult joinByKey(java.lang.String certificate,
                              java.lang.String signedSerialNumber,
                              java.lang.String keyInfo,
                              java.lang.String username,
                              java.lang.String firstName,
                              java.lang.String lastName)
        Добавление пользователя для авторизации по ключу
        Parameters:
        certificate - - BASE64 сертификата пользователя
        signedSerialNumber - - подпись на серийный номер ключа
        keyInfo - - Информация по ключу в JSON
        firstName - - Имя
        lastName - - Фамилия
        Returns:
        - результат добавления пользователя
      • getSOH

        public java.lang.String getSOH(java.lang.String sn)
        Метод получения подписываемого ключа
        Parameters:
        sn - - серийный номер для которого происходит генерации подписываемого ключа
        Returns:
        - подписываемый ключ, привязанный к серийному номеру
      • getAlg

        public java.lang.String getAlg(java.lang.String cert)
        Получение алгоритма сертификата
        Parameters:
        cert - - сериализованный сертификат
        Returns:
        в поле result содержит ошибку или алгоритм