SIGESA: Autocomplete Unidad Ejecutora con ACL para reporte

UnidadEjecutoraService.java

/**
     * Devuelve una pagina de unidades ejecutoras que tengan un Plan de Acción Estratégica
     * @author Gustavo Matamoros González 
     * @param filterSpecifications
     * @param query
     * @param acl
     * @param pageable
     * @return {link Page<UnidadEjecutora>}
     * @issue PPI-372
     * @sinse 10/05/2023
     */
    public Page<UnidadEjecutora> completePPIUnidadEjecutoraInPAEAclReporte(ArrayList<FilterSpecification> filterSpecifications, String query, String acl, Pageable pageable);

    /**
     * Devuelve una pagina de unidades ejecutoras que tengan un Plan de Acción Estratégica
     * @author Gustavo Matamoros González  
     * @param query
     * @param filterSpecifications
     * @param pageable
     * @return {link Page<UnidadEjecutora>}
     * @issue PPI-372
     * @sinse 10/05/2023
     */
    public Page<UnidadEjecutora> completePPIUnidadEjecutoraInPAEAcl(String query, ArrayList<FilterSpecification> filterSpecifications, Pageable pageable);


    /**
     * Devuelve una pagina de unidades ejecutoras que tengan un Plan de Acción Estratégica
     * @author Gustavo Matamoros González  
     * @param filterSpecifications
     * @param pageable
     * @param filterParams
     * @return {link Page<UnidadEjecutora>}
     * @issue PPI-372
     * @sinse 10/05/2023
     */
    public Page<UnidadEjecutora> unidadesEjecutorasInPAEAclLOV(ArrayList<FilterSpecification> filterSpecifications, Pageable pageable, Map<String, Object> filterParams);

    /**
     * Devuelve una pagina de unidades ejecutoras que tengan un Plan de Acción Estratégica orientado a reportes
     * @author Gustavo Matamoros González  
     * @param filterSpecifications
     * @param pageable
     * @param filterParams
     * @return {link Page<UnidadEjecutora>}
     * @issue PPI-372
     * @sinse 10/05/2023
     */
    public Page<UnidadEjecutora>  unidadesEjecutorasInPAEAclReporteLOV(ArrayList<FilterSpecification> filterSpecifications, Pageable pageable, Map<String, Object> filterParams);

UnidadEjecutoraServiceImpl.java

@Override
    public Page<UnidadEjecutora> completePPIUnidadEjecutoraInPAEAclReporte(ArrayList<FilterSpecification> filterSpecifications, String query, String acl, Pageable pageable) {
        return completePPIUnidadEjecutoraInPAEAcl(query, filterSpecifications, pageable);
    }
  

    @Override
    public Page<UnidadEjecutora> completePPIUnidadEjecutoraInPAEAcl(String query, ArrayList<FilterSpecification> filterSpecifications, Pageable pageable) {
        
        String aclJson = getAclJSON("ppi_ppo_evaluacion_operativa_complete_unidad_ejecutora_acl");

        this.setFilterSpecifications(filterSpecifications);
        this.setAclSecure(aclJson);

        Specification specBusquedaCodigo = UnidadEjecutoraSpecs.BuscarUnidadEjecutoraPorCodigo(query);
        Specification specBusquedaPAE = UnidadEjecutoraSpecs.unidadesEjecutorasInPAE();

        Specification<UnidadEjecutora> specFinal = Specification.where(specBusquedaCodigo).and(specBusquedaPAE).and(this);

        Page<UnidadEjecutora> pagina = repository.findAll(specFinal,pageable);
        this.setAclSecure(null);
        return pagina;

    }

    @Override
    public Page<UnidadEjecutora> unidadesEjecutorasInPAEAclLOV(ArrayList<FilterSpecification> filterSpecifications, Pageable pageable, Map<String, Object> filterParams) {
        
        
        String acl = (String) filterParams.get("aclJson");
        String aclJson = getAclJSON(acl);
        
        Specification specBusquedaPAE = UnidadEjecutoraSpecs.unidadesEjecutorasInPAE();
        
        
        this.setFilterSpecifications(filterSpecifications);
        this.setAclSecure(aclJson);
        Specification<UnidadEjecutora> specFinal = Specification.where(specBusquedaPAE).and(this);
        Page<UnidadEjecutora> pagina = repository.findAll(specFinal,pageable);
        this.setAclSecure(null);
        return pagina;
    }

    @Override
    public Page<UnidadEjecutora>  unidadesEjecutorasInPAEAclReporteLOV(ArrayList<FilterSpecification> filterSpecifications, Pageable pageable, Map<String, Object> filterParams) {
        if (filterParams == null) {
            filterParams = new HashMap();
        }
        if (!filterParams.containsKey("aclJson")) {
            filterParams.put("aclJson", "ppi_ppo_evaluacion_operativa_complete_unidad_ejecutora_acl");
        }
        return unidadesEjecutorasInPAEAclLOV(filterSpecifications, pageable, filterParams);
    }