diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/LogbookKinerjaDetailDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/LogbookKinerjaDetailDao.java index e56dc926..868671d6 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/LogbookKinerjaDetailDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/LogbookKinerjaDetailDao.java @@ -1,6 +1,11 @@ package com.jasamedika.medifirst2000.dao; +import java.util.List; +import java.util.Map; + +import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; import com.jasamedika.medifirst2000.entities.LogbookKinerjaDetail; @@ -8,4 +13,22 @@ import com.jasamedika.medifirst2000.entities.LogbookKinerjaDetail; @Repository("logbookKinerjaDetailDao") public interface LogbookKinerjaDetailDao extends PagingAndSortingRepository { + @Query("select new Map(lkh.noRec as logbookNoRec," + "lkd.noRec as noRec," + + "ikm.id as indikatorId,ikm.namaIndikator as namaIndikator," + + "lkd.namaKegiatan as namaKegiatan,lkd.capaian as hasil," + + "si.id as satuanId,si.satuanIndikator as satuanIndikator," + "lkd.catatan as catatan," + + "lkd.tanggalKegiatan as tglKegiatan," + + "to_char(lkd.tanggalKegiatan,'dd-MM-yyyy HH24:MI:SS') as tglKegiatanFormat," + + "lkd.statusVerifikasi as isStatusVerifikasi," + + "(case when lkd.statusVerifikasi is true then 'Terverifikasi' " + + "else 'Belum Terverifikasi' end) as statusVerifikasi) " + "from LogbookKinerjaDetail lkd " + + "inner join lkd.logbookKinerja lkh " + "inner join lkh.indikatorKinerja ikm " + + "inner join ikm.satuanIndikator si " + "where lkh.statusEnabled is true and lkh.statusVerifikasi is true " + + "and lkd.statusEnabled is true " + "and ikm.statusEnabled is true and ikm.statusVerifikasi is true " + + "and si.statusEnabled is true " + "and lkh.pegawaiId = :pegawaiId " + "and lkh.jabatanId = :jabatanId " + + "and to_char(lkd.tanggalKegiatan,'yyyy-MM') = :bulan " + + "order by lkd.statusVerifikasi, lkd.tanggalKegiatan") + List> findWorkingRecord(@Param("pegawaiId") Integer idPegawai, + @Param("jabatanId") Integer idJabatan, @Param("bulan") String bulan); + } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaDetailService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaDetailService.java index f228f090..c04c2c88 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaDetailService.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaDetailService.java @@ -1,8 +1,14 @@ package com.jasamedika.medifirst2000.service; +import java.util.List; +import java.util.Map; + import com.jasamedika.medifirst2000.entities.LogbookKinerjaDetail; import com.jasamedika.medifirst2000.vo.LogbookKinerjaDetailVO; -public interface LogbookKinerjaDetailService extends BaseVoService { +public interface LogbookKinerjaDetailService + extends BaseVoService { + + List> findWorkingRecord(Integer idPegawai, Integer idJabatan, Long bulan); } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaDetailServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaDetailServiceImpl.java index c6e27c73..b619aaa2 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaDetailServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaDetailServiceImpl.java @@ -1,7 +1,10 @@ package com.jasamedika.medifirst2000.service.impl; +import java.text.DateFormat; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -38,7 +41,9 @@ public class LogbookKinerjaDetailServiceImpl extends BaseVoServiceImpl implement LogbookKinerjaDetail logbookKinerjaDetail = logbookKinerjaDetailConverter.transferVOToModel(vo, new LogbookKinerjaDetail()); - logbookKinerja.setCapaian(logbookKinerja.getCapaian() + vo.getCapaian()); + if (vo.getStatusEnabled() && vo.getStatusVerifikasi()) { + logbookKinerja.setCapaian(logbookKinerja.getCapaian() + vo.getCapaian()); + } logbookKinerjaDetail.setLogbookKinerja(logbookKinerja); logbookKinerjaDetail.setTanggalKegiatan(new Date()); @@ -56,9 +61,9 @@ public class LogbookKinerjaDetailServiceImpl extends BaseVoServiceImpl implement LogbookKinerja logbookKinerja = logbookKinerjaDao.findOne(vo.getLogbookKinerja().getNoRec()); LogbookKinerjaDetail logbookKinerjaDetailLama = logbookKinerjaDetailDao.findOne(vo.getNoRec()); - if (!vo.getStatusEnabled() && logbookKinerjaDetailLama.getStatusEnabled()) { + if (!vo.getStatusEnabled() && !vo.getStatusVerifikasi()) { logbookKinerja.setCapaian(logbookKinerja.getCapaian() - vo.getCapaian()); - } else if (vo.getStatusEnabled() && !logbookKinerjaDetailLama.getStatusEnabled()) { + } else if (vo.getStatusEnabled() && vo.getStatusVerifikasi()) { logbookKinerja.setCapaian(logbookKinerja.getCapaian() + vo.getCapaian()); } @@ -118,4 +123,20 @@ public class LogbookKinerjaDetailServiceImpl extends BaseVoServiceImpl implement return null; } + @Override + public List> findWorkingRecord(Integer idPegawai, Integer idJabatan, Long bulan) { + DateFormat df = new SimpleDateFormat("yyyy-MM"); + + List> result = logbookKinerjaDetailDao.findWorkingRecord(idPegawai, idJabatan, + df.format(new Date(bulan))); + for (Map map : result) { + Map logbook = new HashMap(); + logbook.put("noRec", map.get("logbookNoRec")); + map.put("logbookKinerja", logbook); + map.remove("logbookNoRec"); + } + + return result; + } + } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaServiceImpl.java index ebaeb391..405fdb53 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaServiceImpl.java @@ -29,7 +29,6 @@ import com.jasamedika.medifirst2000.entities.SatuanIndikator; import com.jasamedika.medifirst2000.exception.ServiceVOException; import com.jasamedika.medifirst2000.service.LogbookKinerjaService; import com.jasamedika.medifirst2000.util.CommonUtil; -import com.jasamedika.medifirst2000.util.IndonesianNumberToWords; import com.jasamedika.medifirst2000.vo.IndikatorKinerjaVO; import com.jasamedika.medifirst2000.vo.JabatanVO; import com.jasamedika.medifirst2000.vo.LogbookKinerjaVO; diff --git a/jasamedika-reporting/src/main/java/com/jasamedika/medifirst2000/controller/ReportingController.java b/jasamedika-reporting/src/main/java/com/jasamedika/medifirst2000/controller/ReportingController.java index 33bbc564..3b3e04f7 100644 --- a/jasamedika-reporting/src/main/java/com/jasamedika/medifirst2000/controller/ReportingController.java +++ b/jasamedika-reporting/src/main/java/com/jasamedika/medifirst2000/controller/ReportingController.java @@ -6568,6 +6568,31 @@ public class ReportingController extends LocaleController return m; } + @RequestMapping("/lapPermohonanCutiPembina") + public ModelAndView generateLapPermohonanCutiPembina(ModelAndView m, + @RequestParam(value = "format", required = false) String format, + @RequestParam(value = "noRecPlanning", required = true) String noRecPlanning, + @RequestParam(value = "idJabatan", required = false, defaultValue = "0") Integer idJabatan, + @RequestParam(value = "idUnitKerja", required = false, defaultValue = "0") Integer idUnitKerja, + @RequestParam(value = "idAtasan1", required = false, defaultValue = "0") Integer idAtasan1, + @RequestParam(value = "idKaRu", required = false, defaultValue = "0") Integer idKaRu, + @RequestParam(value = "idAtasan2", required = false, defaultValue = "0") Integer idAtasan2, + @RequestParam(value = "idJabatanAtasan1", required = false, defaultValue = "0") Integer idJabatanAtasan1, + @RequestParam(value = "idJabatanAtasan2", required = false, defaultValue = "0") Integer idJabatanAtasan2) { + + List> result = new ArrayList>(); + Map data = reportService.generateLapPermohonanCuti(noRecPlanning, idJabatan, idUnitKerja, + idAtasan1, idAtasan2, idKaRu, idJabatanAtasan1, idJabatanAtasan2); + result.add(data); + m.addObject("dataSource", result); + m.addObject("format", "pdf"); + + if (format != null && !format.isEmpty()) { + m.addObject("format", format); + } + return m; + } + @RequestMapping("/lapPermohonanCutiLuarNegeri") public ModelAndView generateCutiLuarNegeri(ModelAndView m, @RequestParam(value = "format", required = false) String format, @@ -6599,6 +6624,37 @@ public class ReportingController extends LocaleController return m; } + @RequestMapping("/lapPermohonanCutiLuarNegeriPembina") + public ModelAndView generateCutiLuarNegeriPembina(ModelAndView m, + @RequestParam(value = "format", required = false) String format, + @RequestParam(value = "noRecPlanning", required = true) String noRecPlanning, + @RequestParam(value = "idJabatan", required = false, defaultValue = "0") Integer idJabatan, + @RequestParam(value = "idUnitKerja", required = false, defaultValue = "0") Integer idUnitKerja, + @RequestParam(value = "idAtasan1", required = false, defaultValue = "0") Integer idAtasan1, + @RequestParam(value = "idKaRu", required = false, defaultValue = "0") Integer idKaRu, + @RequestParam(value = "idAtasan2", required = false, defaultValue = "0") Integer idAtasan2, + @RequestParam(value = "idJabatanAtasan1", required = false, defaultValue = "0") Integer idJabatanAtasan1, + @RequestParam(value = "idJabatanAtasan2", required = false, defaultValue = "0") Integer idJabatanAtasan2) { + List> result = new ArrayList<>(); + + Map data = new HashMap<>(); + Map page1 = reportService.generateLapPermohonanCuti(noRecPlanning, idJabatan, idUnitKerja, + idAtasan1, idAtasan2, idKaRu, idJabatanAtasan1, idJabatanAtasan2); + Map page2 = reportService.findDataCetakLuarNegeri(noRecPlanning); + data.putAll(page1); + data.putAll(page2); + + result.add(data); + + m.addObject("dataSource", result); + m.addObject("format", "pdf"); + if (format != null && !format.isEmpty()) { + m.addObject("format", format); + } + + return m; + } + @RequestMapping("/suratIzinSementara") public ModelAndView generateSuratIzinSementara(ModelAndView m, @RequestParam(value = "format", required = false) String format, diff --git a/jasamedika-reporting/src/main/resources/views.properties b/jasamedika-reporting/src/main/resources/views.properties index a5cd11e2..8a5d3224 100644 --- a/jasamedika-reporting/src/main/resources/views.properties +++ b/jasamedika-reporting/src/main/resources/views.properties @@ -422,13 +422,19 @@ reporting/lapCapaianKinerja.url=/WEB-INF/templates/jrxml/lapCapaianKinerja.jrxml #lapPermohonanCuti reporting/lapPermohonanCuti.(class)=org.springframework.web.servlet.view.jasperreports.JasperReportsMultiFormatView -reporting/lapPermohonanCuti.url=/WEB-INF/templates/jrxml/lapPermohonanCuti2021.jrxml -#reporting/lapPermohonanCuti.url=/WEB-INF/templates/jrxml/lapPermohonanCutiNew.jrxml +reporting/lapPermohonanCuti.url=/WEB-INF/templates/jrxml/lapPermohonanCutiNew.jrxml + +#lapPermohonanCutiPembina +reporting/lapPermohonanCutiPembina.(class)=org.springframework.web.servlet.view.jasperreports.JasperReportsMultiFormatView +reporting/lapPermohonanCutiPembina.url=/WEB-INF/templates/jrxml/lapPermohonanCuti2021.jrxml #lapPermohonanCutiLuarNegeri reporting/lapPermohonanCutiLuarNegeri.(class)=org.springframework.web.servlet.view.jasperreports.JasperReportsMultiFormatView -reporting/lapPermohonanCutiLuarNegeri.url=/WEB-INF/templates/jrxml/lapPermohonanCutiLuarNegeri2021.jrxml -#reporting/lapPermohonanCutiLuarNegeri.url=/WEB-INF/templates/jrxml/lapPermohonanCutiLuarNegeri.jrxml +reporting/lapPermohonanCutiLuarNegeri.url=/WEB-INF/templates/jrxml/lapPermohonanCutiLuarNegeri.jrxml + +#lapPermohonanCutiLuarNegeriPembina +reporting/lapPermohonanCutiLuarNegeriPembina.(class)=org.springframework.web.servlet.view.jasperreports.JasperReportsMultiFormatView +reporting/lapPermohonanCutiLuarNegeriPembina.url=/WEB-INF/templates/jrxml/lapPermohonanCutiLuarNegeri2021.jrxml ##lapPermohonanCutiLuarNegeriRev #reporting/lapPermohonanCutiLuarNegeriRev.(class)=org.springframework.web.servlet.view.jasperreports.JasperReportsMultiFormatView diff --git a/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/lapPermohonanCuti2021.jrxml b/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/lapPermohonanCuti2021.jrxml index 23818fe3..7448b2a0 100644 --- a/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/lapPermohonanCuti2021.jrxml +++ b/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/lapPermohonanCuti2021.jrxml @@ -1270,7 +1270,7 @@ - + @@ -1355,7 +1355,7 @@ - + @@ -1410,7 +1410,7 @@ - + diff --git a/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/lapPermohonanCutiLuarNegeri.jrxml b/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/lapPermohonanCutiLuarNegeri.jrxml index 1d39e092..e998c21d 100644 --- a/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/lapPermohonanCutiLuarNegeri.jrxml +++ b/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/lapPermohonanCutiLuarNegeri.jrxml @@ -1,5 +1,5 @@ - + @@ -69,6 +69,11 @@ + + + + + @@ -150,7 +155,7 @@ - + @@ -162,7 +167,7 @@ - + @@ -503,7 +508,7 @@ - + @@ -519,7 +524,7 @@ - + @@ -547,7 +552,7 @@ - + @@ -560,15 +565,15 @@ - + - - + + @@ -578,119 +583,45 @@ - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1250,10 +1181,107 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + @@ -1331,7 +1359,7 @@ - + @@ -1344,7 +1372,7 @@ - + @@ -1491,5 +1519,211 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/lapPermohonanCutiLuarNegeri2021.jrxml b/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/lapPermohonanCutiLuarNegeri2021.jrxml index 69a80f52..02e02623 100644 --- a/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/lapPermohonanCutiLuarNegeri2021.jrxml +++ b/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/lapPermohonanCutiLuarNegeri2021.jrxml @@ -1446,7 +1446,7 @@ - + @@ -1531,7 +1531,7 @@ - + @@ -1586,7 +1586,7 @@ - + diff --git a/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/lapPermohonanCutiNew.jrxml b/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/lapPermohonanCutiNew.jrxml index 15d7a994..bddb91c0 100644 --- a/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/lapPermohonanCutiNew.jrxml +++ b/jasamedika-reporting/src/main/webapp/WEB-INF/templates/jrxml/lapPermohonanCutiNew.jrxml @@ -60,6 +60,13 @@ + + + + + + + @@ -141,7 +148,7 @@ - + @@ -153,7 +160,7 @@ - + @@ -543,7 +550,7 @@ - + @@ -556,137 +563,67 @@ - + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1224,10 +1161,10 @@ - + - + @@ -1297,6 +1234,311 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/IkiDanRemunerasiController.java b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/IkiDanRemunerasiController.java index 9f1e7afb..f457788d 100644 --- a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/IkiDanRemunerasiController.java +++ b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/IkiDanRemunerasiController.java @@ -729,4 +729,26 @@ public class IkiDanRemunerasiController extends LocaleController>> getCatatanKegiatanHarian(HttpServletRequest request, + @RequestParam(value = "pegawaiId", required = true) Integer idPegawai, + @RequestParam(value = "jabatanId", required = true) Integer idJabatan, + @RequestParam(value = "bulan", required = true) Long bulan) throws ParseException { + try { + List> result = logbookKinerjaDetailService.findWorkingRecord(idPegawai, idJabatan, + bulan); + mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, + getMessage(MessageResource.LABEL_SUCCESS, request)); + return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); + } catch (ServiceVOException sve) { + LOGGER.error("Got exception {} when get catatan kegiatan harian", sve.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, sve.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); + } catch (JpaSystemException jse) { + LOGGER.error("Got exception {} when get catatan kegiatan harian", jse.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); + } + } + }