Skip to main content

Ordenar List y agrupar con Java 8

Ordenar List y agrupar con Java 8


Proyecto: Rigemjsf
Clase: InformeConsolidadoController.java


Queremos un informe agrupado por idnivel5 y totalizar cada idnivel6.




Tenemos un Beans llamado consolidado


@Named
@RequestScoped
public class Consolidado {
private Date fecha;
private String nombre;
private Integer idrecibo;
private Double pago;
private String idnivel6;
private String nombrenivel6;
private String idnivel5;
private String nombrenivel5;









 public String imprimirTodos() {
       try {
           /*
           agruparlo por idnivel6
            */


Map<String, List<Consolidado>> listAgrupado = listConsolidado
                   .stream()
                   .collect(Collectors.groupingBy(p -> p.getIdnivel6()));


           //recorrer el list
           listAgrupado
                   .forEach((String idnivel6, List<Consolidado> p) -> {
                       add(p);
                   });


//Ordenarlo por nivel5


           Collections.sort(listConsolidadoFinal,
                   (Consolidado a, Consolidado b) -> a.getIdnivel5().compareTo(b.getIdnivel6()));
           


         
       } catch (Exception ex) {
           JSFUtil.addErrorMessage("imprimir() " + ex.getLocalizedMessage());
       }
       return null;
   }
   /*
    anade a la lista final la sumatoria
    */
//Aqui totalizamos y agregamos objetos al  nuevo list
     private void add(List<Consolidado> list) {
       try {
           Double s = 0.0;
           s = list.stream().map((i) -> i.getPago()).reduce(s, (accumulator, _item) -> accumulator + _item);
           Consolidado icr = new Consolidado();
           icr = list.get(0);
           icr.setPago(s);
           listConsolidadoFinal.add(icr);
       } catch (Exception e) {
           JSFUtil.addErrorMessage("add() " + e.getLocalizedMessage());
       }


   }


   }

Comments

Popular posts from this blog

FileUpload con Primefaces

FileUpload con Primefaces

Si queremos subir imagenes a nuestra aplicación usaremos el componente FileUploadDebemos realizar los siguientes pasos:
Agregar al archivo web.xml

   <filter>        <filter-name>PrimeFaces FileUpload Filter</filter-name>        <filter-class>            org.primefaces.webapp.filter.FileUploadFilter        </filter-class>    </filter>    <filter-mapping>        <filter-name>PrimeFaces FileUpload Filter</filter-name>        <servlet-name>Faces Servlet</servlet-name>    </filter-mapping>



Crear dentro de resources el directorio donde deseamos almacenar las imagenesEn este ejemplo: resources/fotos/clinicas y agregue una imagen llamada fotos.png que se usará como imagen inicial.



En JSFUtil u otro @Named Beans que usemos agregamos tres métodos uno para obtener el path de la aplicación web , otro para obtener el path relativo a /fotos/clinicas y el otro para copiar los archivos. /*

NetBeans 8.0.1 en Español

NetBeans 8.0.1 disponible en español
http://bits.netbeans.org/netbeans/8.0.1/community/
Esta disponible NetBeans 8.0.1 en varios idiomas .


Puedes descargar la nueva versión y utilizar las nuevas características


Tutorial básico de aplicaciones Web con NetBeans parte 1

NetBeans ofrece un excelente soporte para el desarrollo de aplicaciones Web, en esta ocasión lo haremos utilizando el Framework Java Server Faces 2.0.
En el Menu Seleccionamos Nuevo->Proyecto y luego en Categorias Java Web y en tipo de Proyectos Web  Application

indicamos el nombre del proyecto



Seleccinamos el servidor Web, usamos GlassFish ya que este soporta EJB3.0 y JSF 2.0

Framework Java Server Faces

El IDE genera el esquelto del proyecto
Web Pages  almacenamos las paginas .html, xhtml, jsf, los archivos de recursos, los scripts .js, imagenesSource Packages   Son las clases Java Test Packages   Son las clases que usamos para los Test

Libraries    Tenemos las bibliotecas de Java y GlassFish necesarias para ejecutar la aplicación Web.Test Libraries    Están las bibliotecas usadas para los test 
Configuration Files   Archivos de configuración de la aplicación.

Ejecutamos la aplicación 

Esperamos que se inicie GlassFish y se cargue la aplicación
Este se ejecutara en nuestro servidor local y…