Java tutorial
/* * Copyright (C) 2016 Dominion Global * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package com.dominion.salud.mpr.negocio.report.evaluaciones.impl; import com.dominion.salud.mpr.negocio.configuration.MPRConstantes; import com.dominion.salud.mpr.negocio.entities.evaluaciones.AcuEvalRes; import com.dominion.salud.mpr.negocio.report.evaluaciones.AcuEvalResReport; import com.dominion.salud.mpr.negocio.service.evaluaciones.AcuEvalResService; import com.dominion.salud.mpr.negocio.service.exception.InformeException; import com.dominion.salud.mpr.negocio.service.exception.InformeSinDatosException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; 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.util.JRLoader; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** * * @author jcgonzalez */ @Service("acuEvalResReport") public class AcuEvalResReportImpl extends AbstractEvaluacionesReportImpl<AcuEvalRes, Long> implements AcuEvalResReport { private static final Logger logger = LoggerFactory.getLogger(AcuEvalResReportImpl.class); @Autowired private AcuEvalResService acuEvalResService; /** * * @param parametros * @return * @throws com.dominion.salud.mpr.negocio.service.exception.InformeSinDatosException * @throws com.dominion.salud.mpr.negocio.service.exception.InformeException */ @Override public String listadoAcuEvalResReport(Map<String, Object> parametros) throws InformeSinDatosException, InformeException { logger.debug("Generando el listado: " + MPR_LISTADO_RESULTADOS); logger.debug(" Parametros del listado: "); logger.debug(" idAcuerdo: " + parametros.get("idAcuerdo")); logger.debug(" txtAcuerdo: " + parametros.get("txtAcuerdo")); logger.debug(" idCentro: " + parametros.get("idCentro")); logger.debug(" txtCentro: " + parametros.get("txtCentro")); logger.debug(" fecIniEval: " + parametros.get("fecIniEval")); logger.debug(" fecFinEval: " + parametros.get("fecFinEval")); //CONVERSION DE PARAMETROS DE ENTRADA logger.debug(" Iniciando la conversion de parametros para el listado"); SimpleDateFormat ddmmyyyy = new SimpleDateFormat("dd/MM/yyyy"); Date fecIniEval = null; Date fecFinEval = null; try { if (StringUtils.isNoneBlank((String) parametros.get("fecIniEval"))) { logger.debug(" Iniciando la conversion de fecIniEval: " + (String) parametros.get("fecIniEval")); fecIniEval = ddmmyyyy.parse((String) parametros.get("fecIniEval")); logger.debug(" Conversion de fecIniEval: " + (String) parametros.get("fecIniEval") + " realizada correctamente: " + fecIniEval); } } catch (ParseException pe) { logger.warn("No se ha podido parsear fecIniEval: " + parametros.get("fecIniEval")); } try { if (StringUtils.isNoneBlank((String) parametros.get("fecFinEval"))) { logger.debug(" Iniciando la conversion de fecFinEval: " + (String) parametros.get("fecFinEval")); fecFinEval = ddmmyyyy.parse((String) parametros.get("fecFinEval")); logger.debug(" Conversion de fecFinEval: " + (String) parametros.get("fecFinEval") + " realizada correctamente: " + fecFinEval); } } catch (ParseException pe) { logger.warn("No se ha podido parsear fecFinEval: " + parametros.get("fecFinEval")); } Long idCentro = null; if (StringUtils.isNotBlank((String) parametros.get("idCentro"))) { logger.debug(" Iniciando la conversion de idCentro: " + (String) parametros.get("idCentro")); idCentro = NumberUtils.toLong((String) parametros.get("idCentro")); logger.debug(" Conversion de idCentro: " + (String) parametros.get("idCentro") + " realizada correctamente: " + idCentro); } Long idAcuerdo = null; if (StringUtils.isNotBlank((String) parametros.get("idAcuerdo"))) { logger.debug(" Iniciando la conversion de idAcuerdo: " + (String) parametros.get("idAcuerdo")); idAcuerdo = NumberUtils.toLong((String) parametros.get("idAcuerdo")); logger.debug(" Conversion de idAcuerdo: " + (String) parametros.get("idAcuerdo") + " realizada correctamente: " + idAcuerdo); } logger.debug(" Finaliza la conversion de parametros para el listado"); //OBTENCION DE DATOS PARA POBLAR EL LISTADO logger.debug(" Iniciando la obtencion de informacion para el listado"); List<AcuEvalRes> acuEvalReses = new ArrayList<>(); acuEvalReses = acuEvalResService.findListadoAcuEvalRes(idCentro, idAcuerdo, fecIniEval, fecFinEval); logger.debug(" Se han obtenido: " + acuEvalReses.size() + " resultados"); if (acuEvalReses.size() <= 0) { throw new InformeSinDatosException("No se han obtenido resultados"); } logger.debug(" Finaliza la obtencion de informacion para el listado"); //GENERACION DEL INFORME try { logger.debug(" Localizando la plantilla del listado: " + getClass().getClassLoader().getResource(MPR_LISTADO_RESULTADOS)); JasperReport reporte = (JasperReport) JRLoader .loadObject(getClass().getClassLoader().getResource(MPR_LISTADO_RESULTADOS)); logger.debug(" Plantilla del listado localizada correctamente"); logger.debug(" Completando los datos del listado"); JasperPrint jasperPrint = JasperFillManager.fillReport(reporte, parametros, new JRBeanCollectionDataSource(acuEvalReses)); logger.debug(" Datos del listado completados correctamente"); logger.debug(" Generando el listado en la ubicacion: " + MPRConstantes._MPR_RESOURCES + new Date().getTime() + ".pdf"); String ruta = reportPDFtoFile(jasperPrint, MPRConstantes._MPR_RESOURCES + new Date().getTime() + ".pdf"); logger.debug(" Listado generado correctamente en la ubicacion: " + ruta); logger.debug("Listado: " + MPR_LISTADO_RESULTADOS + " generado correctamente"); return ruta; } catch (Exception e) { throw new InformeException(e); } } }