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.tratamientos.impl; import com.dominion.salud.mpr.negocio.configuration.MPRConstantes; import com.dominion.salud.mpr.negocio.entities.tratamientos.Dispensaciones; import com.dominion.salud.mpr.negocio.report.tratamientos.DispensacionesReport; import com.dominion.salud.mpr.negocio.service.exception.InformeException; import com.dominion.salud.mpr.negocio.service.exception.InformeSinDatosException; import com.dominion.salud.mpr.negocio.service.tratamientos.DispensacionesService; 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("dispensacionesReport") public class DispensacionesReportImpl extends AbstractTratamientosReportImpl<Dispensaciones, Long> implements DispensacionesReport { private static final Logger logger = LoggerFactory.getLogger(DispensacionesReportImpl.class); @Autowired private DispensacionesService dispensacionesService; /** * * @param parametros * @return * @throws com.dominion.salud.mpr.negocio.service.exception.InformeSinDatosException * @throws com.dominion.salud.mpr.negocio.service.exception.InformeException */ @Override public String listadoDispensacionReport(Map<String, Object> parametros) throws InformeSinDatosException, InformeException { logger.debug("Generando el listado: " + MPR_LISTADO_DISPENSACIONES); 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(" fecIniDisp: " + parametros.get("fecIniDisp")); logger.debug(" fecFinDisp: " + parametros.get("fecFinDisp")); //CONVERSION DE PARAMETROS DE ENTRADA logger.debug(" Iniciando la conversion de parametros para el listado"); SimpleDateFormat ddmmyyyy = new SimpleDateFormat("dd/MM/yyyy"); Date fecIniDisp = null; Date fecFinDisp = null; try { if (StringUtils.isNoneBlank((String) parametros.get("fecIniDisp"))) { logger.debug(" Iniciando la conversion de fecIniDisp: " + (String) parametros.get("fecIniDisp")); fecIniDisp = ddmmyyyy.parse((String) parametros.get("fecIniDisp")); logger.debug(" Conversion de fecIniDisp: " + (String) parametros.get("fecIniDisp") + " realizada correctamente: " + fecIniDisp); } } catch (ParseException pe) { logger.warn("No se ha podido parsear fecIniDisp: " + parametros.get("fecIniDisp")); } try { if (StringUtils.isNoneBlank((String) parametros.get("fecFinDisp"))) { logger.debug(" Iniciando la conversion de fecFinDisp: " + (String) parametros.get("fecFinDisp")); fecFinDisp = ddmmyyyy.parse((String) parametros.get("fecFinDisp")); logger.debug(" Conversion de fecFinDisp: " + (String) parametros.get("fecFinDisp") + " realizada correctamente: " + fecFinDisp); } } catch (ParseException pe) { logger.warn("No se ha podido parsear fecFinDisp: " + parametros.get("fecFinDisp")); } 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<Dispensaciones> dispensacioneses = new ArrayList<>(); dispensacioneses = dispensacionesService.findListadoDispensaciones(idCentro, idAcuerdo, fecIniDisp, fecFinDisp); logger.debug(" Se han obtenido: " + dispensacioneses.size() + " resultados"); if (dispensacioneses.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_DISPENSACIONES)); JasperReport reporte = (JasperReport) JRLoader .loadObject(getClass().getClassLoader().getResource(MPR_LISTADO_DISPENSACIONES)); logger.debug(" Plantilla del listado localizada correctamente"); logger.debug(" Completando los datos del listado"); JasperPrint jasperPrint = JasperFillManager.fillReport(reporte, parametros, new JRBeanCollectionDataSource(dispensacioneses)); 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_DISPENSACIONES + " generado correctamente"); return ruta; } catch (Exception e) { throw new InformeException(e); } } /** * * @param parametros * @return * @throws com.dominion.salud.mpr.negocio.service.exception.InformeSinDatosException * @throws com.dominion.salud.mpr.negocio.service.exception.InformeException */ @Override public String listadoDispensacionDetalladoReport(Map<String, Object> parametros) throws InformeSinDatosException, InformeException { logger.debug("Generando el listado: " + MPR_LISTADO_DISPENSACIONES_DETALLADO); 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(" fecIniDisp: " + parametros.get("fecIniDisp")); logger.debug(" fecFinDisp: " + parametros.get("fecFinDisp")); //CONVERSION DE PARAMETROS DE ENTRADA logger.debug(" Iniciando la conversion de parametros para el listado"); SimpleDateFormat ddmmyyyy = new SimpleDateFormat("dd/MM/yyyy"); Date fecIniDisp = null; Date fecFinDisp = null; try { if (StringUtils.isNoneBlank((String) parametros.get("fecIniDisp"))) { logger.debug(" Iniciando la conversion de fecIniDisp: " + (String) parametros.get("fecIniDisp")); fecIniDisp = ddmmyyyy.parse((String) parametros.get("fecIniDisp")); logger.debug(" Conversion de fecIniDisp: " + (String) parametros.get("fecIniDisp") + " realizada correctamente: " + fecIniDisp); } } catch (ParseException pe) { logger.warn("No se ha podido parsear fecIniDisp: " + parametros.get("fecIniDisp")); } try { if (StringUtils.isNoneBlank((String) parametros.get("fecFinDisp"))) { logger.debug(" Iniciando la conversion de fecFinDisp: " + (String) parametros.get("fecFinDisp")); fecFinDisp = ddmmyyyy.parse((String) parametros.get("fecFinDisp")); logger.debug(" Conversion de fecFinDisp: " + (String) parametros.get("fecFinDisp") + " realizada correctamente: " + fecFinDisp); } } catch (ParseException pe) { logger.warn("No se ha podido parsear fecFinDisp: " + parametros.get("fecFinDisp")); } 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<Dispensaciones> dispensacioneses = new ArrayList<>(); dispensacioneses = dispensacionesService.findListadoDispensacionesDetallado(idCentro, idAcuerdo, fecIniDisp, fecFinDisp); logger.debug(" Se han obtenido: " + dispensacioneses.size() + " resultados"); if (dispensacioneses.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_DISPENSACIONES_DETALLADO)); JasperReport reporte = (JasperReport) JRLoader .loadObject(getClass().getClassLoader().getResource(MPR_LISTADO_DISPENSACIONES_DETALLADO)); logger.debug(" Plantilla del listado localizada correctamente"); logger.debug(" Completando los datos del listado"); JasperPrint jasperPrint = JasperFillManager.fillReport(reporte, parametros, new JRBeanCollectionDataSource(dispensacioneses)); 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_DISPENSACIONES_DETALLADO + " generado correctamente"); return ruta; } catch (Exception e) { throw new InformeException(e); } } }