Гант
Диаграмма Ганта — это инструмент для планирования и визуализации этапов проекта, который представляет собой график с горизонтальными полосами (столбцами), отображающими задачи, их сроки, длительность и зависимости между ними. Она помогает наглядно увидеть хронологию проекта, распределить ресурсы, контролировать сроки и синхронизировать работу команды. В статье мы собрали команды связаные с работой с диаграмой Ганта.
Примечание: все команды располагаются в пространсве имен
Bitrix\Tasks\V2\Public\Command\Gantt
Типы связей
Прежде чем разбираться с задачами необходимо определить приору взаимосвязи задач между собой - ее описание лежит в LinkType.
use Bitrix\Tasks\V2\Internal\Entity\Task\Gantt\LinkType;
enum LinkType: string
{
case StartStart = 'start_start';
case StartFinish = 'start_finish';
case FinishStart = 'finish_start';
case FinishFinish = 'finish_finish';
}
LinkType::StartStart- Задачи могут начинаться одновременноLinkType::StartFinish- Зависимая задача может завершиться, когда начнётся предшествующаяLinkType::FinishStart- Предшествующая задача должна завершиться, чтобы началась зависимаяLinkType::FinishFinish- Задачи должны завершиться одновременно
Создать связь
AddDependenceCommand позволяет устанавливать связи между задачами для управления последовательностью выполнения работ.
Входные аргументы:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
$taskId |
int | Да | ID задачи, к которой добавляется зависимость (зависимая задача) |
$dependentId |
int | Да | ID задачи, от которой будет зависеть текущая (предшествующая задача) |
$linkType |
LinkType |
Да | Тип связи для задач |
$userId |
int | Да | Пользователь, выполняющий действие |
$useConsistency |
bool | Нет | Использовать механизм консистентности |
Пример выполнения: задача ID:2 должна начаться после завершения задачи ID:1:
use Bitrix\Tasks\V2\Public\Command\Gantt\AddDependenceCommand;
use Bitrix\Tasks\V2\Internal\Entity\Task\Gantt\LinkType;
$command = new AddDependenceCommand(
taskId: 2,
dependentId: 1,
linkType: LinkType::FinishStart,
userId: 1
);
$result = $command->run();
if ($result->isSuccess()) {
echo "Зависимость создана";
} else {
foreach ($result->getErrors() as $error) {
echo "Ошибка: {$error->getMessage()}";
}
}
Изменить связь
UpdateDependenceCommand позволяет изменить связь между задачами для управления последовательностью выполнения работ.
Входные аргументы:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
$taskId |
int | Да | ID задачи, к которой добавляется зависимость (зависимая задача) |
$dependentId |
int | Да | ID задачи, от которой будет зависеть текущая (предшествующая задача) |
$linkType |
LinkType |
Да | Тип связи для задач |
$useConsistency |
bool | Нет | Использовать механизм консистентности |
Пример, аналогичный
AddDependenceCommand, без указания userId
Удалить связь
DeleteDependenceCommand удаляет связь между задачами в диаграмме Ганта.
Входные аргументы:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
$taskId |
int | Да | ID зависимой задачи (к которой была привязана связь) |
$dependentId |
int | Да | ID предшествующей задачи (от которой зависела связь) |
$useConsistency |
bool | Нет | Использовать механизм консистентности |