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.List;
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.JasperCompileManager;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.engine.design.JasperDesign;
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 net.sf.jasperreports.engine.xml.JRXmlLoader;
import br.com.centralit.citajax.html.AjaxFormAction;
import br.com.centralit.citajax.html.DocumentHTML;
import br.com.centralit.citajax.html.HTMLSelect;
import br.com.centralit.citcorpore.bean.ContratoDTO;
import br.com.centralit.citcorpore.bean.RelatorioQuantitativoSolicitacaoDTO;
import br.com.centralit.citcorpore.bean.SolicitacaoServicoDTO;
import br.com.centralit.citcorpore.bean.UsuarioDTO;
import br.com.centralit.citcorpore.negocio.ContratoService;
import br.com.centralit.citcorpore.negocio.SolicitacaoServicoService;
import br.com.centralit.citcorpore.util.CITCorporeUtil;
import br.com.centralit.citcorpore.util.Enumerados.SituacaoSolicitacaoServico;
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.service.ServiceLocator;
import br.com.citframework.util.Constantes;
import br.com.citframework.util.UtilDatas;
import br.com.citframework.util.UtilI18N;
@SuppressWarnings({ "rawtypes", "unused" })
public class RelatorioQuantitativo extends AjaxFormAction {
UsuarioDTO usuario;
private String localeSession = null;
@Override
public void load(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
usuario = WebUtil.getUsuario(request);
if (usuario == 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.
HTMLSelect comboContrato = document.getSelectById("idContrato");
comboContrato.removeAllOptions();
ContratoService contratoService = (ContratoService) ServiceLocator.getInstance().getService(ContratoService.class, null);
Collection colContrato = contratoService.list();
comboContrato.addOption("", UtilI18N.internacionaliza(request, "citcorpore.comum.todos"));
comboContrato.addOptions(colContrato, "idContrato", "numero", null);
// Preenchendo a combobox de situacoes.
HTMLSelect comboSituacao = document.getSelectById("situacao");
comboSituacao.removeAllOptions();
comboSituacao.addOption("", UtilI18N.internacionaliza(request, "citcorpore.comum.todas"));
for (SituacaoSolicitacaoServico situacao : SituacaoSolicitacaoServico.values()) {
comboSituacao.addOption(situacao.name(), UtilI18N.internacionaliza(request, "solicitacaoServico.situacao." + situacao.name()));
}
}
@Override
public Class getBeanClass() {
return SolicitacaoServicoDTO.class;
}
/**
* Faz a impress�o do relat�rio no formato pdf.
*
* @param document
* @param request
* @param response
* @throws Exception
* @author Thays.araujo
*/
public void imprimirRelatorioQuantitativo(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
HttpSession session = ((HttpServletRequest) request).getSession();
SolicitacaoServicoDTO solicitacaoServicoDto = (SolicitacaoServicoDTO) document.getBean();
ContratoDTO contratoDto = new ContratoDTO();
SolicitacaoServicoService solicitacaoService = (SolicitacaoServicoService) ServiceLocator.getInstance().getService(SolicitacaoServicoService.class, null);
ContratoService contratoService = (ContratoService) ServiceLocator.getInstance().getService(ContratoService.class, null);
usuario = WebUtil.getUsuario(request);
if (usuario == 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;
}
if (solicitacaoServicoDto.getIdSolicitacaoServicoPesquisa() == null) {
if (solicitacaoServicoDto.getDataInicio() == null) {
document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.validacao.datainicio"));
document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide();
return;
}
if (solicitacaoServicoDto.getDataFim() == null) {
document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.validacao.datafim"));
document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide();
return;
}
}
Collection<RelatorioQuantitativoSolicitacaoDTO> listDadosRelatorio = new ArrayList<RelatorioQuantitativoSolicitacaoDTO>();
Collection<RelatorioQuantitativoSolicitacaoDTO> listPorSolicitante = solicitacaoService.listaQuantidadeSolicitacaoPorSolicitante(solicitacaoServicoDto);
Collection<RelatorioQuantitativoSolicitacaoDTO> listPorGrupo = solicitacaoService.listaQuantidadeSolicitacaoPorGrupo(request, solicitacaoServicoDto);
Collection<RelatorioQuantitativoSolicitacaoDTO> listPorItemConfiguracao = solicitacaoService.listaQuantidadeSolicitacaoPorItemConfiguracao(solicitacaoServicoDto);
Collection<RelatorioQuantitativoSolicitacaoDTO> listPorSituacao = null;
boolean filtroContemSituacao = solicitacaoServicoDto.getSituacao() != null && !solicitacaoServicoDto.getSituacao().isEmpty();
if (!filtroContemSituacao) {
listPorSituacao = solicitacaoService.listaQuantidadeSolicitacaoPorSituacao(solicitacaoServicoDto);
}
SolicitacaoServicoService solicitacaoServicoService = (SolicitacaoServicoService) ServiceLocator.getInstance().getService(SolicitacaoServicoService.class, null);
Collection<RelatorioQuantitativoSolicitacaoDTO> listPorTipo = solicitacaoService.listaQuantidadeSolicitacaoPorTipo(solicitacaoServicoDto);
Collection<RelatorioQuantitativoSolicitacaoDTO> listPorOrigem = solicitacaoService.listaQuantidadeSolicitacaoPorOrigem(solicitacaoServicoDto);
Collection<RelatorioQuantitativoSolicitacaoDTO> listPorPrioridade = solicitacaoService.listaQuantidadeSolicitacaoPorPrioridade(solicitacaoServicoDto);
Collection<RelatorioQuantitativoSolicitacaoDTO> listPorFase = solicitacaoService.listaQuantidadeSolicitacaoPorFase(solicitacaoServicoDto);
Collection<RelatorioQuantitativoSolicitacaoDTO> listPorTipoServico = solicitacaoService.listaQuantidadeSolicitacaoPorTipoServico(solicitacaoServicoDto);
Collection<RelatorioQuantitativoSolicitacaoDTO> listPorResponsavel = solicitacaoService.listaQuantidadeSolicitacaoPorResponsavel(solicitacaoServicoDto);
Collection<RelatorioQuantitativoSolicitacaoDTO> listPorHoraAbertura = solicitacaoService.listaQuantidadeSolicitacaoPorHoraAbertura(solicitacaoServicoDto);
Collection<SolicitacaoServicoDTO> listPorSituacaoSLA = solicitacaoServicoService.relatorioControleSla(solicitacaoServicoDto);
Collection<RelatorioQuantitativoSolicitacaoDTO> listPorPesquisaSatisfacao = solicitacaoService.listaQuantidadeSolicitacaoPorPesquisaSatisfacao(request, solicitacaoServicoDto);
if (listPorSolicitante != null) {
listDadosRelatorio.addAll(listPorSolicitante);
/*
* for (RelatorioQuantitativoSolicitacaoDTO porSolicitante : solicitacaoService.listaQuantidadeSolicitacaoPorSolicitante(solicitacaoServicoDto) ) { RelatorioQuantitativoSolicitacaoDTO
* relatorioQuantitativoSolictitacaoDto = new RelatorioQuantitativoSolicitacaoDTO(); relatorioQuantitativoSolictitacaoDto.setSolicitante(porSolicitante.getSolicitante() );
* relatorioQuantitativoSolictitacaoDto.setQuantidadeSolicitante(porSolicitante.getQuantidadeSolicitante() ); listDadosRelatorio.add(relatorioQuantitativoSolictitacaoDto); }
*/
}
if (listPorGrupo != null) {
listDadosRelatorio.addAll(listPorGrupo);
/*
* for (RelatorioQuantitativoSolicitacaoDTO porGrupo : solicitacaoService.listaQuantidadeSolicitacaoPorGrupo(solicitacaoServicoDto) ) { RelatorioQuantitativoSolicitacaoDTO
* relatorioQuantitativoSolicitacaoDto = new RelatorioQuantitativoSolicitacaoDTO(); relatorioQuantitativoSolicitacaoDto.setGrupo(porGrupo.getGrupo() );
* relatorioQuantitativoSolicitacaoDto.setQuantidadeGrupo(porGrupo.getQuantidadeGrupo() ); listDadosRelatorio.add(relatorioQuantitativoSolicitacaoDto); }
*/
}
if (listPorItemConfiguracao != null) {
listDadosRelatorio.addAll(listPorItemConfiguracao);
/*
* for (RelatorioQuantitativoSolicitacaoDTO porItemConfiguracao : solicitacaoService.listaQuantidadeSolicitacaoPorItemConfiguracao(solicitacaoServicoDto) ) {
* RelatorioQuantitativoSolicitacaoDTO relatorioQuantitativoSolicitacaoDto = new RelatorioQuantitativoSolicitacaoDTO();
* relatorioQuantitativoSolicitacaoDto.setItemConfiguracao(porItemConfiguracao.getItemConfiguracao() );
* relatorioQuantitativoSolicitacaoDto.setQuantidadeItemConfiguracao(porItemConfiguracao.getQuantidadeItemConfiguracao() ); listDadosRelatorio.add(relatorioQuantitativoSolicitacaoDto); }
*/
}
if (listPorSituacao != null) {
listDadosRelatorio.addAll(listPorSituacao);
/*
* for (RelatorioQuantitativoSolicitacaoDTO porSituacao : solicitacaoService.listaQuantidadeSolicitacaoPorSituacao(solicitacaoServicoDto) ) { if
* (StringUtils.contains(StringUtils.upperCase(porSituacao.getSituacao()), StringUtils.upperCase("EmAndamento") ) ) { porSituacao.setSituacao(UtilI18N.internacionaliza(request,
* "citcorpore.comum.emandamento") ); } RelatorioQuantitativoSolicitacaoDTO relatorioQuantitativoSolicitacaoDto = new RelatorioQuantitativoSolicitacaoDTO();
* relatorioQuantitativoSolicitacaoDto.setSituacao(porSituacao.getSituacao() ); relatorioQuantitativoSolicitacaoDto.setQuantidadeSituacao(porSituacao.getQuantidadeSituacao() );
* listDadosRelatorio.add(relatorioQuantitativoSolicitacaoDto); }
*/
}
if (listPorTipo != null) {
listDadosRelatorio.addAll(listPorTipo);
/*
* for (RelatorioQuantitativoSolicitacaoDTO porTipo : solicitacaoService.listaQuantidadeSolicitacaoPorTipo(solicitacaoServicoDto) ) { RelatorioQuantitativoSolicitacaoDTO
* relatorioQuantitativoSolicitacaoDto = new RelatorioQuantitativoSolicitacaoDTO(); relatorioQuantitativoSolicitacaoDto.setTipo(porTipo.getTipo() );
* relatorioQuantitativoSolicitacaoDto.setQuantidadeTipo(porTipo.getQuantidadeTipo() ); listDadosRelatorio.add(relatorioQuantitativoSolicitacaoDto); }
*/
}
if (listPorOrigem != null) {
listDadosRelatorio.addAll(listPorOrigem);
/*
* for (RelatorioQuantitativoSolicitacaoDTO porOrigem : solicitacaoService.listaQuantidadeSolicitacaoPorOrigem(solicitacaoServicoDto) ) { RelatorioQuantitativoSolicitacaoDTO
* relatorioQuantitativoSolicitacaoDto = new RelatorioQuantitativoSolicitacaoDTO(); relatorioQuantitativoSolicitacaoDto.setOrigem(porOrigem.getOrigem() );
* relatorioQuantitativoSolicitacaoDto.setQuantidadeOrigem(porOrigem.getQuantidadeOrigem() ); listDadosRelatorio.add(relatorioQuantitativoSolicitacaoDto); }
*/
}
if (listPorPrioridade != null) {
listDadosRelatorio.addAll(listPorPrioridade);
/*
* for (RelatorioQuantitativoSolicitacaoDTO porPrioridade : solicitacaoService.listaQuantidadeSolicitacaoPorPrioridade(solicitacaoServicoDto) ) { RelatorioQuantitativoSolicitacaoDTO
* relatorioQuantitativoSolicitacaoDto = new RelatorioQuantitativoSolicitacaoDTO(); relatorioQuantitativoSolicitacaoDto.setPrioridade(porPrioridade.getPrioridade() );
* relatorioQuantitativoSolicitacaoDto.setQuantidadePrioridade(porPrioridade.getQuantidadePrioridade() ); listDadosRelatorio.add(relatorioQuantitativoSolicitacaoDto); }
*/
}
if (listPorFase != null) {
listDadosRelatorio.addAll(listPorFase);
/*
* for (RelatorioQuantitativoSolicitacaoDTO porFase : solicitacaoService.listaQuantidadeSolicitacaoPorFase(solicitacaoServicoDto) ) { RelatorioQuantitativoSolicitacaoDTO
* relatorioQuantitativoSolicitacaoDto = new RelatorioQuantitativoSolicitacaoDTO(); relatorioQuantitativoSolicitacaoDto.setFase(porFase.getFase() );
* relatorioQuantitativoSolicitacaoDto.setQuantidadeFase(porFase.getQuantidadeFase() ); listDadosRelatorio.add(relatorioQuantitativoSolicitacaoDto); }
*/
}
if (listPorTipoServico != null) {
listDadosRelatorio.addAll(listPorTipoServico);
/*
* for (RelatorioQuantitativoSolicitacaoDTO porTipoServico : solicitacaoService.listaQuantidadeSolicitacaoPorTipoServico(solicitacaoServicoDto) ) { RelatorioQuantitativoSolicitacaoDTO
* relatorioQuantitativoSolicitacaoDto = new RelatorioQuantitativoSolicitacaoDTO(); relatorioQuantitativoSolicitacaoDto.setTipoServico(porTipoServico.getTipoServico() );
* relatorioQuantitativoSolicitacaoDto.setQuantidadeTipoServico(porTipoServico.getQuantidadeTipoServico() ); listDadosRelatorio.add(relatorioQuantitativoSolicitacaoDto); }
*/
}
if (listPorResponsavel != null) {
listDadosRelatorio.addAll(listPorResponsavel);
}
if (listPorHoraAbertura != null) {
listDadosRelatorio.addAll(listPorHoraAbertura);
}
if (listPorSituacaoSLA != null && !listPorSituacaoSLA.isEmpty() ) {
int qtdePrazo = 0;
int qtdeForaPrazo = 0;
if (listPorSituacaoSLA != null) {
List<RelatorioQuantitativoSolicitacaoDTO> listSituacao = new ArrayList<RelatorioQuantitativoSolicitacaoDTO>();
for (SolicitacaoServicoDTO relatorioQuantitativoSolicitacaoDTO2 : listPorSituacaoSLA) {
relatorioQuantitativoSolicitacaoDTO2 = solicitacaoServicoService.verificaSituacaoSLA(relatorioQuantitativoSolicitacaoDTO2);
if(relatorioQuantitativoSolicitacaoDTO2.getAtrasoSLAStr() != null){
if ((relatorioQuantitativoSolicitacaoDTO2.getAtrasoSLAStr() != null && relatorioQuantitativoSolicitacaoDTO2.getAtrasoSLAStr().equalsIgnoreCase("S")) || relatorioQuantitativoSolicitacaoDTO2.getAtrasoSLA() > 0) {
qtdePrazo++;
} else {
qtdeForaPrazo++;
}
}
}
RelatorioQuantitativoSolicitacaoDTO relatorioComAtraso = new RelatorioQuantitativoSolicitacaoDTO();
relatorioComAtraso.setSituacaoSLA(UtilI18N.internacionaliza(request, "citcorpore.comum.comAtraso"));
relatorioComAtraso.setQuantidadeSituacaoSLA(qtdePrazo);
listSituacao.add(relatorioComAtraso);
RelatorioQuantitativoSolicitacaoDTO relatorioSemAtraso = new RelatorioQuantitativoSolicitacaoDTO();
relatorioSemAtraso.setSituacaoSLA(UtilI18N.internacionaliza(request, "citcorpore.comum.semAtraso"));
relatorioSemAtraso.setQuantidadeSituacaoSLA(qtdeForaPrazo);
listSituacao.add(relatorioSemAtraso);
listDadosRelatorio.addAll(listSituacao);
}
}
if (listPorPesquisaSatisfacao != null) {
listDadosRelatorio.addAll(listPorPesquisaSatisfacao);
}
Date dt = new Date();
String strCompl = "" + dt.getTime();
String caminhoJasper = CITCorporeUtil.CAMINHO_REAL_APP + Constantes.getValue("CAMINHO_RELATORIOS") + "RelatorioQuantitativo.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, "relatorioQuantitativo.relatorioQuantitativo"));
parametros.put("CIDADE", UtilI18N.internacionaliza(request, "citcorpore.comum.relatorioCidade"));
parametros.put("DATA_HORA", UtilDatas.getDataHoraAtual());
parametros.put("NOME_USUARIO", usuario.getNomeUsuario());
parametros.put("dataInicio", solicitacaoServicoDto.getDataInicio());
parametros.put("dataFim", solicitacaoServicoDto.getDataFim());
parametros.put("Logo", LogoRel.getFile());
if (solicitacaoServicoDto.getSituacao() != null && !solicitacaoServicoDto.getSituacao().isEmpty()) {
parametros.put("situacao", UtilI18N.internacionaliza(request, "solicitacaoServico.situacao." + solicitacaoServicoDto.getSituacao()));
}
if (solicitacaoServicoDto.getIdContrato() != null) {
contratoDto.setIdContrato(solicitacaoServicoDto.getIdContrato());
contratoDto = (ContratoDTO) contratoService.restore(contratoDto);
}
parametros.put("contrato", contratoDto.getNumero());
if (solicitacaoServicoDto.getTipoUsuario() != null && !solicitacaoServicoDto.getTipoUsuario().isEmpty()) {
parametros.put("tipoUsuario", UtilI18N.internacionaliza(request, "citcorpore.comum." + solicitacaoServicoDto.getTipoUsuario()));
}
if (listDadosRelatorio.size() == 0) {
document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.relatorioVazio"));
document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide();
return;
}
try {
JRDataSource dataSource = new JRBeanCollectionDataSource(listDadosRelatorio);
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 + "/RelatorioQuantitativoIncidentesSolicitacoes" + strCompl + "_" + usuario.getIdUsuario() + ".pdf");
document.executeScript("window.open('" + Constantes.getValue("SERVER_ADDRESS") + Constantes.getValue("CONTEXTO_APLICACAO") + "/printPDF/printPDF.jsp?url=" + diretorioRelativoOS
+ "/RelatorioQuantitativoIncidentesSolicitacoes" + strCompl + "_" + usuario.getIdUsuario() + ".pdf')");
} catch (OutOfMemoryError e) {
document.alert(UtilI18N.internacionaliza(request, "citcorpore.erro.erroServidor"));
}
document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide();
}
/**
* Faz a impress�o do relat�rio no formato xls.
*
* @param document
* @param request
* @param response
* @throws Exception
* @author Thays.araujo
*/
public void imprimirRelatorioQuantitativoXls(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
HttpSession session = ((HttpServletRequest) request).getSession();
SolicitacaoServicoDTO solicitacaoServicoDto = (SolicitacaoServicoDTO) document.getBean();
SolicitacaoServicoService solicitacaoService = (SolicitacaoServicoService) ServiceLocator.getInstance().getService(SolicitacaoServicoService.class, null);
ContratoDTO contratoDto = new ContratoDTO();
ContratoService contratoService = (ContratoService) ServiceLocator.getInstance().getService(ContratoService.class, null);
usuario = WebUtil.getUsuario(request);
if (usuario == 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;
}
if (solicitacaoServicoDto.getIdSolicitacaoServicoPesquisa() == null) {
if (solicitacaoServicoDto.getDataInicio() == null) {
document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.validacao.datainicio"));
document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide();
return;
}
if (solicitacaoServicoDto.getDataFim() == null) {
document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.validacao.datafim"));
document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide();
return;
}
}
JRDataSource listaPorGrupoDataSource = null;
JRDataSource listaPorItemConfiguracaoDataSource = null;
JRDataSource listaPorSituacaoDataSource = null;
JRDataSource listaPorTipoDataSource = null;
JRDataSource listaPorOrigemDataSource = null;
JRDataSource listaPorPrioridadeDataSource = null;
JRDataSource listaPorFaseDataSource = null;
JRDataSource listaPorTipoServicoDataSource = null;
JRDataSource listaPorResponsavelDataSource = null;
JRDataSource listaPorHoraAberturaDataSource = null;
JRDataSource listaPorSituacaoSLADataSource = null;
JRDataSource listaPorPesquisaSatisfacaoDataSource = null;
Collection<RelatorioQuantitativoSolicitacaoDTO> listDadosRelatorio = new ArrayList<RelatorioQuantitativoSolicitacaoDTO>();
Collection<RelatorioQuantitativoSolicitacaoDTO> listPorGrupo = solicitacaoService.listaQuantidadeSolicitacaoPorGrupo(request, solicitacaoServicoDto);
Collection<RelatorioQuantitativoSolicitacaoDTO> listPorItemConfiguracao = solicitacaoService.listaQuantidadeSolicitacaoPorItemConfiguracao(solicitacaoServicoDto);
Collection<RelatorioQuantitativoSolicitacaoDTO> listPorSituacao = solicitacaoService.listaQuantidadeSolicitacaoPorSituacao(solicitacaoServicoDto);
Collection<RelatorioQuantitativoSolicitacaoDTO> listPorTipo = solicitacaoService.listaQuantidadeSolicitacaoPorTipo(solicitacaoServicoDto);
Collection<RelatorioQuantitativoSolicitacaoDTO> listPorOrigem = solicitacaoService.listaQuantidadeSolicitacaoPorOrigem(solicitacaoServicoDto);
Collection<RelatorioQuantitativoSolicitacaoDTO> listPorPrioridade = solicitacaoService.listaQuantidadeSolicitacaoPorPrioridade(solicitacaoServicoDto);
Collection<RelatorioQuantitativoSolicitacaoDTO> listPorFase = solicitacaoService.listaQuantidadeSolicitacaoPorFase(solicitacaoServicoDto);
Collection<RelatorioQuantitativoSolicitacaoDTO> listPorTipoServico = solicitacaoService.listaQuantidadeSolicitacaoPorTipoServico(solicitacaoServicoDto);
Collection<RelatorioQuantitativoSolicitacaoDTO> listPorResponsavel = solicitacaoService.listaQuantidadeSolicitacaoPorResponsavel(solicitacaoServicoDto);
Collection<RelatorioQuantitativoSolicitacaoDTO> listPorHoraAbertura = solicitacaoService.listaQuantidadeSolicitacaoPorHoraAbertura(solicitacaoServicoDto);
Collection<SolicitacaoServicoDTO> listPorSituacaoSLA = solicitacaoService.relatorioControleSla(solicitacaoServicoDto);
Collection<RelatorioQuantitativoSolicitacaoDTO> listPorPesquisaSatisfacao = solicitacaoService.listaQuantidadeSolicitacaoPorPesquisaSatisfacao(request, solicitacaoServicoDto);
if (listPorGrupo != null) {
listaPorGrupoDataSource = new JRBeanCollectionDataSource(listPorGrupo);
}
if (listPorItemConfiguracao != null) {
listaPorItemConfiguracaoDataSource = new JRBeanCollectionDataSource(listPorItemConfiguracao);
}
if (listPorSituacao != null) {
listaPorSituacaoDataSource = new JRBeanCollectionDataSource(listPorSituacao);
}
if (listPorTipo != null) {
listaPorTipoDataSource = new JRBeanCollectionDataSource(listPorTipo);
}
if (listPorOrigem != null) {
listaPorOrigemDataSource = new JRBeanCollectionDataSource(listPorOrigem);
}
if (listPorPrioridade != null) {
listaPorPrioridadeDataSource = new JRBeanCollectionDataSource(listPorPrioridade);
}
if (listPorFase != null) {
listaPorFaseDataSource = new JRBeanCollectionDataSource(listPorFase);
}
if (listPorTipoServico != null) {
listaPorTipoServicoDataSource = new JRBeanCollectionDataSource(listPorTipoServico);
}
if (listPorResponsavel != null) {
listaPorResponsavelDataSource = new JRBeanCollectionDataSource(listPorResponsavel);
}
if (listPorHoraAbertura != null) {
listaPorHoraAberturaDataSource = new JRBeanCollectionDataSource(listPorHoraAbertura);
}
if (listPorSituacaoSLA != null) {
int qtdePrazo = 0;
int qtdeForaPrazo = 0;
if (listPorSituacaoSLA != null) {
List<RelatorioQuantitativoSolicitacaoDTO> listSituacao = new ArrayList<RelatorioQuantitativoSolicitacaoDTO>();
for (SolicitacaoServicoDTO relatorioQuantitativoSolicitacaoDTO2 : listPorSituacaoSLA) {
if (relatorioQuantitativoSolicitacaoDTO2.getAtrasoSLAStr().equalsIgnoreCase("S")) {
qtdePrazo++;
} else {
qtdeForaPrazo++;
}
}
RelatorioQuantitativoSolicitacaoDTO relatorioComAtraso = new RelatorioQuantitativoSolicitacaoDTO();
relatorioComAtraso.setSituacaoSLA(UtilI18N.internacionaliza(request, "citcorpore.comum.comAtraso"));
relatorioComAtraso.setQuantidadeSituacaoSLA(qtdePrazo);
listSituacao.add(relatorioComAtraso);
RelatorioQuantitativoSolicitacaoDTO relatorioSemAtraso = new RelatorioQuantitativoSolicitacaoDTO();
relatorioSemAtraso.setSituacaoSLA(UtilI18N.internacionaliza(request, "citcorpore.comum.semAtraso"));
relatorioSemAtraso.setQuantidadeSituacaoSLA(qtdeForaPrazo);
listSituacao.add(relatorioSemAtraso);
listaPorSituacaoSLADataSource = new JRBeanCollectionDataSource(listSituacao);
}
}
if (listPorPesquisaSatisfacao != null) {
listaPorPesquisaSatisfacaoDataSource = new JRBeanCollectionDataSource(listPorPesquisaSatisfacao);
}
if (solicitacaoService.listaQuantidadeSolicitacaoPorSolicitante(solicitacaoServicoDto) != null) {
for (RelatorioQuantitativoSolicitacaoDTO porSolicitante : solicitacaoService.listaQuantidadeSolicitacaoPorSolicitante(solicitacaoServicoDto)) {
RelatorioQuantitativoSolicitacaoDTO relatorioQuantitativoSolictitacaoDto = new RelatorioQuantitativoSolicitacaoDTO();
relatorioQuantitativoSolictitacaoDto.setSolicitante(porSolicitante.getSolicitante());
relatorioQuantitativoSolictitacaoDto.setQuantidadeSolicitante(porSolicitante.getQuantidadeSolicitante());
if (listaPorGrupoDataSource != null) {
relatorioQuantitativoSolictitacaoDto.setListaPorGrupo(listaPorGrupoDataSource);
}
if (listaPorItemConfiguracaoDataSource != null) {
relatorioQuantitativoSolictitacaoDto.setListaPorItemConfiguracao(listaPorItemConfiguracaoDataSource);
}
if (listaPorSituacaoDataSource != null) {
relatorioQuantitativoSolictitacaoDto.setListaPorSituacao(listaPorSituacaoDataSource);
}
if (listaPorTipoDataSource != null) {
relatorioQuantitativoSolictitacaoDto.setListaPorTipo(listaPorTipoDataSource);
}
if (listaPorOrigemDataSource != null) {
relatorioQuantitativoSolictitacaoDto.setListaPorOrigem(listaPorOrigemDataSource);
}
if (listaPorPrioridadeDataSource != null) {
relatorioQuantitativoSolictitacaoDto.setListaPorPrioridade(listaPorPrioridadeDataSource);
}
if (listaPorFaseDataSource != null) {
relatorioQuantitativoSolictitacaoDto.setListaPorFase(listaPorFaseDataSource);
}
if (listaPorTipoServicoDataSource != null) {
relatorioQuantitativoSolictitacaoDto.setListaPorTipoServico(listaPorTipoServicoDataSource);
}
if (listaPorResponsavelDataSource != null) {
relatorioQuantitativoSolictitacaoDto.setListaPorResponsavel(listaPorResponsavelDataSource);
}
if (listaPorHoraAberturaDataSource != null) {
relatorioQuantitativoSolictitacaoDto.setListaPorHoraAbertura(listaPorHoraAberturaDataSource);
}
if (listaPorSituacaoSLADataSource != null) {
relatorioQuantitativoSolictitacaoDto.setListaPorSituacaoSLA(listaPorSituacaoSLADataSource);
}
if (listaPorPesquisaSatisfacaoDataSource != null) {
relatorioQuantitativoSolictitacaoDto.setListaPorPesquisaSatisfacao(listaPorPesquisaSatisfacaoDataSource);
}
listDadosRelatorio.add(relatorioQuantitativoSolictitacaoDto);
}
}
Date dt = new Date();
String strCompl = "" + dt.getTime();
String caminhoJasper = CITCorporeUtil.CAMINHO_REAL_APP + Constantes.getValue("CAMINHO_RELATORIOS") + "RelatorioQuantitativo.jasper";
String diretorioReceita = CITCorporeUtil.CAMINHO_REAL_APP + "/tempFiles";
String diretorioRelativoOS = Constantes.getValue("SERVER_ADDRESS") + Constantes.getValue("CONTEXTO_APLICACAO") + "/tempFiles";
String caminhoSubRelatorioJasper = CITCorporeUtil.CAMINHO_REAL_APP + Constantes.getValue("CAMINHO_RELATORIOS");
Map<String, Object> parametros = new HashMap<String, Object>();
parametros = UtilRelatorio.trataInternacionalizacaoLocale(session, parametros);
parametros.put("TITULO_RELATORIO", UtilI18N.internacionaliza(request, "relatorioQuantitativo.relatorioQuantitativo"));
parametros.put("CIDADE", UtilI18N.internacionaliza(request, "citcorpore.comum.relatorioCidade"));
parametros.put("DATA_HORA", UtilDatas.getDataHoraAtual());
parametros.put("NOME_USUARIO", usuario.getNomeUsuario());
parametros.put("dataInicio", solicitacaoServicoDto.getDataInicio());
parametros.put("dataFim", solicitacaoServicoDto.getDataFim());
parametros.put("Logo", LogoRel.getFile());
parametros.put("SUBREPORT_DIR", caminhoSubRelatorioJasper);
if (solicitacaoServicoDto.getIdContrato() != null) {
contratoDto.setIdContrato(solicitacaoServicoDto.getIdContrato());
contratoDto = (ContratoDTO) contratoService.restore(contratoDto);
}
parametros.put("contrato", contratoDto.getNumero());
if (solicitacaoServicoDto.getSituacao() != null && !solicitacaoServicoDto.getSituacao().isEmpty()) {
parametros.put("situacao", UtilI18N.internacionaliza(request, "solicitacaoServico.situacao." + solicitacaoServicoDto.getSituacao()));
}
if (solicitacaoServicoDto.getTipoUsuario() != null && !solicitacaoServicoDto.getTipoUsuario().isEmpty()) {
parametros.put("tipoUsuario", UtilI18N.internacionaliza(request, "citcorpore.comum." + solicitacaoServicoDto.getTipoUsuario()));
}
if (listDadosRelatorio.size() == 0) {
document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.relatorioVazio"));
document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide();
return;
}
JRDataSource dataSource = new JRBeanCollectionDataSource(listDadosRelatorio);
JasperDesign desenho = JRXmlLoader.load(CITCorporeUtil.CAMINHO_REAL_APP + Constantes.getValue("CAMINHO_RELATORIOS") + "RelatorioQuantitativoXls.jrxml");
JasperReport relatorio = JasperCompileManager.compileReport(desenho);
JasperPrint impressao = JasperFillManager.fillReport(relatorio, parametros, dataSource);
JRXlsExporter exporter = new JRXlsExporter();
exporter.setParameter(JRXlsExporterParameter.JASPER_PRINT, impressao);
exporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, Boolean.TRUE);
exporter.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND, Boolean.TRUE);
exporter.setParameter(JRXlsExporterParameter.OUTPUT_FILE_NAME, diretorioReceita + "/RelatorioQuantitativoXls" + strCompl + "_" + usuario.getIdUsuario() + ".xls");
exporter.exportReport();
document.executeScript("window.open('" + Constantes.getValue("SERVER_ADDRESS") + Constantes.getValue("CONTEXTO_APLICACAO") + "/printPDF/printPDF.jsp?url=" + diretorioRelativoOS
+ "/RelatorioQuantitativoXls" + strCompl + "_" + usuario.getIdUsuario() + ".xls')");
document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide();
}
}