Adding values of equal items in a table

1

I'm using JAVA, JPA, Wildfly and PrimeFaces, but I'd really like someone to help me in a java method to add up equal item values of a dataTable . I have two columns PRODUTO and QUANTIDADE , in the BORRACHA item there are two values of 50, I would like to add according to the product name, in case the answer would be 100, this answer I'll put in another column of the table , but I would like to know how to add the equal name values of this Arraylist .

MYVIEW:

<h:panelGridstyle="margin-top: 10px">
                        <p:dataTable id="tabelaEstoque" value="#{estoqueMB.listaEstoque}"
                            var="est" paginator="true"
                            rendered="#{not empty estoqueMB.listaEstoque}"
                            emptyMessage="Nenhum registro encontrado..."
                            rowsPerPageTemplate="5,10,15">
                            <p:column headerText="Produto" sortBy="#{est.produto}">
                                <h:outputText value="#{est.produto}" style="width:100%" />
                            </p:column>
                            <p:column headerText="Quantidade" sortBy="#{est.quantidade}">
                                <p:cellEditor>
                                    <f:facet name="output">
                                        <h:outputText value="#{est.quantidade}" />
                                    </f:facet>
                                    <f:facet name="input">
                                        <p:inputText value="#{est.quantidade}" style="width:100%"
                                            label="Year" />
                                    </f:facet>
                                </p:cellEditor>
                            </p:column>
                            <p:column headerText="Setor" sortBy="#{est.setor}">
                                <h:outputText value="#{est.setor}" />
                            </p:column>
                            <p:column headerText="Ponto Atendimento"
                                sortBy="#{est.pontoAtendimento}">
                                <h:outputText value="#{est.pontoAtendimento}" />
                            </p:column>
                            <p:column headerText="Cadastrado por">
                                <h:outputText value="#{est.autor}" />
                            </p:column>
                            <p:column headerText="Data Cadastro" sortBy="#{est.data}">
                                <h:outputText value="#{est.data}">
                                    <f:convertDateTime pattern="dd/MM/yyyy HH:mm"
                                        timeZone="GMT-03:00" />
                                </h:outputText>
                            </p:column>
                            <p:column>
                                <p:commandLink value="Alterar" action="#{estoqueMB.editar(est)}"
                                    update="@form" />
                            </p:column>
                        </p:dataTable>
                    </h:panelGrid>
                </h:panelGrid>
            </h:panelGrid>
        </h:panelGrid>
    </ui:define>
</ui:composition>

MY MB

package br.com.sicoob.ManagedBeans;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.inject.Inject;

import org.primefaces.context.RequestContext;
import org.primefaces.model.UploadedFile;

import br.com.sicoob.Service.EstoqueService;
import br.com.sicoob.entidades.Estoque;

@ManagedBean(name = "estoqueMB")
@ViewScoped
public class EstoqueMB implements Serializable {

    /**
     * CLASSE DE CONTROLE DE ESTOQUE; Criada por: Pedro Henrique
     */
    private static final long serialVersionUID = 1L;

    @Inject
    private EstoqueService estoqueService;

    private Estoque estoque = new Estoque();

    private List<Estoque> listaEstoque = new ArrayList<Estoque>();
    private boolean edicao = true;

    private int contBobinas, contBomAr, contBoracha, contCaixaPag, contCaixaReceb, contCaneta, contCanetaPon,
            contCarbono, contCera, contClipsG, contClipsM, contClips04, contCola, contColher, contCopo, contElast,
            contEnvCarta, contEnvePardo, contEnvPlast, contExtrator, contFitaAdes, contFitaERC, contGrampeador,
            contGrampo, contLacre, contLapis, contMarTexto, contMataIns, contMolhaDedo, contMovNum, contPapelA4,
            contPastaPapel, contRegua20, contRegua30, contTesoura, contTintaCarimbo;

    @PostConstruct
    public void init() {
        contBobinas = 0;
        contBomAr = 0;
        contBoracha = 0;
        contCaixaPag = 0;
        contCaixaReceb = 0;
        contCaneta = 0;
        contCanetaPon = 0;
        contCarbono = 0;
        contCera = 0;
        contClipsG = 0;
        contClipsM = 0;
        contClips04 = 0;
        contCola = 0;
        contColher = 0;
        contCopo = 0;
        contElast = 0;
        contEnvCarta = 0;
        contEnvePardo = 0;
        contEnvPlast = 0;
        contExtrator = 0;
        contFitaAdes = 0;
        contFitaERC = 0;
        contGrampeador = 0;
        contGrampo = 0;
        contLacre = 0;
        contLapis = 0;
        contMarTexto = 0;
        contMataIns = 0;
        contMolhaDedo = 0;
        contMovNum = 0;
        contPapelA4 = 0;
        contPastaPapel = 0;
        contRegua20 = 0;
        contRegua30 = 0;
        contTesoura = 0;
        contTintaCarimbo = 0;
        listaEstoque = estoqueService.listarTodos();
        contarRegistros();
    }

    /**
     * Método responsavel por adicionar cadastro
     */

    public void salvar() {

        if (validarEstoque(estoque) == false) {
            return;
        }
        estoque.setData(new Date());
        estoque.setAutor(System.getProperty("user.name"));
        estoqueService.salvarEstoque(estoque);
        listaEstoque = estoqueService.listarTodos();
        estoque = new Estoque();
        FacesContext.getCurrentInstance().addMessage(null,
                new FacesMessage(FacesMessage.SEVERITY_INFO, "", "cadastro realizado com SUCESSO!"));
    }

    private UploadedFile file;

    public UploadedFile getFile() {
        return file;
    }

    public void setFile(UploadedFile file) {
        this.file = file;
    }

    public void upload() {
        if (file != null) {
            FacesMessage message = new FacesMessage("Succesful", file.getFileName() + " is uploaded.");
            FacesContext.getCurrentInstance().addMessage(null, message);
        }
    }

    /**
     * 
     * @return
     */
    public String redirecionar() {
        return "perfil";
    }

    /**
     * 
     * @param cadastro
     * @return
     */
    private boolean validarEstoque(Estoque estoque) {

        if (estoque.getProduto() == null || "".equals(estoque.getProduto())) {
            FacesContext.getCurrentInstance().addMessage(null,
                    new FacesMessage(FacesMessage.SEVERITY_ERROR, "", "Favor preencher o campo: PRODUTO"));
            return false;
        }
        if (estoque.getQuantidade() == 0 || "".equals(estoque.getQuantidade())) {
            FacesContext.getCurrentInstance().addMessage(null,
                    new FacesMessage(FacesMessage.SEVERITY_ERROR, "", "Favor preencher o campo: QUANTIDADE"));
            return false;
        }
        if (estoque.getPontoAtendimento() == null || "".equals(estoque.getPontoAtendimento())) {
            FacesContext.getCurrentInstance().addMessage(null,
                    new FacesMessage(FacesMessage.SEVERITY_ERROR, "", "Favor preencher o campo: PA"));
            return false;
        }
        if (estoque.getSetor() == null || "".equals(estoque.getSetor())) {
            FacesContext.getCurrentInstance().addMessage(null,
                    new FacesMessage(FacesMessage.SEVERITY_ERROR, "", "Favor preencher o campo: SETOR"));
            return false;
        }
        return true;
    }

    public void contarRegistros() {
        for (int x = 0; x < listaEstoque.size(); x++) {
            if (listaEstoque.get(x).getProduto().equalsIgnoreCase("Bobinas 2 vias de caixa-Caixa ( 30uni)")) {

                contBobinas = listaEstoque.get(x).getQuantidade();

            }
            if (listaEstoque.get(x).getProduto().equalsIgnoreCase("Bom ar")) {
                contBomAr = listaEstoque.get(x).getQuantidade();
            }
            if (listaEstoque.get(x).getProduto().equalsIgnoreCase("Borracha")) {
                contBoracha = listaEstoque.get(x).getQuantidade();
            }
            if (listaEstoque.get(x).getProduto().equalsIgnoreCase("Caixa Pagamento-Bloco")) {
                contCaixaPag = listaEstoque.get(x).getQuantidade();
            }
            if (listaEstoque.get(x).getProduto().equalsIgnoreCase("Caixa Recebimento-Bloco")) {
                contCaixaReceb = listaEstoque.get(x).getQuantidade();
            }
            if (listaEstoque.get(x).getProduto().equalsIgnoreCase("Caneta-Caixa (50 uni)")) {
                contCaneta = listaEstoque.get(x).getQuantidade();
            }
            if (listaEstoque.get(x).getProduto().equalsIgnoreCase("Caneta ponta fina")) {
                contCanetaPon = listaEstoque.get(x).getQuantidade();
            }
            if (listaEstoque.get(x).getProduto().equalsIgnoreCase("Carbono-Pacote (5 uni)")) {
                contCarbono = listaEstoque.get(x).getQuantidade();
            }
            if (listaEstoque.get(x).getProduto().equalsIgnoreCase("Cera para limpeza")) {
                contCera = listaEstoque.get(x).getQuantidade();
            }
            if (listaEstoque.get(x).getProduto().equalsIgnoreCase("Clips 4/0 -Caixa")) {
                contClips04 = listaEstoque.get(x).getQuantidade();
            }
            if (listaEstoque.get(x).getProduto().equalsIgnoreCase("Clips  Grande")) {
                contClipsG = listaEstoque.get(x).getQuantidade();
            }
            if (listaEstoque.get(x).getProduto().equalsIgnoreCase("Clips Médio")) {
                contClipsM = listaEstoque.get(x).getQuantidade();
            }
            if (listaEstoque.get(x).getProduto().equalsIgnoreCase("Cola Bastão")) {
                contCola = listaEstoque.get(x).getQuantidade();
            }
            if (listaEstoque.get(x).getProduto().equalsIgnoreCase("Colher Descartavel-Pacote (25uni)")) {
                contColher = listaEstoque.get(x).getQuantidade();
            }
            if (listaEstoque.get(x).getProduto().equalsIgnoreCase("Copo Descartável-Pacote (100uni)")) {
                contCopo = listaEstoque.get(x).getQuantidade();
            }
            if (listaEstoque.get(x).getProduto().equalsIgnoreCase("Elástico Dinheiro-Pacote 500g")) {
                contElast = listaEstoque.get(x).getQuantidade();
            }
            if (listaEstoque.get(x).getProduto().equalsIgnoreCase("Envelope Carta - Pacote (100 uni)")) {
                contEnvCarta = listaEstoque.get(x).getQuantidade();
            }
            if (listaEstoque.get(x).getProduto().equalsIgnoreCase("Envelope Pardo A4-Caixa (250 uni)")) {
                contEnvePardo = listaEstoque.get(x).getQuantidade();
            }
            if (listaEstoque.get(x).getProduto().equalsIgnoreCase("Envelpe Plastico  4 furos-Pacote ( 100 uni)")) {
                contEnvPlast = listaEstoque.get(x).getQuantidade();
            }
            if (listaEstoque.get(x).getProduto().equalsIgnoreCase("Extrator de Grampo")) {
                contExtrator = listaEstoque.get(x).getQuantidade();
            }
            if (listaEstoque.get(x).getProduto().equalsIgnoreCase("Fita adesiva (Larga)")) {
                contFitaAdes = listaEstoque.get(x).getQuantidade();
            }
            if (listaEstoque.get(x).getProduto().equalsIgnoreCase("Fita ERC03-Caixa (10 uni)")) {
                contFitaERC = listaEstoque.get(x).getQuantidade();
            }
            if (listaEstoque.get(x).getProduto().equalsIgnoreCase("Grampeador")) {
                contGrampeador = listaEstoque.get(x).getQuantidade();
            }
            if (listaEstoque.get(x).getProduto().equalsIgnoreCase("Grampo-Caixa")) {
                contGrampo += listaEstoque.get(x).getQuantidade();
            }
            if (listaEstoque.get(x).getProduto().equalsIgnoreCase("Lacre Malote -Pacote (100 uni)")) {
                contLacre = listaEstoque.get(x).getQuantidade();
            }
            if (listaEstoque.get(x).getProduto().equalsIgnoreCase("Lápis-Caixa( 12 uni)")) {
                contLapis = listaEstoque.get(x).getQuantidade();
            }
            if (listaEstoque.get(x).getProduto().equalsIgnoreCase("Marca texto")) {
                contMarTexto = listaEstoque.get(x).getQuantidade();
            }
            if (listaEstoque.get(x).getProduto().equalsIgnoreCase("Mata Insetos")) {
                contMataIns = listaEstoque.get(x).getQuantidade();
            }
            if (listaEstoque.get(x).getProduto().equalsIgnoreCase("Molha Dedo")) {
                contMolhaDedo = listaEstoque.get(x).getQuantidade();
            }
            if (listaEstoque.get(x).getProduto().equalsIgnoreCase("Movimento Numerario -Bloco")) {
                contMovNum = listaEstoque.get(x).getQuantidade();
            }
            if (listaEstoque.get(x).getProduto().equalsIgnoreCase("Papel A4 -Caixa (10 pct)")) {
                contPapelA4 = listaEstoque.get(x).getQuantidade();
            }
            if (listaEstoque.get(x).getProduto().equalsIgnoreCase("Pasta Papel A4")) {
                contPastaPapel = listaEstoque.get(x).getQuantidade();
            }
            if (listaEstoque.get(x).getProduto().equalsIgnoreCase("Régua 20 cm")) {
                contRegua20 = listaEstoque.get(x).getQuantidade();
            }
            if (listaEstoque.get(x).getProduto().equalsIgnoreCase("Régua 30 cm")) {
                contRegua30 = listaEstoque.get(x).getQuantidade();
            }
            if (listaEstoque.get(x).getProduto().equalsIgnoreCase("Tesoura")) {
                contTesoura = listaEstoque.get(x).getQuantidade();
            }
            if (listaEstoque.get(x).getProduto().equalsIgnoreCase("Tinta Carimbo")) {
                contTintaCarimbo = listaEstoque.get(x).getQuantidade();
            }
        }
    }

    /**
     * Método responsavel por adicionar cadastro
     */
    public void atualizar() {
        estoqueService.salvarEstoque(estoque);
        estoque = new Estoque();
        edicao = false;
    }

    /**
     * 
     * @param u
     */
    public void remover(Estoque c) {
        estoqueService.remover(c);
        listaEstoque = estoqueService.listarTodos();
        c = new Estoque();
    }

    public void reset() {
        RequestContext.getCurrentInstance().reset("form:panel");
    }

    /**
     * 
     * @param u
     */
    public void editar(Estoque e) {
        this.estoque = e;
        edicao = true;
    }

    public List<Estoque> getListaEstoque() {
        return listaEstoque;
    }

    public void setListaEstoque(List<Estoque> listaEstoque) {
        this.listaEstoque = listaEstoque;
    }

    public Estoque getEstoque() {
        return estoque;
    }

    public void setEstoque(Estoque estoque) {
        this.estoque = estoque;
    }

    public boolean isEdicao() {
        return edicao;
    }

    public void setEdicao(boolean edicao) {
        this.edicao = edicao;
    }

    public int getContBobinas() {
        return contBobinas;
    }

    public void setContBobinas(int contBobinas) {
        this.contBobinas = contBobinas;
    }

    public int getContBomAr() {
        return contBomAr;
    }

    public void setContBomAr(int contBomAr) {
        this.contBomAr = contBomAr;
    }

    public int getContBoracha() {
        return contBoracha;
    }

    public void setContBoracha(int contBoracha) {
        this.contBoracha = contBoracha;
    }

    public int getContCaixaPag() {
        return contCaixaPag;
    }

    public void setContCaixaPag(int contCaixaPag) {
        this.contCaixaPag = contCaixaPag;
    }

    public int getContCaixaReceb() {
        return contCaixaReceb;
    }

    public void setContCaixaReceb(int contCaixaReceb) {
        this.contCaixaReceb = contCaixaReceb;
    }

    public int getContCaneta() {
        return contCaneta;
    }

    public void setContCaneta(int contCaneta) {
        this.contCaneta = contCaneta;
    }

    public int getContCanetaPon() {
        return contCanetaPon;
    }

    public void setContCanetaPon(int contCanetaPon) {
        this.contCanetaPon = contCanetaPon;
    }

    public int getContCarbono() {
        return contCarbono;
    }

    public void setContCarbono(int contCarbono) {
        this.contCarbono = contCarbono;
    }

    public int getContCera() {
        return contCera;
    }

    public void setContCera(int contCera) {
        this.contCera = contCera;
    }

    public int getContClipsG() {
        return contClipsG;
    }

    public void setContClipsG(int contClipsG) {
        this.contClipsG = contClipsG;
    }

    public int getContClipsM() {
        return contClipsM;
    }

    public void setContClipsM(int contClipsM) {
        this.contClipsM = contClipsM;
    }

    public int getContClips04() {
        return contClips04;
    }

    public void setContClips04(int contClips04) {
        this.contClips04 = contClips04;
    }

    public int getContCola() {
        return contCola;
    }

    public void setContCola(int contCola) {
        this.contCola = contCola;
    }

    public int getContColher() {
        return contColher;
    }

    public void setContColher(int contColher) {
        this.contColher = contColher;
    }

    public int getContCopo() {
        return contCopo;
    }

    public void setContCopo(int contCopo) {
        this.contCopo = contCopo;
    }

    public int getContElast() {
        return contElast;
    }

    public void setContElast(int contElast) {
        this.contElast = contElast;
    }

    public int getContEnvCarta() {
        return contEnvCarta;
    }

    public void setContEnvCarta(int contEnvCarta) {
        this.contEnvCarta = contEnvCarta;
    }

    public int getContEnvePardo() {
        return contEnvePardo;
    }

    public void setContEnvePardo(int contEnvePardo) {
        this.contEnvePardo = contEnvePardo;
    }

    public int getContEnvPlast() {
        return contEnvPlast;
    }

    public void setContEnvPlast(int contEnvPlast) {
        this.contEnvPlast = contEnvPlast;
    }

    public int getContExtrator() {
        return contExtrator;
    }

    public void setContExtrator(int contExtrator) {
        this.contExtrator = contExtrator;
    }

    public int getContFitaAdes() {
        return contFitaAdes;
    }

    public void setContFitaAdes(int contFitaAdes) {
        this.contFitaAdes = contFitaAdes;
    }

    public int getContFitaERC() {
        return contFitaERC;
    }

    public void setContFitaERC(int contFitaERC) {
        this.contFitaERC = contFitaERC;
    }

    public int getContGrampeador() {
        return contGrampeador;
    }

    public void setContGrampeador(int contGrampeador) {
        this.contGrampeador = contGrampeador;
    }

    public int getContGrampo() {
        return contGrampo;
    }

    public void setContGrampo(int contGrampo) {
        this.contGrampo = contGrampo;
    }

    public int getContLacre() {
        return contLacre;
    }

    public void setContLacre(int contLacre) {
        this.contLacre = contLacre;
    }

    public int getContLapis() {
        return contLapis;
    }

    public void setContLapis(int contLapis) {
        this.contLapis = contLapis;
    }

    public int getContMarTexto() {
        return contMarTexto;
    }

    public void setContMarTexto(int contMarTexto) {
        this.contMarTexto = contMarTexto;
    }

    public int getContMataIns() {
        return contMataIns;
    }

    public void setContMataIns(int contMataIns) {
        this.contMataIns = contMataIns;
    }

    public int getContMolhaDedo() {
        return contMolhaDedo;
    }

    public void setContMolhaDedo(int contMolhaDedo) {
        this.contMolhaDedo = contMolhaDedo;
    }

    public int getContMovNum() {
        return contMovNum;
    }

    public void setContMovNum(int contMovNum) {
        this.contMovNum = contMovNum;
    }

    public int getContPapelA4() {
        return contPapelA4;
    }

    public void setContPapelA4(int contPapelA4) {
        this.contPapelA4 = contPapelA4;
    }

    public int getContPastaPapel() {
        return contPastaPapel;
    }

    public void setContPastaPapel(int contPastaPapel) {
        this.contPastaPapel = contPastaPapel;
    }

    public int getContRegua20() {
        return contRegua20;
    }

    public void setContRegua20(int contRegua20) {
        this.contRegua20 = contRegua20;
    }

    public int getContRegua30() {
        return contRegua30;
    }

    public void setContRegua30(int contRegua30) {
        this.contRegua30 = contRegua30;
    }

    public int getContTesoura() {
        return contTesoura;
    }

    public void setContTesoura(int contTesoura) {
        this.contTesoura = contTesoura;
    }

    public int getContTintaCarimbo() {
        return contTintaCarimbo;
    }

    public void setContTintaCarimbo(int contTintaCarimbo) {
        this.contTintaCarimbo = contTintaCarimbo;
    }

}

MY DAO:

package br.com.sicoob.DAO;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import br.com.sicoob.Service.EstoqueService;
import br.com.sicoob.entidades.Estoque;

@Stateless
public class EstoqueDAO implements Serializable, EstoqueService {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    @PersistenceContext
    private EntityManager em;

    /**
     * 
     * @param u
     */
    public void salvar(Estoque e) {
        if (e.getId() == 0) {
            em.persist(e);
        } else {
            em.merge(e);
        }
    }

    /**
     * 
     * @param u
     */
    public void remover(Estoque e) {
        e = em.merge(e);
        em.remove(e);
    }

    /**
     * 
     * @return
     */
    @SuppressWarnings("unchecked")
    public List<Estoque> listarTodos() {
        List<Estoque> estoque = new ArrayList<Estoque>();
        Query q = em.createQuery("select obj from Estoque obj");
        estoque = q.getResultList();
        return estoque;
    }

    /**
     * 
     * @param id
     * @return
     */
    public Estoque buscarPorId(Long id) {
        return em.find(Estoque.class, id);
    }

    /**
     * 
     * @param u
     * @return
     */
    public Estoque carregarEntidade(Estoque e) {
        return em.merge(e);
    }

    @Override
    public void salvarEstoque(Estoque estoque) {
        if (estoque.getProduto() == null) {
            em.persist(estoque);
        } else {
            em.merge(estoque);
        }
    }

    @Override
    public void salvarCadastro(Estoque estoque) {


    }

    @Override
    public List<Estoque> listarDescricao() {
        // TODO Auto-generated method stub
        return null;
    }
}
    
asked by anonymous 26.09.2016 / 16:42

1 answer

0

I think the best way is to do this in the query, using sum and group by:

select sum(quantidade), minhaTabela.produto
from MinhaTabela minhaTabela 
group by minhaTabela.produto

This query should return you a List containing two elements, the sum as a long and the description.

Take a look at the functions in documentation .

    
26.09.2016 / 20:46