kz.arta.synergy.server.api.rest.projects
Class ProjectService

java.lang.Object
  extended by kz.arta.synergy.server.api.rest.projects.ProjectService

public class ProjectService
extends java.lang.Object

Created by vitaliy.zaretskiy on 10.10.14.


Constructor Summary
ProjectService()
           
 
Method Summary
 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)
          Метод создает мероприятие для указанного проекта
Тип: POST
URL: rest/api/projects/create_arrangement
 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)
          Метод создает проект для указанного портфеля
Тип: POST
URL: rest/api/projects/create_project
 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)
          Метод изменяет существующее мероприятие
Тип: POST
URL: rest/api/projects/edit_arrangement
 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)
          Метод предназначен для редактирования проекта
Тип: POST
URL: rest/api/projects/edit_project
 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 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)
          Метод возвращает список мероприятий/мероприятие
Тип: GET
URL: rest/api/projects/get_arrangements
 java.lang.String getPlanFolder(java.lang.String actionID, java.lang.String locale)
          

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

URL: rest/api/projects/get_folder

Type: GET

 java.lang.String getPointers(java.lang.String items, java.lang.String actionID, java.lang.String locale)
          Метод изменяет значения дополнительных полей у мероприятия
Тип: POST
URL: rest/api/projects/edit_pointer
 java.lang.String getProjectTree(java.lang.String itemID, java.lang.String folderType, java.lang.String locale)
          Для того, чтобы создать проект - нужно знать, где его создать
Данный метод возвращает информацию о деревьях и портфелях
По умолчанию возвращает портфели находящиеся в корпоративном дереве (это происходит если не передавать параметр folderType)
Тип: GET
URL: rest/api/projects/get_project_tree
 java.lang.String getWorkLoads(java.lang.String locale)
          Метод возвращает описание нагрузок в системе
Тип: GET
URL: rest/api/projects/get_work_loads
 
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,
                                       java.lang.String locale)
Для того, чтобы создать проект - нужно знать, где его создать
Данный метод возвращает информацию о деревьях и портфелях
По умолчанию возвращает портфели находящиеся в корпоративном дереве (это происходит если не передавать параметр folderType)
Тип: GET
URL: rest/api/projects/get_project_tree

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

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)
Метод создает проект для указанного портфеля
Тип: POST
URL: rest/api/projects/create_project

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)
Метод предназначен для редактирования проекта
Тип: POST
URL: rest/api/projects/edit_project

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)
Метод создает мероприятие для указанного проекта
Тип: POST
URL: rest/api/projects/create_arrangement

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)
Метод изменяет существующее мероприятие
Тип: POST
URL: rest/api/projects/edit_arrangement

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)
Метод возвращает список мероприятий/мероприятие
Тип: GET
URL: rest/api/projects/get_arrangements

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 - дополнительные поля

getPointers

public java.lang.String getPointers(java.lang.String items,
                                    java.lang.String actionID,
                                    java.lang.String locale)
Метод изменяет значения дополнительных полей у мероприятия
Тип: POST
URL: rest/api/projects/edit_pointer

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)
Метод возвращает описание нагрузок в системе
Тип: GET
URL: rest/api/projects/get_work_loads

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": "Кол-во раб. дн."
}
]


Copyright © 2000 Dummy Corp. All Rights Reserved.