package br.com.centralit.citcorpore.ajaxForms; import java.util.ArrayList; import java.util.Collection; import java.util.Date; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import net.sf.jasperreports.engine.JRDataSource; import net.sf.jasperreports.engine.JRParameter; import net.sf.jasperreports.engine.JasperExportManager; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; import net.sf.jasperreports.engine.export.JRXlsExporter; import net.sf.jasperreports.engine.export.JRXlsExporterParameter; import net.sf.jasperreports.engine.fill.JRAbstractLRUVirtualizer; import net.sf.jasperreports.engine.fill.JRSwapFileVirtualizer; import net.sf.jasperreports.engine.util.JRSwapFile; import br.com.centralit.citajax.html.AjaxFormAction; import br.com.centralit.citajax.html.DocumentHTML; import br.com.centralit.citcorpore.bean.BaseConhecimentoDTO; import br.com.centralit.citcorpore.bean.ComentariosDTO; import br.com.centralit.citcorpore.bean.RelatorioQuantitativoBaseConhecimentoDTO; import br.com.centralit.citcorpore.bean.UsuarioDTO; import br.com.centralit.citcorpore.negocio.BaseConhecimentoService; import br.com.centralit.citcorpore.negocio.ContratoService; import br.com.centralit.citcorpore.util.CITCorporeUtil; import br.com.centralit.citcorpore.util.Enumerados; import br.com.centralit.citcorpore.util.LogoRel; import br.com.centralit.citcorpore.util.UtilRelatorio; import br.com.centralit.citcorpore.util.WebUtil; import br.com.citframework.excecao.ServiceException; import br.com.citframework.service.ServiceLocator; import br.com.citframework.util.Constantes; import br.com.citframework.util.UtilDatas; import br.com.citframework.util.UtilI18N; /** * * @author rodrigo.oliveira * */ @SuppressWarnings({ "rawtypes", "unused" }) public class RelatorioQuantitativoBaseConhecimento extends AjaxFormAction { private UsuarioDTO usuario; private String localeSession; private BaseConhecimentoService baseConhecimentoService; @Override public void load(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { setUsuario(WebUtil.getUsuario(request)); if (getUsuario() == null) { document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.sessaoExpirada")); document.executeScript("window.location = '" + Constantes.getValue("SERVER_ADDRESS") + request.getContextPath() + "'"); return; } // Preenchendo a combobox de contratos. document.getSelectById("idContrato").removeAllOptions(); ContratoService contratoService = (ContratoService) ServiceLocator.getInstance().getService(ContratoService.class, null); Collection colContrato = contratoService.list(); document.getSelectById("idContrato").addOption("", UtilI18N.internacionaliza(request, "citcorpore.comum.todos") ); document.getSelectById("idContrato").addOptions(colContrato, "idContrato", "numero", null); } @Override public Class getBeanClass() { return BaseConhecimentoDTO.class; } public void imprimirRelatorioQuantitativoBaseConhecimento(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { HttpSession session = ((HttpServletRequest) request).getSession(); BaseConhecimentoDTO baseConhecimentoDTO = (BaseConhecimentoDTO) document.getBean(); setUsuario(WebUtil.getUsuario(request)); if (getUsuario() == null) { document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.sessaoExpirada") ); document.executeScript("window.location = '" + Constantes.getValue("SERVER_ADDRESS") + request.getContextPath() + "'"); document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide(); return; } Integer totalConhecimentoCriado = 0; Integer totalConhecimentoAprovado = 0; Collection<RelatorioQuantitativoBaseConhecimentoDTO> listaDadosRelatorio = new ArrayList<RelatorioQuantitativoBaseConhecimentoDTO>(); Collection<BaseConhecimentoDTO> listaQuantidadeBaseConhecimento = getBaseConhecimentoService().quantidadeBaseConhecimentoPorPeriodo(baseConhecimentoDTO); Collection<ComentariosDTO> listaComentarios = getBaseConhecimentoService().consultaConhecimentosAvaliados(baseConhecimentoDTO); Collection<BaseConhecimentoDTO> listaAutores = getBaseConhecimentoService().consultaConhecimentosPorAutores(baseConhecimentoDTO); Collection<BaseConhecimentoDTO> listaAprovadores = getBaseConhecimentoService().consultaConhecimentosPorAprovadores(baseConhecimentoDTO); Collection<BaseConhecimentoDTO> listaPublicadosPorOrigem = getBaseConhecimentoService().consultaConhecimentosPublicadosPorOrigem(baseConhecimentoDTO); Collection<BaseConhecimentoDTO> listaNaoPublicadosPorOrigem = getBaseConhecimentoService().consultaConhecimentosNaoPublicadosPorOrigem(baseConhecimentoDTO); RelatorioQuantitativoBaseConhecimentoDTO relatorioQuantitativoBaseConhecimentoDTO = new RelatorioQuantitativoBaseConhecimentoDTO(); if (listaQuantidadeBaseConhecimento != null) { relatorioQuantitativoBaseConhecimentoDTO.setListaBaseConhecimento(listaQuantidadeBaseConhecimento); } if(listaComentarios != null){ relatorioQuantitativoBaseConhecimentoDTO.setListaComentarios(listaComentarios); } if(listaAutores != null){ relatorioQuantitativoBaseConhecimentoDTO.setListaAutores(listaAutores); for (BaseConhecimentoDTO baseConhecimentoDTO2 : listaAutores) { totalConhecimentoCriado += baseConhecimentoDTO2.getQtdConhecimentoPorUsuario(); } } if(listaAprovadores != null){ relatorioQuantitativoBaseConhecimentoDTO.setListaAprovadores(listaAprovadores); for (BaseConhecimentoDTO baseConhecimentoDTO2 : listaAprovadores) { totalConhecimentoAprovado += baseConhecimentoDTO2.getQtdConhecimentoPorAprovador(); } } if(listaPublicadosPorOrigem != null){ for (BaseConhecimentoDTO baseConhecimentoDTO2 : listaPublicadosPorOrigem) { if(baseConhecimentoDTO2.getOrigem() != null && !baseConhecimentoDTO2.getOrigem().equalsIgnoreCase("")){ String nomeOrigem = Enumerados.OrigemBaseConhecimento.getDescOrigemByOrigem(Integer.parseInt(baseConhecimentoDTO2.getOrigem())); baseConhecimentoDTO2.setNomeOrigem(nomeOrigem); }else{ baseConhecimentoDTO2.setNomeOrigem("-"); } } relatorioQuantitativoBaseConhecimentoDTO.setListaPublicadosPorOrigem(listaPublicadosPorOrigem); } if(listaNaoPublicadosPorOrigem != null){ for (BaseConhecimentoDTO baseConhecimentoDTO2 : listaNaoPublicadosPorOrigem) { if(baseConhecimentoDTO2.getOrigem() != null && !baseConhecimentoDTO2.getOrigem().trim().equalsIgnoreCase("")){ String nomeOrigem = Enumerados.OrigemBaseConhecimento.getDescOrigemByOrigem(Integer.parseInt(baseConhecimentoDTO2.getOrigem())); baseConhecimentoDTO2.setNomeOrigem(nomeOrigem); }else{ baseConhecimentoDTO2.setNomeOrigem("-"); } } relatorioQuantitativoBaseConhecimentoDTO.setListaNaoPublicadosPorOrigem(listaNaoPublicadosPorOrigem); } if(relatorioQuantitativoBaseConhecimentoDTO != null){ listaDadosRelatorio.add(relatorioQuantitativoBaseConhecimentoDTO); } Date dt = new Date(); String strCompl = "" + dt.getTime(); String caminhoJasper = CITCorporeUtil.CAMINHO_REAL_APP + Constantes.getValue("CAMINHO_RELATORIOS") + "RelatorioQuantitativoBaseConhecimento.jasper"; String diretorioReceita = CITCorporeUtil.CAMINHO_REAL_APP + "/tempFiles"; String diretorioRelativoOS = Constantes.getValue("SERVER_ADDRESS") + Constantes.getValue("CONTEXTO_APLICACAO") + "/tempFiles"; Map<String, Object> parametros = new HashMap<String, Object>(); parametros = UtilRelatorio.trataInternacionalizacaoLocale(session, parametros); parametros.put("TITULO_RELATORIO",UtilI18N.internacionaliza(request, "relatorioQuantitativoBaseConhecimento.relatorioQuantitativoBaseConhecimento") ); parametros.put("CIDADE",UtilI18N.internacionaliza(request, "citcorpore.comum.relatorioCidade") ); parametros.put("DATA_HORA", UtilDatas.getDataHoraAtual() ); parametros.put("NOME_USUARIO", getUsuario().getNomeUsuario() ); parametros.put("dataInicio", baseConhecimentoDTO.getDataInicio() ); parametros.put("dataFim", baseConhecimentoDTO.getDataFim() ); parametros.put("TOTAL_CONHECIMENTO_CRIADO", totalConhecimentoCriado); parametros.put("TOTAL_CONHECIMENTO_APROVADO", totalConhecimentoAprovado); parametros.put("Logo", LogoRel.getFile()); if (listaDadosRelatorio.size() == 0) { document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.relatorioVazio") ); document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide(); return; } try{ JRDataSource dataSource = new JRBeanCollectionDataSource(listaDadosRelatorio); JRSwapFile arquivoSwap = new JRSwapFile(diretorioReceita, 4096, 25); JRAbstractLRUVirtualizer virtualizer = new JRSwapFileVirtualizer(25, arquivoSwap, true); parametros.put(JRParameter.REPORT_VIRTUALIZER, virtualizer); JasperPrint print = JasperFillManager.fillReport(caminhoJasper, parametros, dataSource); //JasperViewer.viewReport(print,false); JasperExportManager.exportReportToPdfFile(print, diretorioReceita + "/RelatorioQuantitativoBaseConhecimento" + strCompl + "_" + getUsuario().getIdUsuario() + ".pdf"); document.executeScript("window.open('" + Constantes.getValue("SERVER_ADDRESS") + Constantes.getValue("CONTEXTO_APLICACAO") + "/printPDF/printPDF.jsp?url=" + diretorioRelativoOS + "/RelatorioQuantitativoBaseConhecimento" + strCompl + "_" + getUsuario().getIdUsuario() + ".pdf')"); } catch(OutOfMemoryError e) { document.alert(UtilI18N.internacionaliza(request, "citcorpore.erro.erroServidor")); } document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide(); } public void imprimirRelatorioQuantitativoBaseConhecimentoXls(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { HttpSession session = ((HttpServletRequest) request).getSession(); BaseConhecimentoDTO baseConhecimentoDTO = (BaseConhecimentoDTO) document.getBean(); setUsuario(WebUtil.getUsuario(request)); if (getUsuario() == null) { document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.sessaoExpirada") ); document.executeScript("window.location = '" + Constantes.getValue("SERVER_ADDRESS") + request.getContextPath() + "'"); document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide(); return; } Integer totalConhecimentoCriado = 0; Integer totalConhecimentoAprovado = 0; Collection<RelatorioQuantitativoBaseConhecimentoDTO> listaDadosRelatorio = new ArrayList<RelatorioQuantitativoBaseConhecimentoDTO>(); Collection<BaseConhecimentoDTO> listaQuantidadeBaseConhecimento = getBaseConhecimentoService().quantidadeBaseConhecimentoPorPeriodo(baseConhecimentoDTO); Collection<ComentariosDTO> listaComentarios = getBaseConhecimentoService().consultaConhecimentosAvaliados(baseConhecimentoDTO); Collection<BaseConhecimentoDTO> listaAutores = getBaseConhecimentoService().consultaConhecimentosPorAutores(baseConhecimentoDTO); Collection<BaseConhecimentoDTO> listaAprovadores = getBaseConhecimentoService().consultaConhecimentosPorAprovadores(baseConhecimentoDTO); Collection<BaseConhecimentoDTO> listaPublicadosPorOrigem = getBaseConhecimentoService().consultaConhecimentosPublicadosPorOrigem(baseConhecimentoDTO); Collection<BaseConhecimentoDTO> listaNaoPublicadosPorOrigem = getBaseConhecimentoService().consultaConhecimentosNaoPublicadosPorOrigem(baseConhecimentoDTO); RelatorioQuantitativoBaseConhecimentoDTO relatorioQuantitativoBaseConhecimentoDTO = new RelatorioQuantitativoBaseConhecimentoDTO(); if (listaQuantidadeBaseConhecimento != null) { relatorioQuantitativoBaseConhecimentoDTO.setListaBaseConhecimento(listaQuantidadeBaseConhecimento); } if(listaComentarios != null){ relatorioQuantitativoBaseConhecimentoDTO.setListaComentarios(listaComentarios); } if(listaAutores != null){ relatorioQuantitativoBaseConhecimentoDTO.setListaAutores(listaAutores); for (BaseConhecimentoDTO baseConhecimentoDTO2 : listaAutores) { totalConhecimentoCriado += baseConhecimentoDTO2.getQtdConhecimentoPorUsuario(); } } if(listaAprovadores != null){ relatorioQuantitativoBaseConhecimentoDTO.setListaAprovadores(listaAprovadores); for (BaseConhecimentoDTO baseConhecimentoDTO2 : listaAprovadores) { totalConhecimentoAprovado += baseConhecimentoDTO2.getQtdConhecimentoPorAprovador(); } } if(listaPublicadosPorOrigem != null){ for (BaseConhecimentoDTO baseConhecimentoDTO2 : listaPublicadosPorOrigem) { if(baseConhecimentoDTO2.getOrigem() != null && !baseConhecimentoDTO2.getOrigem().equalsIgnoreCase("")){ String nomeOrigem = Enumerados.OrigemBaseConhecimento.getDescOrigemByOrigem(Integer.parseInt(baseConhecimentoDTO2.getOrigem())); baseConhecimentoDTO2.setNomeOrigem(nomeOrigem); }else{ baseConhecimentoDTO2.setNomeOrigem("-"); } } relatorioQuantitativoBaseConhecimentoDTO.setListaPublicadosPorOrigem(listaPublicadosPorOrigem); } if(listaNaoPublicadosPorOrigem != null){ for (BaseConhecimentoDTO baseConhecimentoDTO2 : listaNaoPublicadosPorOrigem) { if(baseConhecimentoDTO2.getOrigem() != null && !baseConhecimentoDTO2.getOrigem().equalsIgnoreCase("")){ String nomeOrigem = Enumerados.OrigemBaseConhecimento.getDescOrigemByOrigem(Integer.parseInt(baseConhecimentoDTO2.getOrigem())); baseConhecimentoDTO2.setNomeOrigem(nomeOrigem); }else{ baseConhecimentoDTO2.setNomeOrigem("-"); } } relatorioQuantitativoBaseConhecimentoDTO.setListaNaoPublicadosPorOrigem(listaNaoPublicadosPorOrigem); } if(relatorioQuantitativoBaseConhecimentoDTO != null){ listaDadosRelatorio.add(relatorioQuantitativoBaseConhecimentoDTO); } Date dt = new Date(); String strCompl = "" + dt.getTime(); String caminhoJasper = CITCorporeUtil.CAMINHO_REAL_APP + Constantes.getValue("CAMINHO_RELATORIOS") + "RelatorioQuantitativoBaseConhecimentoXls.jasper"; String diretorioReceita = CITCorporeUtil.CAMINHO_REAL_APP + "/tempFiles"; String diretorioRelativoOS = Constantes.getValue("SERVER_ADDRESS") + Constantes.getValue("CONTEXTO_APLICACAO") + "/tempFiles"; Map<String, Object> parametros = new HashMap<String, Object>(); parametros = UtilRelatorio.trataInternacionalizacaoLocale(session, parametros); parametros.put("TITULO_RELATORIO",UtilI18N.internacionaliza(request, "relatorioQuantitativoBaseConhecimento.relatorioQuantitativoBaseConhecimento") ); parametros.put("CIDADE",UtilI18N.internacionaliza(request, "citcorpore.comum.relatorioCidade") ); parametros.put("DATA_HORA", UtilDatas.getDataHoraAtual() ); parametros.put("NOME_USUARIO", getUsuario().getNomeUsuario() ); parametros.put("dataInicio", baseConhecimentoDTO.getDataInicio() ); parametros.put("dataFim", baseConhecimentoDTO.getDataFim() ); parametros.put("TOTAL_CONHECIMENTO_CRIADO", totalConhecimentoCriado); parametros.put("TOTAL_CONHECIMENTO_APROVADO", totalConhecimentoAprovado); parametros.put("Logo", LogoRel.getFile()); if (listaDadosRelatorio.size() == 0) { document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.relatorioVazio") ); document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide(); return; } try{ JRDataSource dataSource = new JRBeanCollectionDataSource(listaDadosRelatorio); JRSwapFile arquivoSwap = new JRSwapFile(diretorioReceita, 4096, 25); JRAbstractLRUVirtualizer virtualizer = new JRSwapFileVirtualizer(25, arquivoSwap, true); parametros.put(JRParameter.REPORT_VIRTUALIZER, virtualizer); JasperPrint print = JasperFillManager.fillReport(caminhoJasper, parametros, dataSource); //JasperViewer.viewReport(print,false); JRXlsExporter exporter = new JRXlsExporter(); exporter.setParameter(JRXlsExporterParameter.JASPER_PRINT, print); exporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, Boolean.TRUE); exporter.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND, Boolean.TRUE); exporter.setParameter(JRXlsExporterParameter.IS_FONT_SIZE_FIX_ENABLED, Boolean.TRUE); exporter.setParameter(JRXlsExporterParameter.OUTPUT_FILE_NAME, diretorioReceita + "/RelatorioQuantitativoBaseConhecimentoXls" + strCompl + "_" + usuario.getIdUsuario() + ".xls"); exporter.exportReport(); document.executeScript("window.open('" + Constantes.getValue("SERVER_ADDRESS") + Constantes.getValue("CONTEXTO_APLICACAO") + "/printPDF/printPDF.jsp?url=" + diretorioRelativoOS + "/RelatorioQuantitativoBaseConhecimentoXls" + strCompl + "_" + getUsuario().getIdUsuario() + ".xls')"); } catch(OutOfMemoryError e) { document.alert(UtilI18N.internacionaliza(request, "citcorpore.erro.erroServidor")); } document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide(); } public String getLocaleSession() { return localeSession; } public void setLocaleSession(String localeSession) { this.localeSession = localeSession; } public BaseConhecimentoService getBaseConhecimentoService() throws ServiceException, Exception { return (BaseConhecimentoService) ServiceLocator.getInstance().getService(BaseConhecimentoService.class, null); } public UsuarioDTO getUsuario() { return usuario; } public void setUsuario(UsuarioDTO usuario) { this.usuario = usuario; } }