Search in sources :

Example 6 with ResponsavelArea

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()]);
}
Also used : DAOException(com.tomasio.projects.trainning.exception.DAOException) ResponsavelArea(com.tomasio.projects.trainning.model.ResponsavelArea) Area(com.tomasio.projects.trainning.model.Area) ArrayList(java.util.ArrayList) Transactional(org.springframework.transaction.annotation.Transactional)

Aggregations

DAOException (com.tomasio.projects.trainning.exception.DAOException)6 ResponsavelArea (com.tomasio.projects.trainning.model.ResponsavelArea)6 Transactional (org.springframework.transaction.annotation.Transactional)5 CoreException (com.tomasio.projects.trainning.exeption.CoreException)3 Area (com.tomasio.projects.trainning.model.Area)2 ArrayList (java.util.ArrayList)2 HibernateException (org.hibernate.HibernateException)1 Session (org.hibernate.Session)1