fixes bug#24083
dev: qua: git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@111258 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
5874a3bff5
commit
ccdf5e9025
|
@ -2,20 +2,23 @@ package com.rjconsultores.ventaboletos.relatorios.impl;
|
|||
|
||||
import java.sql.Connection;
|
||||
import java.sql.ResultSet;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.rjconsultores.ventaboletos.relatorios.utilitarios.ArrayDataSource;
|
||||
import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio;
|
||||
import com.rjconsultores.ventaboletos.service.ConstanteService;
|
||||
import com.rjconsultores.ventaboletos.relatorios.utilitarios.RelatorioBpeNumeracaoReusoBean;
|
||||
import com.rjconsultores.ventaboletos.utilerias.DateUtil;
|
||||
import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement;
|
||||
import com.rjconsultores.ventaboletos.web.utilerias.spring.AppContext;
|
||||
|
||||
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
|
||||
|
||||
public class RelatorioBpeNumeracaoReuso extends Relatorio {
|
||||
|
||||
private ConstanteService constanteService;
|
||||
private List<RelatorioBpeNumeracaoReusoBean> lsDadosRelatorio;
|
||||
|
||||
public RelatorioBpeNumeracaoReuso(Map<String, Object> parametros, Connection conexao) throws Exception {
|
||||
|
||||
|
@ -32,7 +35,6 @@ public class RelatorioBpeNumeracaoReuso extends Relatorio {
|
|||
Date dtInicio = (Date) parametros.get("DATA_INICIO");
|
||||
Date dtFim = (Date) parametros.get("DATA_FIM");
|
||||
|
||||
|
||||
NamedParameterStatement ps = new NamedParameterStatement(conexao, sql.toString());
|
||||
if(dtInicio != null && dtFim != null) {
|
||||
ps.setString("dataInicio", DateUtil.getStringDate(dtInicio, "dd/MM/yyyy") + " 00:00:00");
|
||||
|
@ -40,40 +42,19 @@ public class RelatorioBpeNumeracaoReuso extends Relatorio {
|
|||
}
|
||||
|
||||
ResultSet rset = ps.executeQuery();
|
||||
lsDadosRelatorio = new ArrayList<RelatorioBpeNumeracaoReusoBean>();
|
||||
|
||||
while (rset.next()) {
|
||||
Map<String, Object> dataResult = new HashMap<String, Object>();
|
||||
|
||||
dataResult.put("numeroBPE", rset.getString("numeroBPE"));
|
||||
dataResult.put("serieBPE", rset.getString("serieBPE"));
|
||||
dataResult.put("estado", rset.getString("estado"));
|
||||
this.dados.add(dataResult);
|
||||
}
|
||||
|
||||
if(parametros.get("ESTADOS_ID") == null){
|
||||
sql = getSqlBuscarInicialFinal(parametros);
|
||||
|
||||
dtInicio = (Date) parametros.get("DATA_INICIO");
|
||||
dtFim = (Date) parametros.get("DATA_FIM");
|
||||
|
||||
|
||||
ps = new NamedParameterStatement(conexao, sql.toString());
|
||||
if(dtInicio != null && dtFim != null) {
|
||||
ps.setString("dataInicio", DateUtil.getStringDate(dtInicio, "dd/MM/yyyy") + " 00:00:00");
|
||||
ps.setString("dataFinal", DateUtil.getStringDate(dtFim, "dd/MM/yyyy") + " 23:59:59");
|
||||
}
|
||||
|
||||
rset = ps.executeQuery();
|
||||
|
||||
while (rset.next()) {
|
||||
parametros.put("inicialAutorizado", rset.getString("inicialAutorizado"));
|
||||
parametros.put("finalAutorizado", rset.getString("finalAutorizado"));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
while (rset.next()) {
|
||||
RelatorioBpeNumeracaoReusoBean bean = new RelatorioBpeNumeracaoReusoBean();
|
||||
bean.setEstado(rset.getString("estado"));
|
||||
bean.setSerieBPE(rset.getString("serieBPE"));
|
||||
bean.setNumeroBPE( rset.getInt("numeroBPE"));
|
||||
lsDadosRelatorio.add(bean);
|
||||
}
|
||||
buscarInicialFinalPorUf();
|
||||
setLsDadosRelatorio(lsDadosRelatorio);
|
||||
this.resultSet = rset;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -83,81 +64,83 @@ public class RelatorioBpeNumeracaoReuso extends Relatorio {
|
|||
|
||||
private String getSql(Map<String, Object> parametros) {
|
||||
|
||||
StringBuilder sql = new StringBuilder();
|
||||
constanteService = (ConstanteService) AppContext.getApplicationContext().getBean("constanteService");
|
||||
|
||||
String estados = (String) parametros.get("ESTADOS_ID");
|
||||
String empresaId = (String) parametros.get("EMPRESA_ID");
|
||||
Date dtInicio = (Date) parametros.get("DATA_INICIO");
|
||||
Date dtFim = (Date) parametros.get("DATA_FIM");
|
||||
|
||||
|
||||
getSelectFrom(sql);
|
||||
|
||||
getWhere(sql, constanteService, estados, empresaId, dtInicio, dtFim, false);
|
||||
String sql = getSql( estados, empresaId, dtInicio, dtFim);
|
||||
|
||||
sql.append(" group by TO_NUMBER(BOL.NUM_BPE) , BOL.numserie_bpe, E.nombestado ORDER BY TO_NUMBER(BOL.NUM_BPE), BOL.NUMSERIE_BPE, E.NOMBESTADO ASC ");
|
||||
|
||||
return sql.toString();
|
||||
}
|
||||
|
||||
private String getSqlBuscarInicialFinal(Map<String, Object> parametros) {
|
||||
|
||||
StringBuilder sql = new StringBuilder();
|
||||
|
||||
String estados = (String) parametros.get("ESTADOS_ID");
|
||||
String empresaId = (String) parametros.get("EMPRESA_ID");
|
||||
Date dtInicio = (Date) parametros.get("DATA_INICIO");
|
||||
Date dtFim = (Date) parametros.get("DATA_FIM");
|
||||
private String getSql(String estados, String empresaId, Date dtInicio, Date dtFim) {
|
||||
|
||||
|
||||
getSelectFromInicialFinalAutorizado(sql);
|
||||
|
||||
getWhere(sql, constanteService, estados, empresaId, dtInicio, dtFim, true);
|
||||
|
||||
|
||||
return sql.toString();
|
||||
}
|
||||
|
||||
private void getWhere(StringBuilder sql, ConstanteService constanteService, String estados, String empresaId, Date dtInicio, Date dtFim, boolean buscarUltimoFinal) {
|
||||
sql.append(" WHERE r.num_bpe IS NULL and e.ACTIVO = 1 ");
|
||||
|
||||
StringBuilder sql = new StringBuilder();
|
||||
|
||||
sql.append("select tabela.estado as estado , tabela.serieBPE as serieBPE, to_number(tabela.numeroBPE) as numeroBPE, estadoId as estadoId from ( select (to_number(bol.num_bpe) + 1) as numeroBPE, BOL.NUMSERIE_BPE as serieBPE, E.NOMBESTADO as estado, e.estado_id as estadoId ");
|
||||
sql.append(" FROM BOLETO bol ");
|
||||
sql.append(" LEFT outer JOIN BOLETO r on bol.num_bpe + 1 = r.num_bpe ");
|
||||
sql.append(" inner join parada origem on origem.parada_id = bol.origen_id ");
|
||||
sql.append(" inner join ciudad cidade on cidade.ciudad_id = origem.ciudad_id ");
|
||||
sql.append(" inner join estado e on (e.estado_id = cidade.estado_id) ");
|
||||
if (empresaId != null) {
|
||||
sql.append(" AND ep.EMPRESA_ID IN( " + empresaId + " ) ");
|
||||
sql.append(" AND bol.EMPRESACORRIDA_ID IN( " + empresaId + " ) ");
|
||||
}
|
||||
if (estados != null) {
|
||||
sql.append(" AND e.ESTADO_ID IN ( " + estados + " )");
|
||||
}
|
||||
sql.append(" and bol.fechorventa between to_date(:dataInicio,'dd/MM/yyyy hh24:mi:ss') and to_date(:dataFinal,'dd/MM/yyyy hh24:mi:ss') ");
|
||||
sql.append(" and not exists (select * from bpe_ctrl_disponibilidade bcd where bcd.BPE_REJEITADO_ID = bpe.bpe_id and activo = 1) ");
|
||||
|
||||
if (buscarUltimoFinal) {
|
||||
sql.append(" ) tabela ");
|
||||
}
|
||||
}
|
||||
|
||||
private void getSelectFrom(StringBuilder sql) {
|
||||
sql.append("select (to_number(bol.num_bpe) + 1) as numeroBPE, BOL.NUMSERIE_BPE as serieBPE, E.NOMBESTADO as estado ");
|
||||
sql.append(" minus ");
|
||||
sql.append("select to_number(bol.num_bpe) as numeroBPE , BOL.NUMSERIE_BPE as serieBPE, E.NOMBESTADO as estado, e.estado_id as estadoId ");
|
||||
sql.append(" FROM BOLETO bol ");
|
||||
sql.append(" LEFT outer JOIN BOLETO r on bol.num_bpe + 1 = r.num_bpe ");
|
||||
sql.append(" LEFT JOIN BPE bpe ON bol.BOLETO_ID = bpe.BOLETO_ID and bpe.activo = 1 ");
|
||||
sql.append(" LEFT JOIN estado e ON e.CODIBGE = bpe.UF ");
|
||||
sql.append(" LEFT JOIN marca ma ON bol.MARCA_ID = ma.MARCA_ID ");
|
||||
sql.append(" LEFT JOIN empresa ep on ma.EMPRESA_ID = ep.EMPRESA_ID ");
|
||||
|
||||
}
|
||||
|
||||
private void getSelectFromInicialFinalAutorizado(StringBuilder sql){
|
||||
|
||||
sql.append("select min(tabela.numeroBPE) as inicialAutorizado, max(tabela.numeroBPE) as finalAutorizado from (SELECT (to_number(bol.num_bpe) + 1) AS numeroBPE ");
|
||||
sql.append(" FROM BOLETO bol ");
|
||||
sql.append(" LEFT outer JOIN BOLETO r on bol.num_bpe + 1 = r.num_bpe ");
|
||||
sql.append(" LEFT JOIN BPE bpe ON bol.BOLETO_ID = bpe.BOLETO_ID and bpe.activo = 1 ");
|
||||
sql.append(" LEFT JOIN estado e ON e.codibge = bpe.uf");
|
||||
sql.append(" LEFT JOIN marca ma ON bol.marca_id = ma.marca_id");
|
||||
sql.append(" LEFT JOIN empresa ep ON ma.empresa_id = ep.empresa_id");
|
||||
|
||||
|
||||
sql.append(" inner join parada origem on origem.parada_id = bol.origen_id ");
|
||||
sql.append(" inner join ciudad cidade on cidade.ciudad_id = origem.ciudad_id ");
|
||||
sql.append(" inner join estado e on (e.estado_id = cidade.estado_id) ");
|
||||
if (empresaId != null) {
|
||||
sql.append(" AND bol.EMPRESACORRIDA_ID IN( " + empresaId + " ) ");
|
||||
}
|
||||
if (estados != null) {
|
||||
sql.append(" AND e.ESTADO_ID IN ( " + estados + " )");
|
||||
}
|
||||
sql.append(" ) tabela ");
|
||||
sql.append(" group by tabela.estado, tabela.serieBPE, numeroBPE, estadoId ");
|
||||
sql.append(" ORDER BY tabela.estado, tabela.serieBPE, tabela.numeroBPE ASC ");
|
||||
return sql.toString();
|
||||
}
|
||||
public void setLsDadosRelatorio(List<RelatorioBpeNumeracaoReusoBean> lsDadosRelatorio) {
|
||||
this.setCollectionDataSource(new JRBeanCollectionDataSource(lsDadosRelatorio));
|
||||
this.lsDadosRelatorio = lsDadosRelatorio;
|
||||
}
|
||||
private void buscarInicialFinalPorUf() {
|
||||
|
||||
String estado = "";
|
||||
List<Integer> bpes = new ArrayList<Integer>();
|
||||
Map<String, String> estados = converterListaParaMap(lsDadosRelatorio);
|
||||
|
||||
for (Map.Entry<String, String> entry : estados.entrySet()) {
|
||||
estado = entry.getValue();
|
||||
if(estado != null){
|
||||
for (RelatorioBpeNumeracaoReusoBean relatorio2 : lsDadosRelatorio) {
|
||||
if(estado.equals(relatorio2.getEstado())){
|
||||
bpes.add(relatorio2.getNumeroBPE());
|
||||
}
|
||||
}
|
||||
for (RelatorioBpeNumeracaoReusoBean relatorio2 : lsDadosRelatorio) {
|
||||
if(estado.equals(relatorio2.getEstado())){
|
||||
relatorio2.setFinalAutorizado(bpes.get(bpes.size()-1));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public Map<String, String> converterListaParaMap(List<RelatorioBpeNumeracaoReusoBean> list) {
|
||||
Map<String, String> map = new HashMap<String,String>();
|
||||
for (RelatorioBpeNumeracaoReusoBean relatorio : list) {
|
||||
map.put(relatorio.getEstado(), relatorio.getEstado());
|
||||
}
|
||||
return map;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue