Caros colegas!
Estou desenvolvendo com JSP e Spring MVC , ainda sou noob mas estou me virando bem e conseguindo fazer umas coisas que preciso, porém estou com uma dúvida e não consigo prosseguir.
Estou montando um relatório de refugo e retrabalho que mostra os valores na view (JSP).
Esse valores vêm de um List<> de dentro da classe DAO, que já fez o select dentro do BD e etc…
O relatório está carregando normal, só que eu preciso adicionar mais duas colunas que vão mostrar a quantidade em percentual de refugo e de retrabalho.
Se eu não estiver enganado, eu quero deixar essas duas funções que calculam o percentual na classe modelo, assim todos os relatórios irão buscar a fómula de cálculo nessa classe, e se por ventura a fórmula alterar futuramente eu só altero essa classe e todos os relatório estão salvos (rsss).
Vamos a dúvida, se declarada essa função na classe modelo como eu chamo ela na hora de popular a lista?
Seguem meus códigos:
RefugoRetrabalho.java
public class RefugoRetrabalho {
// Variáveis
private Date data;
private int semana;
private String rua;
private String turma;
private int producao;
private int refugo;
private int retrabalho;
// Eu colo a função que fará o cálculo aqui?
// A fórmula é : (refugo / producao)*100
// Getters e Setters aqui abaixo...
}
RefugoRetrabalhoDAO.java
List<RefugoRetrabalho> refugoRetrabalhos = new ArrayList<RefugoRetrabalho>();
//Neste trecho que não coloquei ele faz o stmt no bd, e etc... tudo ok até o momento...
// Na linha abaixo dentro do list ele chama a função que popula a lista
while (rs.next()) {
refugoRetrabalhos.add(populaRefugoRetrabalho(rs));
}
//...
//Função que popula a lista com os valores do BD
private RefugoRetrabalho populaRefugoRetrabalho(ResultSet rs) throws SQLException {
RefugoRetrabalho refugoRetrabalho = new RefugoRetrabalho();
// popula o objeto
refugoRetrabalho.setData(rs.getDate("data"));
refugoRetrabalho.setSemana(rs.getInt("semana"));
refugoRetrabalho.setRua(rs.getString("rua"));
refugoRetrabalho.setTurma(rs.getString("turma"));
refugoRetrabalho.setProducao(rs.getInt("somaProducao"));
refugoRetrabalho.setRefugo(rs.getInt("somaRefugo"));
refugoRetrabalho.setRetrabalho(rs.getInt("somaRetrabalho"));
return refugoRetrabalho;
}
//A lista está sendo gerada corretamente, mas preciso de mais duas informações nela.
//Onde coloco e como eu chamo a função que irá pegar a quantide produzida e a quantidade de refugo para calcular o percentual??
Relatorio.jsp
<table>
<thead>
<tr>
<th width="11%">Data</th>
<th width="11%">Semana</th>
<th width="11%">Rua</th>
<th width="11%">Turma</th>
<th width="11%">Produção</th>
<th width="11%">Refugo</th>
<th width="11%">Refugo %</th>
<th width="11%">Retrabalho</th>
<th width="11%">Retrabalho %</th>
</tr>
</thead>
<c:forEach var="prod" items="${refugoRetrabalho}">
<tr>
<td><fmt:formatDate value="${prod.data}" pattern="dd/MM/yyyy" /></td>
<td>${prod.semana}</td>
<td>${prod.rua}</td>
<td>${prod.turma}</td>
<td>${prod.producao}</td>
<td>${prod.refugo}</td>
<td>QUERO MOSTRAR O % DE REFUGO</td>
<td>${prod.retrabalho}</td>
<td>QUERO MOSTRAR O % DE RETRABALHO</td>
</tr>
</c:forEach>
</table>
Como eu disse, vários outros relatórios vão usar essa fórmula de cálculo, por isso não quero só colocar a fórmula na variável e pronto, se eu fizer isso terei de escrever a fórmula em todos os relatórios e para manutenções futuras ai é osso!
Fico no aguardo.
Abraços!