Update DateUtil.java

Perbaikan kondisi query hanya melibatkan timestamp datatype untuk peningkatan performance
This commit is contained in:
salmanoe 2022-10-17 09:38:08 +07:00
parent 6b00524bf3
commit 8d8b0af40c
21 changed files with 392 additions and 295 deletions

View File

@ -95,8 +95,9 @@ public interface IkiDanRemunerasiDao extends PagingAndSortingRepository<IkiDanRe
@Query(" select ikiDanRemunerasi.remunerasi " + "from IkiDanRemunerasi ikiDanRemunerasi "
+ " left join ikiDanRemunerasi.pegawai pegawai " + "left join ikiDanRemunerasi.strukHistory strukHistori "
+ "where to_char(strukHistori.tglHistori,'yyyy-MM') =:periode " + "and pegawai.id = :idPegawai")
public Double findRemunerasi(@Param("periode") String periode, @Param("idPegawai") Integer idPegawai);
+ "where strukHistori.tglHistori between :start and :end " + "and pegawai.id = :idPegawai")
public Double findRemunerasi(@Param("start") Date start, @Param("end") Date end,
@Param("idPegawai") Integer idPegawai);
// Target_pelayanan_jam_kerja
@Query("select distinct new Map(ppp.ObjectJenisPetugasPeId as jenisPetugasId," + "pg.id as pegawaiId,"
@ -270,8 +271,7 @@ public interface IkiDanRemunerasiDao extends PagingAndSortingRepository<IkiDanRe
// Detail_logbook_kinerja_jam_kerja_dokter
@Query("select distinct new Map(jpp.id as jenisPetugasId,jpp.jenisPetugasPe as jenisPetugas,"
+ "pr.id as produkId,pr.namaProduk as namaProduk,"
+ "coalesce(ppp.asaId,2) as asaId,"
+ "pr.id as produkId,pr.namaProduk as namaProduk," + "coalesce(ppp.asaId,2) as asaId,"
+ "pp.noRec as noRec,pp.tglPelayanan as tglPelayanan,to_char(pp.tglPelayanan,'dd-MM-yyyy HH24:MI:ss') as tglPelayananFormatted,pp.jumlah as jumlah,"
+ "coalesce(pp.hargaDiscount,0) as hargaDiskon,"
+ "ru.departemenId as departemenId,ru.id as ruanganId,ru.namaRuangan as namaRuangan,"

View File

@ -1,5 +1,6 @@
package com.jasamedika.medifirst2000.dao;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -58,12 +59,12 @@ public interface IndekKinerjaDao extends PagingAndSortingRepository<IndekKinerja
+ " left join pelayananPasienPetugas.pelayananPasien pelayananPasien"
+ " left join pelayananPasien.produk produk " + " left join pelayananPasien.kelas kelas "
+ " left join produk.detailJenisProduk detail" + " left join detail.jenisProduk jenisProduk "
+ "where dokter.id=:id and to_char(pelayananPasien.tglPelayanan,'yyyy-MM') = "
+ " :month and jenisProduk.id not in (:listIdJenisProduk) "
+ "where dokter.id=:id and pelayananPasien.tglPelayanan between "
+ " :start and :end and jenisProduk.id not in (:listIdJenisProduk) "
+ " group by pelayananPasienPetugas.kdjenispetugaspe.id, kelas.id,kelas.namaKelas, produk.id, produk.namaProduk ,pelayananPasien.hargaSatuan ,detail.id, dokter.id "
+ " order by kelas.namaKelas, produk.namaProduk asc ")
public List<Map<String, Object>> findIdProdukByIdUser(@Param("id") Integer id, @Param("month") String month,
@Param("listIdJenisProduk") List<Integer> listIdJenisProduk);
public List<Map<String, Object>> findIdProdukByIdUser(@Param("id") Integer id, @Param("start") Date start,
@Param("end") Date end, @Param("listIdJenisProduk") List<Integer> listIdJenisProduk);
@Query(" select distinct new map (case when pelayananPasienPetugas.kdjenispetugaspe.id in (6,13) then pelayananPasienPetugas.kdjenispetugaspe.id else 4 end as idJenisPelaksana, produk.namaProduk as namaProduk, produk.id as idProduk, "
+ " pelayananPasien.hargaSatuan as harga, kelas.namaKelas as namaKelas, kelas.id as idKelas, detail.id as detailId, "
@ -73,12 +74,13 @@ public interface IndekKinerjaDao extends PagingAndSortingRepository<IndekKinerja
+ " left join pelayananPasienPetugas.pelayananPasien pelayananPasien"
+ " left join pelayananPasien.produk produk " + " left join pelayananPasien.kelas kelas "
+ " left join produk.detailJenisProduk detail" + " left join detail.jenisProduk jenisProduk "
+ "where dokter.id=:id and to_char(pelayananPasien.tglPelayanan,'yyyy-MM') = "
+ " :month and jenisProduk.id not in (:listIdJenisProduk) and detail.id not in (:listIdDetailJenisProduk) "
+ "where dokter.id=:id and pelayananPasien.tglPelayanan between "
+ " :start and :end and jenisProduk.id not in (:listIdJenisProduk) and detail.id not in (:listIdDetailJenisProduk) "
+ " group by pelayananPasienPetugas.kdjenispetugaspe.id, kelas.id,kelas.namaKelas, produk.id, produk.namaProduk ,pelayananPasien.hargaSatuan ,detail.id, dokter.id "
+ " order by kelas.namaKelas, produk.namaProduk asc ")
public List<Map<String, Object>> findIdProdukByIdUserWithDetailException(@Param("id") Integer id,
@Param("month") String month, @Param("listIdJenisProduk") List<Integer> listIdJenisProduk,
@Param("start") Date start, @Param("end") Date end,
@Param("listIdJenisProduk") List<Integer> listIdJenisProduk,
@Param("listIdDetailJenisProduk") List<Integer> listIdDetailJenisProduk);
@Query(" select produk.id " + " from PelayananPasienPetugas pelayananPasienPetugas"
@ -86,20 +88,20 @@ public interface IndekKinerjaDao extends PagingAndSortingRepository<IndekKinerja
+ " left join pelayananPasienPetugas.pelayananPasien pelayananPasien"
+ " left join pelayananPasien.produk produk " + " left join pelayananPasien.kelas kelas "
+ " left join produk.detailJenisProduk detail" + " left join detail.jenisProduk jenisProduk "
+ "where dokter.id=:id and to_char(pelayananPasien.tglPelayanan,'yyyy-MM') = "
+ " :month and jenisProduk.id not in (:listIdJenisProduk) ")
public List<Integer> findIdProdukByIdUser2(@Param("id") Integer id, @Param("month") String month,
@Param("listIdJenisProduk") List<Integer> listIdJenisProduk);
+ "where dokter.id=:id and pelayananPasien.tglPelayanan between "
+ " :start and :end and jenisProduk.id not in (:listIdJenisProduk) ")
public List<Integer> findIdProdukByIdUser2(@Param("id") Integer id, @Param("start") Date start,
@Param("end") Date end, @Param("listIdJenisProduk") List<Integer> listIdJenisProduk);
@Query(" select produk.id " + " from PelayananPasienPetugas pelayananPasienPetugas"
+ " left join pelayananPasienPetugas.kdpegawai dokter"
+ " left join pelayananPasienPetugas.pelayananPasien pelayananPasien"
+ " left join pelayananPasien.produk produk " + " left join pelayananPasien.kelas kelas "
+ " left join produk.detailJenisProduk detail" + " left join detail.jenisProduk jenisProduk "
+ "where dokter.id=:id and to_char(pelayananPasien.tglPelayanan,'yyyy-MM') = "
+ " :month and jenisProduk.id not in (:listIdJenisProduk) and detail.id not in (:listDetailJenisProduk) ")
public List<Integer> findIdProdukByIdUser2WithException(@Param("id") Integer id, @Param("month") String month,
@Param("listIdJenisProduk") List<Integer> listIdJenisProduk,
+ "where dokter.id=:id and pelayananPasien.tglPelayanan between "
+ " :start and :end and jenisProduk.id not in (:listIdJenisProduk) and detail.id not in (:listDetailJenisProduk) ")
public List<Integer> findIdProdukByIdUser2WithException(@Param("id") Integer id, @Param("start") Date start,
@Param("end") Date end, @Param("listIdJenisProduk") List<Integer> listIdJenisProduk,
@Param("listDetailJenisProduk") List<Integer> listDetailJenisProduk);
@Query(" select distinct new map ( produk.namaProduk as namaProduk, produk.id as produkId,"
@ -192,10 +194,10 @@ public interface IndekKinerjaDao extends PagingAndSortingRepository<IndekKinerja
+ " left join pelayananPasienPetugas.pelayananPasien pelayananPasien"
+ " left join pelayananPasien.produk produk " + " left join produk.detailJenisProduk detail"
+ " left join detail.jenisProduk jenisProduk"
+ " where dokter.id=:id and to_char(pelayananPasien.tglPelayanan,'yyyy-MM') = :periode and jenisProduk.id not in (:listIdJenisProduk)"
+ " where dokter.id=:id and pelayananPasien.tglPelayanan between :start and :end and jenisProduk.id not in (:listIdJenisProduk)"
+ " group by produk.namaProduk,produk.id,pelayananPasien.hargaSatuan,detail.id,jenisProduk.id ")
public List<Map<String, Object>> findAllProdukPerPeriode(@Param("id") Integer id, @Param("periode") String periode,
@Param("listIdJenisProduk") List<Integer> listIdJenisProduk);
public List<Map<String, Object>> findAllProdukPerPeriode(@Param("id") Integer id, @Param("start") Date start,
@Param("end") Date end, @Param("listIdJenisProduk") List<Integer> listIdJenisProduk);
@Query(" select new map (produk.namaProduk as namaProduk, produk.id as produkId,"
+ " count(distinct pelayananPasien.noRec) as count,pelayananPasien.hargaSatuan as harga,detail.id as detailId,jenisProduk.id as idJenisProduk)"
@ -267,10 +269,10 @@ public interface IndekKinerjaDao extends PagingAndSortingRepository<IndekKinerja
+ " left join pelayananPasienPetugas.kdpegawai dokter"
+ " left join pelayananPasienPetugas.pelayananPasien pelayananPasien"
+ " left join pelayananPasien.produk produk"
+ " where dokter.id=:id and to_char(pelayananPasien.tglPelayanan,'yyyy-MM')=:date"
+ " where dokter.id=:id and pelayananPasien.tglPelayanan between and :start and :end"
+ " and produk.id = :idProduk")
public Long findTotalProdukPerPeriode(@Param("id") Integer id, @Param("idProduk") Integer idProduk,
@Param("date") String date);
@Param("start") Date start, @Param("end") Date end);
@Query(" select CAST(sum(pelayananPasien.jumlah) as long) as total"
+ " from PelayananPasienPetugas pelayananPasienPetugas"
@ -278,9 +280,9 @@ public interface IndekKinerjaDao extends PagingAndSortingRepository<IndekKinerja
+ " left join pelayananPasienPetugas.pelayananPasien pelayananPasien"
+ " left join pelayananPasien.produk produk" + " left join produk.detailJenisProduk detailjenisProduk"
+ " left join detailjenisProduk.jenisProduk jenisProduk"
+ " where dokter.id=:id and to_char(pelayananPasien.tglPelayanan,'yyyy-MM') =:month"
+ " where dokter.id=:id and pelayananPasien.tglPelayanan between :start and :end"
+ " and jenisProduk.id not in(:idJenisProduk)")
public Long findTotalTindakanPerMonth(@Param("id") Integer id, @Param("month") String month,
public Long findTotalTindakanPerMonth(@Param("id") Integer id, @Param("start") Date start, @Param("end") Date end,
@Param("idJenisProduk") List<Integer> idJenisProduk);
@Query(" select distinct pelayananPasien.hargaSatuan" + " from PelayananPasienPetugas pelayananPasienPetugas"
@ -295,11 +297,11 @@ public interface IndekKinerjaDao extends PagingAndSortingRepository<IndekKinerja
+ " left join pelayananPasienPetugas.kdpegawai dokter"
+ " left join pelayananPasienPetugas.pelayananPasien pelayananPasien"
+ " left join pelayananPasien.produk produk"
+ " where dokter.id=:idPegawai and to_char(pelayananPasien.tglPelayanan,'yyyy-MM') = :periode "
+ " where dokter.id=:idPegawai and pelayananPasien.tglPelayanan between :start and :end "
+ " and produk.id = :produkId group by produk.namaProduk,to_char(pelayananPasien.tglPelayanan,'yyyy-MM-dd'),"
+ " produk.id order by to_char(pelayananPasien.tglPelayanan,'yyyy-MM-dd')")
public List<Map<String, Object>> findCountTindakanPerTanggalAndProdukId(@Param("idPegawai") Integer idPegawai,
@Param("produkId") Integer produkId, @Param("periode") String periode);
@Param("produkId") Integer produkId, @Param("start") Date start, @Param("end") Date end);
@Query(" select count(produk.id) as jumlah " + " from PelayananPasienPetugas pelayananPasienPetugas"
+ " left join pelayananPasienPetugas.kdpegawai dokter"
@ -389,20 +391,21 @@ public interface IndekKinerjaDao extends PagingAndSortingRepository<IndekKinerja
@Query(" select pegawaiHistoriRekap.totalNilaiIndex " + "from PegawaiHistoriRekap pegawaiHistoriRekap "
+ "left join pegawaiHistoriRekap.pegawai pegawai "
+ "left join pegawaiHistoriRekap.strukHistory strukHistori "
+ "where pegawai.id = :idPegawai and to_char(strukHistori.tglAwal, 'yyyy-MM')=:periode")
public Double findIndexKehadiran(@Param("idPegawai") Integer idPegawai, @Param("periode") String periode);
+ "where pegawai.id = :idPegawai and strukHistori.tglAwal between :start and :end")
public Double findIndexKehadiran(@Param("idPegawai") Integer idPegawai, @Param("start") Date start,
@Param("end") Date end);
@Query(" select new Map( produk.namaProduk as namaProduk, CAST(sum(pelayananPasien.jumlah) as long) as count,jenisProduk.id as idJenisProduk, to_char(pelayananPasien.tglPelayanan,'dd-MM-yyyy') as tglPelayanan)"
+ " from PelayananPasienPetugas pelayananPasienPetugas"
+ " left join pelayananPasienPetugas.kdpegawai dokter"
+ " left join pelayananPasienPetugas.pelayananPasien pelayananPasien"
+ " left join pelayananPasien.produk produk " + " left join produk.detailJenisProduk detail"
+ " left join detail.jenisProduk jenisProduk "
+ "where dokter.id=:id and to_char(pelayananPasien.tglPelayanan,'yyyy-MM') "
+ "=:startDate and jenisProduk.id not in (:listIdJenisProduk) group by produk.namaProduk,jenisProduk.id,to_char(pelayananPasien.tglPelayanan,'dd-MM-yyyy') "
+ " left join detail.jenisProduk jenisProduk " + "where dokter.id=:id and pelayananPasien.tglPelayanan "
+ "between :start and :end and jenisProduk.id not in (:listIdJenisProduk) group by produk.namaProduk,jenisProduk.id,to_char(pelayananPasien.tglPelayanan,'dd-MM-yyyy') "
+ " order by to_char(pelayananPasien.tglPelayanan,'dd-MM-yyyy')")
public List<Map<String, Object>> findTindakanByIdPegawaiAndPeriod(@Param("startDate") String startDate,
@Param("id") Integer id, @Param("listIdJenisProduk") List<Integer> listIdJenisProduk);
public List<Map<String, Object>> findTindakanByIdPegawaiAndPeriod(@Param("start") Date start,
@Param("end") Date end, @Param("id") Integer id,
@Param("listIdJenisProduk") List<Integer> listIdJenisProduk);
@Query(" select new map (produk.namaProduk as namaProduk, produk.id as produkId,"
+ " count(produk.namaProduk) as count,pelayananPasien.hargaSatuan as harga,detail.id as detailId,jenisProduk.id as idJenisProduk)"

View File

@ -23,16 +23,17 @@ public interface KalenderDao extends PagingAndSortingRepository<Kalender, Intege
List<Map<String, Object>> getTanggalFromPeriodicParameter(@Param("tglAwal") String tglAwal,
@Param("tglAkhir") String tglAkhir);
@Query("select new Map(k.id as id,to_char(k.tanggal,'dd') as tanggal) from Kalender k where to_char(k.tanggal,'yyyy-MM') = :bulan")
List<Map<String, Object>> getKalenderBulanan(@Param("bulan") String bulan);
@Query("select new Map(k.id as id,to_char(k.tanggal,'dd') as tanggal) "
+ "from Kalender k where k.tanggal between :start and :end")
List<Map<String, Object>> getKalenderBulanan(@Param("start") Date start, @Param("end") Date end);
@Query(nativeQuery = true, value = "select kal.tanggal from kalender_s kal order by kal.tanggal desc limit 1")
Date getLastDateData();
@Query(nativeQuery = true, value = "select kl.* from kalender_s kl "
+ "left join mapkalendertoharilibur_m mkl on kl.id = mkl.objecttanggalfk "
+ "where to_char(kl.tanggal, 'yyyy-MM') = :bulan "
+ "where kl.tanggal between :start and :end "
+ "and kl.namahari not in ('Sabtu', 'Minggu') and mkl.id is null")
List<Kalender> getTargetKerja(@Param("bulan") String bulan);
List<Kalender> getTargetKerja(@Param("start") Date start, @Param("end") Date end);
}

View File

@ -1,5 +1,6 @@
package com.jasamedika.medifirst2000.dao;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -242,9 +243,9 @@ public interface LogbookKinerjaDao extends PagingAndSortingRepository<LogbookKin
@Param("indikatorId") Integer idIndikator);
@Query("select distinct lkt.pegawaiId " + "from LogbookKinerja lkt "
+ "where lkt.indikatorKinerjaId = :indikatorId " + "and to_char(lkt.bulan,'yyyy-MM') = :bulan "
+ "where lkt.indikatorKinerjaId = :indikatorId " + "and lkt.bulan between :start and :end "
+ "and lkt.capaian = 0.0 " + "and lkt.statusEnabled is true " + "and lkt.statusVerifikasi is true")
List<Integer> findPegawaiKontrakByIndikator(@Param("bulan") String bulan,
List<Integer> findPegawaiKontrakByIndikator(@Param("start") Date start, @Param("end") Date end,
@Param("indikatorId") Integer idIndikator);
@Query("select distinct new Map(jb.id as id,jb.namaJabatan as namaJabatan,"

View File

@ -1,5 +1,6 @@
package com.jasamedika.medifirst2000.dao;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -31,7 +32,7 @@ public interface LogbookKinerjaDokterDao extends PagingAndSortingRepository<Logb
+ "and lk.jabatanId = lkd.jabatanId " + "and lk.indikatorKinerjaId = ikd.indikatorKinerjaId "
+ "and lk.statusEnabled is true " + "and lk.statusVerifikasi is true";
String whrBulan = " and to_char(lk.bulan,'yyyy-MM') = :bulan";
String whrBulan = " and lk.bulan between :start and :end and lkd.bulan between :start and :end";
String whrPegawai = " and lk.pegawaiId = :pegawaiId";
@ -44,12 +45,12 @@ public interface LogbookKinerjaDokterDao extends PagingAndSortingRepository<Logb
String whrLogbook = " and lk.noRec = :noRec";
@Query(strCpptToDashboard + tblKinerjaDokter + whrBulan + whrPegawai + whrJabatan + whrIndikator)
public List<Map<String, Object>> findDetailLogbookDokter(@Param("bulan") String bulan,
public List<Map<String, Object>> findDetailLogbookDokter(@Param("start") Date start, @Param("end") Date end,
@Param("pegawaiId") Integer idPegawai, @Param("jabatanId") Integer idJabatan,
@Param("indikatorId") Integer idIndikator);
@Query(strVerifCppt + tblKinerjaDokter + whrBulan + whrPegawai + whrIndikator + whrDetailIndikator)
public Map<String, Object> findDetailKinerjaDokter(@Param("bulan") String bulan,
public Map<String, Object> findDetailKinerjaDokter(@Param("start") Date start, @Param("end") Date end,
@Param("pegawaiId") Integer idPegawai, @Param("indikatorId") Integer idIndikator,
@Param("detailIndikatorId") Integer idDetailIndikator);

View File

@ -297,10 +297,10 @@ public interface PasienDaftarDao extends PagingAndSortingRepository<PasienDaftar
+ "sum(coalesce(pp.hargaDiscount,0) * pp.jumlah) as totalDiskon,"
+ "sum(coalesce(pp.jasa,0)) as biayaJasaFarmasi) " + "from PelayananPasien pp "
+ "inner join pp.pasienDaftar apd " + "inner join apd.pasienDaftar pd " + "inner join pd.pasien ps "
+ "where pd.diskonPegawai in (1,2,3,4,5) " + "and to_char(pd.tglRegistrasi,'yyyy-MM') = :periode "
+ "where pd.diskonPegawai in (1,2,3,4,5) " + "and pd.tglRegistrasi between :start and :end "
+ "group by pd.noRec, pd.strukPelayananId, ps.namaPasien, pd.noRegistrasi, pd.diskonPegawai "
+ "order by ps.namaPasien")
List<Map<String, Object>> findRekapDiskon(@Param("periode") String periode);
List<Map<String, Object>> findRekapDiskon(@Param("start") Date start, @Param("end") Date end);
@Query("select new Map(ul.tanggal as tanggal," + "pg.id as pegawaiId," + "pg.namaLengkap as namaLengkap,"
+ "ul.jenisLog as jenisLog," + "ul.keterangan as keterangan) " + "from UserLogging ul "

View File

@ -50,8 +50,9 @@ public interface PegawaiJadwalKerjaDao extends PagingAndSortingRepository<Pegawa
@Query("select jadwalKerja.id " + "from PegawaiJadwalKerja jadwalKerja " + "left join jadwalKerja.pegawai pegawai "
+ "left join jadwalKerja.tanggal kalender " + "left join jadwalKerja.shift shift "
+ "where to_char(kalender.tanggal,'yyyy-MM')= :date " + "and pegawai.id = :pegawaiId")
List<Integer> getListJadwal(@Param("pegawaiId") Integer pegawaiId, @Param("date") String date);
+ "where kalender.tanggal between :start and :end " + "and pegawai.id = :pegawaiId")
List<Integer> getListJadwal(@Param("pegawaiId") Integer pegawaiId, @Param("start") Date start,
@Param("end") Date end);
@Query("select count(kalender.tanggal) " + "from PegawaiJadwalKerja jadwalKerja "
+ "left join jadwalKerja.pegawai pegawai " + "left join jadwalKerja.tanggal kalender "

View File

@ -1,5 +1,6 @@
package com.jasamedika.medifirst2000.dao;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -60,12 +61,10 @@ public interface RevIndekKinerjaDao extends PagingAndSortingRepository<IndekKine
+ " left join pelayananPasienPetugas.pelayananPasien pelayananPasien"
+ " left join pelayananPasien.produk produk " + " left join produk.detailJenisProduk detail"
+ " left join pelayananPasien.kelas kelas " + " left join detail.jenisProduk jenisProduk "
+ " where pelayananPasienPetugas.ObjectPegawaiId=:id and to_char(pelayananPasien.tglPelayanan,'yyyy-MM') "
+ " between :startDate and :endDate and detail.id in :listIdJenisProduk "
+ " order by produk.namaProduk asc")
public List<Map<String, Object>> getAllTindakanByPeriod(@Param("id") Integer id,
@Param("startDate") String startDate, @Param("endDate") String endDate,
@Param("listIdJenisProduk") List<Integer> listIdJenisProduk);
+ " where pelayananPasienPetugas.ObjectPegawaiId=:id and pelayananPasien.tglPelayanan "
+ " between :start and :end and detail.id in :listIdJenisProduk " + " order by produk.namaProduk asc")
public List<Map<String, Object>> getAllTindakanByPeriod(@Param("id") Integer id, @Param("start") Date start,
@Param("end") Date end, @Param("listIdJenisProduk") List<Integer> listIdJenisProduk);
String QueryList = "select new map(case when pelayananPasienPetugas.kdjenispetugaspe.id in (6,13) then pelayananPasienPetugas.kdjenispetugaspe.id else 4 end as idJenisPelaksana, "
+ "detail.id as detailId,detail.detailJenisProduk as detailJenisProduk"

View File

@ -1,5 +1,6 @@
package com.jasamedika.medifirst2000.dao;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -10,106 +11,81 @@ import org.springframework.stereotype.Repository;
import com.jasamedika.medifirst2000.entities.PegawaiHistoriEvaluasiKomponen;;
@Repository("RiwayatPenilaianKompetensiPegawai")
public interface RiwayatPenilaianKompetensiPegawaiDao extends PagingAndSortingRepository<PegawaiHistoriEvaluasiKomponen, String>{
public interface RiwayatPenilaianKompetensiPegawaiDao
extends PagingAndSortingRepository<PegawaiHistoriEvaluasiKomponen, String> {
@Query("select new map (komponenEvaluasi.reportDisplay as kompetensi, "+
"komponenEvaluasi.nilaiStandar as nilaiStandar,komponenEvaluasi.id as idKomponenEvaluasi, "+
"jabatan.id as idJabatan, "+
"kelompokEvaluasi.id as idKelompokEvaluasi, "+
"kelompokEvaluasi.kelompokEvaluasi as kelompokEvaluasi, "+
"komponenEvaluasi.deskripsiKompetensi as deskripsiKompetensi ) "+
"from KomponenEvaluasi komponenEvaluasi "+
"left join komponenEvaluasi.jabatan jabatan "+
"left join komponenEvaluasi.kelompokEvaluasi kelompokEvaluasi "+
"left join komponenEvaluasi.departemen departemen "+
"where jabatan.id = :idjabatan")
List<Map<String,Object>> getPenilaianKompetensiRiwayat(@Param("idjabatan") Integer idjabatan);
@Query("select new map (komponenEvaluasi.komponenEvaluasi as kompetensi, "+
"komponenEvaluasi.nilaiStandar as nilaiStandar, "+
"jabatan.id as jabatanId, "+
"komponenEvaluasi.id as idKomponenEvaluasi, "+
"jabatan.namaJabatan as namaJabatan, "+
"kelompokEvaluasi.id as idKelompokEvaluasi, "+
"kelompokEvaluasi.kelompokEvaluasi as jenisKompetensi) "+
"from KomponenEvaluasi komponenEvaluasi "+
"left join komponenEvaluasi.jabatan jabatan "+
"left join komponenEvaluasi.kelompokEvaluasi kelompokEvaluasi "+
"where jabatan.id = :idjabatan "+
"order by kelompokEvaluasi.id ")
List<Map<String,Object>> getKompetensiByRuangan(@Param("idjabatan") Integer idjabatan);
@Query("select new map (pegawaiHistoriEvaluasiKomponen.noRec as idPegawaiHistoriEvaluasiKomponen, "+
"pegawaiHistoriEvaluasiKomponen.nilaiHasilEvaluasi as nilaiHasilEvaluasi, "+
"komponenEvaluasi.id as idKomponenEvaluasi, "+
"komponenEvaluasi.nilaiStandar as nilaiStandar, "+
"komponenEvaluasi.komponenEvaluasi as kompetensi, "+
"pegawai.id as idpegawai, "+
"strukHistory.noRec as noRecStrukHistory, "+
"pegawaiHistoryEvaluasi.noRec as noRecPegawaiHistoryEvaluasi, "+
"pegawaiHistoryEvaluasi.rekomendasi as rekomendasi, "+
"strukHistory.tglHistori as tglHistory, "+
"ruangan.id as idRuangan) "+
"from PegawaiHistoriEvaluasiKomponen pegawaiHistoriEvaluasiKomponen "+
"left join pegawaiHistoriEvaluasiKomponen.komponenEvaluasi komponenEvaluasi "+
"left join pegawaiHistoriEvaluasiKomponen.pegawai pegawai "+
"left join pegawaiHistoriEvaluasiKomponen.strukHistory strukHistory "+
"left join strukHistory.ruangan ruangan "+
"left join strukHistory.pegawaiHistoriEvaluasi pegawaiHistoryEvaluasi "+
"where pegawai.id = :idPegawai and to_char(strukHistory.tglHistori,'yyyy-MM')=:periode "+
"and komponenEvaluasi.id =:idKomponen")
Map<String,Object> getKompetensiByPegawai(@Param("idPegawai") Integer idPegawai,@Param("periode") String periode,@Param("idKomponen") Integer idKomponen);
@Query("select new map( "+
"kelompokEvaluasi.kelompokEvaluasi as title, "+
"kelompokEvaluasi.id as idKelompokEvaluasi) "+
"from KelompokEvaluasi kelompokEvaluasi "+
"where kelompokEvaluasi.id between 1 and 4")
List<Map<String,Object>> getKelompokEvaluasi();
@Query("select new map(pendidikan.namaPendidikan as namaPendidikan, "+
" pegawai.tglMasuk as tglMasuk)"+
" from MapPegawaiJabatanToUnitKerja mapPegawai "
+ "left join mapPegawai.pegawai pegawai "
+ "left join pegawai.pendidikan pendidikan "
+ "left join mapPegawai.jabatan jabatanInternal "
+ "where mapPegawai.isPrimary is true "
+ "and mapPegawai.statusEnabled is true "
@Query("select new map (komponenEvaluasi.reportDisplay as kompetensi, "
+ "komponenEvaluasi.nilaiStandar as nilaiStandar,komponenEvaluasi.id as idKomponenEvaluasi, "
+ "jabatan.id as idJabatan, " + "kelompokEvaluasi.id as idKelompokEvaluasi, "
+ "kelompokEvaluasi.kelompokEvaluasi as kelompokEvaluasi, "
+ "komponenEvaluasi.deskripsiKompetensi as deskripsiKompetensi ) "
+ "from KomponenEvaluasi komponenEvaluasi " + "left join komponenEvaluasi.jabatan jabatan "
+ "left join komponenEvaluasi.kelompokEvaluasi kelompokEvaluasi "
+ "left join komponenEvaluasi.departemen departemen " + "where jabatan.id = :idjabatan")
List<Map<String, Object>> getPenilaianKompetensiRiwayat(@Param("idjabatan") Integer idjabatan);
@Query("select new map (komponenEvaluasi.komponenEvaluasi as kompetensi, "
+ "komponenEvaluasi.nilaiStandar as nilaiStandar, " + "jabatan.id as jabatanId, "
+ "komponenEvaluasi.id as idKomponenEvaluasi, " + "jabatan.namaJabatan as namaJabatan, "
+ "kelompokEvaluasi.id as idKelompokEvaluasi, " + "kelompokEvaluasi.kelompokEvaluasi as jenisKompetensi) "
+ "from KomponenEvaluasi komponenEvaluasi " + "left join komponenEvaluasi.jabatan jabatan "
+ "left join komponenEvaluasi.kelompokEvaluasi kelompokEvaluasi " + "where jabatan.id = :idjabatan "
+ "order by kelompokEvaluasi.id ")
List<Map<String, Object>> getKompetensiByRuangan(@Param("idjabatan") Integer idjabatan);
@Query("select new map (pegawaiHistoriEvaluasiKomponen.noRec as idPegawaiHistoriEvaluasiKomponen, "
+ "pegawaiHistoriEvaluasiKomponen.nilaiHasilEvaluasi as nilaiHasilEvaluasi, "
+ "komponenEvaluasi.id as idKomponenEvaluasi, " + "komponenEvaluasi.nilaiStandar as nilaiStandar, "
+ "komponenEvaluasi.komponenEvaluasi as kompetensi, " + "pegawai.id as idpegawai, "
+ "strukHistory.noRec as noRecStrukHistory, "
+ "pegawaiHistoryEvaluasi.noRec as noRecPegawaiHistoryEvaluasi, "
+ "pegawaiHistoryEvaluasi.rekomendasi as rekomendasi, " + "strukHistory.tglHistori as tglHistory, "
+ "ruangan.id as idRuangan) " + "from PegawaiHistoriEvaluasiKomponen pegawaiHistoriEvaluasiKomponen "
+ "left join pegawaiHistoriEvaluasiKomponen.komponenEvaluasi komponenEvaluasi "
+ "left join pegawaiHistoriEvaluasiKomponen.pegawai pegawai "
+ "left join pegawaiHistoriEvaluasiKomponen.strukHistory strukHistory "
+ "left join strukHistory.ruangan ruangan "
+ "left join strukHistory.pegawaiHistoriEvaluasi pegawaiHistoryEvaluasi "
+ "where pegawai.id = :idPegawai and strukHistory.tglHistori between :start and :end "
+ "and komponenEvaluasi.id =:idKomponen")
Map<String, Object> getKompetensiByPegawai(@Param("idPegawai") Integer idPegawai, @Param("start") Date start,
@Param("end") Date end, @Param("idKomponen") Integer idKomponen);
@Query("select new map( " + "kelompokEvaluasi.kelompokEvaluasi as title, "
+ "kelompokEvaluasi.id as idKelompokEvaluasi) " + "from KelompokEvaluasi kelompokEvaluasi "
+ "where kelompokEvaluasi.id between 1 and 4")
List<Map<String, Object>> getKelompokEvaluasi();
@Query("select new map(pendidikan.namaPendidikan as namaPendidikan, " + " pegawai.tglMasuk as tglMasuk)"
+ " from MapPegawaiJabatanToUnitKerja mapPegawai " + "left join mapPegawai.pegawai pegawai "
+ "left join pegawai.pendidikan pendidikan " + "left join mapPegawai.jabatan jabatanInternal "
+ "where mapPegawai.isPrimary is true " + "and mapPegawai.statusEnabled is true "
+ "and jabatanInternal.id = :idJabatan")
Map<String,Object> getPendidikan(@Param("idJabatan") Integer idJabatan);
@Query("select new map(pegawaiHistoriEvaluasiKomponen.nilaiHasilEvaluasi as nilaiHasilEvaluasi, "+
"pegawaiHistoriEvaluasi.rekomendasi as rekomendasi, "+
"to_char(strukHistori.tglHistori, 'yyyy-MM-dd') as tglHistory) "+
"from StrukHistori strukHistori "+
"left join strukHistori.pegawaiHistoriEvaluasi pegawaiHistoriEvaluasi "+
"left join strukHistori.pegawaiHistoriEvaluasiKomponen pegawaiHistoriEvaluasiKomponen "+
"left join pegawaiHistoriEvaluasiKomponen.pegawai pegawai "+
"where pegawai.id = :idPegawai "+
"order by to_char(strukHistori.tglHistori, 'yyyy-MM-dd') desc ")
List<Map<String,Object>> getPenilaian(@Param("idPegawai") Integer idPegawai);
@Query("select new map(pegawai.namaLengkap as namaLengkap, "+
"pegawai.nipPns as nip, "+
"ruangan.namaRuangan as unitKerja, "+
"jabatanInternal.namaJabatan as jabatanInternal, "+
"to_char(strukHistori.tglHistori,'yyyy-MM-dd') as tglPenilaian, "+
"kategoryPegawai.detailKategoryPegawai as statusKepegawaian, "+
"pegawaiHistoriEvaluasiKomponen.nilaiHasilEvaluasi as nilaiHasilEvaluasi, "+
"pegawaiHistoriEvaluasi.rekomendasi as rekomendasi, "+
"pegawai.id as idPegawai) "+
"from StrukHistori strukHistori, MapPegawaiJabatanToUnitKerja mapPegawai "
Map<String, Object> getPendidikan(@Param("idJabatan") Integer idJabatan);
@Query("select new map(pegawaiHistoriEvaluasiKomponen.nilaiHasilEvaluasi as nilaiHasilEvaluasi, "
+ "pegawaiHistoriEvaluasi.rekomendasi as rekomendasi, "
+ "to_char(strukHistori.tglHistori, 'yyyy-MM-dd') as tglHistory) " + "from StrukHistori strukHistori "
+ "left join strukHistori.pegawaiHistoriEvaluasi pegawaiHistoriEvaluasi "
+ "left join strukHistori.pegawaiHistoriEvaluasiKomponen pegawaiHistoriEvaluasiKomponen "
+ "left join pegawaiHistoriEvaluasiKomponen.pegawai pegawai "
+ "left join pegawai.ruangan ruangan "
+ "left join pegawaiHistoriEvaluasiKomponen.pegawai pegawai " + "where pegawai.id = :idPegawai "
+ "order by to_char(strukHistori.tglHistori, 'yyyy-MM-dd') desc ")
List<Map<String, Object>> getPenilaian(@Param("idPegawai") Integer idPegawai);
@Query("select new map(pegawai.namaLengkap as namaLengkap, " + "pegawai.nipPns as nip, "
+ "ruangan.namaRuangan as unitKerja, " + "jabatanInternal.namaJabatan as jabatanInternal, "
+ "to_char(strukHistori.tglHistori,'yyyy-MM-dd') as tglPenilaian, "
+ "kategoryPegawai.detailKategoryPegawai as statusKepegawaian, "
+ "pegawaiHistoriEvaluasiKomponen.nilaiHasilEvaluasi as nilaiHasilEvaluasi, "
+ "pegawaiHistoriEvaluasi.rekomendasi as rekomendasi, " + "pegawai.id as idPegawai) "
+ "from StrukHistori strukHistori, MapPegawaiJabatanToUnitKerja mapPegawai "
+ "left join strukHistori.pegawaiHistoriEvaluasi pegawaiHistoriEvaluasi "
+ "left join strukHistori.pegawaiHistoriEvaluasiKomponen pegawaiHistoriEvaluasiKomponen "
+ "left join pegawaiHistoriEvaluasiKomponen.pegawai pegawai " + "left join pegawai.ruangan ruangan "
+ "left join mapPegawai.jabatan jabatanInternal "
+ "left join pegawai.detailKategoryPegawai kategoryPegawai "
+ "where mapPegawai.pegawaiId = pegawai.id "
+ "and mapPegawai.isPrimary is true "
+ "and mapPegawai.statusEnabled is true")
List<Map<String,Object>> getRencanaTindakLanjut();
+ "left join pegawai.detailKategoryPegawai kategoryPegawai " + "where mapPegawai.pegawaiId = pegawai.id "
+ "and mapPegawai.isPrimary is true " + "and mapPegawai.statusEnabled is true")
List<Map<String, Object>> getRencanaTindakLanjut();
}

View File

@ -1,5 +1,6 @@
package com.jasamedika.medifirst2000.dao;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -11,35 +12,24 @@ import org.springframework.stereotype.Repository;
import com.jasamedika.medifirst2000.entities.SettingPirSdm;
@Repository("SettingPirSdmDao")
public interface SettingPirSdmDao extends PagingAndSortingRepository<SettingPirSdm, Integer>{
@Query("select new map (unitKerja.id as idUnitKerja, "+
"unitKerja.name as unitKerja, "+
"setting.id as id, "+
"coalesce(setting.iku,0) as iku, "+
"to_char(setting.tglAwal, 'yyyy-MM') as periode) "+
"from SettingPirSdm setting "+
"left join setting.unitKerja unitKerja "+
"where to_char(setting.tglAwal, 'yyyy-MM') =:periode "+
"and unitKerja.id =:idUnitKerja ")
Map<String, Object> getIKUUnitKerja(@Param("idUnitKerja") Integer idUnitKerja,@Param("periode") String periode );
@Query("select new map ( coalesce(setting.pir,0) as pir, "+
"setting.id as id, "+
"to_char(setting.tglAwal, 'yyyy') as tahun) "+
"from SettingPirSdm setting "+
"where setting.pir is not null and to_char(setting.tglAwal, 'yyyy') =:thn ")
List<Map<String, Object>> getPIR(@Param("thn") String thn );
@Query("select new map (unitKerja.id as idUnitKerja, "+
"unitKerja.name as unitKerja, "+
"setting.id as id, "+
"coalesce(setting.iku,0) as iku, "+
"to_char(setting.tglAwal, 'yyyy-MM') as periode) "+
"from SettingPirSdm setting "+
"left join setting.unitKerja unitKerja "+
"where setting.iku is not null "+
" order by to_char(setting.tglAwal, 'yyyy-MM')")
public interface SettingPirSdmDao extends PagingAndSortingRepository<SettingPirSdm, Integer> {
@Query("select new map (unitKerja.id as idUnitKerja, " + "unitKerja.name as unitKerja, " + "setting.id as id, "
+ "coalesce(setting.iku,0) as iku, " + "to_char(setting.tglAwal, 'yyyy-MM') as periode) "
+ "from SettingPirSdm setting " + "left join setting.unitKerja unitKerja "
+ "where setting.tglAwal between :start and :end " + "and unitKerja.id =:idUnitKerja ")
Map<String, Object> getIKUUnitKerja(@Param("idUnitKerja") Integer idUnitKerja, @Param("start") Date start,
@Param("end") Date end);
@Query("select new map ( coalesce(setting.pir,0) as pir, " + "setting.id as id, "
+ "to_char(setting.tglAwal, 'yyyy') as tahun) " + "from SettingPirSdm setting "
+ "where setting.pir is not null and to_char(setting.tglAwal, 'yyyy') =:thn ")
List<Map<String, Object>> getPIR(@Param("thn") String thn);
@Query("select new map (unitKerja.id as idUnitKerja, " + "unitKerja.name as unitKerja, " + "setting.id as id, "
+ "coalesce(setting.iku,0) as iku, " + "to_char(setting.tglAwal, 'yyyy-MM') as periode) "
+ "from SettingPirSdm setting " + "left join setting.unitKerja unitKerja "
+ "where setting.iku is not null " + " order by to_char(setting.tglAwal, 'yyyy-MM')")
List<Map<String, Object>> getAllIKU();
}

View File

@ -1,5 +1,6 @@
package com.jasamedika.medifirst2000.dao;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -23,15 +24,16 @@ public interface TargetSkorDokterDetailDao extends PagingAndSortingRepository<Ta
public List<Map<String, Object>> findByHeadId(@Param("noRec") String noRec) throws JpaSystemException;
@Query("select tsd.skor " + "from TargetSkorDokterDetail tsd " + "inner join tsd.targetSkor ts "
+ "where tsd.pegawaiId = :pegawaiId " + "and to_char(ts.tmt,'yyyy-MM') <= :bulan "
+ "and to_char(ts.tmt,'yyyy') = :tahun " + "order by ts.tmt desc")
public List<Double> findTargetByPegawai(@Param("pegawaiId") Integer idPegawai, @Param("bulan") String bulan,
@Param("tahun") String tahun) throws JpaSystemException;
+ "where tsd.pegawaiId = :pegawaiId " + "and ts.tmt <= :endMonth " + "ts.tmt between :start and :end "
+ "order by ts.tmt desc")
public List<Double> findTargetByPegawai(@Param("pegawaiId") Integer idPegawai, @Param("endMonth") Date endMonth,
@Param("start") Date start, @Param("end") Date end) throws JpaSystemException;
@Query("select new Map(tsd.pegawaiId as pegawaiId,tsd.skor as skor) " + "from TargetSkorDokterDetail tsd " + "inner join tsd.targetSkor ts "
+ "where tsd.pegawaiId in (:listIdPegawai) " + "and to_char(ts.tmt,'yyyy-MM') <= :bulan "
+ "and to_char(ts.tmt,'yyyy') = :tahun " + "order by ts.tmt desc")
@Query("select new Map(tsd.pegawaiId as pegawaiId,tsd.skor as skor) " + "from TargetSkorDokterDetail tsd "
+ "inner join tsd.targetSkor ts " + "where tsd.pegawaiId in (:listIdPegawai) " + "and ts.tmt <= :endMonth "
+ "ts.tmt between :start and :end " + "order by ts.tmt desc")
public List<Map<String, Object>> findTargetByPegawai(@Param("listIdPegawai") List<Integer> listIdPegawai,
@Param("bulan") String bulan, @Param("tahun") String tahun) throws JpaSystemException;
@Param("endMonth") Date endMonth, @Param("start") Date start, @Param("end") Date end)
throws JpaSystemException;
}

View File

@ -37,6 +37,7 @@ import com.jasamedika.medifirst2000.entities.Ruangan;
import com.jasamedika.medifirst2000.exception.ServiceVOException;
import com.jasamedika.medifirst2000.service.CatatanPerkembanganPasienTerintegrasiService;
import com.jasamedika.medifirst2000.util.CommonUtil;
import com.jasamedika.medifirst2000.util.DateUtil;
import com.jasamedika.medifirst2000.vo.AntrianPasienDiPeriksaVO;
import com.jasamedika.medifirst2000.vo.CatatanPerkembanganPasienTerintegrasiVO;
import com.jasamedika.medifirst2000.vo.PasienVO;
@ -252,7 +253,6 @@ public class CatatanPerkembanganPasienTerintegrasiServiceImpl extends BaseVoServ
List<Integer> listIdDokter = new ArrayList<>();
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
DateFormat mf = new SimpleDateFormat("yyyy-MM");
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
DateFormat df_ina = new SimpleDateFormat("dd-MM-yyyy");
DateFormat sf_ina = new SimpleDateFormat("HH:mm:ss");
@ -296,8 +296,10 @@ public class CatatanPerkembanganPasienTerintegrasiServiceImpl extends BaseVoServ
persenTepatHadir = getCapaianPresensiCppt(rawData, idDokter, daysOfMonth);
}
Map<String, Object> cpptDokter = logbookKinerjaDokterDao.findDetailKinerjaDokter(
mf.format(new Date(periode)), idDr, Master.IndikatorKinerja.KEPATUHAN_PELAYANAN_MEDIS,
Date start = DateUtil.startMonth(periode);
Date end = DateUtil.endMonth(periode);
Map<String, Object> cpptDokter = logbookKinerjaDokterDao.findDetailKinerjaDokter(start, end, idDr,
Master.IndikatorKinerja.KEPATUHAN_PELAYANAN_MEDIS,
Master.IndikatorKinerjaDetail.KEPATUHAN_WAKTU_VISITE);
if (CommonUtil.isNotNullOrEmpty(cpptDokter)) {
cpptDokterVo.setLogbookId(cpptDokter.get("logbookId").toString());

View File

@ -66,6 +66,7 @@ import com.jasamedika.medifirst2000.service.LogbookKinerjaService;
import com.jasamedika.medifirst2000.service.TargetSkorDokterService;
import com.jasamedika.medifirst2000.util.CommonUtil;
import com.jasamedika.medifirst2000.util.CurrencyUtil;
import com.jasamedika.medifirst2000.util.DateUtil;
import com.jasamedika.medifirst2000.util.StringUtil;
import com.jasamedika.medifirst2000.vo.EvaluasiJabatanVO;
import com.jasamedika.medifirst2000.vo.IkiDanRemunerasiVO;
@ -188,6 +189,9 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
String[] splitData = date.split("-");
Integer paramTahun = Integer.parseInt(splitData[0]);
Date start = DateUtil.startMonth(date.substring(0, 7));
Date end = DateUtil.endMonth(date.substring(0, 7));
Map<String, Object> ikiRemunerasi = new HashMap<>();
Map<String, Object> evaluasiJabatan = ikiDanRemunerasiDao.getEvaluasiJabatan(id);
@ -238,7 +242,7 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
}
if (CommonUtil.isNotNullOrEmpty(ikiRemunerasi.get("idUnitKerja"))) {
Map<String, Object> iku = settingPirSdmDao
.getIKUUnitKerja((Integer) ikiRemunerasi.get("idUnitKerja"), date.substring(0, 7));
.getIKUUnitKerja((Integer) ikiRemunerasi.get("idUnitKerja"), start, end);
if (CommonUtil.isNotNullOrEmpty(iku)) {
ikur = (Double) iku.get("iku");
}
@ -328,9 +332,10 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
ikiDanRemunerasi.setPegawai(pegawai);
}
ikiDanRemunerasi.setStrukHistory(strukHistori);
String periode = new SimpleDateFormat("yyyy-MM").format(strukHistori.getTglHistori());
Date start = DateUtil.startMonth(strukHistori.getTglHistori());
Date end = DateUtil.endMonth(strukHistori.getTglHistori());
int id = pegawai.getId();
Double temp = ikiDanRemunerasiDao.findRemunerasi(periode, id);
Double temp = ikiDanRemunerasiDao.findRemunerasi(start, end, id);
if (CommonUtil.isNullOrEmpty(temp)) {
// insert into StrukPelayanan
StrukPelayanan strukPelayanan = new StrukPelayanan();
@ -440,6 +445,8 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
public Map<String, Object> savePirDanIku(List<SettingPirSdmVO> vos) {
Map<String, Object> result = new HashMap<String, Object>();
for (SettingPirSdmVO vo : vos) {
Date start = DateUtil.startMonth(vo.getTglAwal());
Date end = DateUtil.endMonth(vo.getTglAwal());
SettingPirSdm settingPirSdm = settingPirSdmConverter.transferVOToModel(vo, new SettingPirSdm());
if (CommonUtil.isNotNullOrEmpty(vo.getSuratKeputusan())) {
settingPirSdm.setSuratKeputusan(
@ -451,9 +458,7 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
}
if (CommonUtil.isNotNullOrEmpty(vo.getIku())) {
if (CommonUtil.isNotNullOrEmpty(vo.getUnitKerja())) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM");
Map<String, Object> data = settingPirSdmDao.getIKUUnitKerja(vo.getUnitKerja().getId(),
df.format(vo.getTglAwal()));
Map<String, Object> data = settingPirSdmDao.getIKUUnitKerja(vo.getUnitKerja().getId(), start, end);
if (CommonUtil.isNotNullOrEmpty(data)) {
settingPirSdm.setId((Integer) data.get("id"));
}
@ -483,7 +488,9 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
@Override
public Map<String, Object> findIKU(String periode, Integer idUnitkerja) {
Map<String, Object> result = settingPirSdmDao.getIKUUnitKerja(idUnitkerja, periode);
Date start = DateUtil.startMonth(periode);
Date end = DateUtil.endMonth(periode);
Map<String, Object> result = settingPirSdmDao.getIKUUnitKerja(idUnitkerja, start, end);
Calendar date = Calendar.getInstance();
int month = date.get(Calendar.MONTH);
periode = periode.substring(5, 7);

View File

@ -70,6 +70,7 @@ import com.jasamedika.medifirst2000.service.LoginUserService;
import com.jasamedika.medifirst2000.service.MonitoringAbsenService;
import com.jasamedika.medifirst2000.util.CommonUtil;
import com.jasamedika.medifirst2000.util.CurrencyUtil;
import com.jasamedika.medifirst2000.util.DateUtil;
import com.jasamedika.medifirst2000.util.JsonUtil;
import com.jasamedika.medifirst2000.vo.CustomIndexKerjaVO;
import com.jasamedika.medifirst2000.vo.CustomUraianKerjaVO;
@ -302,7 +303,9 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK
Integer endYear = endCal.get(Calendar.YEAR);
String endPeriod = endYear + "-" + thisMonth;
result = revIndekKinerjaDao.getAllTindakanByPeriod(idPegawai, startPeriod, endPeriod, listDJP);
Date start = DateUtil.startMonth(startPeriod);
Date end = DateUtil.endMonth(endPeriod);
result = revIndekKinerjaDao.getAllTindakanByPeriod(idPegawai, start, end, listDJP);
return result;
}
@ -909,7 +912,9 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK
} else {
result.put("status", false);
}
Double indeksKehadiran = indekKinerjaDao.findIndexKehadiran(idPegawai, periode);
Date start = DateUtil.startMonth(periode);
Date end = DateUtil.endMonth(periode);
Double indeksKehadiran = indekKinerjaDao.findIndexKehadiran(idPegawai, start, end);
Map<String, Object> totalIKI = indekKinerjaDao.findNilaiIndeksKinerja(idPegawai, periode);
if (CommonUtil.isNotNullOrEmpty(totalIKI)) {
result.put("totalIki", totalIKI.get("totalIKI") != null ? totalIKI.get("totalIKI") : 0.0);
@ -2538,17 +2543,19 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK
Pegawai pgw = pegawaiDao.findOne(idPegawai);
List<Integer> listDetailException = getDetailProdukAdministrasi(pgw);
List<Map<String, Object>> tindakans = new ArrayList<>();
String tarifSatuHarga = settingDataFixedDao.getSettingDataFixed("tarifSatuHarga");
Boolean isTarifSatuHarga = Boolean.parseBoolean(tarifSatuHarga);
List<Integer> drAnastesiList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_ANESTESI);
List<Integer> listTindakanAnastesiException = splitDataSettingDatafixed("excepTindakAnastesi");
Date start = DateUtil.startMonth(periode);
Date end = DateUtil.endMonth(periode);
if (CommonUtil.isNullOrEmpty(listDetailException)) {
tindakans = indekKinerjaDao.findIdProdukByIdUser(idPegawai, periode, splitIdProdukAdministrasi());
tindakans = indekKinerjaDao.findIdProdukByIdUser(idPegawai, start, end, splitIdProdukAdministrasi());
} else {
tindakans = indekKinerjaDao.findIdProdukByIdUserWithDetailException(idPegawai, periode,
tindakans = indekKinerjaDao.findIdProdukByIdUserWithDetailException(idPegawai, start, end,
splitIdProdukAdministrasi(), listDetailException);
}

View File

@ -6,7 +6,6 @@ import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.ZoneId;
import java.time.temporal.TemporalAdjusters;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
@ -29,6 +28,7 @@ import com.jasamedika.medifirst2000.entities.LogbookKinerjaDetail;
import com.jasamedika.medifirst2000.exception.ServiceVOException;
import com.jasamedika.medifirst2000.service.LogbookKinerjaDetailService;
import com.jasamedika.medifirst2000.util.CommonUtil;
import com.jasamedika.medifirst2000.util.DateUtil;
import com.jasamedika.medifirst2000.vo.LogbookKinerjaDetailVO;
@Service("LogbookKinerjaDetailService")
@ -192,11 +192,8 @@ public class LogbookKinerjaDetailServiceImpl extends BaseVoServiceImpl implement
public List<Map<String, Object>> findWorkingRecord(Integer idPegawai, Integer idJabatan, Long bulan,
Boolean statusVerif) throws JpaSystemException {
DateFormat df = new SimpleDateFormat("yyyy-MM");
LocalDate month = new Date(bulan).toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
Date start = Date.from(month.with(TemporalAdjusters.firstDayOfMonth()).atStartOfDay()
.atZone(ZoneId.systemDefault()).toInstant());
Date end = Date.from(month.with(TemporalAdjusters.lastDayOfMonth()).atTime(LocalTime.MAX)
.atZone(ZoneId.systemDefault()).toInstant());
Date start = DateUtil.startMonth(bulan);
Date end = DateUtil.endMonth(bulan);
String strTglLimitVerif = settingDataFixedDao.getSettingDataFixed("tglLimitVerifWorkingRecord");
LocalDateTime tglLimitVerif = LocalDateTime
@ -218,11 +215,8 @@ public class LogbookKinerjaDetailServiceImpl extends BaseVoServiceImpl implement
@Override
public List<Map<String, Object>> findWorkingRecord(Integer idPegawai, Integer idJabatan, Integer idIndikator,
Long bulan) throws JpaSystemException {
LocalDate month = new Date(bulan).toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
Date start = Date.from(month.with(TemporalAdjusters.firstDayOfMonth()).atStartOfDay()
.atZone(ZoneId.systemDefault()).toInstant());
Date end = Date.from(month.with(TemporalAdjusters.lastDayOfMonth()).atTime(LocalTime.MAX)
.atZone(ZoneId.systemDefault()).toInstant());
Date start = DateUtil.startMonth(bulan);
Date end = DateUtil.endMonth(bulan);
List<Map<String, Object>> result = logbookKinerjaDetailDao.findWorkingRecord(idPegawai, idJabatan, idIndikator,
start, end);

View File

@ -69,6 +69,7 @@ import com.jasamedika.medifirst2000.exception.ServiceVOException;
import com.jasamedika.medifirst2000.service.CatatanPerkembanganPasienTerintegrasiService;
import com.jasamedika.medifirst2000.service.LogbookKinerjaService;
import com.jasamedika.medifirst2000.util.CommonUtil;
import com.jasamedika.medifirst2000.util.DateUtil;
import com.jasamedika.medifirst2000.vo.IndikatorKinerjaVO;
import com.jasamedika.medifirst2000.vo.JabatanVO;
import com.jasamedika.medifirst2000.vo.LogbookKinerjaVO;
@ -465,9 +466,9 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
}
private Integer hitungTargetHariKerja(Date bulan) {
DateFormat df = new SimpleDateFormat("yyyy-MM");
List<Kalender> targetPresensi = kalenderDao.getTargetKerja(df.format(bulan));
Date start = DateUtil.startMonth(bulan);
Date end = DateUtil.endMonth(bulan);
List<Kalender> targetPresensi = kalenderDao.getTargetKerja(start, end);
Integer result = targetPresensi.size();
return result;
@ -475,12 +476,11 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
private Double hitungTargetMenitKerja(Date bulan) {
Double result = 0.0;
Chronology hijri = IslamicChronology.getInstance();
Date start = DateUtil.startMonth(bulan);
Date end = DateUtil.endMonth(bulan);
DateFormat df = new SimpleDateFormat("yyyy-MM");
List<Kalender> targetPresensi = kalenderDao.getTargetKerja(df.format(bulan));
List<Kalender> targetPresensi = kalenderDao.getTargetKerja(start, end);
Integer jumlahHariKerjaHarian = 0;
Integer jumlahHariKerjaRamadhan = 0;
for (Kalender kalender : targetPresensi) {
@ -505,7 +505,11 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
List<Map<String, Object>> listRes = new ArrayList<>();
List<Integer> listIdIndikator = new ArrayList<>();
DateFormat yf = new SimpleDateFormat("yyyy");
Date startMonth = DateUtil.startMonth(bulan);
Date endMonth = DateUtil.endMonth(bulan);
Date startYear = DateUtil.startYear(bulan);
Date endYear = DateUtil.endMonth(bulan);
DateFormat mf = new SimpleDateFormat("yyyy-MM");
Integer targetHariKerja = hitungTargetHariKerja(new Date(bulan));
@ -537,8 +541,8 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
* Komponen target kuantitas indikator pelayanan medis
*/
if (map.get("indikatorId").equals(Master.IndikatorKinerja.PELAYANAN_MEDIS_JAM_KERJA)) {
List<Double> target = targetSkorDokterDetailDao.findTargetByPegawai(idPegawai,
mf.format(new Date(bulan)), yf.format(new Date(bulan)));
List<Double> target = targetSkorDokterDetailDao.findTargetByPegawai(idPegawai, endMonth, startYear,
endYear);
if (CommonUtil.isNotNullOrEmpty(target)) {
map.put("target", Math.floor(target.get(0)));
} else {
@ -552,7 +556,7 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
if (map.get("indikatorId").equals(Master.IndikatorKinerja.KEPATUHAN_PELAYANAN_MEDIS)
&& isKualitasDokterExisted) {
List<Map<String, Object>> detailIndikator2 = logbookKinerjaDokterDao.findDetailLogbookDokter(
mf.format(new Date(bulan)), idPegawai, idJabatan,
startMonth, endMonth, idPegawai, idJabatan,
Integer.valueOf(map.get("indikatorId").toString()));
if (CommonUtil.isNotNullOrEmpty(detailIndikator2)) {
map.put("detail", detailIndikator2);
@ -584,7 +588,7 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
Iterable<LogbookKinerjaDokter> models = logbookKinerjaDokterDao.save(lkds);
if (CommonUtil.isNotNullOrEmpty(models)) {
List<Map<String, Object>> detailIndikator3 = logbookKinerjaDokterDao
.findDetailLogbookDokter(mf.format(new Date(bulan)), idPegawai, idJabatan,
.findDetailLogbookDokter(startMonth, endMonth, idPegawai, idJabatan,
Integer.valueOf(map.get("indikatorId").toString()));
if (CommonUtil.isNotNullOrEmpty(detailIndikator3)) {
map.put("detail", detailIndikator3);
@ -690,6 +694,10 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
Map<String, Object> result = new HashMap<>();
List<Map<String, Object>> resData = new ArrayList<>();
List<Map<String, Object>> listJenisIndikator = new ArrayList<>();
Date start = DateUtil.startMonth(bulan);
Date end = DateUtil.endMonth(bulan);
DateFormat mf = new SimpleDateFormat("yyyy-MM");
DateFormat yf = new SimpleDateFormat("yyyy");
Integer idKelompokJabatan = null;
@ -763,7 +771,7 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
data.add(map);
} else if (Master.IndikatorKinerja.KEPATUHAN_PELAYANAN_MEDIS.equals(map.get("idIndikator"))) {
List<Map<String, Object>> listDetail = logbookKinerjaDokterDao.findDetailLogbookDokter(
mf.format(new Date(bulan)), idPegawai, idJabatan,
start, end, idPegawai, idJabatan,
Master.IndikatorKinerja.KEPATUHAN_PELAYANAN_MEDIS);
int detailSize = listDetail.size();
@ -2963,6 +2971,9 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
Date pssbAwal = Date.from(PSBBDate.atZone(ZoneId.systemDefault()).toInstant());
Date pssbAkhir = Date.from(PSBBEnd.atZone(ZoneId.systemDefault()).toInstant());
Date start = DateUtil.startMonth(mf.format(bulan));
Date end = DateUtil.endMonth(mf.format(bulan));
List<Integer> listRuangEks = splitDataSettingDatafixed("IdRuanganEksekutif");
List<Integer> listIdNonjadwal = shiftKerjaDao.findListNonjadwal();
@ -2972,7 +2983,7 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
listIdPegawai = mapPegawaiJabatanToUnitKerjaDao
.findAllDokterKelompokStafMedik(Arrays.asList(Master.UnitKerja.KSM));
} else if (typeId == 2) {
listIdPegawai = logbookKinerjaDao.findPegawaiKontrakByIndikator(mf.format(bulan),
listIdPegawai = logbookKinerjaDao.findPegawaiKontrakByIndikator(start, end,
Master.IndikatorKinerja.PELAYANAN_MEDIS_JAM_KERJA);
}
@ -3080,13 +3091,16 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
@Override
public void autoVerifKontrakJamKerjaDokter(Date bulan) {
DateFormat yf = new SimpleDateFormat("yyyy");
DateFormat mf = new SimpleDateFormat("yyyy-MM");
List<Integer> listIdPegawai = new ArrayList<>();
List<Integer> listIdJabatan = new ArrayList<>();
List<String> listJabatanIndikator = new ArrayList<>();
List<Map<String, Object>> listMapFilter = new ArrayList<>();
Date endMonth = DateUtil.endMonth(bulan);
Date startYear = DateUtil.startYear(bulan);
Date endYear = DateUtil.endYear(bulan);
/*
* Get All Mapping Indikator Dokter
*/
@ -3120,7 +3134,7 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
* Get Target Jumlah Pemenuhan Medis
*/
List<Map<String, Object>> listTargetSkor = targetSkorDokterDetailDao.findTargetByPegawai(listIdPegawai,
mf.format(bulan), yf.format(bulan));
endMonth, startYear, endYear);
/*
* Get Bobot Jumlah Pemenuhan Medis
*/

View File

@ -776,9 +776,9 @@ public class PasienDaftarServiceImpl implements PasienDaftarService {
@Override
public List<Map<String, Object>> findRekapDiskon(Long periode) {
DateFormat mf = new SimpleDateFormat("yyyy-MM");
List<Map<String, Object>> result = pasienDaftarDao.findRekapDiskon(mf.format(new Date(periode)));
Date start = DateUtil.startMonth(periode);
Date end = DateUtil.endMonth(periode);
List<Map<String, Object>> result = pasienDaftarDao.findRekapDiskon(start, end);
return result;
}

View File

@ -57,6 +57,7 @@ import com.jasamedika.medifirst2000.entities.ShiftKerja;
import com.jasamedika.medifirst2000.service.PegawaiJadwalKerjaService;
import com.jasamedika.medifirst2000.service.PegawaiService;
import com.jasamedika.medifirst2000.util.CommonUtil;
import com.jasamedika.medifirst2000.util.DateUtil;
import com.jasamedika.medifirst2000.vo.KalenderVO;
import com.jasamedika.medifirst2000.vo.KelompokShiftVO;
import com.jasamedika.medifirst2000.vo.ListTanggalCutiVO;
@ -1017,6 +1018,8 @@ public class PegawaiJadwalKerjaServiceImpl extends BaseVoServiceImpl implements
public String writeExcelPegawaiJadwalKerja(String bulan, Integer idUnitKerja, Integer idSubunitKerja)
throws ParseException {
String absoluteFilePath = "";
Date start = DateUtil.startMonth(bulan);
Date end = DateUtil.endMonth(bulan);
try {
HSSFWorkbook workbook = new HSSFWorkbook();
@ -1026,7 +1029,7 @@ public class PegawaiJadwalKerjaServiceImpl extends BaseVoServiceImpl implements
Map<String, Object> unitKerja = unitKerjaDao.getUnitKerjaById(idUnitKerja);
Map<String, Object> subunitKerja = subunitKerjaDao.getSubunitKerjaById(idSubunitKerja);
List<Map<String, Object>> listTanggal = kalenderDao.getKalenderBulanan(bulan);
List<Map<String, Object>> listTanggal = kalenderDao.getKalenderBulanan(start, end);
List<Map<String, Object>> listPegawai = mapPegawaiJabatanToUnitKerjaDao.getPegawaiByUnitKerja(idUnitKerja,
idSubunitKerja);

View File

@ -67,6 +67,7 @@ import com.jasamedika.medifirst2000.service.PegawaiService;
import com.jasamedika.medifirst2000.service.RekamDataPegawaiService;
import com.jasamedika.medifirst2000.service.RiwayatJabatanService;
import com.jasamedika.medifirst2000.util.CommonUtil;
import com.jasamedika.medifirst2000.util.DateUtil;
import com.jasamedika.medifirst2000.util.PasswordUtil;
import com.jasamedika.medifirst2000.vo.AgamaVO;
import com.jasamedika.medifirst2000.vo.DetailKategoryPegawaiVO;
@ -264,6 +265,10 @@ public class RekamDataPegawaiServiceImpl extends BaseVoServiceImpl implements Re
pegawai.setId(vo.getId());
pegawai.setKdProfile(Master.KODE_PROFILE);
Date currDate = new Date();
Date start = DateUtil.startMonth(currDate);
Date end = DateUtil.endMonth(currDate);
if (CommonUtil.isNotNullOrEmpty(pegawai.getStatusEnabled())
&& CommonUtil.isNotNullOrEmpty(vo.getStatusEnabled())) {
if (!pegawai.getStatusEnabled().equals(vo.getStatusEnabled())) {
@ -954,10 +959,7 @@ public class RekamDataPegawaiServiceImpl extends BaseVoServiceImpl implements Re
&& CommonUtil.isNotNullOrEmpty(vo.getShiftKerja())) {
if (!pegawai.getShiftKerjaId().equals(vo.getShiftKerja().getId())) {
if (vo.getShiftKerja().getId() == 1 || vo.getShiftKerja().getId() == 2) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM");
Date currDate = new Date();
List<Integer> listJadwal = pegawaiJadwalKerjaDao.getListJadwal(vo.getId(),
formatter.format(currDate));
List<Integer> listJadwal = pegawaiJadwalKerjaDao.getListJadwal(vo.getId(), start, end);
if (CommonUtil.isNotNullOrEmpty(listJadwal)) {
for (Integer idJadwal : listJadwal) {
pegawaiJadwalKerjaDao.delete(idJadwal);
@ -971,10 +973,7 @@ public class RekamDataPegawaiServiceImpl extends BaseVoServiceImpl implements Re
} else if (CommonUtil.isNullOrEmpty(pegawai.getShiftKerjaId())
&& CommonUtil.isNotNullOrEmpty(vo.getShiftKerja())) {
if (vo.getShiftKerja().getId() == 1 || vo.getShiftKerja().getId() == 2) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM");
Date currDate = new Date();
List<Integer> listJadwal = pegawaiJadwalKerjaDao.getListJadwal(vo.getId(),
formatter.format(currDate));
List<Integer> listJadwal = pegawaiJadwalKerjaDao.getListJadwal(vo.getId(), start, end);
if (CommonUtil.isNotNullOrEmpty(listJadwal)) {
for (Integer idJadwal : listJadwal) {
pegawaiJadwalKerjaDao.delete(idJadwal);
@ -2091,6 +2090,11 @@ public class RekamDataPegawaiServiceImpl extends BaseVoServiceImpl implements Re
Map<String, Object> result = new HashMap<String, Object>();
Map<String, Object> dataPegawai = new HashMap<String, Object>();
// BeanUtils.copyProperties(dest, orig);
Date currDate = new Date();
Date start = DateUtil.startMonth(currDate);
Date end = DateUtil.endMonth(currDate);
if (CommonUtil.isNotNullOrEmpty(vo)) {
try {
dataPegawai = vo.ToMap();
@ -2327,10 +2331,7 @@ public class RekamDataPegawaiServiceImpl extends BaseVoServiceImpl implements Re
// nonshift atau nonshift+
if (vo.getShiftKerja().getId() == 1 || vo.getShiftKerja().getId() == 2) {
if (!currKelShift.equals(Integer.parseInt(vo.getShiftKerja().getId().toString()))) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM");
Date currDate = new Date();
List<Integer> listJadwal = pegawaiJadwalKerjaDao.getListJadwal(vo.getId(),
formatter.format(currDate));
List<Integer> listJadwal = pegawaiJadwalKerjaDao.getListJadwal(vo.getId(), start, end);
if (CommonUtil.isNotNullOrEmpty(listJadwal)) {
for (Integer idJadwal : listJadwal) {
pegawaiJadwalKerjaDao.delete(idJadwal);

View File

@ -17,7 +17,6 @@ import org.springframework.transaction.annotation.Transactional;
import com.jasamedika.medifirst2000.converter.BaseConverterImpl;
import com.jasamedika.medifirst2000.dao.PegawaiDao;
import com.jasamedika.medifirst2000.dao.PegawaiHistoriEvaluasiDao;
import com.jasamedika.medifirst2000.dao.RiwayatPenilaianKompetensiPegawaiDao;
import com.jasamedika.medifirst2000.dao.RunningNumberDao;
import com.jasamedika.medifirst2000.dao.StrukHistoriDao;
@ -31,6 +30,7 @@ import com.jasamedika.medifirst2000.entities.RunningNumber;
import com.jasamedika.medifirst2000.entities.StrukHistori;
import com.jasamedika.medifirst2000.service.RiwayatPenilaianKompetensiPegawaiService;
import com.jasamedika.medifirst2000.util.CommonUtil;
import com.jasamedika.medifirst2000.util.DateUtil;
import com.jasamedika.medifirst2000.util.StringUtil;
import com.jasamedika.medifirst2000.vo.KelompokTransaksiVO;
import com.jasamedika.medifirst2000.vo.KomponenEvaluasiVO;
@ -100,7 +100,8 @@ public class RiwayatPenilaianKompetensiPegawaiServiceImpl implements RiwayatPeni
Map<String, Object> result = new HashMap<String, Object>();
List<Map<String, Object>> listData = riwayatPenilaianKompetensiPegawaiDao
.getPenilaianKompetensiRiwayat(idJabatan);
// validasi penilaian hanya dapat dilakukan setelah 3 bulan semenjak penilaian
// validasi penilaian hanya dapat dilakukan setelah 3 bulan semenjak
// penilaian
// terakhir dilakukan
List<Map<String, Object>> dataPenilaian = riwayatPenilaianKompetensiPegawaiDao.getPenilaian(idPegawai);
int index = 0;
@ -206,8 +207,17 @@ public class RiwayatPenilaianKompetensiPegawaiServiceImpl implements RiwayatPeni
@Transactional(readOnly = true)
public List<Map<String, Object>> getGapKompetensiPegawai(Integer idRuangan, String periode) {
List<Map<String, Object>> result = new ArrayList<Map<String, Object>>();
List<Map<String, Object>> listPegawai = pegawaiDao.findByRuanganKerja(idRuangan);// get id jabatan and id
// pegawai by ruangan kerja
List<Map<String, Object>> listPegawai = pegawaiDao.findByRuanganKerja(idRuangan);// get
// id
// jabatan
// and
// id
// pegawai
// by
// ruangan
// kerja
Date start = DateUtil.startMonth(periode);
Date end = DateUtil.endMonth(periode);
Integer nos = 0;
for (Map<String, Object> temp : listPegawai) {
@ -231,7 +241,7 @@ public class RiwayatPenilaianKompetensiPegawaiServiceImpl implements RiwayatPeni
Double gap = 0.0;
Integer idKomponenEvaluasi = (Integer) kompetensiPegawai.get("idKomponenEvaluasi");
Map<String, Object> dataKompetensi = riwayatPenilaianKompetensiPegawaiDao
.getKompetensiByPegawai(idPegawai, periode, idKomponenEvaluasi);
.getKompetensiByPegawai(idPegawai, start, end, idKomponenEvaluasi);
Double nilaiHasilEvaluasi = 0.0;
String nilaiStandar = "0";
if (CommonUtil.isNotNullOrEmpty(kompetensiPegawai.get("nilaiStandar"))) {
@ -271,7 +281,8 @@ public class RiwayatPenilaianKompetensiPegawaiServiceImpl implements RiwayatPeni
List<Map<String, Object>> result = new ArrayList<Map<String, Object>>();
List<Map<String, Object>> listKompetensi = riwayatPenilaianKompetensiPegawaiDao
.getKompetensiByRuangan(idJabatan);// getkompetensi basd on jabatan
.getKompetensiByRuangan(idJabatan);// getkompetensi basd on
// jabatan
List<String> listTempKompetensi = new ArrayList<String>();
// filtering redundant kompetensi
@ -313,8 +324,15 @@ public class RiwayatPenilaianKompetensiPegawaiServiceImpl implements RiwayatPeni
@Override
@Transactional(readOnly = true)
public Map<String, Object> getKompetensiPegawai(Integer idRuangan) {
List<Map<String, Object>> listPegawai = pegawaiDao.findByRuanganKerja(idRuangan);// get id jabatan and id
// pegawai by ruangan kerja
List<Map<String, Object>> listPegawai = pegawaiDao.findByRuanganKerja(idRuangan);// get
// id
// jabatan
// and
// id
// pegawai
// by
// ruangan
// kerja
List<Map<String, Object>> listKelompokEvaluasi = riwayatPenilaianKompetensiPegawaiDao.getKelompokEvaluasi();
List<Map<String, Object>> listHeader = new ArrayList<Map<String, Object>>();
Map<String, Object> MaplistHeaderFinal = new HashMap<String, Object>();
@ -323,7 +341,8 @@ public class RiwayatPenilaianKompetensiPegawaiServiceImpl implements RiwayatPeni
if (CommonUtil.isNotNullOrEmpty(temp.get("idJabatanInternal"))) {
Integer idJabatan = (Integer) temp.get("idJabatanInternal");
List<Map<String, Object>> tempListKompetensi = riwayatPenilaianKompetensiPegawaiDao
.getKompetensiByRuangan(idJabatan);// getkompetensi basd on jabatan
.getKompetensiByRuangan(idJabatan);// getkompetensi basd
// on jabatan
listKompetensi.addAll(tempListKompetensi);
}

View File

@ -5,16 +5,24 @@ import java.text.DateFormat;
import java.text.Format;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.ZoneId;
import java.time.temporal.TemporalAdjusters;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* The Class DateUtil.
*
* @author Roberto
*/
public final class DateUtil implements Serializable {
private final static Logger LOGGER = LoggerFactory.getLogger(DateUtil.class);
/** The Constant serialVersionUID. */
private static final long serialVersionUID = -3865736292493750177L;
@ -244,7 +252,6 @@ public final class DateUtil implements Serializable {
return year + 1;
}
/**
* Get year information of a date.
@ -326,48 +333,45 @@ public final class DateUtil implements Serializable {
return cal.get(Calendar.DAY_OF_MONTH) + " " + INDONESIAN_MONTH[cal.get(Calendar.MONTH)] + " "
+ cal.get(Calendar.YEAR);
}
public static synchronized Date now(){
public static synchronized Date now() {
return new Date();
}
public static synchronized Date toDate(String dateString){
public static synchronized Date toDate(String dateString) {
Date result = null;
if (dateString != null && !dateString.equals(""))
{
if (dateString != null && !dateString.equals("")) {
try {
if(dateString.indexOf(":")>0)
result = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(dateString);
else
{
if(dateString.indexOf("-")>0)
if (dateString.indexOf(":") > 0)
result = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(dateString);
else {
if (dateString.indexOf("-") > 0)
result = new SimpleDateFormat("yyyy-MM-dd").parse(dateString);
else
result = new SimpleDateFormat("yyyyMMddHHmmss").parse(dateString);
}
}
} catch (Exception e) {
e.printStackTrace();
LOGGER.error(e.getMessage());
}
}
return result;
}
public static synchronized Date getShortDate(){
public static synchronized Date getShortDate() {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String datenow=simpleDateFormat.format(new Date());
Date tglReg=null;
try {
tglReg=simpleDateFormat.parse(datenow);
String datenow = simpleDateFormat.format(new Date());
Date tglReg = null;
try {
tglReg = simpleDateFormat.parse(datenow);
} catch (ParseException e) {
e.printStackTrace();
LOGGER.error(e.getMessage());
}
return tglReg;
return tglReg;
}
/**
* Parse string formatted date (MM-yyyy, e.g: 05-2016) to Java Date.
*
@ -379,38 +383,110 @@ public final class DateUtil implements Serializable {
Date result = new Date();
try {
result = formatter.parse(monthDashYear);
} catch(ParseException pe) {
System.out.println("Error parsing date: " + pe.getMessage());
} catch (ParseException pe) {
LOGGER.error(pe.getMessage());
}
return result;
}
/**
* Get first or last date from specified date.
*
* @param date specified date
* @param first true for first date, false for last date
* @param date
* specified date
* @param first
* true for first date, false for last date
* @return resulted date
*/
public static Date getFirstLastDateOfMonth(Date date, boolean first) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
if (first) {
cal.set(Calendar.DATE, cal.getActualMinimum(Calendar.DATE));
} else {
cal.set(Calendar.DATE, cal.getActualMaximum(Calendar.DATE));
}
return cal.getTime();
}
public static Date addDays(Date date, int days)
{
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.DATE, days); //minus number would decrement the days
return cal.getTime();
}
public static Date addDays(Date date, int days) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.DATE, days); // minus number would decrement the days
return cal.getTime();
}
public static Date startMonth(Date date) {
LocalDate month = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
return Date.from(month.with(TemporalAdjusters.firstDayOfMonth()).atStartOfDay().atZone(ZoneId.systemDefault())
.toInstant());
}
public static Date startMonth(Long milis) {
LocalDate month = new Date(milis).toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
return Date.from(month.with(TemporalAdjusters.firstDayOfMonth()).atStartOfDay().atZone(ZoneId.systemDefault())
.toInstant());
}
public static Date startMonth(String period) {
try {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM");
LocalDate month = formatter.parse(period).toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
return Date.from(month.with(TemporalAdjusters.firstDayOfMonth()).atStartOfDay()
.atZone(ZoneId.systemDefault()).toInstant());
} catch (ParseException e) {
LOGGER.error(e.getMessage());
return null;
}
}
public static Date endMonth(Date date) {
LocalDate month = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
return Date.from(month.with(TemporalAdjusters.lastDayOfMonth()).atTime(LocalTime.MAX)
.atZone(ZoneId.systemDefault()).toInstant());
}
public static Date endMonth(Long milis) {
LocalDate month = new Date(milis).toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
return Date.from(month.with(TemporalAdjusters.lastDayOfMonth()).atTime(LocalTime.MAX)
.atZone(ZoneId.systemDefault()).toInstant());
}
public static Date endMonth(String period) {
try {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM");
LocalDate month = formatter.parse(period).toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
return Date.from(month.with(TemporalAdjusters.lastDayOfMonth()).atTime(LocalTime.MAX)
.atZone(ZoneId.systemDefault()).toInstant());
} catch (ParseException e) {
LOGGER.error(e.getMessage());
return null;
}
}
public static Date startYear(Date date) {
LocalDate month = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
return Date.from(month.with(TemporalAdjusters.firstDayOfYear()).atStartOfDay().atZone(ZoneId.systemDefault())
.toInstant());
}
public static Date startYear(Long milis) {
LocalDate month = new Date(milis).toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
return Date.from(month.with(TemporalAdjusters.firstDayOfYear()).atStartOfDay().atZone(ZoneId.systemDefault())
.toInstant());
}
public static Date endYear(Date date) {
LocalDate month = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
return Date.from(month.with(TemporalAdjusters.lastDayOfYear()).atTime(LocalTime.MAX)
.atZone(ZoneId.systemDefault()).toInstant());
}
public static Date endYear(Long milis) {
LocalDate month = new Date(milis).toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
return Date.from(month.with(TemporalAdjusters.lastDayOfYear()).atTime(LocalTime.MAX)
.atZone(ZoneId.systemDefault()).toInstant());
}
}