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); // запишем в БД }