Иерархическая структура работ, атрибуты работ

Иерархическая структура работ (ИСР)

Таблица 1. Модель данных иерархической структуры работ

Поле Тип Описание
id UUID v4 Уникальный идентификатор ИСР
parentId UUID v4 Уникальный идентификатор родительского узла
code string Идентификатор работы
type string Тип узла
level integer Уровень вложенности узла
indexNumber integer Индексный номер узла
sortOrder integer Порядок сортировки узла
values Number Идентификатор атрибута ИСР со значением
criticalPath boolean Идентификатор критического пути узла
materialPath string Путь материала узла
curatorAccepted boolean Куратор принял маркер для узла

Таблица 2. Типы записей в ИСР

Тип Описание
work Узел ИСР (Узел ИСР) – элемент структуры (суммарная задача), которая может содержать дочерние элементы (работы, вехи, драфты, узлы ИСР), определяющая иерархию и структуру графика. Старт, финиш, календарная длительность, прогресс определяется статусом, длительностью и последовательностью выполнения дочерних элементами.
task Работа - задача (операция), выполняемая в течение определенного времени, т.е. имеющая рабочую и календарную длительность выполнения, старт и финиш в качестве обязательных атрибутов. Прогресс работы может быть от 0 до 100, работа может принимать статусы «Не начата», «Выполняется», «Завершена».
milestone_start Веха старта – задача (операция), обладающая обязательным атрибутом старт (и не имеющая значение атрибута финиш), не имеющая рабочей и календарной длительности, означающая событие, предшествующее выполнению последующих работ или этапов. Прогресс вехи старта может быть 0 или 100, веха старта может принимать статусы «Не начата», и «Завершена».
milestone_finish Веха финиша – задача (операция), обладающая обязательным атрибутом финиш (и не имеющая значение атрибута старт), не имеющая рабочей и календарной длительности, означающая событие, завершающее выполнение предшествующих работ или этапов. Прогресс вехи старта может быть 0 или 100, веха старта может принимать статусы «Не начата», и «Завершена».
draft Драфт – задача (операция), не имеющая значений атрибутов старт и финиш. Атрибуты рабочей и календарной длительности могут быть как заполнены, так и отсутствовать для работы с данным типом. Драфт является «черновиком» работы, для которой пока не определены сроки ее выполнения. Прогресс драфта может быть только равен 0, возможный статус – «Не начата».
sum Суммарная работа – тип работ, предназначенный для объединения нескольких работ в одном или нескольких графиках. Суммарная задача может быть использована для представления графика 2 уровня, упрощения управления работами или для агрегации данных.

Примеры использования

Получить список работ версии графика.

curl -X 'GET' \
  'https://your-org.domain/public-api/wbs?epsId=bc1da5df-d644-461a-aa54-e60182195898' \
  -H 'accept: application/json;odata.metadata=minimal;odata.streaming=true' \
  -H 'x-version: 409' \
  -H 'Authorization: your-api-key' \
  -H 'x-tenant-id: 5db13376-ba5c-4fd5-ba7f-dc56347956ad'

Создать новую работу в версии графика.

curl -X 'POST' \
  'https://your-org.domain/public-api/wbs' \
  -H 'accept: application/json;odata.metadata=minimal;odata.streaming=true' \
  -H 'x-version: 409' \
  -H 'Authorization: your-api-key' \
  -H 'x-tenant-id: 5db13376-ba5c-4fd5-ba7f-dc56347956ad' \
  -H 'Content-Type: application/json;odata.metadata=minimal;odata.streaming=true' \
  -d '{
  "epsId": "bc1da5df-d644-461a-aa54-e60182195898",
  "parentId": "2b73a1f8-833f-488c-9947-7fc1a4b76314",
  "type": "task",
  "name": "Заливка бетона"
}'

Изменить существующую работу.

curl -X 'PUT' \
  'https://your-org.domain/public-api/wbs/be69f9e6-5e81-4aec-959f-516bceb6e8b8' \
  -H 'accept: application/json;odata.metadata=minimal;odata.streaming=true' \
  -H 'x-version: 409' \
  -H 'Authorization: your-api-key' \
  -H 'x-tenant-id: 5db13376-ba5c-4fd5-ba7f-dc56347956ad' \
  -H 'Content-Type: application/json;odata.metadata=minimal;odata.streaming=true' \
  -d '{
  "name": "Заливка бетона"
}'

Удалить запись из версии графика.

curl -X 'DELETE' \
  'https://your-org.domain/public-api/wbs/be69f9e6-5e81-4aec-959f-516bceb6e8b8' \
  -H 'accept: */*' \
  -H 'x-version: 409' \
  -H 'Authorization: your-api-key' \
  -H 'x-tenant-id: 5db13376-ba5c-4fd5-ba7f-dc56347956ad'

Атрибуты иерархической структуры работ

Таблица 3. Модель данных атрибута иерархической структуры работ

Поле Тип Описание
id UUID v4 Уникальный идентификатор атрибута
epsId UUID v4 Идентификатор узла СПП
label string Заголовок атрибута
type string Тип атрибута
directoryId UUID v4 Идентификатор справочника
directoryAttributeId UUID v4 Идентификатор атрибута в справочнике

Таблица 4. Типы атрибутов ИСР

Тип Описание
date Дата в формате timestamp
number Число в формате float
string Строка
money Число в формате float
boolean Логический в формате 1 или 0

Примеры использования

Получить список атрибутов работ для указанного узла СПП.

curl -X 'GET' \
  'https://your-org.domain/public-api/wbs-attributes?epsId=5db13376-ba5c-4fd5-ba7f-dc56347956ad' \
  -H 'accept: application/json;odata.metadata=minimal;odata.streaming=true' \
  -H 'x-version: 409' \
  -H 'Authorization: your-api-key' \
  -H 'x-tenant-id: 5db13376-ba5c-4fd5-ba7f-dc56347956ad' \
  -H 'Content-Type: application/json;odata.metadata=minimal;odata.streaming=true'

Получить список атрибутов работ типа date для указанного узла СПП с помощью протокола OData.

curl -X 'GET' \
  ''https://your-org.domain/public-api/eps?filter=type eq 'date''' \
  -H 'accept: application/json;odata.metadata=minimal;odata.streaming=true' \
  -H 'x-version: 409' \
  -H 'Authorization: your-api-key' \
  -H 'x-tenant-id: 5db13376-ba5c-4fd5-ba7f-dc56347956ad' \
  -H 'Content-Type: application/json;odata.metadata=minimal;odata.streaming=true'

Создать новый атрибут.

curl -X 'POST' \
  'https://your-org.domain/public-api/wbs-attributes' \
  -H 'accept: application/json;odata.metadata=minimal;odata.streaming=true' \
  -H 'x-version: 409' \
  -H 'Authorization: your-api-key' \
  -H 'x-tenant-id: 5db13376-ba5c-4fd5-ba7f-dc56347956ad' \
  -H 'Content-Type: application/json;odata.metadata=minimal;odata.streaming=true' \
  -d '{
  "epsId": "5db13376-ba5c-4fd5-ba7f-dc56347956ad",
  "label": "Дата выпуска документации",
  "type": "date",
}'

Изменить наименование существующего атрибута.

curl -X 'PUT' \
  'https://your-org.domain/public-api/wbs-attributes/3fa85f64-5717-4562-b3fc-2c963f66afa6' \
  -H 'accept: application/json;odata.metadata=minimal;odata.streaming=true' \
  -H 'x-version: 409' \
  -H 'Authorization: your-api-key' \
  -H 'x-tenant-id: 5db13376-ba5c-4fd5-ba7f-dc56347956ad' \
  -H 'Content-Type: application/json;odata.metadata=minimal;odata.streaming=true' \
  -d '{
  "label": "Дата выпуска документации",
}'

Удалить существующий пользовательский атрибут.

curl -X 'DELETE' \
  'https://your-org.domain/public-api/wbs-attributes/3fa85f64-5717-4562-b3fc-2c963f66afa6' \
  -H 'accept: */*' \
  -H 'x-version: 409' \
  -H 'Authorization: your-api-key' \
  -H 'x-tenant-id: 5db13376-ba5c-4fd5-ba7f-dc56347956ad'