コード例 #1
0
  public void createOrUpdateProject(NamedNodeMap nodeMap, ProjectDAO dao) {
    Project project = new Project(); // проект из БД

    // поля синхронизации
    String name = nodeMap.getNamedItem("name").getNodeValue().trim(); // название проекта
    String idProject = nodeMap.getNamedItem("id").getNodeValue(); // id проекта
    String status = nodeMap.getNamedItem("status").getNodeValue(); // статус проекта
    String pmLdap = nodeMap.getNamedItem("pm").getNodeValue(); // руководитель проекта
    String hcLdap = nodeMap.getNamedItem("hc").getNodeValue(); // hc

    // ищем в БД запись о проекте
    Project findingProject = dao.findByProjectId(idProject);
    if (findingProject == null) { // если проекта еще нет в БД
      project.setActive(newStatus.contains(status)); // установим ему новый статус
    } else {
      // если проект уже существовал - статус менять не будем
      // см. //APLANATS-408
      project.setActive(findingProject.isActive());
    }

    project.setName(name);
    project.setProjectId(idProject);

    if (project.isActive()) {
      if (!setPM(project, pmLdap)) {
        return; // если не указан РП или его нет в БД, то проект не сохраняем, переходим к
                // следующему
      }
      setDivision(project, hcLdap); // установим подразделение пользователя
    }
    dao.store(project); // запишем в БД
  }