package br.com.centralit.citcorpore.ajaxForms;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
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.BaseConhecimentoDTO;
import br.com.centralit.citcorpore.bean.PastaDTO;
import br.com.centralit.citcorpore.bean.UsuarioDTO;
import br.com.centralit.citcorpore.negocio.BaseConhecimentoService;
import br.com.centralit.citcorpore.negocio.ContadorAcessoService;
import br.com.centralit.citcorpore.negocio.PastaService;
import br.com.centralit.citcorpore.util.CITCorporeUtil;
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", "unchecked", "unused" })
public class RelatorioBaseConhecimento extends AjaxFormAction {
private 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;
}
this.preencherComboPasta(document, request, response);
this.preencherComboAprovadas(document, request, response);
}
public List<BaseConhecimentoDTO> listarBaseConhecimento(HttpServletRequest request,Collection<BaseConhecimentoDTO> listaBaseConhecimento , BaseConhecimentoDTO baseConhecimentoDto,BaseConhecimentoService baseConhecimentoService,ContadorAcessoService contadorAcessoService) throws Exception{
List<BaseConhecimentoDTO> listaGeral = new ArrayList<BaseConhecimentoDTO>();
List<BaseConhecimentoDTO> listaBaseConhecimentoRetorno = new ArrayList<BaseConhecimentoDTO>();
for (BaseConhecimentoDTO base : listaBaseConhecimento) {
if (baseConhecimentoDto.getTermoPesquisaNota() != null && !baseConhecimentoDto.getTermoPesquisaNota().equalsIgnoreCase("S") && !baseConhecimentoDto.getTermoPesquisaNota().equalsIgnoreCase("")) {
base.setMedia(this.calcularMdia(base, baseConhecimentoService));
base.setContadorCliques(contadorAcessoService.quantidadesDeAcessoPorBaseConhecimnto(base));
if (base.getMedia().equalsIgnoreCase(baseConhecimentoDto.getTermoPesquisaNota())) {
listaBaseConhecimentoRetorno.add(base);
listaGeral = listaBaseConhecimentoRetorno;
}
} else {
base.setContadorCliques(contadorAcessoService.quantidadesDeAcessoPorBaseConhecimnto(base));
base.setMedia(this.calcularMdia(base, baseConhecimentoService));
listaBaseConhecimentoRetorno.add(base);
listaGeral = listaBaseConhecimentoRetorno;
}
base.setStatus(base.getStatus()!=null&&base.getStatus().equals("S") ?
UtilI18N.internacionaliza(request, "pesquisaBaseConhecimento.publicado") : UtilI18N.internacionaliza(request, "pesquisaBaseConhecimento.naoPublicado"));
}
return listaGeral;
}
public void imprimirRelatorioBaseConhecimento(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
BaseConhecimentoDTO baseConhecimentoDto = (BaseConhecimentoDTO) document.getBean();
HttpSession session = ((HttpServletRequest) request).getSession();
BaseConhecimentoDTO baseConhecimento = new BaseConhecimentoDTO();
BaseConhecimentoService baseConhecimentoService = (BaseConhecimentoService) ServiceLocator.getInstance().getService(BaseConhecimentoService.class, null);
ContadorAcessoService contadorAcessoService = (ContadorAcessoService) ServiceLocator.getInstance().getService(ContadorAcessoService.class, null);
usuario = WebUtil.getUsuario(request);
PastaService pastaService = (PastaService) ServiceLocator.getInstance().getService(PastaService.class, null);
PastaDTO pasta = new PastaDTO();
CompararBaseConhecimento comparaAcesso = new CompararBaseConhecimento();
CompararBaseConhecimentoMedia comparaMedia = new CompararBaseConhecimentoMedia();
CompararBaseConhecimentoPorVersao comparaPorVersao = new CompararBaseConhecimentoPorVersao();
List<BaseConhecimentoDTO> mapaBaseConhecimento = new ArrayList<BaseConhecimentoDTO>();
List<BaseConhecimentoDTO> listaGeral = new ArrayList<BaseConhecimentoDTO>();
List<BaseConhecimentoDTO> listaBaseConhecimentoMedia = new ArrayList<BaseConhecimentoDTO>();
List<BaseConhecimentoDTO> listaBaseConhecimentoUltimasVersoes = new ArrayList<BaseConhecimentoDTO>();
Collection<BaseConhecimentoDTO> listaBaseConhecimento = baseConhecimentoService.listaBaseConhecimento(baseConhecimentoDto);
Collection<BaseConhecimentoDTO> listaUltimasVersoes = baseConhecimentoService.listaBaseConhecimentoUltimasVersoes(baseConhecimentoDto);
Map<String, Object> parametros = new HashMap<String, Object>();
parametros = UtilRelatorio.trataInternacionalizacaoLocale(session, parametros);
parametros.put("TITULO_RELATORIO", UtilI18N.internacionaliza(request, "relatorioBaseConhecimento.relatorioBaseConhecimento"));
parametros.put("CIDADE", UtilI18N.internacionaliza(request, "citcorpore.comum.relatorioCidade"));
parametros.put("DATA_HORA", UtilDatas.getDataHoraAtual());
parametros.put("NOME_USUARIO", usuario.getNomeUsuario());
parametros.put("ocularCampoConteudo", baseConhecimentoDto.getOcultarConteudo());
parametros.put("dataInicio", baseConhecimentoDto.getDataInicio());
parametros.put("dataFim", baseConhecimentoDto.getDataFim());
parametros.put("dataInicioPublicada", baseConhecimentoDto.getDataInicioPublicacao());
parametros.put("dataFimPublicada", baseConhecimentoDto.getDataFimPublicacao());
parametros.put("dataInicioExpiracao", baseConhecimentoDto.getDataInicioExpiracao());
parametros.put("dataFimExpiracao", baseConhecimentoDto.getDataFimExpiracao());
parametros.put("dataInicioAcesso", baseConhecimentoDto.getDataInicioAcesso());
parametros.put("dataFimAcesso", baseConhecimentoDto.getDataFimAcesso());
parametros.put("Logo", LogoRel.getFile());
if (baseConhecimentoDto.getIdPasta() != null) {
pasta.setId(baseConhecimentoDto.getIdPasta());
pasta = (PastaDTO) pastaService.restore(pasta);
parametros.put("nomePasta", pasta.getNome());
} else {
parametros.put("nomePasta", null);
}
if (baseConhecimentoDto.getIdBaseConhecimento() != null) {
baseConhecimento = (BaseConhecimentoDTO) baseConhecimentoService.restore(baseConhecimentoDto);
parametros.put("baseConhecimentoTitulo", baseConhecimento.getTitulo());
} else {
parametros.put("baseConhecimentoTitulo", null);
}
if (baseConhecimentoDto.getTermoPesquisaNota() != null) {
if (baseConhecimentoDto.getTermoPesquisaNota().equalsIgnoreCase("S")) {
parametros.put("nota", UtilI18N.internacionaliza(request, "relatorioBaseConhecimento.semAvaliacao"));
} else {
if (baseConhecimentoDto.getTermoPesquisaNota().equalsIgnoreCase("")) {
parametros.put("nota",UtilI18N.internacionaliza(request, "citcorpore.comum.todos"));
} else {
parametros.put("nota", baseConhecimentoDto.getTermoPesquisaNota());
}
}
} else {
parametros.put("nota", null);
}
if (baseConhecimentoDto.getStatus() != null) {
if (baseConhecimentoDto.getStatus().equalsIgnoreCase("")) {
parametros.put("situacao",UtilI18N.internacionaliza(request, "citcorpore.comum.todos"));
} else {
baseConhecimentoDto.setStatus(baseConhecimentoDto.getStatus()!=null&&baseConhecimentoDto.getStatus().equals("S") ?
UtilI18N.internacionaliza(request, "pesquisaBaseConhecimento.publicado") : UtilI18N.internacionaliza(request, "pesquisaBaseConhecimento.naoPublicado"));
parametros.put("situacao", baseConhecimentoDto.getStatus());
}
} else {
parametros.put("situacao", null);
}
if (baseConhecimentoDto.getUltimoAcesso() != null && baseConhecimentoDto.getUltimoAcesso().equals("S")) {
parametros.put("ultimoacesso",UtilI18N.internacionaliza(request, "citcorpore.comum.sim"));
} else {
parametros.put("ultimoacesso",UtilI18N.internacionaliza(request, "citcorpore.comum.nao"));
}
JRDataSource dataSource = null;
if (listaBaseConhecimento == null) {
document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.relatorioVazio"));
document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide();
return;
}
if (baseConhecimentoDto.getAcessado() == null) {
listaGeral.addAll(this.listarBaseConhecimento(request,listaBaseConhecimento, baseConhecimentoDto, baseConhecimentoService, contadorAcessoService));
/*for (BaseConhecimentoDTO base : listaBaseConhecimento) {
if (baseConhecimentoDto.getTermoPesquisaNota() != null && !baseConhecimentoDto.getTermoPesquisaNota().equalsIgnoreCase("S")
&& !baseConhecimentoDto.getTermoPesquisaNota().equalsIgnoreCase("")) {
base.setMedia(this.calcularMdia(base, baseConhecimentoService));
base.setContadorCliques(contadorAcessoService.quantidadesDeAcessoPorBaseConhecimnto(base));
if (base.getMedia().equalsIgnoreCase(baseConhecimentoDto.getTermoPesquisaNota())) {
listaBaseConhecimentoMedia.add(base);
listaGeral = listaBaseConhecimentoMedia;
}
} else {
base.setContadorCliques(contadorAcessoService.quantidadesDeAcessoPorBaseConhecimnto(base));
base.setMedia(this.calcularMdia(base, baseConhecimentoService));
listaGeral = (List<BaseConhecimentoDTO>) listaBaseConhecimento;
}
}*/
}
else if (baseConhecimentoDto.getAcessado() != null && baseConhecimentoDto.getAcessado().equalsIgnoreCase("A")) {
parametros.put("ordenacao", UtilI18N.internacionaliza(request, "relatorioBaseConhecimento.ordenarPorQuantidadeAcessos"));
listaGeral.addAll(this.listarBaseConhecimento(request,listaBaseConhecimento, baseConhecimentoDto, baseConhecimentoService, contadorAcessoService));
Collections.sort(listaGeral, comparaAcesso);
/*for (BaseConhecimentoDTO base : listaBaseConhecimento) {
if (baseConhecimentoDto.getTermoPesquisaNota() != null && !baseConhecimentoDto.getTermoPesquisaNota().equalsIgnoreCase("S") && !baseConhecimentoDto.getTermoPesquisaNota().equalsIgnoreCase("")) {
base.setMedia(this.calcularMdia(base, baseConhecimentoService));
base.setContadorCliques(contadorAcessoService.quantidadesDeAcessoPorBaseConhecimnto(base));
if (base.getMedia().equalsIgnoreCase(baseConhecimentoDto.getTermoPesquisaNota())) {
listaBaseConhecimentoMedia.add(base);
listaGeral = listaBaseConhecimentoMedia;
Collections.sort(listaGeral, comparaAcesso);
}
} else {
base.setContadorCliques(contadorAcessoService.quantidadesDeAcessoPorBaseConhecimnto(base));
base.setMedia(this.calcularMdia(base, baseConhecimentoService));
mapaBaseConhecimento.add(base);
Collections.sort(mapaBaseConhecimento, comparaAcesso);
listaGeral = mapaBaseConhecimento;
}
}*/
}
else if (baseConhecimentoDto.getAcessado() != null && baseConhecimentoDto.getAcessado().equalsIgnoreCase("M")) {
parametros.put("ordenacao", UtilI18N.internacionaliza(request, "relatorioBaseConhecimento.ordenarPorMediaAvaliacao"));
listaGeral.addAll(this.listarBaseConhecimento(request,listaBaseConhecimento, baseConhecimentoDto, baseConhecimentoService, contadorAcessoService));
Collections.sort(listaGeral, comparaMedia);
/*for (BaseConhecimentoDTO base : listaBaseConhecimento) {
if (baseConhecimentoDto.getTermoPesquisaNota() != null && !baseConhecimentoDto.getTermoPesquisaNota().equalsIgnoreCase("S") && !baseConhecimentoDto.getTermoPesquisaNota().equalsIgnoreCase("")) {
base.setMedia(this.calcularMdia(base, baseConhecimentoService));
base.setContadorCliques(contadorAcessoService.quantidadesDeAcessoPorBaseConhecimnto(base));
if (base.getMedia().equalsIgnoreCase(baseConhecimentoDto.getTermoPesquisaNota())) {
listaBaseConhecimentoMedia.add(base);
listaGeral = listaBaseConhecimentoMedia;
Collections.sort(listaGeral, comparaMedia);
}
} else {
base.setContadorCliques(contadorAcessoService.quantidadesDeAcessoPorBaseConhecimnto(base));
base.setMedia(this.calcularMdia(base, baseConhecimentoService));
mapaBaseConhecimento.add(base);
listaGeral = mapaBaseConhecimento;
Collections.sort(listaGeral, comparaMedia);
}
}*/
} else {
parametros.put("ordenacao", UtilI18N.internacionaliza(request, "relatorioBaseConhecimento.ordenarPorVersao"));
listaGeral.addAll(this.listarBaseConhecimento(request,listaBaseConhecimento, baseConhecimentoDto, baseConhecimentoService, contadorAcessoService));
Collections.sort(listaGeral, comparaPorVersao);
/*for (BaseConhecimentoDTO base : listaBaseConhecimento) {
if (baseConhecimentoDto.getTermoPesquisaNota() != null && !baseConhecimentoDto.getTermoPesquisaNota().equalsIgnoreCase("S") && !baseConhecimentoDto.getTermoPesquisaNota().equalsIgnoreCase("")) {
base.setMedia(this.calcularMdia(base, baseConhecimentoService));
base.setContadorCliques(contadorAcessoService.quantidadesDeAcessoPorBaseConhecimnto(base));
if (base.getMedia().equalsIgnoreCase(baseConhecimentoDto.getTermoPesquisaNota())) {
listaBaseConhecimentoMedia.add(base);
listaGeral = listaBaseConhecimentoMedia;
Collections.sort(listaGeral, comparaPorVersao);
}
} else {
base.setContadorCliques(contadorAcessoService.quantidadesDeAcessoPorBaseConhecimnto(base));
base.setMedia(this.calcularMdia(base, baseConhecimentoService));
mapaBaseConhecimento.add(base);
listaGeral = mapaBaseConhecimento;
Collections.sort(listaGeral, comparaPorVersao);
}
}*/
}
if (baseConhecimentoDto.getUltimaVersao() != null && baseConhecimentoDto.getUltimaVersao().equals("S")) {
parametros.put("ultimasVersoes", UtilI18N.internacionaliza(request, "relatorioBaseConhecimento.ultimasVersoes"));
if (listaUltimasVersoes != null) {
listaGeral = new ArrayList<BaseConhecimentoDTO>();
listaGeral.addAll(this.listarBaseConhecimento(request,listaUltimasVersoes, baseConhecimentoDto, baseConhecimentoService, contadorAcessoService));
if (baseConhecimentoDto.getAcessado() != null && baseConhecimentoDto.getAcessado().equalsIgnoreCase("A")) {
Collections.sort(listaGeral, comparaAcesso);
} else if (baseConhecimentoDto.getAcessado() != null && baseConhecimentoDto.getAcessado().equalsIgnoreCase("M")) {
Collections.sort(listaGeral, comparaMedia);
} else {
Collections.sort(listaGeral, comparaPorVersao);
}
/*for (BaseConhecimentoDTO base : listaUltimasVersoes) {
if (baseConhecimentoDto.getTermoPesquisaNota() != null && !baseConhecimentoDto.getTermoPesquisaNota().equalsIgnoreCase("S") && !baseConhecimentoDto.getTermoPesquisaNota().equalsIgnoreCase("")) {
base.setMedia(this.calcularMdia(base, baseConhecimentoService));
base.setContadorCliques(contadorAcessoService.quantidadesDeAcessoPorBaseConhecimnto(base));
if (base.getMedia().equalsIgnoreCase(baseConhecimentoDto.getTermoPesquisaNota())) {
listaBaseConhecimentoUltimasVersoes.add(base);
listaGeral = listaBaseConhecimentoUltimasVersoes;
if (baseConhecimentoDto.getAcessado() != null && baseConhecimentoDto.getAcessado().equalsIgnoreCase("A")) {
Collections.sort(listaGeral, comparaAcesso);
} else if (baseConhecimentoDto.getAcessado() != null && baseConhecimentoDto.getAcessado().equalsIgnoreCase("M")) {
Collections.sort(listaGeral, comparaMedia);
} else {
Collections.sort(listaGeral, comparaPorVersao);
}
}
} else {
base.setContadorCliques(contadorAcessoService.quantidadesDeAcessoPorBaseConhecimnto(base));
base.setMedia(this.calcularMdia(base, baseConhecimentoService));
listaBaseConhecimentoUltimasVersoes.add(base);
listaGeral = listaBaseConhecimentoUltimasVersoes;
if (baseConhecimentoDto.getAcessado() != null && baseConhecimentoDto.getAcessado().equalsIgnoreCase("A")) {
Collections.sort(listaGeral, comparaAcesso);
} else if (baseConhecimentoDto.getAcessado() != null && baseConhecimentoDto.getAcessado().equalsIgnoreCase("M")) {
Collections.sort(listaGeral, comparaMedia);
} else {
Collections.sort(listaGeral, comparaPorVersao);
}
}
}*/
}
}
if (listaGeral.size() == 0) {
document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.relatorioVazio"));
document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide();
return;
} /*else {
for (BaseConhecimentoDTO baseAux : listaGeral) {
if (baseAux.getMedia().equalsIgnoreCase("-1")) {
baseAux.setMedia(UtilI18N.internacionaliza(request, "relatorioBaseConhecimento.semAvaliacao"));
}
}
parametros.put("totalBaseConhecimento", listaGeral.size());
}*/
parametros.put("totalBaseConhecimento", listaGeral.size());
try
{
dataSource = new JRBeanCollectionDataSource(listaGeral);
Date dt = new Date();
String strCompl = "" + dt.getTime();
String caminhoJasper = CITCorporeUtil.CAMINHO_REAL_APP + Constantes.getValue("CAMINHO_RELATORIOS") + "RelatorioBaseConhecimento.jasper";
String diretorioReceita = CITCorporeUtil.CAMINHO_REAL_APP + "/tempFiles";
String diretorioRelativoOS = Constantes.getValue("SERVER_ADDRESS") + Constantes.getValue("CONTEXTO_APLICACAO") + "/tempFiles";
JRSwapFile arquivoSwap = new JRSwapFile(diretorioReceita, 4096, 25);
// Instancia o virtualizador
JRAbstractLRUVirtualizer virtualizer = new JRSwapFileVirtualizer(25, arquivoSwap, true);
//Seta o parametro REPORT_VIRTUALIZER com a inst�ncia da virtualiza��o
parametros.put(JRParameter.REPORT_VIRTUALIZER, virtualizer);
//Preenche o relat�rio e exibe numa GUI
JasperPrint print = JasperFillManager.fillReport(caminhoJasper, parametros, dataSource);
//JasperViewer.viewReport(print,false);
JasperExportManager.exportReportToPdfFile(print, diretorioReceita + "/RelatorioBaseConhecimento" + strCompl + "_" + usuario.getIdUsuario() + ".pdf");
document.executeScript("window.open('" + Constantes.getValue("SERVER_ADDRESS") + Constantes.getValue("CONTEXTO_APLICACAO") + "/printPDF/printPDF.jsp?url=" + diretorioRelativoOS + "/RelatorioBaseConhecimento"
+ strCompl + "_" + usuario.getIdUsuario() + ".pdf')");
} catch(OutOfMemoryError e) {
document.alert(UtilI18N.internacionaliza(request, "citcorpore.erro.erroServidor"));
}
document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide();
}
@Override
public Class getBeanClass() {
return BaseConhecimentoDTO.class;
}
public void preencherComboPasta(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
PastaService pastaService = (PastaService) ServiceLocator.getInstance().getService(PastaService.class, null);
HTMLSelect comboPasta = (HTMLSelect) document.getSelectById("idPasta");
ArrayList<PastaDTO> listaPastas = (ArrayList) pastaService.list();
inicializaCombo(comboPasta, request);
for (PastaDTO pasta : listaPastas)
if (pasta.getDataFim() == null)
comboPasta.addOption(pasta.getId().toString(), pasta.getNome());
}
private void inicializaCombo(HTMLSelect componenteCombo, HttpServletRequest request) {
componenteCombo.removeAllOptions();
componenteCombo.addOption("", UtilI18N.internacionaliza(request, "citcorpore.comum.todos"));
}
public void preencherComboBaseConhecimentoPorPasta(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
BaseConhecimentoDTO baseConhecimentoDto = (BaseConhecimentoDTO) document.getBean();
BaseConhecimentoService baseConhecimentoService = (BaseConhecimentoService) ServiceLocator.getInstance().getService(BaseConhecimentoService.class, null);
HTMLSelect comboBaseConhecimento = (HTMLSelect) document.getSelectById("idBaseConhecimento");
PastaDTO pastaDto = new PastaDTO();
pastaDto.setId(baseConhecimentoDto.getIdPasta());
ArrayList<BaseConhecimentoDTO> listaBaseConhecimentoPorPasta = (ArrayList) baseConhecimentoService.listarBaseConhecimentoByPastaRelatorio(pastaDto);
inicializaCombo(comboBaseConhecimento, request);
if (listaBaseConhecimentoPorPasta != null) {
for (BaseConhecimentoDTO base : listaBaseConhecimentoPorPasta) {
comboBaseConhecimento.addOption(base.getIdBaseConhecimento().toString(), base.getTitulo());
}
}
}
public void preencherComboAprovadas(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
HTMLSelect comboAprovados = (HTMLSelect) document.getSelectById("status");
inicializaCombo(comboAprovados, request);
comboAprovados.addOption("S",UtilI18N.internacionaliza(request, "pesquisaBaseConhecimento.publicado"));
comboAprovados.addOption("N",UtilI18N.internacionaliza(request, "pesquisaBaseConhecimento.naoPublicado"));
}
public String calcularMdia(BaseConhecimentoDTO baseConhecimento, BaseConhecimentoService baseConhecimentoService) throws Exception {
Double media = baseConhecimentoService.calcularNota(baseConhecimento.getIdBaseConhecimento());
if (media != null) {
return media.toString();
} else {
return "-1";
}
}
public void imprimirRelatorioBaseConhecimentoXls(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
BaseConhecimentoDTO baseConhecimentoDto = (BaseConhecimentoDTO) document.getBean();
HttpSession session = ((HttpServletRequest) request).getSession();
BaseConhecimentoDTO baseConhecimento = new BaseConhecimentoDTO();
BaseConhecimentoService baseConhecimentoService = (BaseConhecimentoService) ServiceLocator.getInstance().getService(BaseConhecimentoService.class, null);
ContadorAcessoService contadorAcessoService = (ContadorAcessoService) ServiceLocator.getInstance().getService(ContadorAcessoService.class, null);
usuario = WebUtil.getUsuario(request);
PastaService pastaService = (PastaService) ServiceLocator.getInstance().getService(PastaService.class, null);
PastaDTO pasta = new PastaDTO();
CompararBaseConhecimento comparaAcesso = new CompararBaseConhecimento();
CompararBaseConhecimentoMedia comparaMedia = new CompararBaseConhecimentoMedia();
CompararBaseConhecimentoPorVersao comparaPorVersao = new CompararBaseConhecimentoPorVersao();
List<BaseConhecimentoDTO> mapaBaseConhecimento = new ArrayList<BaseConhecimentoDTO>();
List<BaseConhecimentoDTO> listaGeral = new ArrayList<BaseConhecimentoDTO>();
List<BaseConhecimentoDTO> listaBaseConhecimentoMedia = new ArrayList<BaseConhecimentoDTO>();
List<BaseConhecimentoDTO> listaBaseConhecimentoUltimasVersoes = new ArrayList<BaseConhecimentoDTO>();
Collection<BaseConhecimentoDTO> listaBaseConhecimento = baseConhecimentoService.listaBaseConhecimento(baseConhecimentoDto);
Collection<BaseConhecimentoDTO> listaUltimasVersoes = baseConhecimentoService.listaBaseConhecimentoUltimasVersoes(baseConhecimentoDto);
Map<String, Object> parametros = new HashMap<String, Object>();
parametros = UtilRelatorio.trataInternacionalizacaoLocale(session, parametros);
parametros.put("TITULO_RELATORIO", UtilI18N.internacionaliza(request, "relatorioBaseConhecimento.relatorioBaseConhecimento"));
parametros.put("CIDADE", UtilI18N.internacionaliza(request, "citcorpore.comum.relatorioCidade"));
parametros.put("DATA_HORA", UtilDatas.getDataHoraAtual());
parametros.put("NOME_USUARIO", usuario.getNomeUsuario());
parametros.put("ocularCampoConteudo", baseConhecimentoDto.getOcultarConteudo());
parametros.put("dataInicio", baseConhecimentoDto.getDataInicio());
parametros.put("dataFim", baseConhecimentoDto.getDataFim());
parametros.put("dataInicioPublicada", baseConhecimentoDto.getDataInicioPublicacao());
parametros.put("dataFimPublicada", baseConhecimentoDto.getDataFimPublicacao());
parametros.put("dataInicioExpiracao", baseConhecimentoDto.getDataInicioExpiracao());
parametros.put("dataFimExpiracao", baseConhecimentoDto.getDataFimExpiracao());
parametros.put("dataInicioAcesso", baseConhecimentoDto.getDataInicioAcesso());
parametros.put("dataFimAcesso", baseConhecimentoDto.getDataFimAcesso());
parametros.put("Logo", LogoRel.getFile());
if (baseConhecimentoDto.getIdPasta() != null) {
pasta.setId(baseConhecimentoDto.getIdPasta());
pasta = (PastaDTO) pastaService.restore(pasta);
parametros.put("nomePasta", pasta.getNome());
} else {
parametros.put("nomePasta", null);
}
if (baseConhecimentoDto.getIdBaseConhecimento() != null) {
baseConhecimento = (BaseConhecimentoDTO) baseConhecimentoService.restore(baseConhecimentoDto);
parametros.put("baseConhecimentoTitulo", baseConhecimento.getTitulo());
} else {
parametros.put("baseConhecimentoTitulo", null);
}
if (baseConhecimentoDto.getTermoPesquisaNota() != null) {
if (baseConhecimentoDto.getTermoPesquisaNota().equalsIgnoreCase("S")) {
parametros.put("nota", "Sem Coment�rio");
} else {
if (baseConhecimentoDto.getTermoPesquisaNota().equalsIgnoreCase("")) {
parametros.put("nota", "Todos");
} else {
parametros.put("nota", baseConhecimentoDto.getTermoPesquisaNota());
}
}
} else {
parametros.put("nota", null);
}
if(baseConhecimentoDto.getUltimoAcesso()!=null && baseConhecimentoDto.getUltimoAcesso().equals("S")){
parametros.put("ultimoacesso", "Sim");
}else{
parametros.put("ultimoacesso", "N�o");
}
if (baseConhecimentoDto.getUltimoAcesso() != null && baseConhecimentoDto.getUltimoAcesso().equals("S")) {
parametros.put("ultimoacesso", "Sim");
} else {
parametros.put("ultimoacesso", "N�o");
}
if (baseConhecimentoDto.getStatus() != null) {
if (baseConhecimentoDto.getStatus().equalsIgnoreCase("")) {
parametros.put("situacao", "Todos");
} else {
baseConhecimentoDto.setStatus(baseConhecimentoDto.getStatus()!=null&&baseConhecimentoDto.getStatus().equals("S") ?
UtilI18N.internacionaliza(request, "pesquisaBaseConhecimento.publicado") : UtilI18N.internacionaliza(request, "pesquisaBaseConhecimento.naoPublicado"));
parametros.put("situacao", baseConhecimentoDto.getStatus());
}
} else {
parametros.put("situacao", null);
}
JRDataSource dataSource = null;
if (listaBaseConhecimento == null) {
document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.relatorioVazio"));
document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide();
return;
}
if (baseConhecimentoDto.getAcessado() == null) {
listaGeral.addAll(this.listarBaseConhecimento(request,listaBaseConhecimento, baseConhecimentoDto, baseConhecimentoService, contadorAcessoService));
/*for (BaseConhecimentoDTO base : listaBaseConhecimento) {
if (baseConhecimentoDto.getTermoPesquisaNota() != null && !baseConhecimentoDto.getTermoPesquisaNota().equalsIgnoreCase("S")
&& !baseConhecimentoDto.getTermoPesquisaNota().equalsIgnoreCase("")) {
base.setMedia(this.calcularMdia(base, baseConhecimentoService));
base.setContadorCliques(contadorAcessoService.quantidadesDeAcessoPorBaseConhecimnto(base));
if (base.getMedia().equalsIgnoreCase(baseConhecimentoDto.getTermoPesquisaNota())) {
listaBaseConhecimentoMedia.add(base);
listaGeral = listaBaseConhecimentoMedia;
}
} else {
base.setContadorCliques(contadorAcessoService.quantidadesDeAcessoPorBaseConhecimnto(base));
base.setMedia(this.calcularMdia(base, baseConhecimentoService));
listaGeral = (List<BaseConhecimentoDTO>) listaBaseConhecimento;
}
}*/
}
else if (baseConhecimentoDto.getAcessado() != null && baseConhecimentoDto.getAcessado().equalsIgnoreCase("A")) {
parametros.put("ordenacao", UtilI18N.internacionaliza(request, "relatorioBaseConhecimento.ordenarPorQuantidadeAcessos"));
listaGeral.addAll(this.listarBaseConhecimento(request,listaBaseConhecimento, baseConhecimentoDto, baseConhecimentoService, contadorAcessoService));
Collections.sort(listaGeral, comparaAcesso);
/*for (BaseConhecimentoDTO base : listaBaseConhecimento) {
if (baseConhecimentoDto.getTermoPesquisaNota() != null && !baseConhecimentoDto.getTermoPesquisaNota().equalsIgnoreCase("S") && !baseConhecimentoDto.getTermoPesquisaNota().equalsIgnoreCase("")) {
base.setMedia(this.calcularMdia(base, baseConhecimentoService));
base.setContadorCliques(contadorAcessoService.quantidadesDeAcessoPorBaseConhecimnto(base));
if (base.getMedia().equalsIgnoreCase(baseConhecimentoDto.getTermoPesquisaNota())) {
listaBaseConhecimentoMedia.add(base);
listaGeral = listaBaseConhecimentoMedia;
Collections.sort(listaGeral, comparaAcesso);
}
} else {
base.setContadorCliques(contadorAcessoService.quantidadesDeAcessoPorBaseConhecimnto(base));
base.setMedia(this.calcularMdia(base, baseConhecimentoService));
mapaBaseConhecimento.add(base);
Collections.sort(mapaBaseConhecimento, comparaAcesso);
listaGeral = mapaBaseConhecimento;
}
}*/
}
else if (baseConhecimentoDto.getAcessado() != null && baseConhecimentoDto.getAcessado().equalsIgnoreCase("M")) {
parametros.put("ordenacao", UtilI18N.internacionaliza(request, "relatorioBaseConhecimento.ordenarPorMediaAvaliacao"));
listaGeral.addAll(this.listarBaseConhecimento(request,listaBaseConhecimento, baseConhecimentoDto, baseConhecimentoService, contadorAcessoService));
Collections.sort(listaGeral, comparaMedia);
/*for (BaseConhecimentoDTO base : listaBaseConhecimento) {
if (baseConhecimentoDto.getTermoPesquisaNota() != null && !baseConhecimentoDto.getTermoPesquisaNota().equalsIgnoreCase("S") && !baseConhecimentoDto.getTermoPesquisaNota().equalsIgnoreCase("")) {
base.setMedia(this.calcularMdia(base, baseConhecimentoService));
base.setContadorCliques(contadorAcessoService.quantidadesDeAcessoPorBaseConhecimnto(base));
if (base.getMedia().equalsIgnoreCase(baseConhecimentoDto.getTermoPesquisaNota())) {
listaBaseConhecimentoMedia.add(base);
listaGeral = listaBaseConhecimentoMedia;
Collections.sort(listaGeral, comparaMedia);
}
} else {
base.setContadorCliques(contadorAcessoService.quantidadesDeAcessoPorBaseConhecimnto(base));
base.setMedia(this.calcularMdia(base, baseConhecimentoService));
mapaBaseConhecimento.add(base);
listaGeral = mapaBaseConhecimento;
Collections.sort(listaGeral, comparaMedia);
}
}*/
} else {
parametros.put("ordenacao", UtilI18N.internacionaliza(request, "relatorioBaseConhecimento.ordenarPorVersao"));
listaGeral.addAll(this.listarBaseConhecimento(request,listaBaseConhecimento, baseConhecimentoDto, baseConhecimentoService, contadorAcessoService));
Collections.sort(listaGeral, comparaPorVersao);
/*for (BaseConhecimentoDTO base : listaBaseConhecimento) {
if (baseConhecimentoDto.getTermoPesquisaNota() != null && !baseConhecimentoDto.getTermoPesquisaNota().equalsIgnoreCase("S") && !baseConhecimentoDto.getTermoPesquisaNota().equalsIgnoreCase("")) {
base.setMedia(this.calcularMdia(base, baseConhecimentoService));
base.setContadorCliques(contadorAcessoService.quantidadesDeAcessoPorBaseConhecimnto(base));
if (base.getMedia().equalsIgnoreCase(baseConhecimentoDto.getTermoPesquisaNota())) {
listaBaseConhecimentoMedia.add(base);
listaGeral = listaBaseConhecimentoMedia;
Collections.sort(listaGeral, comparaPorVersao);
}
} else {
base.setContadorCliques(contadorAcessoService.quantidadesDeAcessoPorBaseConhecimnto(base));
base.setMedia(this.calcularMdia(base, baseConhecimentoService));
mapaBaseConhecimento.add(base);
listaGeral = mapaBaseConhecimento;
Collections.sort(listaGeral, comparaPorVersao);
}
}*/
}
if (baseConhecimentoDto.getUltimaVersao() != null && baseConhecimentoDto.getUltimaVersao().equals("S")) {
parametros.put("ultimasVersoes", UtilI18N.internacionaliza(request, "relatorioBaseConhecimento.ultimasVersoes"));
if (listaUltimasVersoes != null) {
listaGeral.addAll(this.listarBaseConhecimento(request,listaBaseConhecimentoUltimasVersoes, baseConhecimentoDto, baseConhecimentoService, contadorAcessoService));
if (baseConhecimentoDto.getAcessado() != null && baseConhecimentoDto.getAcessado().equalsIgnoreCase("A")) {
Collections.sort(listaGeral, comparaAcesso);
} else if (baseConhecimentoDto.getAcessado() != null && baseConhecimentoDto.getAcessado().equalsIgnoreCase("M")) {
Collections.sort(listaGeral, comparaMedia);
} else {
Collections.sort(listaGeral, comparaPorVersao);
}
/*for (BaseConhecimentoDTO base : listaUltimasVersoes) {
if (baseConhecimentoDto.getTermoPesquisaNota() != null && !baseConhecimentoDto.getTermoPesquisaNota().equalsIgnoreCase("S") && !baseConhecimentoDto.getTermoPesquisaNota().equalsIgnoreCase("")) {
base.setMedia(this.calcularMdia(base, baseConhecimentoService));
base.setContadorCliques(contadorAcessoService.quantidadesDeAcessoPorBaseConhecimnto(base));
if (base.getMedia().equalsIgnoreCase(baseConhecimentoDto.getTermoPesquisaNota())) {
listaBaseConhecimentoUltimasVersoes.add(base);
listaGeral = listaBaseConhecimentoUltimasVersoes;
if (baseConhecimentoDto.getAcessado() != null && baseConhecimentoDto.getAcessado().equalsIgnoreCase("A")) {
Collections.sort(listaGeral, comparaAcesso);
} else if (baseConhecimentoDto.getAcessado() != null && baseConhecimentoDto.getAcessado().equalsIgnoreCase("M")) {
Collections.sort(listaGeral, comparaMedia);
} else {
Collections.sort(listaGeral, comparaPorVersao);
}
}
} else {
base.setContadorCliques(contadorAcessoService.quantidadesDeAcessoPorBaseConhecimnto(base));
base.setMedia(this.calcularMdia(base, baseConhecimentoService));
listaBaseConhecimentoUltimasVersoes.add(base);
listaGeral = listaBaseConhecimentoUltimasVersoes;
if (baseConhecimentoDto.getAcessado() != null && baseConhecimentoDto.getAcessado().equalsIgnoreCase("A")) {
Collections.sort(listaGeral, comparaAcesso);
} else if (baseConhecimentoDto.getAcessado() != null && baseConhecimentoDto.getAcessado().equalsIgnoreCase("M")) {
Collections.sort(listaGeral, comparaMedia);
} else {
Collections.sort(listaGeral, comparaPorVersao);
}
}
}*/
}
}
if (listaGeral.size() == 0) {
document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.relatorioVazio"));
document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide();
return;
} /*else {
for (BaseConhecimentoDTO baseAux : listaGeral) {
if (baseAux.getMedia().equalsIgnoreCase("-1")) {
baseAux.setMedia(UtilI18N.internacionaliza(request, "relatorioBaseConhecimento.semAvaliacao"));
}
}
}*/
parametros.put("totalBaseConhecimento", listaGeral.size());
dataSource = new JRBeanCollectionDataSource(listaGeral);
Date dt = new Date();
String strCompl = "" + dt.getTime();
String caminhoJasper = CITCorporeUtil.CAMINHO_REAL_APP + Constantes.getValue("CAMINHO_RELATORIOS") + "RelatorioBaseConhecimentoXls.jasper";
String diretorioReceita = CITCorporeUtil.CAMINHO_REAL_APP + "/tempFiles";
String diretorioRelativoOS = Constantes.getValue("SERVER_ADDRESS") + Constantes.getValue("CONTEXTO_APLICACAO") + "/tempFiles";
JasperDesign desenho = JRXmlLoader.load(CITCorporeUtil.CAMINHO_REAL_APP + Constantes.getValue("CAMINHO_RELATORIOS") + "RelatorioBaseConhecimentoXls.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.IS_FONT_SIZE_FIX_ENABLED, Boolean.TRUE);
exporter.setParameter(JRXlsExporterParameter.OUTPUT_FILE_NAME, diretorioReceita + "/RelatorioBaseConhecimentoXls" + strCompl + "_" + usuario.getIdUsuario() + ".xls");
exporter.exportReport();
document.executeScript("window.open('" + Constantes.getValue("SERVER_ADDRESS") + Constantes.getValue("CONTEXTO_APLICACAO") + "/printPDF/printPDF.jsp?url=" + diretorioRelativoOS + "/RelatorioBaseConhecimentoXls"
+ strCompl + "_" + usuario.getIdUsuario() + ".xls')");
document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide();
}
}