kz.arta.synergy.server.api.rest.docs
Class DocFlowService

java.lang.Object
  extended by kz.arta.synergy.server.api.rest.docs.DocFlowService

public class DocFlowService
extends java.lang.Object

Created by vitaliy.zaretskiy on 11.09.14.


Constructor Summary
DocFlowService()
           
 
Method Summary
 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

URL: rest/api/docflow/doc/attachment/create
Тип: POST
 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?
 java.lang.String getDocCode(java.lang.String typeId)
           
 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<arta.synergy.web.common.client.data.bp.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?
 java.lang.String getDocumentItems(java.lang.String documentID, java.lang.String locale)
          Метод возвращает набор действий, которые может совершить авторизованный пользователь над документом

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

Каждое действие характеризуется следующими полями:
action - идентификатор действия, значение из kz.arta.synergy.server.api.rest.works.WorkActionType
operation - идентификатор операции, значение из kz.arta.synergy.server.api.rest.works.WorkActionSubType (может отсутствовать)
label - название действия
color - идентификатор цвета, значение из kz.arta.synergy.server.api.rest.works.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 ..]}
 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
 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
 javax.ws.rs.core.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

 
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"
     }
 ]
 


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

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 - бракованный ли документ

Чтобы получить список документов в находящиеся в каком-либо фильтре - нужно передать параметры этого фильтра в текущий метод. (Параметры получаются путем вызова метода /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",
         "actions" : ["fb051b77-6ds3-4c3f-833a8-b551a73fc1fs"],
         "bases" : ["3c051b77-5ds3-4ce3-84a8-b551a73fc1d9"]
     }
 ]
 


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

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 - бракованный ли документ
actions - если пользователь по данному документу имеет несколько работ - uuid'ы этих работ будут находиться в массиве actions.
bases - основания документа
registryID - идентификатор реестра, в котором находится документ (может отсутствовать, если документ не принадлежит никакому реестру)
registryName - имя реестра, в котором находится документ (может отсутствовать, если документ не принадлежит никакому реестру)
formName - имя формы
formID - идентификатор формы
asfDataID - идентификатор данных по форме реестра документа (может отсутствовать, если документ не принадлежит никакому реестру)
processing - статус записи реестра (true - находится в процессе)
activate - статус записи реестра (true - запись активирована)

Parameters:
documentID - documentID
locale - локаль (ru/en/kz)
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 - локаль пользователя, по умолчанию ru
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 - - локаль пользователя, по умолчанию ru
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 - локаль пользователя, по-умолчанию ru
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 - локаль пользователя (по-умолчанию ru)
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 - локаль пользователя, по-умолчанию ru
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 - локаль пользователя (по-умолчанию ru) На данный момент поддерживается только один тип 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 - локаль пользователя, по-умолчанию - ru

getDocumentItems

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

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

Каждое действие характеризуется следующими полями:
action - идентификатор действия, значение из kz.arta.synergy.server.api.rest.works.WorkActionType
operation - идентификатор операции, значение из kz.arta.synergy.server.api.rest.works.WorkActionSubType (может отсутствовать)
label - название действия
color - идентификатор цвета, значение из kz.arta.synergy.server.api.rest.works.ActionColor

Parameters:
documentID - uuid работы
locale - локаль пользователя, по-умолчанию ru
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 - локаль (ru/en/kz)
Returns:

В случае неуспешного выполнения возвращается json с полями
errorCode - код выполнения (число, отличное от 0)
errorMessage - сообщение об ошибке
See Also:
DocSearchParams.USER_OWN_DOCUMENTS, DocSearchParams.USER_SENT_DOCUMENTS, DocSearchParams.USER_RECEIVED_DOCUMENTS, 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 - локаль (ru/en/kz)
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 - локаль (ru/en/kz)
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<arta.synergy.web.common.client.data.bp.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 - локаль ru/en/kz, по умолчанию ru (не обяз.);
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 - локаль ru/en/kz, по умолчанию ru (не обяз.)
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 javax.ws.rs.core.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 - локаль пользователя, по-умолчанию ru
documentID - UUID документа (обяз.)
rawdata - данные для подписи base64 (обяз.)
signdata - Base64 закодированная строка с подписью (обяз., если включена настройка "Требовать ключ и сертификат")
certificate - сертификат base64 (обяз. если включена настройка требовать ключ и сертификат)
certID - идентификатор сертификата, получаемый в методе verificationkey (certID::::sigalg) (обяз., если включена настройка "Требовать ключ и сертификат");
Returns:
В случае успешного выполнения json со следующими полями:
  • errorCode = 0
  • errorMessage = Данные сохранены
в случае ошибки вернет json со следующими полями
  • errorCode = код ошибки
  • errorMessage = сообщение