EN · DE · RU · FR · ES

#470: Task2GanttTaskConverter.java

projectforge-business/src/main/java/org/projectforge/business/gantt/Task2GanttTaskConverter.java Java-класс, projectforge-business/src/main/java/org/projectforge/business/gantt/Task2GanttTaskConverter.java 139 строк · 94 кода · 37 комментариев · 8 пустых
Назначение: Исходный файл: projectforge/business/gantt/Task2GanttTaskConverter.java. Task2GanttTaskConverter.java является частью приложения управления проектами с открытым исходным кодом ProjectForge.

Исходный код (первые 100 строк)

/////////////////////////////////////////////////////////////////////////////
//
// Project ProjectForge Community Edition
//         www.projectforge.org
//
// Copyright (C) 2001-2026 Micromata GmbH, Germany (www.micromata.com)
//
// ProjectForge is dual-licensed.
//
// This community edition is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License as published
// by the Free Software Foundation; version 3 of the License.
//
// This community edition is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
// Public License for more details.
//
// You should have received a copy of the GNU General Public License along
// with this program; if not, see http://www.gnu.org/licenses/.
//
/////////////////////////////////////////////////////////////////////////////

package org.projectforge.business.gantt;

import org.projectforge.business.task.TaskDO;
import org.projectforge.business.task.TaskNode;
import org.projectforge.business.task.TaskTree;

public class Task2GanttTaskConverter
{
  private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(Task2GanttTaskConverter.class);

  /**
   * Максимальная глубина предшественников для предотвращения циклических настроек предшественников.
   */
  public static final GanttChartData convertToGanttObjectTree(final TaskTree taskTree, final TaskDO rootTask)
  {
    final GanttChartData ganttChartData = new GanttChartData();
    convertToGanttObject(ganttChartData, taskTree, rootTask);
    processPredecessor(ganttChartData, taskTree, ganttChartData.getRootObject());
    return ganttChartData;
  }

  /**
   * Создаёт новый GanttTask и копирует все поля из указанной задачи (исключая предшественника и любые дочерние элементы).
   * @param task
   * @return
   */
  public static final GanttTask convertToGanttObject(final TaskDO task)
  {
    final GanttTaskImpl ganttObject = new GanttTaskImpl();
    ganttObject.setId(task.getId());
    ganttObject.setPredecessorOffset(task.getGanttPredecessorOffset());
    ganttObject.setRelationType(task.getGanttRelationType());
    ganttObject.setDuration(task.getDuration());
    ganttObject.setStartDate(task.getStartDate());
    ganttObject.setEndDate(task.getEndDate());
    ganttObject.setProgress(task.getProgress());
    ganttObject.setType(task.getGanttObjectType());
    ganttObject.setDescription(task.getDescription());
    ganttObject.setTitle(task.getTitle());
    return ganttObject;
  }

  /**
   * Создаёт новую задачу TaskDO и копирует все поля из указанного GanttTask (исключая предшественника и любые дочерние элементы).
   * @param ganttObject
   * @return
   */
  public static final TaskDO convertToTask(final GanttTask ganttObject)
  {
    final TaskDO task = new TaskDO();
    // Не копируем id! Id задаётся базой данных.
    task.setGanttPredecessorOffset(ganttObject.getPredecessorOffset());
    task.setGanttRelationType(ganttObject.getRelationType());
    task.setDuration(ganttObject.getDuration());
    task.setStartDate(ganttObject.getStartDate());
    task.setEndDate(ganttObject.getEndDate());
    task.setProgress(ganttObject.getProgress());
    task.setGanttObjectType(ganttObject.getType());
    task.setDescription(ganttObject.getDescription());
    task.setTitle(ganttObject.getTitle());
    return task;
  }

  private static final GanttTask convertToGanttObject(final GanttChartData ganttChartData, final TaskTree taskTree, final TaskDO task)
  {
    if (task == null) {
      log.warn("Ой, задача не должна быть null.");
      return null;
    }
    final GanttTask ganttObject = convertToGanttObject(task);
    if (ganttChartData.getRootObject() == null) {
      ganttChartData.setRootObject(ganttObject);
    }
    final TaskNode taskNode = taskTree.getTaskNodeById(task.getId());
    if (taskNode.hasChildren()) {
      for (final TaskNode childNode : taskNode.getChildren()) {
        if (!childNode.isDeleted()) {

История Git

868d6abb7 2025 -> 2026
63081666f Заголовки исходных файлов: 2024-> 2025.
4c04cfd65 MAJOR-CHANGE! Миграция целочисленных id на Long id (включая внешние ключи и т.д.)
b6092df09 Авторское право 2023 -> 2024
ab45d51fa Авторское право 2001-2022 -> 2001-2023.

868d6abb7

2025 -> 2026
868d6abb75cd191a892911ac8e45058932cf9074
diff --git a/projectforge-business/src/main/java/org/projectforge/business/gantt/Task2GanttTaskConverter.java b/projectforge-business/src/main/java/org/projectforge/business/gantt/Task2GanttTaskConverter.java
index 9072d7a45..ce8fd8a1f 100644
--- a/projectforge-business/src/main/java/org/projectforge/business/gantt/Task2GanttTaskConverter.java
+++ b/projectforge-business/src/main/java/org/projectforge/business/gantt/Task2GanttTaskConverter.java
@@ -3,7 +3,7 @@
 // Project ProjectForge Community Edition
 //         www.projectforge.org
 //
-// Copyright (C) 2001-2025 Micromata GmbH, Germany (www.micromata.com)
+// Copyright (C) 2001-2026 Micromata GmbH, Germany (www.micromata.com)
 //
 // ProjectForge is dual-licensed.
 //

63081666f

Заголовки исходных файлов: 2024-> 2025.
63081666f620fb87315f01b817e560e0b2f6a33a
diff --git a/projectforge-business/src/main/java/org/projectforge/business/gantt/Task2GanttTaskConverter.java b/projectforge-business/src/main/java/org/projectforge/business/gantt/Task2GanttTaskConverter.java
index 2eb7a00ac..9072d7a45 100644
--- a/projectforge-business/src/main/java/org/projectforge/business/gantt/Task2GanttTaskConverter.java
+++ b/projectforge-business/src/main/java/org/projectforge/business/gantt/Task2GanttTaskConverter.java
@@ -3,7 +3,7 @@
 // Project ProjectForge Community Edition
 //         www.projectforge.org
 //
-// Copyright (C) 2001-2024 Micromata GmbH, Germany (www.micromata.com)
+// Copyright (C) 2001-2025 Micromata GmbH, Germany (www.micromata.com)
 //
 // ProjectForge is dual-licensed.
 //

4c04cfd65

MAJOR-CHANGE! Миграция целочисленных id на Long id (включая внешние ключи и т.д.)
4c04cfd652210afe373d55f53a5300c85997b109
diff --git a/projectforge-business/src/main/java/org/projectforge/business/gantt/Task2GanttTaskConverter.java b/projectforge-business/src/main/java/org/projectforge/business/gantt/Task2GanttTaskConverter.java
index 490fa519e..2eb7a00ac 100644
--- a/projectforge-business/src/main/java/org/projectforge/business/gantt/Task2GanttTaskConverter.java
+++ b/projectforge-business/src/main/java/org/projectforge/business/gantt/Task2GanttTaskConverter.java
@@ -112,8 +112,8 @@ public class Task2GanttTaskConverter
       return;
     }
     if (!ganttTask.equals(ganttChartData.getRootObject())) {
-      final TaskDO task = taskTree.getTaskById((Integer) ganttTask.getId());
-      final Integer predecessorId = task.getGanttPredecessorId();
+      final TaskDO task = taskTree.getTaskById((Long) ganttTask.getId());
+      final Long predecessorId = task.getGanttPredecessorId();
       if (predecessorId != null) {
         GanttTask predecessor = ganttChartData.getRootObject().findById(predecessorId);
         if (predecessor == null) {

b6092df09

Авторское право 2023 -> 2024
b6092df0927c4a3b161e888445f31dcab57493f2
diff --git a/projectforge-business/src/main/java/org/projectforge/business/gantt/Task2GanttTaskConverter.java b/projectforge-business/src/main/java/org/projectforge/business/gantt/Task2GanttTaskConverter.java
index 37306edcc..490fa519e 100644
--- a/projectforge-business/src/main/java/org/projectforge/business/gantt/Task2GanttTaskConverter.java
+++ b/projectforge-business/src/main/java/org/projectforge/business/gantt/Task2GanttTaskConverter.java
@@ -3,7 +3,7 @@
 // Project ProjectForge Community Edition
 //         www.projectforge.org
 //
-// Copyright (C) 2001-2023 Micromata GmbH, Germany (www.micromata.com)
+// Copyright (C) 2001-2024 Micromata GmbH, Germany (www.micromata.com)
 //
 // ProjectForge is dual-licensed.
 //

ab45d51fa

Авторское право 2001-2022 -> 2001-2023.
ab45d51fa419ede6174b31d69987f96d4b841ff9
diff --git a/projectforge-business/src/main/java/org/projectforge/business/gantt/Task2GanttTaskConverter.java b/projectforge-business/src/main/java/org/projectforge/business/gantt/Task2GanttTaskConverter.java
index f152a616f..37306edcc 100644
--- a/projectforge-business/src/main/java/org/projectforge/business/gantt/Task2GanttTaskConverter.java
+++ b/projectforge-business/src/main/java/org/projectforge/business/gantt/Task2GanttTaskConverter.java
@@ -3,7 +3,7 @@
 // Project ProjectForge Community Edition
 //         www.projectforge.org
 //
-// Copyright (C) 2001-2022 Micromata GmbH, Germany (www.micromata.com)
+// Copyright (C) 2001-2023 Micromata GmbH, Germany (www.micromata.com)
 //
 // ProjectForge is dual-licensed.
 //