update laporan rekap wtrj,visit,resum,kualiatas mutu

This commit is contained in:
ridwan 2026-05-26 14:42:25 +07:00
parent 40f37c9ace
commit 6f7e5a8387
4 changed files with 396 additions and 1 deletions

View File

@ -2346,4 +2346,244 @@ public class ReportingController {
}
}
@RequestMapping(value = {"/laporan-rekap-wtrj"}, method = {RequestMethod.GET})
public void handleLpRekapWTRJ(
@RequestParam("tglAwal") String tglAwal,
@RequestParam("tglAkhir") String tglAkhir,
@RequestParam(value = "idUnit", required = false, defaultValue = "") Integer idUnit,
@RequestParam(value = "idDokter", required = false, defaultValue = "") Integer idDokter,
@RequestParam(value = "format", required = false, defaultValue = "pdf") String format,
@RequestParam(value = "mode", required = false, defaultValue = "download") String mode,
@RequestParam(value = "printBy", required = false, defaultValue = "") String printBy,
HttpServletResponse response) throws Exception {
JasperPrint jasperPrint = null;
try {
// Generate report (common for both PDF/Excel)
jasperPrint = this.reportingService.exportLpRekapWTRJ(tglAwal, tglAkhir, idUnit, idDokter, printBy);
if ("excel".equalsIgnoreCase(format)) {
// Handle Excel export
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setHeader("Content-Disposition", "attachment; filename=Laporan_Rekap_Waktu_Tunggu_Rawat_Jalan.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_Rekap_Waktu_Tunggu_Rawat_Jalan.pdf");
JRPdfExporter exporter = new JRPdfExporter();
exporter.setExporterInput(new SimpleExporterInput(jasperPrint));
exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(response.getOutputStream()));
exporter.exportReport();
}
} finally {
jasperPrint = null;
}
}
@RequestMapping(value = {"/laporan-rekap-visit"}, method = {RequestMethod.GET})
public void handleLpRekapVisit(
@RequestParam("tglAwal") String tglAwal,
@RequestParam("tglAkhir") String tglAkhir,
@RequestParam(value = "idUnit", required = false, defaultValue = "") Integer idUnit,
@RequestParam(value = "idDokter", required = false, defaultValue = "") Integer idDokter,
@RequestParam(value = "format", required = false, defaultValue = "pdf") String format,
@RequestParam(value = "mode", required = false, defaultValue = "download") String mode,
@RequestParam(value = "printBy", required = false, defaultValue = "") String printBy,
HttpServletResponse response) throws Exception {
JasperPrint jasperPrint = null;
try {
// Generate report (common for both PDF/Excel)
jasperPrint = this.reportingService.exportLpRekapVisit(tglAwal, tglAkhir, idUnit, idDokter, printBy);
if ("excel".equalsIgnoreCase(format)) {
// Handle Excel export
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setHeader("Content-Disposition", "attachment; filename=Laporan_Rekap_Ketepatan_Waktu_Visit.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_Rekap_Ketepatan_Waktu_Visit.pdf");
JRPdfExporter exporter = new JRPdfExporter();
exporter.setExporterInput(new SimpleExporterInput(jasperPrint));
exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(response.getOutputStream()));
exporter.exportReport();
}
} finally {
jasperPrint = null;
}
}
@RequestMapping(value = {"/laporan-rekap-resume-medis"}, method = {RequestMethod.GET})
public void handleLpRekapResumeMedis(
@RequestParam("tglAwal") String tglAwal,
@RequestParam("tglAkhir") String tglAkhir,
@RequestParam(value = "idUnit", required = false, defaultValue = "") Integer idUnit,
@RequestParam(value = "idDokter", required = false, defaultValue = "") Integer idDokter,
@RequestParam(value = "format", required = false, defaultValue = "pdf") String format,
@RequestParam(value = "mode", required = false, defaultValue = "download") String mode,
@RequestParam(value = "printBy", required = false, defaultValue = "") String printBy,
HttpServletResponse response) throws Exception {
JasperPrint jasperPrint = null;
try {
// Generate report (common for both PDF/Excel)
jasperPrint = this.reportingService.exportLpRekapResumeMedis(tglAwal, tglAkhir, idUnit, idDokter, printBy);
if ("excel".equalsIgnoreCase(format)) {
// Handle Excel export
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setHeader("Content-Disposition", "attachment; filename=Laporan_Rekap_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_Rekap_Resume_Medis.pdf");
JRPdfExporter exporter = new JRPdfExporter();
exporter.setExporterInput(new SimpleExporterInput(jasperPrint));
exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(response.getOutputStream()));
exporter.exportReport();
}
} finally {
jasperPrint = null;
}
}
@RequestMapping(value = {"/laporan-rekap-resume-medis-sdm"}, method = {RequestMethod.GET})
public void handleLpRekapResumeMedisSDM(
@RequestParam("tglAwal") String tglAwal,
@RequestParam("tglAkhir") String tglAkhir,
@RequestParam(value = "idUnit", required = false, defaultValue = "") Integer idUnit,
@RequestParam(value = "idDokter", required = false, defaultValue = "") Integer idDokter,
@RequestParam(value = "format", required = false, defaultValue = "pdf") String format,
@RequestParam(value = "mode", required = false, defaultValue = "download") String mode,
@RequestParam(value = "printBy", required = false, defaultValue = "") String printBy,
HttpServletResponse response) throws Exception {
JasperPrint jasperPrint = null;
try {
// Generate report (common for both PDF/Excel)
jasperPrint = this.reportingService.exportLpRekapResumMedisSDM(tglAwal, tglAkhir, idUnit, idDokter, printBy);
if ("excel".equalsIgnoreCase(format)) {
// Handle Excel export
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setHeader("Content-Disposition", "attachment; filename=Laporan_Rekap_Resume_Medis_SDM.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_Rekap_Resume_Medis_SDM.pdf");
JRPdfExporter exporter = new JRPdfExporter();
exporter.setExporterInput(new SimpleExporterInput(jasperPrint));
exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(response.getOutputStream()));
exporter.exportReport();
}
} finally {
jasperPrint = null;
}
}
@RequestMapping(value = {"/laporan-rekap-kualitas-mutu-dokter"}, method = {RequestMethod.GET})
public void handleLpRekapKualitasMutuDokter(
@RequestParam("tglAwal") String tglAwal,
@RequestParam("tglAkhir") String tglAkhir,
@RequestParam(value = "idUnit", required = false, defaultValue = "") Integer idUnit,
@RequestParam(value = "idDokter", required = false, defaultValue = "") Integer idDokter,
@RequestParam(value = "format", required = false, defaultValue = "pdf") String format,
@RequestParam(value = "mode", required = false, defaultValue = "download") String mode,
@RequestParam(value = "printBy", required = false, defaultValue = "") String printBy,
HttpServletResponse response) throws Exception {
JasperPrint jasperPrint = null;
try {
// Generate report (common for both PDF/Excel)
jasperPrint = this.reportingService.exportLpRekapKualitasMutuDokter(tglAwal, tglAkhir, idUnit, idDokter, printBy);
if ("excel".equalsIgnoreCase(format)) {
// Handle Excel export
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setHeader("Content-Disposition", "attachment; filename=Laporan_Rekap_Kualitas_Mutu_Dokter.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_Rekap_Kualitas_Mutu_Dokter.pdf");
JRPdfExporter exporter = new JRPdfExporter();
exporter.setExporterInput(new SimpleExporterInput(jasperPrint));
exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(response.getOutputStream()));
exporter.exportReport();
}
} finally {
jasperPrint = null;
}
}
}

View File

@ -1652,4 +1652,94 @@ public class ReportingDao {
return null;
}
public JasperPrint exportLpRekapWTRJ(Timestamp tglAwal, Timestamp tglAkhir, Integer idUnit, Integer idDokter, String printBy) {
try (Connection conn = this.jdbcTemplate1.getDataSource().getConnection()) {
String path = jaspersim2DirPath + "rekap_wtrj.jrxml";
JasperReport jasperReport = JasperCompileManager.compileReport(path);
Map<String, Object> parameters = new HashMap<>();
parameters.put("tglAwal", tglAwal);
parameters.put("tglAkhir", tglAkhir);
parameters.put("idUnit", idUnit);
parameters.put("idDokter", idDokter);
parameters.put("printBy", printBy);
return JasperFillManager.fillReport(jasperReport, parameters, conn);
} catch (Exception var15) {
LOG.error("Exception at exportLpRekapWTRJ");
LOG.error(ReportingDao.class, var15);
}
return null;
}
public JasperPrint exportLpRekapVisit(Timestamp tglAwal, Timestamp tglAkhir, Integer idUnit, Integer idDokter, String printBy) {
try (Connection conn = this.jdbcTemplate1.getDataSource().getConnection()) {
String path = jaspersim2DirPath + "rekap_visit.jrxml";
JasperReport jasperReport = JasperCompileManager.compileReport(path);
Map<String, Object> parameters = new HashMap<>();
parameters.put("tglAwal", tglAwal);
parameters.put("tglAkhir", tglAkhir);
parameters.put("idUnit", idUnit);
parameters.put("idDokter", idDokter);
parameters.put("printBy", printBy);
return JasperFillManager.fillReport(jasperReport, parameters, conn);
} catch (Exception var15) {
LOG.error("Exception at exportLpRekapVisit");
LOG.error(ReportingDao.class, var15);
}
return null;
}
public JasperPrint exportLpRekapResumeMedis(Timestamp tglAwal, Timestamp tglAkhir, Integer idUnit, Integer idDokter, String printBy) {
try (Connection conn = this.jdbcTemplate1.getDataSource().getConnection()) {
String path = jaspersim2DirPath + "Laporan_rekap_resume.jrxml";
JasperReport jasperReport = JasperCompileManager.compileReport(path);
Map<String, Object> parameters = new HashMap<>();
parameters.put("tglAwal", tglAwal);
parameters.put("tglAkhir", tglAkhir);
parameters.put("idUnit", idUnit);
parameters.put("idDokter", idDokter);
parameters.put("printBy", printBy);
return JasperFillManager.fillReport(jasperReport, parameters, conn);
} catch (Exception var15) {
LOG.error("Exception at exportLpRekapResumeMedis");
LOG.error(ReportingDao.class, var15);
}
return null;
}
public JasperPrint exportLpRekapResumMedisSDM(Timestamp tglAwal, Timestamp tglAkhir, Integer idUnit, Integer idDokter, String printBy) {
try (Connection conn = this.jdbcTemplate1.getDataSource().getConnection()) {
String path = jaspersim2DirPath + "Laporan_rekap_resume_sdm.jrxml";
JasperReport jasperReport = JasperCompileManager.compileReport(path);
Map<String, Object> parameters = new HashMap<>();
parameters.put("tglAwal", tglAwal);
parameters.put("tglAkhir", tglAkhir);
parameters.put("idUnit", idUnit);
parameters.put("idDokter", idDokter);
parameters.put("printBy", printBy);
return JasperFillManager.fillReport(jasperReport, parameters, conn);
} catch (Exception var15) {
LOG.error("Exception at exportLpRekapResumMedisSDM");
LOG.error(ReportingDao.class, var15);
}
return null;
}
public JasperPrint exportLpRekapKualitasMutuDokter(Timestamp tglAwal, Timestamp tglAkhir, Integer idUnit, Integer idDokter, String printBy) {
try (Connection conn = this.jdbcTemplate1.getDataSource().getConnection()) {
String path = jaspersim2DirPath + "rekap_kualitas_mutu_dokter.jrxml";
JasperReport jasperReport = JasperCompileManager.compileReport(path);
Map<String, Object> parameters = new HashMap<>();
parameters.put("tglAwal", tglAwal);
parameters.put("tglAkhir", tglAkhir);
parameters.put("idUnit", idUnit);
parameters.put("idDokter", idDokter);
parameters.put("printBy", printBy);
return JasperFillManager.fillReport(jasperReport, parameters, conn);
} catch (Exception var15) {
LOG.error("Exception at exportLpRekapKualitasMutuDokter");
LOG.error(ReportingDao.class, var15);
}
return null;
}
}

View File

@ -597,4 +597,69 @@ public class ReportingService {
}
}
public JasperPrint exportLpRekapWTRJ(String tglAwal, String tglAkhir, Integer idUnit, Integer idDokter, String printBy) {
log.info("Starting exportLpRekapWTRJ with tglAwal: {}, tglAkhir: {}, idUnit: {}, idDokter: {}, printBy: {}", tglAwal, tglAkhir, idUnit, idDokter, printBy);
try {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm");
Timestamp parse = new Timestamp(formatter.parse(tglAwal).getTime());
Timestamp parse2 = new Timestamp(formatter.parse(tglAkhir).getTime());
return this.reportingDao.exportLpRekapWTRJ(parse, parse2, idUnit, idDokter, printBy);
} catch (ParseException e) {
log.error(e.getMessage());
return null;
}
}
public JasperPrint exportLpRekapVisit(String tglAwal, String tglAkhir, Integer idUnit, Integer idDokter, String printBy) {
log.info("Starting exportLpRekapVisit with tglAwal: {}, tglAkhir: {}, idUnit: {}, idDokter: {}, printBy: {}", tglAwal, tglAkhir, idUnit, idDokter, printBy);
try {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm");
Timestamp parse = new Timestamp(formatter.parse(tglAwal).getTime());
Timestamp parse2 = new Timestamp(formatter.parse(tglAkhir).getTime());
return this.reportingDao.exportLpRekapVisit(parse, parse2, idUnit, idDokter, printBy);
} catch (ParseException e) {
log.error(e.getMessage());
return null;
}
}
public JasperPrint exportLpRekapResumeMedis(String tglAwal, String tglAkhir, Integer idUnit, Integer idDokter, String printBy) {
log.info("Starting exportLpRekapResumeMedis with tglAwal: {}, tglAkhir: {}, idUnit: {}, idDokter: {}, printBy: {}", tglAwal, tglAkhir, idUnit, idDokter, printBy);
try {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm");
Timestamp parse = new Timestamp(formatter.parse(tglAwal).getTime());
Timestamp parse2 = new Timestamp(formatter.parse(tglAkhir).getTime());
return this.reportingDao.exportLpRekapResumeMedis(parse, parse2, idUnit, idDokter, printBy);
} catch (ParseException e) {
log.error(e.getMessage());
return null;
}
}
public JasperPrint exportLpRekapResumMedisSDM(String tglAwal, String tglAkhir, Integer idUnit, Integer idDokter, String printBy) {
log.info("Starting exportLpRekapResumMedisSDM with tglAwal: {}, tglAkhir: {}, idUnit: {}, idDokter: {}, printBy: {}", tglAwal, tglAkhir, idUnit, idDokter, printBy);
try {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm");
Timestamp parse = new Timestamp(formatter.parse(tglAwal).getTime());
Timestamp parse2 = new Timestamp(formatter.parse(tglAkhir).getTime());
return this.reportingDao.exportLpRekapResumMedisSDM(parse, parse2, idUnit, idDokter, printBy);
} catch (ParseException e) {
log.error(e.getMessage());
return null;
}
}
public JasperPrint exportLpRekapKualitasMutuDokter(String tglAwal, String tglAkhir, Integer idUnit, Integer idDokter, String printBy) {
log.info("Starting exportLpRekapKualitasMutuDokter with tglAwal: {}, tglAkhir: {}, idUnit: {}, idDokter: {}, printBy: {}", tglAwal, tglAkhir, idUnit, idDokter, printBy);
try {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm");
Timestamp parse = new Timestamp(formatter.parse(tglAwal).getTime());
Timestamp parse2 = new Timestamp(formatter.parse(tglAkhir).getTime());
return this.reportingDao.exportLpRekapKualitasMutuDokter(parse, parse2, idUnit, idDokter, printBy);
} catch (ParseException e) {
log.error(e.getMessage());
return null;
}
}
}

View File

@ -32,6 +32,6 @@ spring.mvc.dispatch-trace-request=true
spring.main.banner-mode=off
application.jasper-xml.dir-path=/mnt/files/jasper-xml/
application.jasper-xml.dir-bintaro-path=/mnt/files/jasper-xml-bintaro/
application.jasper-xml.dir-sim2-path=/mnt/files/jasper-xml-sim2/
application.jasper-xml.dir-sim2-path=D:\\UP\\
application.pdf.dir-sep=/mnt/files/sep/
application.pdf.dir-lis=/mnt/lis/