From 85e8bdd54248c59a9bbc5322fd8ad0e57d483f21 Mon Sep 17 00:00:00 2001 From: ridwan Date: Fri, 22 Aug 2025 09:49:51 +0700 Subject: [PATCH] update laporan resume medis --- .../controller/ReportingController.java | 43 +++++++++++++++++++ .../java/com/reporting/dao/ReportingDao.java | 20 ++++++++- .../reporting/service/ReportingService.java | 13 ++++++ 3 files changed, 75 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/reporting/controller/ReportingController.java b/src/main/java/com/reporting/controller/ReportingController.java index 3536821..e0d52c8 100644 --- a/src/main/java/com/reporting/controller/ReportingController.java +++ b/src/main/java/com/reporting/controller/ReportingController.java @@ -801,4 +801,47 @@ public class ReportingController { } } + @RequestMapping(value = {"/laporan-resume-medis"}, method = {RequestMethod.GET}) + public void exportLpResumeMedis( + @RequestParam("tglAwal") String tglAwal, + @RequestParam("tglAkhir") String tglAkhir, + @RequestParam(value = "idInstalasi", required = false, defaultValue = "") Integer idInstalasi, + @RequestParam(value = "idRuangan", required = false, defaultValue = "") Integer idRuangan, + @RequestParam(value = "idPegawai", required = false, defaultValue = "") Integer idPegawai, + @RequestParam(value = "format", required = false, defaultValue = "pdf") String format, + @RequestParam(value = "mode", required = false, defaultValue = "download") String mode, + HttpServletResponse response) throws Exception { + + // Generate report (common for both PDF/Excel) + JasperPrint jasperPrint = this.reportingService.exportLpResumeMedis(tglAwal, tglAkhir, idInstalasi, idRuangan, idPegawai); + + if ("excel".equalsIgnoreCase(format)) { + // Handle Excel export + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setHeader("Content-Disposition", "attachment; filename=Laporan_Resume_Medis.xlsx"); + + JRXlsxExporter exporter = new JRXlsxExporter(); + exporter.setExporterInput(new SimpleExporterInput(jasperPrint)); + exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(response.getOutputStream())); + SimpleXlsxReportConfiguration config = new SimpleXlsxReportConfiguration(); + config.setOnePagePerSheet(false); + config.setDetectCellType(true); + config.setCollapseRowSpan(false); + config.setRemoveEmptySpaceBetweenRows(true); + config.setWhitePageBackground(false); + exporter.setConfiguration(config); + exporter.exportReport(); + + } else { + // Handle PDF preview + response.setContentType("application/pdf"); + response.setHeader("Content-Disposition", "inline; filename=Laporan_Resume_Medis.pdf"); + + JRPdfExporter exporter = new JRPdfExporter(); + exporter.setExporterInput(new SimpleExporterInput(jasperPrint)); + exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(response.getOutputStream())); + exporter.exportReport(); + } + } + } diff --git a/src/main/java/com/reporting/dao/ReportingDao.java b/src/main/java/com/reporting/dao/ReportingDao.java index e20031f..c425fd2 100644 --- a/src/main/java/com/reporting/dao/ReportingDao.java +++ b/src/main/java/com/reporting/dao/ReportingDao.java @@ -1132,7 +1132,7 @@ public class ReportingDao { Map parameters = new HashMap<>(); parameters.put("tglAwal", tglAwal); parameters.put("tglAkhir", tglAkhir); - parameters.put("idUnit", idInstalasi); + parameters.put("idInstalasi", idInstalasi); parameters.put("idRuangan", idRuangan); parameters.put("idProduk", idProduk); parameters.put("idPegawai", idPegawai); @@ -1144,4 +1144,22 @@ public class ReportingDao { } return null; } + + public JasperPrint exportLpResumeMedis(Date tglAwal, Date tglAkhir, Integer idInstalasi, Integer idRuangan, Integer idPegawai) { + try (Connection conn = this.jdbcTemplate1.getDataSource().getConnection()) { + String path = jaspersim2DirPath + "LaporanResumeMedis.jrxml"; + JasperReport jasperReport = JasperCompileManager.compileReport(path); + Map parameters = new HashMap<>(); + parameters.put("tglAwal", tglAwal); + parameters.put("tglAkhir", tglAkhir); + parameters.put("idInstalasi", idInstalasi); + parameters.put("idRuangan", idRuangan); + parameters.put("idPegawai", idPegawai); + return JasperFillManager.fillReport(jasperReport, parameters, conn); + } catch (Exception var15) { + LOG.error("Exception at exportLpResumeMedis"); + LOG.error(ReportingDao.class, var15); + } + return null; + } } diff --git a/src/main/java/com/reporting/service/ReportingService.java b/src/main/java/com/reporting/service/ReportingService.java index 5b9666f..1469823 100644 --- a/src/main/java/com/reporting/service/ReportingService.java +++ b/src/main/java/com/reporting/service/ReportingService.java @@ -364,4 +364,17 @@ public class ReportingService { } } + public JasperPrint exportLpResumeMedis(String tglAwal, String tglAkhir, Integer idInstalasi, Integer idRuangan, Integer idPegawai) { + try { + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + Date parse = formatter.parse(tglAwal); + Date parse2 = formatter.parse(tglAkhir); + return this.reportingDao.exportLpResumeMedis(parse, parse2, idInstalasi, idRuangan, idPegawai); + } catch (ParseException e) { + log.error(e.getMessage()); + + return null; + } + } + }