From c0b98bea077289a2b36004acf81853695ed4db22 Mon Sep 17 00:00:00 2001 From: salmanoe Date: Tue, 2 Mar 2021 20:14:15 +0700 Subject: [PATCH] - daftarkan master jenis indikator - pembuatan service duplikat master indikator kinerja - pembuatan service duplikat kontrak kinerja - penambahan list generic untuk criteria in() - pembuatan service pengajuan kontrak kinerja - pembuatan service daftar kontrak kinerja - penerapan blu, pns, cpns sebagai pegawai purna waktu - pembuatan service detail dashboard sebagai tampilan awal entri working record --- .../medifirst2000/constants/Master.java | 4 + .../dao/IndikatorKinerjaDao.java | 19 +- .../medifirst2000/dao/LogbookKinerjaDao.java | 50 +++- .../dao/custom/GenericServDaoImpl.java | 22 +- .../service/IndikatorKinerjaService.java | 9 +- .../service/LogbookKinerjaService.java | 16 +- .../service/PasienDaftarService.java | 2 +- .../impl/IndikatorKinerjaServiceImpl.java | 29 ++- .../impl/LogbookKinerjaServiceImpl.java | 124 +++++++++- .../service/impl/PasienDaftarServiceImpl.java | 4 +- .../impl/RekamDataPegawaiServiceImpl.java | 35 +++ .../IkiDanRemunerasiController.java | 222 ++++++++++++------ 12 files changed, 433 insertions(+), 103 deletions(-) diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java index 87cfb25b..147dc4dc 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java @@ -18,6 +18,8 @@ public class Master { public static final String[] KONSUL_VISIT = { "konsul", "visit" }; public static final String[] MATERAI_ADMINISTRASI = { "materai", "administrasi" }; + public static final String[] JENIS_INDIKATOR = { "Kuantitas", "Kualitas", "Perilaku" }; + public static final String[] IP_HEADER_CANDIDATES = { "X-Forwarded-For", "Proxy-Client-IP", "WL-Proxy-Client-IP", "HTTP_X_FORWARDED_FOR", "HTTP_X_FORWARDED", "HTTP_X_CLUSTER_CLIENT_IP", "HTTP_CLIENT_IP", "HTTP_FORWARDED_FOR", "HTTP_FORWARDED", "HTTP_VIA", "REMOTE_ADDR" }; @@ -114,6 +116,8 @@ public class Master { public static final class KategoryPegawai { public static final Integer[] DOKTER_LUAR = { 12, 13, 19 }; public static final Integer[] NONSDM = { 13, 16, 17 }; // peserta_didik,_mitra + public static final Integer[] PARUH_WAKTU = { 12 }; + public static final Integer[] PURNA_WAKTU = { 1, 2, 10, 14 }; public static final Integer DOKTER_TAMU = 19; public static final Integer PNS = 1; diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/IndikatorKinerjaDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/IndikatorKinerjaDao.java index 3c718e3f..0f425f31 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/IndikatorKinerjaDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/IndikatorKinerjaDao.java @@ -5,6 +5,7 @@ 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.IndikatorKinerja; @@ -20,6 +21,22 @@ public interface IndikatorKinerjaDao extends PagingAndSortingRepository> findMasterIndikatorKinerja(); + List> findAllIndikatorKinerja(); + + String strCekDupIndikator = "select ik.id " + "from IndikatorKinerja ik " + "where ik.statusEnabled is true " + + "and lower(regexp_replace(ik.namaIndikator,:patternText,'','g')) = :namaIndikator"; + + String idIndikatorLama = " and ik.id <> :indikatorId"; + + @Query(strCekDupIndikator) + List findDupByName(@Param("patternText") String patternText, @Param("namaIndikator") String namaIndikator); + + @Query(strCekDupIndikator + idIndikatorLama) + List findDupByName(@Param("patternText") String patternText, @Param("indikatorId") Integer idIndikator, + @Param("namaIndikator") String namaIndikator); + + @Query("select new Map(ik.id as id,ik.namaIndikator as namaIndikator) " + "from IndikatorKinerja ik " + + "where ik.statusEnabled is true " + "and ik.id in (:listIdDup)") + List> findAllDup(@Param("listIdDup") List listIdDup); } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/LogbookKinerjaDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/LogbookKinerjaDao.java index 9d55cb98..5636e870 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/LogbookKinerjaDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/LogbookKinerjaDao.java @@ -16,12 +16,54 @@ public interface LogbookKinerjaDao extends PagingAndSortingRepository> findPengajuanIndikatorByPegawaiJabatan(@Param("pegawaiId") Integer pegawaiId, @Param("jabatanId") Integer jabatanId); + @Query("select new Map(lk.noRec as noRec,ik.namaIndikator as namaIndikator) " + "from LogbookKinerja lk " + + "inner join lk.indikatorKinerja ik " + "where lk.statusEnabled is true and ik.statusEnabled is true " + + "and lk.statusVerifikasi is true and ik.statusVerifikasi is true " + "and lk.pegawaiId = :pegawaiId " + + "and lk.jabatanId = :jabatanId " + "and to_char(lk.bulan,'yyyy-MM') = :bulan " + + "and ik.id = :indikatorId") + List> findDupKontrakKinerja(@Param("pegawaiId") Integer idPegawai, + @Param("jabatanId") Integer idJabatan, @Param("bulan") String bulan, + @Param("indikatorId") Integer idIndikator); + + @Query("select new Map(lk.noRec as noRec," + "pg.id as idPegawai,pg.namaLengkap as namaPegawai," + + "jb.id as idJabatan,jb.namaJabatan as namaJabatan," + + "ik.id as idIndikator,ik.namaIndikator as namaIndikator," + "ik.jenisIndikator as idJenisIndikator," + + "(case when ik.jenisIndikator = 1 then 'Kuantitas' " + "when ik.jenisIndikator = 2 then 'Kualitas' " + + "when ik.jenisIndikator = 3 then 'Perilaku' end) as jenisIndikator," + "lk.target as target," + + "lk.bobot as bobot," + "lk.bulan as bulan," + "lk.statusVerifikasi as isStatusVerifikasi," + + "(case when lk.statusVerifikasi is false then 'Belum Terverifikasi' " + + "when lk.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi) " + + "from LogbookKinerja lk " + "inner join lk.indikatorKinerja ik " + "inner join lk.pegawai pg " + + "inner join lk.jabatan jb " + "where lk.statusEnabled is true and ik.statusEnabled is true " + + "and ik.statusVerifikasi is true " + "and lk.pegawaiId = :pegawaiId " + "and lk.jabatanId = :jabatanId " + + "and to_char(lk.bulan,'yyyy-MM') = :bulan " + "order by ik.jenisIndikator, ik.namaIndikator") + List> findKontrakKinerja(@Param("pegawaiId") Integer idPegawai, + @Param("jabatanId") Integer idJabatan, @Param("bulan") String bulan); + + @Query("select new Map(lk.noRec as noRec," + "pg.id as idPegawai,pg.namaLengkap as namaPegawai," + + "jb.id as idJabatan,jb.namaJabatan as namaJabatan," + + "ik.id as idIndikator,ik.namaIndikator as namaIndikator," + + "ik.jenisIndikator as idJenisIndikator,(case when ik.jenisIndikator = 1 then 'Kuantitas' " + + "when ik.jenisIndikator = 2 then 'Kualitas' " + + "when ik.jenisIndikator = 3 then 'Perilaku' end) as jenisIndikator," + + "lk.capaian/lk.target*100 as persenCapaian) " + "from LogbookKinerja lk " + + "inner join lk.indikatorKinerja ik " + "inner join lk.pegawai pg " + "inner join lk.jabatan jb " + + "where lk.statusEnabled is true and ik.statusEnabled is true " + + "and lk.statusVerifikasi is true and ik.statusVerifikasi is true " + "and lk.pegawaiId = :pegawaiId " + + "and lk.jabatanId = :jabatanId " + "and to_char(lk.bulan,'yyyy-MM') = :bulan") + List> findLogbookKinerja(@Param("pegawaiId") Integer idPegawai, + @Param("jabatanId") Integer idJabatan, @Param("bulan") String bulan); + } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/custom/GenericServDaoImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/custom/GenericServDaoImpl.java index ded279c8..3507477b 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/custom/GenericServDaoImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/custom/GenericServDaoImpl.java @@ -15,8 +15,8 @@ public class GenericServDaoImpl implements GenericServDao { @PersistenceContext protected EntityManager em; -// private Class type; -// private String construc = "like"; + // private Class type; + // private String construc = "like"; @Override public int dataCount(String entity, String value, String fieldS, String criteria, String values) { @@ -53,17 +53,16 @@ public class GenericServDaoImpl implements GenericServDao { StringBuffer buffer = new StringBuffer(); buffer.append("select ").append(filedShow.toString()).append(" from ").append(entity) .append(" model where model.id is not null ").append(filedCriteria.toString()); - if(field.split(",").length ==2) - { - buffer.append(" order by "+field.split(",")[1]); + if (field.split(",").length == 2) { + buffer.append(" order by " + field.split(",")[1]); } Query query = em.createQuery(buffer.toString()); - if(rowStart < 1){ - query.setFirstResult(0); - }else{ + if (rowStart < 1) { + query.setFirstResult(0); + } else { query.setFirstResult(rowStart); } - + query.setMaxResults(rowEnd); return query.getResultList(); @@ -116,9 +115,10 @@ public class GenericServDaoImpl implements GenericServDao { if (value[x].contains("{") && value[x].contains("}")) { buffer.append(" and model.").append(field[x]).append(" = ") .append(value[x].replace("{", "").replace("}", "")); + } else if (value[x].contains("(") && value[x].contains(")")) { + buffer.append(" and model.").append(field[x]).append(" in ").append(value[x].replace(";", ",")); } else if (value[x].contains("!")) { - buffer.append(" and model.").append(field[x]).append(" != ") - .append(value[x].replace("!", "")); + buffer.append(" and model.").append(field[x]).append(" != ").append(value[x].replace("!", "")); } else if (value[x].contains("[") && value[x].contains("]")) { buffer.append(" and date(model.").append(field[x]).append(") = ") .append(value[x].replace("[", "'").replace("]", "'")); diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/IndikatorKinerjaService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/IndikatorKinerjaService.java index c9bd9533..3afd54db 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/IndikatorKinerjaService.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/IndikatorKinerjaService.java @@ -3,11 +3,16 @@ package com.jasamedika.medifirst2000.service; import java.util.List; import java.util.Map; +import org.springframework.orm.jpa.JpaSystemException; + import com.jasamedika.medifirst2000.entities.IndikatorKinerja; import com.jasamedika.medifirst2000.vo.IndikatorKinerjaVO; public interface IndikatorKinerjaService extends BaseVoService { - List> getMasterIndikatorKinerja(); - + List> findAllIndikatorKinerja() throws JpaSystemException; + + List> findDuplicateIndikatorKinerja(Integer idIndikator, String namaIndikator) + throws JpaSystemException; + } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaService.java index 6ebb2b3a..fe305059 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaService.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaService.java @@ -11,8 +11,20 @@ import com.jasamedika.medifirst2000.vo.LogbookKinerjaVO; public interface LogbookKinerjaService extends BaseVoService { - LogbookKinerjaVO addPengajuanIndikator(LogbookKinerjaVO vo) throws JpaSystemException, ServiceVOException; + LogbookKinerjaVO addPengajuanKontrakKinerja(LogbookKinerjaVO vo) throws JpaSystemException, ServiceVOException; - List> findPengajuanIndikatorByPegawaiJabatan(Integer idPegawai, Integer idJabatan); + LogbookKinerjaVO updatePengajuanKontrakKinerja(LogbookKinerjaVO vo) throws JpaSystemException, ServiceVOException; + + List> findPengajuanKontrakKinerja(Integer idPegawai, Integer idJabatan) + throws JpaSystemException; + + List> findDupKontrakKinerja(Integer idPegawai, Integer idJabatan, Long bulan, + Integer idIndikator) throws JpaSystemException; + + List> findKontrakKinerja(Integer idPegawai, Integer idJabatan, Long bulan) + throws JpaSystemException; + + List> findLogbookKinerja(Integer idPegawai, Integer idJabatan, Long bulan) + throws JpaSystemException; } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/PasienDaftarService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/PasienDaftarService.java index 36c6a398..9f738fc3 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/PasienDaftarService.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/PasienDaftarService.java @@ -12,7 +12,7 @@ import com.jasamedika.medifirst2000.vo.MasukKamarVO; import com.jasamedika.medifirst2000.vo.PasienDaftarVO; import com.jasamedika.medifirst2000.vo.RegistrasiPasienGawatDaruratVO; -public interface PasienDaftarService extends BaseVoService { +public interface PasienDaftarService extends BaseVoService { String getFormatNumberByMonthYear(); diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IndikatorKinerjaServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IndikatorKinerjaServiceImpl.java index b057e54e..01244913 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IndikatorKinerjaServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IndikatorKinerjaServiceImpl.java @@ -10,6 +10,7 @@ import org.springframework.stereotype.Service; import com.jasamedika.medifirst2000.converter.BaseConverterImpl; import com.jasamedika.medifirst2000.dao.IndikatorKinerjaDao; +import com.jasamedika.medifirst2000.dao.SettingDataFixedDao; import com.jasamedika.medifirst2000.entities.IndikatorKinerja; import com.jasamedika.medifirst2000.entities.SatuanIndikator; import com.jasamedika.medifirst2000.exception.ServiceVOException; @@ -30,6 +31,9 @@ public class IndikatorKinerjaServiceImpl extends BaseVoServiceImpl implements In @Autowired private IndikatorKinerjaDao indikatorKinerjaDao; + @Autowired + private SettingDataFixedDao settingDataFixedDao; + @Override public IndikatorKinerjaVO add(IndikatorKinerjaVO vo) throws JpaSystemException, ServiceVOException { SatuanIndikator satuanIndikator = satuanIndikatorConverter.transferVOToModel(vo.getSatuanIndikator(), @@ -102,8 +106,29 @@ public class IndikatorKinerjaServiceImpl extends BaseVoServiceImpl implements In } @Override - public List> getMasterIndikatorKinerja() { - List> result = indikatorKinerjaDao.findMasterIndikatorKinerja(); + public List> findAllIndikatorKinerja() throws JpaSystemException { + List> result = indikatorKinerjaDao.findAllIndikatorKinerja(); + + return result; + } + + @Override + public List> findDuplicateIndikatorKinerja(Integer idIndikator, String namaIndikator) + throws JpaSystemException { + List> result = new ArrayList<>(); + List listIdDup = new ArrayList<>(); + + String patternText = settingDataFixedDao.getSettingDataFixed("patternTextProduk"); + String replacedNamaIndikator = namaIndikator.replaceAll(patternText, "").toLowerCase(); + if (CommonUtil.isNotNullOrEmpty(idIndikator)) { + listIdDup = indikatorKinerjaDao.findDupByName(patternText, idIndikator, replacedNamaIndikator); + } else { + listIdDup = indikatorKinerjaDao.findDupByName(patternText, replacedNamaIndikator); + } + + if (CommonUtil.isNotNullOrEmpty(listIdDup)) { + result = indikatorKinerjaDao.findAllDup(listIdDup); + } 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 e18548fd..ba97f412 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 @@ -1,6 +1,11 @@ package com.jasamedika.medifirst2000.service.impl; +import java.text.DateFormat; +import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -8,6 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.orm.jpa.JpaSystemException; import org.springframework.stereotype.Service; +import com.jasamedika.medifirst2000.constants.Master; import com.jasamedika.medifirst2000.converter.BaseConverterImpl; import com.jasamedika.medifirst2000.dao.IndikatorKinerjaDao; import com.jasamedika.medifirst2000.dao.LogbookKinerjaDao; @@ -15,6 +21,7 @@ import com.jasamedika.medifirst2000.entities.IndikatorKinerja; import com.jasamedika.medifirst2000.entities.Jabatan; import com.jasamedika.medifirst2000.entities.LogbookKinerja; import com.jasamedika.medifirst2000.entities.Pegawai; +import com.jasamedika.medifirst2000.entities.SatuanIndikator; import com.jasamedika.medifirst2000.exception.ServiceVOException; import com.jasamedika.medifirst2000.service.LogbookKinerjaService; import com.jasamedika.medifirst2000.util.CommonUtil; @@ -22,6 +29,7 @@ import com.jasamedika.medifirst2000.vo.IndikatorKinerjaVO; import com.jasamedika.medifirst2000.vo.JabatanVO; import com.jasamedika.medifirst2000.vo.LogbookKinerjaVO; import com.jasamedika.medifirst2000.vo.PegawaiVO; +import com.jasamedika.medifirst2000.vo.SatuanIndikatorVO; @Service("LogbookKinerjaService") public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements LogbookKinerjaService { @@ -38,6 +46,9 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb @Autowired private BaseConverterImpl indikatorKinerjaConverter; + @Autowired + private BaseConverterImpl satuanIndikatorConverter; + @Autowired private LogbookKinerjaDao logbookKinerjaDao; @@ -126,17 +137,30 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb } @Override - public LogbookKinerjaVO addPengajuanIndikator(LogbookKinerjaVO vo) throws JpaSystemException, ServiceVOException { - Pegawai pegawai = pegawaiConverter.transferVOToModel(vo.getPegawai(), new Pegawai()); - Jabatan jabatan = jabatanConverter.transferVOToModel(vo.getJabatan(), new Jabatan()); + public LogbookKinerjaVO addPengajuanKontrakKinerja(LogbookKinerjaVO vo) + throws JpaSystemException, ServiceVOException { + SatuanIndikator satuanIndikator = satuanIndikatorConverter + .transferVOToModel(vo.getIndikatorKinerja().getSatuanIndikator(), new SatuanIndikator()); + IndikatorKinerja indikatorKinerja = indikatorKinerjaConverter.transferVOToModel(vo.getIndikatorKinerja(), new IndikatorKinerja()); - LogbookKinerja logbookKinerja = logbookKinerjaConverter.transferVOToModel(vo, new LogbookKinerja()); + indikatorKinerja.setSatuanIndikator(satuanIndikator); + indikatorKinerja.setStatusVerifikasi(false); + indikatorKinerja.setStatusEnabled(true); + indikatorKinerja.setKdProfile((short) 0); + Pegawai pegawai = pegawaiConverter.transferVOToModel(vo.getPegawai(), new Pegawai()); + Jabatan jabatan = jabatanConverter.transferVOToModel(vo.getJabatan(), new Jabatan()); + + LogbookKinerja logbookKinerja = logbookKinerjaConverter.transferVOToModel(vo, new LogbookKinerja()); logbookKinerja.setPegawai(pegawai); logbookKinerja.setJabatan(jabatan); - logbookKinerja.setIndikatorKinerja(indikatorKinerja); logbookKinerja.setCapaian(0.0); + logbookKinerja.setStatusVerifikasi(false); + logbookKinerja.setStatusEnabled(true); + logbookKinerja.setKdProfile((short) 0); + logbookKinerja.setIndikatorKinerja(indikatorKinerja); + indikatorKinerjaDao.save(indikatorKinerja); LogbookKinerja resultModel = logbookKinerjaDao.save(logbookKinerja); @@ -147,11 +171,99 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb } @Override - public List> findPengajuanIndikatorByPegawaiJabatan(Integer idPegawai, Integer idJabatan) { + public LogbookKinerjaVO updatePengajuanKontrakKinerja(LogbookKinerjaVO vo) + throws JpaSystemException, ServiceVOException { + IndikatorKinerja indikatorKinerjaLama = indikatorKinerjaDao.findOne(vo.getIndikatorKinerja().getId()); + LogbookKinerja logbookKinerjaLama = logbookKinerjaDao.findOne(vo.getNoRec()); + + SatuanIndikator satuanIndikator = satuanIndikatorConverter + .transferVOToModel(vo.getIndikatorKinerja().getSatuanIndikator(), new SatuanIndikator()); + Pegawai pegawai = pegawaiConverter.transferVOToModel(vo.getPegawai(), new Pegawai()); + Jabatan jabatan = jabatanConverter.transferVOToModel(vo.getJabatan(), new Jabatan()); + + IndikatorKinerja indikatorKinerjaBaru = indikatorKinerjaConverter.transferVOToModel(vo.getIndikatorKinerja(), + indikatorKinerjaLama); + LogbookKinerja logbookKinerjaBaru = logbookKinerjaConverter.transferVOToModel(vo, logbookKinerjaLama); + + indikatorKinerjaBaru.setSatuanIndikator(satuanIndikator); + if (vo.getIndikatorKinerja().getStatusVerifikasi()) { + indikatorKinerjaBaru.setStatusEnabled(true); + } else { + indikatorKinerjaBaru.setStatusEnabled(false); + } + indikatorKinerjaBaru.setKdProfile((short) 0); + logbookKinerjaBaru.setPegawai(pegawai); + logbookKinerjaBaru.setJabatan(jabatan); + if (vo.getStatusVerifikasi()) { + logbookKinerjaBaru.setStatusEnabled(true); + } else { + logbookKinerjaBaru.setStatusEnabled(false); + } + logbookKinerjaBaru.setKdProfile((short) 0); + logbookKinerjaBaru.setIndikatorKinerja(indikatorKinerjaBaru); + + indikatorKinerjaDao.save(indikatorKinerjaBaru); + LogbookKinerja resultModel = logbookKinerjaDao.save(logbookKinerjaBaru); + + LogbookKinerjaVO resultVO = new LogbookKinerjaVO(); + resultVO = logbookKinerjaConverter.transferModelToVO(resultModel, resultVO); + + return resultVO; + } + + @Override + public List> findPengajuanKontrakKinerja(Integer idPegawai, Integer idJabatan) + throws JpaSystemException { List> result = logbookKinerjaDao.findPengajuanIndikatorByPegawaiJabatan(idPegawai, idJabatan); return result; } + @Override + public List> findDupKontrakKinerja(Integer idPegawai, Integer idJabatan, Long bulan, + Integer idIndikator) throws JpaSystemException { + DateFormat df = new SimpleDateFormat("yyyy-MM"); + + List> result = logbookKinerjaDao.findDupKontrakKinerja(idPegawai, idJabatan, + df.format(new Date(bulan)), idIndikator); + + return result; + } + + @Override + public List> findKontrakKinerja(Integer idPegawai, Integer idJabatan, Long bulan) + throws JpaSystemException { + DateFormat df = new SimpleDateFormat("yyyy-MM"); + + List> result = logbookKinerjaDao.findKontrakKinerja(idPegawai, idJabatan, + df.format(new Date(bulan))); + + return result; + } + + @Override + public List> findLogbookKinerja(Integer idPegawai, Integer idJabatan, Long bulan) + throws JpaSystemException { + List> result = new ArrayList<>(); + DateFormat df = new SimpleDateFormat("yyyy-MM"); + + List> rs = logbookKinerjaDao.findLogbookKinerja(idPegawai, idJabatan, + df.format(new Date(bulan))); + for (String ji : Arrays.asList(Master.JENIS_INDIKATOR)) { + List> data = new ArrayList<>(); + Map jenisIndikator = new HashMap<>(); + jenisIndikator.put("jenisIndikator", ji); + for (Map map : rs) { + if (map.get("jenisIndikator").equals(ji)) { + data.add(map); + } + } + jenisIndikator.put("data", data); + result.add(jenisIndikator); + } + + return result; + } + } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PasienDaftarServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PasienDaftarServiceImpl.java index 641af80b..8ed1cd89 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PasienDaftarServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PasienDaftarServiceImpl.java @@ -7,7 +7,6 @@ import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.temporal.ChronoUnit; import java.util.ArrayList; -import java.util.Arrays; import java.util.Calendar; import java.util.Date; import java.util.HashMap; @@ -20,7 +19,6 @@ import org.springframework.orm.jpa.JpaSystemException; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import com.jasamedika.medifirst2000.constants.Master; import com.jasamedika.medifirst2000.converter.AsalRujukanConverter; import com.jasamedika.medifirst2000.converter.DiputuskanConverter; import com.jasamedika.medifirst2000.converter.PasienDaftarConverter; @@ -66,7 +64,7 @@ import com.jasamedika.medifirst2000.vo.PegawaiVO; import com.jasamedika.medifirst2000.vo.RegistrasiPasienGawatDaruratVO; @Service("PasienDaftarService") -public class PasienDaftarServiceImpl implements PasienDaftarService { +public class PasienDaftarServiceImpl implements PasienDaftarService { @Autowired private PasienDaftarDao pasienDaftarDao; diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/RekamDataPegawaiServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/RekamDataPegawaiServiceImpl.java index a9cbba9d..a29496cb 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/RekamDataPegawaiServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/RekamDataPegawaiServiceImpl.java @@ -733,12 +733,35 @@ public class RekamDataPegawaiServiceImpl extends BaseVoServiceImpl implements Re pegawai.setKategoryPegawai( kategoryPegawaiConverter.transferVOToModel(vo.getKategoryPegawai(), new KategoryPegawai())); perubahan += "ubah kategory pegawai, "; + + if (Arrays.asList(Master.KategoryPegawai.PURNA_WAKTU).contains(vo.getKategoryPegawai().getId())) { + TypePegawai typePegawai = new TypePegawai(); + typePegawai.setId(Master.TipePegawai.PURNA_WAKTU); + pegawai.setTypePegawai(typePegawai); + } else if (Arrays.asList(Master.KategoryPegawai.PARUH_WAKTU) + .contains(vo.getKategoryPegawai().getId())) { + TypePegawai typePegawai = new TypePegawai(); + typePegawai.setId(Master.TipePegawai.PARUH_WAKTU); + pegawai.setTypePegawai(typePegawai); + } } } else if (CommonUtil.isNullOrEmpty(pegawai.getKategoryPegawaiId()) && CommonUtil.isNotNullOrEmpty(vo.getKategoryPegawai())) { pegawai.setKategoryPegawai( kategoryPegawaiConverter.transferVOToModel(vo.getKategoryPegawai(), new KategoryPegawai())); perubahan += "kategory pegawai, "; + + if (Arrays.asList(Master.KategoryPegawai.PURNA_WAKTU).contains(vo.getKategoryPegawai().getId()) + && CommonUtil.isNullOrEmpty(vo.getTypePegawai())) { + JenisPegawai jenisPegawai = new JenisPegawai(); + jenisPegawai.setId(Master.TipePegawai.PURNA_WAKTU); + pegawai.setJenisPegawai(jenisPegawai); + } else if (Arrays.asList(Master.KategoryPegawai.PARUH_WAKTU).contains(vo.getKategoryPegawai().getId()) + && CommonUtil.isNullOrEmpty(vo.getTypePegawai())) { + JenisPegawai jenisPegawai = new JenisPegawai(); + jenisPegawai.setId(Master.TipePegawai.PARUH_WAKTU); + pegawai.setJenisPegawai(jenisPegawai); + } } else if (CommonUtil.isNotNullOrEmpty(pegawai.getKategoryPegawaiId()) && CommonUtil.isNullOrEmpty(vo.getKategoryPegawai())) { pegawai.setKategoryPegawai(null); @@ -1417,6 +1440,18 @@ public class RekamDataPegawaiServiceImpl extends BaseVoServiceImpl implements Re pegawai.setKategoryPegawai( kategoryPegawaiConverter.transferVOToModel(vo.getKategoryPegawai(), new KategoryPegawai())); perubahan += "kategory pegawai, "; + + if (Arrays.asList(Master.KategoryPegawai.PURNA_WAKTU).contains(vo.getKategoryPegawai().getId()) + && CommonUtil.isNullOrEmpty(vo.getTypePegawai())) { + TypePegawai typePegawai = new TypePegawai(); + typePegawai.setId(Master.TipePegawai.PURNA_WAKTU); + pegawai.setTypePegawai(typePegawai); + } else if (Arrays.asList(Master.KategoryPegawai.PARUH_WAKTU).contains(vo.getKategoryPegawai().getId()) + && CommonUtil.isNullOrEmpty(vo.getTypePegawai())) { + TypePegawai typePegawai = new TypePegawai(); + typePegawai.setId(Master.TipePegawai.PARUH_WAKTU); + pegawai.setTypePegawai(typePegawai); + } } if (CommonUtil.isNotNullOrEmpty(vo.getKedudukan())) { pegawai.setKedudukan(kedudukanConverter.transferVOToModel(vo.getKedudukan(), new Kedudukan())); 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 0e664ef9..651c412f 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 @@ -1,7 +1,7 @@ package com.jasamedika.medifirst2000.controller; import java.text.ParseException; -import java.util.HashMap; +import java.util.Date; import java.util.List; import java.util.Map; @@ -261,17 +261,15 @@ public class IkiDanRemunerasiController extends LocaleController> saveMasterIndikatorKinerja(HttpServletRequest request, + public ResponseEntity saveMasterIndikatorKinerja(HttpServletRequest request, @Valid @RequestBody IndikatorKinerjaVO vo) { - Map result = new HashMap(); try { - IndikatorKinerjaVO resultVo = new IndikatorKinerjaVO(); + IndikatorKinerjaVO result = new IndikatorKinerjaVO(); if (CommonUtil.isNotNullOrEmpty(vo.getId())) { - resultVo = indikatorKinerjaService.update(vo); + result = indikatorKinerjaService.update(vo); } else { - resultVo = indikatorKinerjaService.add(vo); + result = indikatorKinerjaService.add(vo); } - result.put("data", resultVo); if (CommonUtil.isNotNullOrEmpty(result)) { mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request)); @@ -294,7 +292,7 @@ public class IkiDanRemunerasiController extends LocaleController>> getMasterIndikatorKinerja(HttpServletRequest request) throws ParseException { try { - List> result = indikatorKinerjaService.getMasterIndikatorKinerja(); + List> result = indikatorKinerjaService.findAllIndikatorKinerja(); mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request)); return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); @@ -309,18 +307,37 @@ public class IkiDanRemunerasiController extends LocaleController> saveSkoringTindakanMedis(HttpServletRequest request, - @Valid @RequestBody SkoringTindakanMedisVO vo) { - Map result = new HashMap(); + @RequestMapping(value = "/get-duplicate-indikator-kinerja", method = RequestMethod.GET) + public ResponseEntity>> getDuplicateIndikatorKinerja(HttpServletRequest request, + @RequestParam(value = "idIndikator", required = false) Integer idIndikator, + @RequestParam(value = "namaIndikator", required = true) String namaIndikator) throws ParseException { try { - SkoringTindakanMedisVO resultVo = new SkoringTindakanMedisVO(); + List> result = indikatorKinerjaService.findDuplicateIndikatorKinerja(idIndikator, + namaIndikator); + 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 duplikat indikator kinerja", 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 duplikat indikator kinerja", jse.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); + } + } + + @RequestMapping(value = "/save-skoring-tindakan-medis", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity saveSkoringTindakanMedis(HttpServletRequest request, + @Valid @RequestBody SkoringTindakanMedisVO vo) { + try { + SkoringTindakanMedisVO result = new SkoringTindakanMedisVO(); if (CommonUtil.isNotNullOrEmpty(vo.getNoRec())) { - resultVo = skoringTindakanMedisService.update(vo); + result = skoringTindakanMedisService.update(vo); } else { - resultVo = skoringTindakanMedisService.add(vo); + result = skoringTindakanMedisService.add(vo); } - result.put("data", resultVo); if (CommonUtil.isNotNullOrEmpty(result)) { mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request)); @@ -338,6 +355,25 @@ public class IkiDanRemunerasiController extends LocaleController>> getAllSkoringTindakanMedis(HttpServletRequest request) + throws ParseException { + try { + List> result = skoringTindakanMedisService.findAllEnabled(); + 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 all skoring tindakan medis", 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 all skoring tindakan medis", jse.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); + } + } @RequestMapping(value = "/get-daftar-input-tindakan", method = RequestMethod.GET) public ResponseEntity>> getDaftarInputTindakan(HttpServletRequest request, @@ -359,37 +395,16 @@ public class IkiDanRemunerasiController extends LocaleController>> getAllSkoringTindakanMedis(HttpServletRequest request) - throws ParseException { - try { - List> result = skoringTindakanMedisService.findAllEnabled(); - 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 all skoring tindakan medis", 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 all skoring tindakan medis", jse.getMessage()); - addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); - return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); - } - } - - @RequestMapping(value = "/save-logbook-kinerja", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) - public ResponseEntity> saveLogbookKinerja(HttpServletRequest request, + @RequestMapping(value = "/save-kontrak-kinerja", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity saveKontrakKinerja(HttpServletRequest request, @Valid @RequestBody LogbookKinerjaVO vo) { - Map result = new HashMap(); try { - LogbookKinerjaVO resultVo = new LogbookKinerjaVO(); + LogbookKinerjaVO result = new LogbookKinerjaVO(); if (CommonUtil.isNotNullOrEmpty(vo.getNoRec())) { - resultVo = logbookKinerjaService.update(vo); + result = logbookKinerjaService.update(vo); } else { - resultVo = logbookKinerjaService.add(vo); + result = logbookKinerjaService.add(vo); } - result.put("data", resultVo); if (CommonUtil.isNotNullOrEmpty(result)) { mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request)); @@ -398,74 +413,118 @@ public class IkiDanRemunerasiController extends LocaleController>> getDaftarPengajuanIndikator(HttpServletRequest request, + @RequestMapping(value = "/get-kontrak-kinerja", method = RequestMethod.GET) + public ResponseEntity>> getKontrakKinerja(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 = logbookKinerjaService.findKontrakKinerja(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 kontrak kinerja", 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 kontrak kinerja", jse.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); + } + } + + @RequestMapping(value = "/save-pengajuan-kontrak-kinerja", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity savePengajuanKontrakKinerja(HttpServletRequest request, + @Valid @RequestBody LogbookKinerjaVO vo) { + try { + LogbookKinerjaVO result = new LogbookKinerjaVO(); + if (CommonUtil.isNotNullOrEmpty(vo.getNoRec())) { + result = logbookKinerjaService.updatePengajuanKontrakKinerja(vo); + } else { + result = logbookKinerjaService.addPengajuanKontrakKinerja(vo); + } + if (CommonUtil.isNotNullOrEmpty(result)) { + mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, + getMessage(MessageResource.LABEL_SUCCESS, request)); + return RestUtil.getJsonResponse(result, HttpStatus.CREATED, mapHeaderMessage); + } else { + return RestUtil.getJsonHttptatus(HttpStatus.NOT_ACCEPTABLE); + } + } catch (ServiceVOException sve) { + LOGGER.error("Got exception {} when pengajuan kontrak kinerja", 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 pengajuan kontrak kinerja", jse.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); + } + } + + @RequestMapping(value = "/get-daftar-pengajuan-kontrak-kinerja", method = RequestMethod.GET) + public ResponseEntity>> getDaftarPengajuanKontrakKinerja(HttpServletRequest request, @RequestParam(value = "pegawaiId", required = true) Integer idPegawai, @RequestParam(value = "jabatanId", required = true) Integer idJabatan) throws ParseException { try { - List> result = logbookKinerjaService.findPengajuanIndikatorByPegawaiJabatan(idPegawai, - idJabatan); + List> result = logbookKinerjaService.findPengajuanKontrakKinerja(idPegawai, idJabatan); 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 daftar pengajuan indikator", sve.getMessage()); + LOGGER.error("Got exception {} when get daftar pengajuan kontrak kinerja", 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 daftar pengajuan indikator", jse.getMessage()); + LOGGER.error("Got exception {} when get daftar pengajuan kontrak kinerja", jse.getMessage()); addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); } } - @RequestMapping(value = "/save-pengajuan-indikator-kinerja", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) - public ResponseEntity> savePengajuanIndikatorKinerja(HttpServletRequest request, - @Valid @RequestBody LogbookKinerjaVO vo) { - Map result = new HashMap(); + @RequestMapping(value = "/get-duplicate-kontrak-kinerja", method = RequestMethod.GET) + public ResponseEntity>> getDuplicateKontrakKinerja(HttpServletRequest request, + @RequestParam(value = "pegawaiId", required = true) Integer idPegawai, + @RequestParam(value = "jabatanId", required = true) Integer idJabatan, + @RequestParam(value = "bulan", required = true) Long bulan, + @RequestParam(value = "indikatorId", required = true) Integer idIndikator) throws ParseException { try { - LogbookKinerjaVO resultVo = logbookKinerjaService.addPengajuanIndikator(vo); - result.put("data", resultVo); - if (CommonUtil.isNotNullOrEmpty(result)) { - mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, - getMessage(MessageResource.LABEL_SUCCESS, request)); - return RestUtil.getJsonResponse(result, HttpStatus.CREATED, mapHeaderMessage); - } else { - return RestUtil.getJsonHttptatus(HttpStatus.NOT_ACCEPTABLE); - } + List> result = logbookKinerjaService.findDupKontrakKinerja(idPegawai, idJabatan, bulan, + idIndikator); + 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 pengajuan indikator kinerja", sve.getMessage()); + LOGGER.error("Got exception {} when get duplikat kontrak kinerja", 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 pengajuan indikator kinerja", jse.getMessage()); + LOGGER.error("Got exception {} when get duplikat kontrak kinerja", jse.getMessage()); addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); } } @RequestMapping(value = "/save-working-record", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) - public ResponseEntity> saveWorkingRecord(HttpServletRequest request, + public ResponseEntity saveWorkingRecord(HttpServletRequest request, @Valid @RequestBody LogbookKinerjaDetailVO vo) { - Map result = new HashMap(); try { - LogbookKinerjaDetailVO resultVo = new LogbookKinerjaDetailVO(); + LogbookKinerjaDetailVO result = new LogbookKinerjaDetailVO(); if (CommonUtil.isNotNullOrEmpty(vo.getNoRec())) { - resultVo = logbookKinerjaDetailService.update(vo); + result = logbookKinerjaDetailService.update(vo); } else { - resultVo = logbookKinerjaDetailService.add(vo); + result = logbookKinerjaDetailService.add(vo); } - result.put("data", resultVo); if (CommonUtil.isNotNullOrEmpty(result)) { mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request)); @@ -484,4 +543,25 @@ public class IkiDanRemunerasiController extends LocaleController>> getDetailDashboardKinerja(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 = logbookKinerjaService.findLogbookKinerja(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 detail dashboard kinerja", 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 detail dashboard kinerja", jse.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); + } + } + }