[quote=adriano_si]você já desenvolveu algum código ??? Põe aí pra gente dar uma olhada no que já andou…
Abs 8)[/quote]
Agora no finalzinho da tarde deu uma andada, até que enfim…
[code]public void gerar(String dataInicio, String dataFim, String entradas, String saidas){
PreparedStatement pst = null;
String sql = null;
try {
//
// == SELECIONANDO ENTRADAS ==
//
sql = " SELECT COUNT(m.id) as total, " +
" tm.nome as movimentacao, tm.id as idTipoMovimentacao, " +
" e.nome as equipe, e.id as idEquipe, " +
" i.nome as instancia, i.id as idInstancia " +
" FROM movimentacoes m " +
" RIGHT JOIN tipomovimentacoes tm ON tm.id = m.idMovimentacao " +
" AND m.dataHora BETWEEN ? AND ? " +
" AND m.idMovimentacao IN ("+entradas+","+saidas+") " +
" RIGHT JOIN equipes e ON m.idEquipe = e.id " +
" RIGHT JOIN instancias i ON i.id = m.idInstancia " +
" GROUP BY i.nome, e.nome, tm.nome " +
" ORDER BY i.id ";
pst = this.getConnection().prepareStatement(sql);
pst.setString(1, dataInicio);
pst.setString(2, dataFim);
// pst.setInt(3, entradas+","+saidas);
pst.execute();
ResultSet rs = pst.getResultSet();
HashMap<String , HashMap<String , RelatorioGeralVO>> instancias = new HashMap<String , HashMap<String , RelatorioGeralVO>>();
while (rs.next()) {
// ==
// == CRIANDO CASO NÃO ETEJA CRIADO AINDA, PRA NÃO DAR EXCPTION ==
// ==
// se nao tiver instancia ainda
if(instancias.get(rs.getString("instancia")) == null)
instancias.put(rs.getString("instancia"), new HashMap<String, RelatorioGeralVO>());
// se nao tiver a instancia dentro da instancia
if(instancias.get(rs.getString("instancia")).get(rs.getString("instancia")) == null)
instancias.get(rs.getString("instancia")).put(rs.getString("instancia"), new RelatorioGeralVO());
// se nao tiver equipe ainda
if(instancias.get(rs.getString("instancia")).get(rs.getString("equipe")) == null)
instancias.get(rs.getString("instancia")).put(rs.getString("equipe"), new RelatorioGeralVO());
// ==
// == BUSCANDO PARA COLOCAR OS DADOS DA EQUIPE ==
// ==
//atualiza o objeto dentor dela
HashMap<String , RelatorioGeralVO> equipesAux = instancias.get(rs.getString("instancia"));
RelatorioGeralVO aux = equipesAux.get(rs.getString("equipe"));
aux.setNome(rs.getString("equipe"));
//testando se é entrada ou saida
if(rs.getString("idTipoMovimentacao") != null){
if(rs.getString("idTipoMovimentacao").equalsIgnoreCase(entradas)){
aux.setEntradas(rs.getInt("total"));
}else if(rs.getString("idTipoMovimentacao").equalsIgnoreCase(saidas)){
aux.setSaidas(rs.getInt("total"));
}
}else{
aux.setSaidas(0);
aux.setEntradas(0);
}
equipesAux.put(rs.getString("equipe"), aux);
instancias.put(rs.getString("instancia"), equipesAux);
// ==
// == BUSCANDO PARA COLOCAR OS DADOS DA INSTANCIA ==
// ==
//atualiza o objeto dentor dela
HashMap<String , RelatorioGeralVO> instanciaAux = instancias.get(rs.getString("instancia"));
RelatorioGeralVO aux2 = instanciaAux.get(rs.getString("instancia"));
aux2.setNome(rs.getString("instancia"));
//testando se é entrada ou saida
if(rs.getString("idTipoMovimentacao") != null){
if(rs.getString("idTipoMovimentacao").equalsIgnoreCase(entradas)){
aux2.setEntradas(rs.getInt("total"));
}else if(rs.getString("idTipoMovimentacao").equalsIgnoreCase(saidas)){
aux2.setSaidas(rs.getInt("total"));
}
}else{
aux2.setSaidas(0);
aux2.setEntradas(0);
}
instanciaAux.put(rs.getString("equipe"), aux2);
instancias.put(rs.getString("instancia"), instanciaAux);
}
for (HashMap<String, RelatorioGeralVO> hash : instancias.values()) {
for (RelatorioGeralVO vo : hash.values()) {
System.out.println(vo.getNome()+" Entradas: "+vo.getEntradas()+" Saidas: "+vo.getSaidas());
}
}
// pst.close();
rs.close();
} catch (SQLException e) {
e.printStackTrace();
System.err.println(“Erro ao listar do banco de dados: " + e.getStackTrace() +”\n" +
"SQL: " + pst.toString());
}
} [/code]
É o que eu tenho por enquanto, ta gerando essa saída ja…
Trad Entradas: 2 Saidas: 1
Mais 1 Entradas: 1 Saidas: 1
Trad Entradas: 3 Saidas: 1
Mais 1 Entradas: 1 Saidas: 1
null Entradas: 0 Saidas: 0
Abs