Формулировка проблемы: для реализации нового модуля «Документы» в мобильном клиенте требуется реализовать API для получения информации о документе.
Связанные задачи: при реализации данной задачи
необходимо учитывать метод
API /rest/api/workflow/works_by_id.
Решение: необходимо реализовать новый метод API, который должен позволять получать информацию о документе.
URL метода:
rest/api/docflow/doc/document_info. Типа запроса:
GET.
Метод принимает следующие параметры (строка):
documentID - UUID
документа (обяз.);
locale - локаль пользователя,
ru/en/kz (не обяз., по умолчанию
ru).
Альтернативные потоки событий:
если параметр documentID не передан, либо он
пустой, сервер вернет сообщение «Не передан параметр
documentID», информация о документе не
возвращается;
если передан некорректный параметр
documentID, сервер вернет сообщение
«Некорректный параметр documentID»,
информация о документе не возвращается.
Метод возвращает json со следующими полями:
name - краткое содержание документа;
content - значащее содержимое документа;
documentID - UUID
документа;
number - номер документа;
author - Фамилия И.О.
автора документа;
docTypeID - тип журнала
(INTERNAL - внутренний,
INNER - входящий, OUT -
исходящий);
user - Фамилия И.О.
пользователя, которому отписан документ;
regUser - Фамилия И.О.
пользователя, зарегистрировавшего документ;
resUsers - Фамилия И.О.
пользователей, у которых документ находится на исполнении;
to - Фамилия И.О.
адресатов;
from - Фамилия И.О.
адресантов;
type - тип документа
(DOCUMENT - документ,
EMAIL - письмо);
correspondent - корреспондент;
correspondentOrg - корреспондент (орг);
createDate - время и дата создания документа
в формате yyyy-MM-dd HH:mm:ss;
regDate - время и дата регистрации документа
в формате yyyy-MM-dd HH:mm:ss;
statusID - статус документа
(NOT_STARTED - на регистрации,
IN_PROGRESS - на исполнении,
FINISHED - завершен, DRAFT
- черновик, REJECTED - отклонен);
inProgress - находится ли документ в процессе
(true - да, false - нет);
hasChildren - имеет ли документ дочерние
документы (true - да,
false - нет);
isNew - есть ли изменения в документе,
непросмотренные пользователем (true - да,
false - нет);
hasResolution - наложена ли резолюция на
данный документ (true - да,
false - нет);
hidden - скрыт ли документ
(true - да, false - нет);
registered - зарегистрирован ли документ
(true - да, false - нет);
finished - завершен ли документ
(true - да, false - нет);
controlled - является ли документ контрольным
(true - да, false - нет);
hasAttachments - имеет ли документ вложения
(true - да, false - нет);
defective - бракованный ли документ
(true - да, false - нет);
isExpired - хотя бы одна работа по маршруту
документа просрочена (true - да,
false - нет);
isSoonExpired - хотя бы у одной работы по
маршруту документа истекает срок (true - да,
false - нет);
bases - массив UUID
оснований документа;
actions - массив UUID
незавершённых работ по документу текущего пользователя.
Пример возвращаемого массива
[
{
"name": "документ",
"content": "",
"documentID": "5373d189-e2d9-47d7-a4ac-67e5932ff3e5",
"number": "",
"author": "Абдрешен Л.С.",
"docTypeID": "",
"user": "",
"regUser": "",
"resUsers": "",
"to": "",
"from": "",
"correspondent": "",
"correspondentOrg": "",
"type": "DOCUMENT",
"createDate": "2014-12-29 15:28:00",
"regDate": "",
"statusID": "DRAFT",
"isExpired": "false",
"isSoonExpired": "true",
"hasChildren": "false",
"hasResolution": "false",
"isNew": "false",
"hidden": "false",
"registered": "false",
"finished": "false",
"inProgress": "false",
"controlled": "false",
"hasAttachments": "false",
"defective": "false",
"bases": ["f40b665c-f1f4-40b3-bdc5-291911def539"],
"actions": ["8194d282-5da1-42fe-95f3-a3db09597a29"]
}
]