use of com.tomasio.projects.trainning.model.ResponsavelArea in project trainning by fernandotomasio.
the class PlanningServiceSimpleImpl method findAllAreasSobResponsabilidade.
@Override
@Transactional(readOnly = true)
public AreaDTO[] findAllAreasSobResponsabilidade(Long planejamentoId, Long organizacaoId) {
AreaDAO areaDAO = factory.getAreaDAO();
ResponsavelAreaDTO[] responsaveisAreas = findAllResponsaveisAreas(planejamentoId, organizacaoId);
List<AreaDTO> areasSobResponsabilidadeDireta = new ArrayList<AreaDTO>();
List<AreaDTO> areasSobResponsabilidade = new ArrayList<AreaDTO>();
if (responsaveisAreas.length != 0) {
// Pega todas as áreas que a organização é responsável (configurado no planejamento)
for (ResponsavelAreaDTO responsavelArea : responsaveisAreas) {
areasSobResponsabilidadeDireta.add(responsavelArea.getArea());
}
// Pega todas as áreas dos cursos do planejamento
List<Area> areasPlanejamento = new ArrayList<Area>();
try {
areasPlanejamento = areaDAO.findAllAreasByPlanejamento(planejamentoId);
} catch (DAOException ex) {
Logger.getLogger(PlanningServiceSimpleImpl.class.getName()).log(Level.SEVERE, null, ex);
}
for (Area areaPlanejamento : areasPlanejamento) {
// Monta a hierarquia acima da área
List<AreaDTO> hierarquiaAreaPlanejamento = arrangeAreasByHierarchyUp(areaPlanejamento.createDTO());
// Adiciona na lista todas as áreas dos cursos na qual a responsabilidade direta faz parte de suas hierarquias
for (AreaDTO areaSobResponsabilidadeDireta : areasSobResponsabilidadeDireta) {
if (hierarquiaAreaPlanejamento.contains(areaSobResponsabilidadeDireta) && !areasSobResponsabilidade.contains(areaPlanejamento)) {
areasSobResponsabilidade.add(areaPlanejamento.createDTO());
}
}
}
}
return areasSobResponsabilidade.toArray(new AreaDTO[areasSobResponsabilidade.size()]);
}
Aggregations