- perbaikan handling nilai diskon null di logbook dokter

- pembuatan service kalender untuk keperluan perbaikan performa service monitoring absensi
- desain ulang service dalam rangka perbaikan performa service monitoring absensi
- penambahan kolom data tanggal presensi dalam tabel monitoring presensi untuk persiapan verifikasi indikator kehadiran
- pendaftaran tabel monitoring presensi dalam konfigurasi hibernate
- penghapusan service monitoring presensi sebelumnya yang tidak terpakai
This commit is contained in:
Salman Manoe 2021-10-07 17:15:50 +07:00
parent 77f12d97ad
commit aeb2902534
15 changed files with 388 additions and 77 deletions

View File

@ -171,7 +171,7 @@ public interface IkiDanRemunerasiDao extends PagingAndSortingRepository<IkiDanRe
String kinerjaJamKerjaDokter = "select distinct new Map(ppp.ObjectJenisPetugasPeId as jenisPetugasId,"
+ "pg.id as pegawaiId," + "pr.id as produkId,pr.namaProduk as namaProduk,"
+ "djp.id as detailJenisProdukId,"
+ "pp.noRec as noRec,pp.tglPelayanan as tglPelayanan,pp.jumlah as jumlah,pp.hargaDiscount as hargaDiskon,"
+ "pp.noRec as noRec,pp.tglPelayanan as tglPelayanan,pp.jumlah as jumlah,coalesce(pp.hargaDiscount,0) as hargaDiskon,"
+ "ru.departemenId as departemenId,ru.id as ruanganId," + "pd.diskonPegawai as statusDiskon) "
+ "from PelayananPasienPetugas ppp, MapRuanganToProduk mrtp, PegawaiJadwalKerja pjk "
+ "left join ppp.pelayananPasien pp " + "left join ppp.kdpegawai pg " + "left join pp.produk pr "
@ -221,7 +221,7 @@ public interface IkiDanRemunerasiDao extends PagingAndSortingRepository<IkiDanRe
// Logbook_kinerja_luar_jam_kerja_dokter
@Query("select distinct new Map(ppp.ObjectJenisPetugasPeId as jenisPetugasId,"
+ "pr.id as produkId,pr.namaProduk as namaProduk,"
+ "pp.noRec as noRec,pp.tglPelayanan as tglPelayanan,pp.jumlah as jumlah,pp.hargaDiscount as hargaDiskon,"
+ "pp.noRec as noRec,pp.tglPelayanan as tglPelayanan,pp.jumlah as jumlah,coalesce(pp.hargaDiscount,0) as hargaDiskon,"
+ "ru.departemenId as departemenId,ru.id as ruanganId," + "pd.diskonPegawai as statusDiskon) "
+ "from PelayananPasienPetugas ppp, MapRuanganToProduk mrtp, PegawaiJadwalKerja pjk "
+ "left join ppp.pelayananPasien pp " + "left join ppp.kdpegawai pg " + "left join pp.produk pr "
@ -254,7 +254,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,"
+ "pp.noRec as noRec,pp.tglPelayanan as tglPelayanan,to_char(pp.tglPelayanan,'dd-MM-yyyy HH24:MI:ss') as tglPelayananFormatted,pp.jumlah as jumlah,pp.hargaDiscount as hargaDiskon,"
+ "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,"
+ "pd.noRegistrasi as noRegistrasi,pd.diskonPegawai as statusDiskon,"
+ "ps.namaPasien as namaPasien,ps.noCm as noCm," + "kp.kelompokPasien as kelompokPasien) "
@ -293,7 +293,7 @@ public interface IkiDanRemunerasiDao extends PagingAndSortingRepository<IkiDanRe
// Detail_logbook_kinerja_luar_jam_kerja_dokter
@Query("select distinct new Map(jpp.id as jenisPetugasId,jpp.jenisPetugasPe as jenisPetugas,"
+ "pr.id as produkId,pr.namaProduk as namaProduk,"
+ "pp.noRec as noRec,pp.tglPelayanan as tglPelayanan,to_char(pp.tglPelayanan,'dd-MM-yyyy HH24:MI:ss') as tglPelayananFormatted,pp.jumlah as jumlah,pp.hargaDiscount as hargaDiskon,"
+ "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,"
+ "pd.noRegistrasi as noRegistrasi,pd.diskonPegawai as statusDiskon,"
+ "ps.namaPasien as namaPasien,ps.noCm as noCm," + "kp.kelompokPasien as kelompokPasien) "

View File

@ -13,13 +13,19 @@ import com.jasamedika.medifirst2000.entities.Kalender;
@Repository("KalenderDao")
public interface KalenderDao extends PagingAndSortingRepository<Kalender, Integer> {
@Query("select k.tanggal from Kalender k where to_char(k.tanggal,'yyyy-MM-dd') between :tglAwal and :tglAkhir")
List<Date> getDateFromPeriodicParameter(@Param("tglAwal") String tglAwal, @Param("tglAkhir") String tglAkhir);
@Query("select new Map(k.id as kalendarId," + "k.tanggal as date," + "to_char(k.tanggal,'yyyy-MM-dd') as strDate,"
+ "concat(k.hariKeDlmBulan,' ',k.namaBulan,' ',k.tahunKalender) as tanggal) "
+ "from Kalender k where to_char(k.tanggal,'yyyy-MM-dd') between :tglAwal and :tglAkhir")
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(nativeQuery = true, value = "select kal.tanggal from kalender_s kal order by kal.tanggal desc limit 1")
Date getLastDateData();

View File

@ -76,7 +76,7 @@ public interface MonitoringAbsenDao extends PagingAndSortingRepository<Monitorin
@Query("select new map(tanggal.namaHari as namaHari, " + "tanggal.hariKeDlmBulan as hari, "
+ "tanggal.namaBulan as bulan, " + "tanggal.tahunKalender as tahun, " + "tanggal.hariKeDlmBulan as tgl, "
+ "tanggal.tanggal as tanggal) " + "from Kalender tanggal "
+ "tanggal.tanggal as tanggal,to_char(tanggal.tanggal,'yyyy-MM-dd') as tanggal2) " + "from Kalender tanggal "
+ "where to_char(tanggal.tanggal,'yyyy-MM-dd') between :startDate and :endDate "
+ "order by tanggal.tanggal asc")
public List<Map<String, Object>> findKalender(@Param("startDate") String startDate,
@ -149,21 +149,39 @@ public interface MonitoringAbsenDao extends PagingAndSortingRepository<Monitorin
public List<Map<String, Object>> findPegawaiDanIdFingeraAktifDanKaryawanByRuangan(
@Param("idUnitKerja") Integer idUnitKerja);
@Query("select pegawai.id " + "from MapPegawaiJabatanToUnitKerja mapPegawai "
+ "left join mapPegawai.pegawai pegawai " + "left join pegawai.shiftKerja shiftKerja "
@Query("select new map(pegawai.id as pegawaiId," + "pegawai.nipPns as nip, " + "pegawai.namaLengkap as nama, "
+ "jabatanInternal.namaJabatan as jabatanInternal, " + "ruangan.namaRuangan as namaRuangan, "
+ "unitKerja.name as unitKerja, " + "pegawai.idFinger as fingerId) "
+ "from Pegawai pegawai, MapPegawaiJabatanToUnitKerja mapPegawai " + "left join pegawai.ruangan ruangan "
+ "left join mapPegawai.subUnitKerjaPegawai subUnitKerja "
+ "left join mapPegawai.unitKerjaPegawai unitKerja " + "where mapPegawai.statusEnabled is true "
+ "and unitKerja.id = :idUnitKerja " + "and pegawai.statusEnabled is not false "
+ "and pegawai.idFinger is not null " + "order by pegawai.nama asc")
public List<Integer> findPegawaiaAktifDanKaryawanByUnitKerja(@Param("idUnitKerja") Integer idUnitKerja);
+ "left join mapPegawai.unitKerjaPegawai unitKerja " + "left join mapPegawai.jabatan jabatanInternal "
+ "where pegawai.id = mapPegawai.pegawaiId " + "and mapPegawai.isPrimary is true "
+ "and mapPegawai.statusEnabled is true " + "and pegawai.id = :pegawaiId "
+ "and pegawai.statusEnabled is true " + "order by pegawai.nama asc")
public List<Map<String, Object>> findPegawaiAktifDanKaryawan(@Param("pegawaiId") Integer idPegawai);
@Query("select pegawai.id " + "from MapPegawaiJabatanToUnitKerja mapPegawai "
+ "left join mapPegawai.pegawai pegawai " + "left join pegawai.shiftKerja shiftKerja "
@Query("select new map(pegawai.id as pegawaiId," + "pegawai.nipPns as nip, " + "pegawai.namaLengkap as nama, "
+ "jabatanInternal.namaJabatan as jabatanInternal, " + "ruangan.namaRuangan as namaRuangan, "
+ "unitKerja.name as unitKerja, " + "pegawai.idFinger as fingerId) "
+ "from Pegawai pegawai, MapPegawaiJabatanToUnitKerja mapPegawai " + "left join pegawai.ruangan ruangan "
+ "left join mapPegawai.subUnitKerjaPegawai subUnitKerja "
+ "left join mapPegawai.unitKerjaPegawai unitKerja " + "where unitKerja.id = :idUnitKerja "
+ "and subUnitKerja.id = :idSubUnitKerja " + "and mapPegawai.statusEnabled is true "
+ "and pegawai.idFinger is not null " + "and pegawai.statusEnabled is true " + "order by pegawai.nama asc")
public List<Integer> findPegawaiaAktifDanKaryawanByUnitKerjaAndSubUnitKerja(
+ "left join mapPegawai.unitKerjaPegawai unitKerja " + "left join mapPegawai.jabatan jabatanInternal "
+ "where pegawai.id = mapPegawai.pegawaiId " + "and mapPegawai.isPrimary is true "
+ "and mapPegawai.statusEnabled is true " + "and unitKerja.id = :idUnitKerja "
+ "and pegawai.statusEnabled is true " + "order by pegawai.nama asc")
public List<Map<String, Object>> findPegawaiAktifDanKaryawanByUnitKerja(@Param("idUnitKerja") Integer idUnitKerja);
@Query("select new map(pegawai.id as pegawaiId," + "pegawai.nipPns as nip, " + "pegawai.namaLengkap as nama, "
+ "jabatanInternal.namaJabatan as jabatanInternal, " + "ruangan.namaRuangan as namaRuangan, "
+ "unitKerja.name as unitKerja, " + "pegawai.idFinger as fingerId) "
+ "from Pegawai pegawai, MapPegawaiJabatanToUnitKerja mapPegawai " + "left join pegawai.ruangan ruangan "
+ "left join mapPegawai.subUnitKerjaPegawai subUnitKerja "
+ "left join mapPegawai.unitKerjaPegawai unitKerja " + "left join mapPegawai.jabatan jabatanInternal "
+ "where pegawai.id = mapPegawai.pegawaiId " + "and mapPegawai.isPrimary is true "
+ "and mapPegawai.statusEnabled is true " + "and unitKerja.id = :idUnitKerja "
+ "and subUnitKerja.id = :idSubUnitKerja " + "and pegawai.statusEnabled is true "
+ "order by pegawai.nama asc")
public List<Map<String, Object>> findPegawaiAktifDanKaryawanByUnitKerjaAndSubUnitKerja(
@Param("idUnitKerja") Integer idUnitKerja, @Param("idSubUnitKerja") Integer idSubUnitKerja);
@Query(" select pegawai.id" + " from Pegawai pegawai" + " left join pegawai.ruangan ruangan"
@ -358,4 +376,113 @@ public interface MonitoringAbsenDao extends PagingAndSortingRepository<Monitorin
public List<Map<String, Object>> getDataPegawaiDirektur(@Param("idUnitKerja") Integer idUnitKerja,
@Param("levelJabatan") Integer levelJabatan, @Param("sublevelJabatan") Integer sublevelJabatan,
@Param("listException") List<Integer> listException);
String jumPresDP = "select new Map(mj.unitKerjaPegawaiId as unitKerjaId,"
+ "mj.subUnitKerjaPegawaiId as subunitKerjaId," + "mj.pegawaiId as pegawaiId," + "pg.namaLengkap as nama,"
+ "pg.nipPns as nip," + "pg.shiftKerjaId as kelompokShiftId," + "pg.idFinger as fingerId,"
+ "uk.name as unitKerja) " + "from MapPegawaiJabatanToUnitKerja mj " + "left join mj.pegawai pg "
+ "left join mj.unitKerjaPegawai uk " + "where mj.statusEnabled is true " + "and pg.statusEnabled is true "
+ "and pg.idFinger is not null ";
String jumPresDPUnitKerja = "and mj.unitKerjaPegawaiId = :unitKerjaId ";
String jumPresDPSubunitKerja = "and mj.subUnitKerjaPegawaiId = :subunitKerjaId ";
String jumPresDPPegawai = "and mj.pegawaiId = :pegawaiId ";
String sortJumPresDP = "order by pg.nama asc";
@Query(jumPresDP + jumPresDPUnitKerja + jumPresDPSubunitKerja + sortJumPresDP)
public List<Map<String, Object>> getDataPegawaiPresensiSubunitKerja(@Param("unitKerjaId") Integer idUnitKerja,
@Param("subunitKerjaId") Integer idSubunitKerja);
@Query(jumPresDP + jumPresDPUnitKerja + sortJumPresDP)
public List<Map<String, Object>> getDataPegawaiPresensiUnitKerja(@Param("unitKerjaId") Integer idUnitKerja);
@Query(jumPresDP + jumPresDPPegawai + sortJumPresDP)
public List<Map<String, Object>> getDataPegawaiPresensiPegawai(@Param("pegawaiId") Integer idPegawai);
String jumPresDJb = "select new Map(mj.unitKerjaPegawaiId as unitKerjaId,"
+ "mj.subUnitKerjaPegawaiId as subunitKerjaId," + "mj.pegawaiId as pegawaiId,"
+ "jb.namaJabatan as jabatan) " + "from MapPegawaiJabatanToUnitKerja mj " + "left join mj.pegawai pg "
+ "left join mj.jabatan jb " + "where mj.statusEnabled is true " + "and pg.statusEnabled is true "
+ "and pg.idFinger is not null ";
String jumPresDJbUnitKerja = "and mj.unitKerjaPegawaiId = :unitKerjaId ";
String jumPresDJbSubunitKerja = "and mj.subUnitKerjaPegawaiId = :subunitKerjaId ";
String jumPresDJbPegawai = "and mj.pegawaiId = :pegawaiId ";
String sortJumPresDJb = "order by pg.nama asc";
@Query(jumPresDJb + jumPresDJbUnitKerja + jumPresDJbSubunitKerja + sortJumPresDJb)
public List<Map<String, Object>> getDataJabatanPresensiSubunitKerja(@Param("unitKerjaId") Integer idUnitKerja,
@Param("subunitKerjaId") Integer idSubunitKerja);
@Query(jumPresDJb + jumPresDJbUnitKerja + sortJumPresDJb)
public List<Map<String, Object>> getDataJabatanPresensiUnitKerja(@Param("unitKerjaId") Integer idUnitKerja);
@Query(jumPresDJb + jumPresDJbPegawai + sortJumPresDJb)
public List<Map<String, Object>> getDataJabatanPresensiPegawai(@Param("pegawaiId") Integer idPegawai);
String jumPresDJd = "select new Map(kl.tanggal as date," + "mj.unitKerjaPegawaiId as unitKerjaId,"
+ "mj.subUnitKerjaPegawaiId as subunitKerjaId," + "mj.pegawaiId as pegawaiId," + "sk.id as shiftId,"
+ "sk.kodeExternal as kodeShift," + "sk.namaShift as namaShift," + "sk.jamMasuk as jadwalMasuk,"
+ "sk.jamPulang as jadwalPulang," + "sk.waktuIstirahat as waktuIstirahat) "
+ "from PegawaiJadwalKerja jkp, " + "MapPegawaiJabatanToUnitKerja mj " + "left join jkp.pegawai pg "
+ "left join jkp.tanggal kl " + "left join jkp.shift sk " + "where jkp.pegawaiId = mj.pegawaiId "
+ "and mj.statusEnabled is true " + "and pg.statusEnabled is true " + "and pg.idFinger is not null "
+ "and to_char(kl.tanggal,'yyyy-MM-dd') between :startDate and :endDate ";
String jumPresDJdUnitKerja = "and mj.unitKerjaPegawaiId = :unitKerjaId ";
String jumPresDJdSubunitKerja = "and mj.subUnitKerjaPegawaiId = :subunitKerjaId ";
String jumPresDJdPegawai = "and mj.pegawaiId = :pegawaiId ";
String sortJumPresDJd = "order by pg.nama, kl.tanggal asc";
@Query(jumPresDJd + jumPresDJdUnitKerja + jumPresDJdSubunitKerja + sortJumPresDJd)
public List<Map<String, Object>> getDataJadwalPresensiSubunitKerja(@Param("startDate") String startDate,
@Param("endDate") String endDate, @Param("unitKerjaId") Integer idUnitKerja,
@Param("subunitKerjaId") Integer idSubunitKerja);
@Query(jumPresDJd + jumPresDJdUnitKerja + sortJumPresDJd)
public List<Map<String, Object>> getDataJadwalPresensiUnitKerja(@Param("startDate") String startDate,
@Param("endDate") String endDate, @Param("unitKerjaId") Integer idUnitKerja);
@Query(jumPresDJd + jumPresDJdPegawai + sortJumPresDJd)
public List<Map<String, Object>> getDataJadwalPresensiPegawai(@Param("startDate") String startDate,
@Param("endDate") String endDate, @Param("pegawaiId") Integer idPegawai);
String jumPresHab = "select new Map(kl.tanggal as date," + "mj.unitKerjaPegawaiId as unitKerjaId,"
+ "mj.subUnitKerjaPegawaiId as subunitKerjaId," + "mj.pegawaiId as pegawaiId," + "hab.tr_no as trNo,"
+ "hab.tr_time as trTime," + "hab.processtatus as procesStatus," + "hab.ip_addr as ipAddr) "
+ "from MapPegawaiJabatanToUnitKerja mj, " + "Kalender kl, " + "Habsen hab " + "left join mj.pegawai pg "
+ "where kl.tanggal = hab.tr_date " + "and hab.empl_code = pg.idFinger " + "and mj.statusEnabled is true "
+ "and pg.statusEnabled is true " + "and pg.idFinger is not null " + "and hab.loc_code = '99999' "
+ "and hab.remoteno = '99' " + "and to_char(kl.tanggal,'yyyy-MM-dd') between :startDate and :endDate ";
String jumPresHabUnitKerja = "and mj.unitKerjaPegawaiId = :unitKerjaId ";
String jumPresHabSubunitKerja = "and mj.subUnitKerjaPegawaiId = :subunitKerjaId ";
String jumPresHabPegawai = "and mj.pegawaiId = :pegawaiId ";
String sortJumPresHab = "order by pg.nama, kl.tanggal, hab.tr_time asc";
@Query(jumPresHab + jumPresHabUnitKerja + jumPresHabSubunitKerja + sortJumPresHab)
public List<Map<String, Object>> getDataPresensiSubunitKerja(@Param("startDate") String startDate,
@Param("endDate") String endDate, @Param("unitKerjaId") Integer idUnitKerja,
@Param("subunitKerjaId") Integer idSubunitKerja);
@Query(jumPresHab + jumPresHabUnitKerja + sortJumPresHab)
public List<Map<String, Object>> getDataPresensiUnitKerja(@Param("startDate") String startDate,
@Param("endDate") String endDate, @Param("unitKerjaId") Integer idUnitKerja);
@Query(jumPresHab + jumPresHabPegawai + sortJumPresHab)
public List<Map<String, Object>> getDataPresensiPegawai(@Param("startDate") String startDate,
@Param("endDate") String endDate, @Param("pegawaiId") Integer idPegawai);
}

View File

@ -293,10 +293,11 @@ public interface PasienDaftarDao extends PagingAndSortingRepository<PasienDaftar
+ "when pd.diskonPegawai = 3 then 'Penunggu Pasien Tidak Mampu Disetujui MPP' "
+ "when pd.diskonPegawai = 4 then 'Pasien Indikasi Tertentu Disetujui MPP' "
+ "when pd.diskonPegawai = 5 then 'Pegawai Outsourcing' end) as jenisDiskon,"
+ "sum(pp.hargaJual * pp.jumlah) as totalTagihan," + "sum(pp.hargaDiscount * pp.jumlah) as totalDiskon,"
+ "sum(pp.jasa) 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) "
+ "and to_char(pd.tglRegistrasi,'yyyy-MM') = :periode "
+ "sum(coalesce(pp.hargaJual,0) * pp.jumlah) as totalTagihan,"
+ "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 "
+ "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);

View File

@ -877,7 +877,7 @@ public interface PegawaiDao extends PagingAndSortingRepository<Pegawai, Integer>
+ "left join mapPegawai.unitKerjaPegawai unitKerja " + "left join mapPegawai.jabatan jabatanInternal "
+ "where pegawai.id = mapPegawai.pegawaiId " + "and mapPegawai.isPrimary is true "
+ "and mapPegawai.statusEnabled is true " + "and pegawai.idFinger = :idFinger "
+ "and pegawai.statusEnabled is not false " + "order by pegawai.nama asc")
+ "and pegawai.statusEnabled is true " + "order by pegawai.nama asc")
public Map<String, Object> getPegawaiToMonitoringAbsen(@Param("idFinger") String idFinger);
@Query("select new map(pegawai.nipPns as nip, " + "pegawai.namaLengkap as nama, "

View File

@ -29,7 +29,7 @@ public interface PendapatanDao extends PagingAndSortingRepository<PelayananPasie
+ "and hargaD.produkId = produk.id and hargaD.produkId = pelayananPasien.produkId "
+ "and hargaD.kelasId = kelas.id and hargaD.kelasId = pelayananPasien.kelasId "
+ "and komponenHarga.id = pelayananPasienDetail.komponenHargaId) as tarifJasa, "
+ "pelayananPasien.hargaSatuan as harga, " + "pelayananPasien.hargaDiscount as diskon, "
+ "pelayananPasien.hargaSatuan as harga, " + "coalesce(pelayananPasien.hargaDiscount,0) as diskon, "
+ "pelayananPasien.jumlah as count, " + "to_char(pelayananPasien.tglPelayanan,'yyyy-MM-dd') as tanggal, "
+ "cast(pelayananPasien.tglPelayanan as timestamp) as tanggalPelayanan, "
+ "coalesce(pelayananPasienDetail.hargaJual, 0) as hargaJual,"
@ -77,7 +77,7 @@ public interface PendapatanDao extends PagingAndSortingRepository<PelayananPasie
+ "pasienDaftar.diskonPegawai as statusDiskon, " + "produk.id as idProduk,"
+ "produk.namaProduk as namaProduk," + "dokter.id as idPegawai,"
+ "pelayananPasien.noRec as noRecPelayananPasien," + "pelayananPasien.jumlah as jumlah,"
+ "pelayananPasien.hargaSatuan as harga," + "pelayananPasien.hargaDiscount as diskon,"
+ "pelayananPasien.hargaSatuan as harga," + "coalesce(pelayananPasien.hargaDiscount,0) as diskon,"
+ "pelayananPasien.tglPelayanan as tglpelayanan,"
+ "to_char(pelayananPasien.tglPelayanan,'yyyy-MM-dd') as tglpel,"
+ "cast(pelayananPasien.tglPelayanan as timestamp) as tanggalPelayanan, "
@ -164,7 +164,7 @@ public interface PendapatanDao extends PagingAndSortingRepository<PelayananPasie
+ "coalesce(pelayananPasienDetail.hargaJual, 0) as hargaJual,"
+ "coalesce(pelayananPasienDetail.hargaDiscount, 0) as hargaDiscount,"
+ "pelayananPasien.noRec as noRecPelayananPasien," + "pelayananPasien.hargaSatuan as harga,"
+ "pelayananPasien.hargaDiscount as diskon, " + "pelayananPasien.jumlah as jumlah,"
+ "coalesce(pelayananPasien.hargaDiscount,0) as diskon, " + "pelayananPasien.jumlah as jumlah,"
+ "pelayananPasien.tglPelayanan as tglpelayanan,"
+ "to_char(pelayananPasien.tglPelayanan,'yyyy-MM-dd') as tglpel,"
+ "cast(pelayananPasien.tglPelayanan as timestamp) as tanggalPelayanan, " + "kelas.id as idKelas,"

View File

@ -126,7 +126,7 @@ public interface RevIndekKinerjaDao extends PagingAndSortingRepository<IndekKine
+ "produk.namaProduk as namaProduk, " + "kelas.id as idKelas, " + "kelas.namaKelas as namaKelas, "
+ "(select distinct harga.hargaNetto1 from HargaNettoProdukByKelas harga "
+ "where harga.produkId = produk.id and harga.statusEnabled is true and harga.kelasId = :idKelasSatu) as hargaKelas1, "
+ "coalesce(pelayananPasien.hargaSatuan, 0) as harga, " + "pelayananPasien.hargaDiscount as diskon, "
+ "coalesce(pelayananPasien.hargaSatuan, 0) as harga, " + "coalesce(pelayananPasien.hargaDiscount,0) as diskon, "
+ "pelayananPasien.jumlah as count, " + "to_char(pelayananPasien.tglPelayanan,'yyyy-MM-dd') as tanggal, "
+ "cast(pelayananPasien.tglPelayanan as timestamp) as tanggalPelayanan, "
+ "pasienDaftar.kelompokPasienId as kelompokPasienId, " + "pasienDaftar.rekananId as rekananId, "
@ -177,7 +177,7 @@ public interface RevIndekKinerjaDao extends PagingAndSortingRepository<IndekKine
+ "detail.id as detailId, " + "produk.namaProduk as namaProduk," + "pasien.namaPasien as namapasien,"
+ "pasien.noCm as noCm," + "pasien.tglLahir as tglLahir," + "pasienDaftar.noRegistrasi as noRegistrasi,"
+ "pasienDaftar.tglRegistrasi as tglRegistrasi," + "pelayananPasien.hargaSatuan as harga,"
+ "pelayananPasien.hargaDiscount as diskon," + "pelayananPasien.jumlah as jumlah, "
+ "coalesce(pelayananPasien.hargaDiscount,0) as diskon," + "pelayananPasien.jumlah as jumlah, "
+ "(select distinct harga.hargaNetto1 from HargaNettoProdukByKelas harga "
+ "where harga.produkId = produk.id and harga.statusEnabled is true and harga.kelasId = :idKelasSatu) as hargaKelas1,"
+ "pelayananPasien.tglPelayanan as tglpelayanan," + "kelas.namaKelas as namaKelas,"
@ -218,7 +218,7 @@ public interface RevIndekKinerjaDao extends PagingAndSortingRepository<IndekKine
+ "detail.id as detailId, " + "produk.namaProduk as namaProduk," + "pasien.namaPasien as namapasien,"
+ "pasien.noCm as noCm," + "pasien.tglLahir as tglLahir," + "pasienDaftar.noRegistrasi as noRegistrasi,"
+ "pasienDaftar.tglRegistrasi as tglRegistrasi," + "pelayananPasien.hargaSatuan as harga,"
+ "pelayananPasien.hargaDiscount as diskon," + "pelayananPasien.jumlah as jumlah, "
+ "coalesce(pelayananPasien.hargaDiscount,0) as diskon," + "pelayananPasien.jumlah as jumlah, "
+ "(select distinct harga.hargaNetto1 from HargaNettoProdukByKelas harga "
+ "where harga.produkId = produk.id and harga.statusEnabled is true and harga.kelasId = :idKelasSatu) as hargaKelas1,"
+ "pelayananPasien.tglPelayanan as tglpelayanan," + "kelas.namaKelas as namaKelas,"

View File

@ -29,6 +29,9 @@ public interface MonitoringAbsenService {
Map<String, Object> jumlahKehadiranRev(Integer idPegawai, String startDate, String endDate);
Map<String, Object> jumlahKehadiran(Integer idUnitKerja, Integer idSubunitKerja, Integer idPegawai, Long startDate,
Long endDate);
Map<String, Object> jumlahKehadiran(Integer unitKerjaId, Integer subUnitKerjaId, Integer idPegawai,
String startDate, String endDate);

View File

@ -5,12 +5,12 @@ import java.math.RoundingMode;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.Month;
import java.time.ZoneId;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
@ -29,6 +29,7 @@ import com.jasamedika.medifirst2000.dao.FactorRateKelompokShiftDao;
import com.jasamedika.medifirst2000.dao.HabsenDao;
import com.jasamedika.medifirst2000.dao.IndekKinerjaDao;
import com.jasamedika.medifirst2000.dao.JabatanDao;
import com.jasamedika.medifirst2000.dao.KalenderDao;
import com.jasamedika.medifirst2000.dao.KelompokTransaksiDao;
import com.jasamedika.medifirst2000.dao.KomponenHargaDao;
import com.jasamedika.medifirst2000.dao.KomponenIndexDao;
@ -214,6 +215,9 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
@Autowired
private MapPegawaiJabatanToUnitKerjaDao mapPegawaiJabatanToUnitKerjaDao;
@Autowired
private KalenderDao kalenderDao;
@Override
public Long reduceTime(Date jamAbsensi, Date jamJadwal) {
Long diffMinutes = (long) 0;
@ -1322,25 +1326,146 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
return result;
}
public Date addOrMinDays(Long date, Integer param) {
Date in = new Date(date);
LocalDateTime ldt = LocalDateTime.ofInstant(in.toInstant(), ZoneId.systemDefault());
if (param < 0) {
LocalDateTime out = ldt.minusDays(Math.abs(param));
return Date.from(out.atZone(ZoneId.systemDefault()).toInstant());
} else {
LocalDateTime out = ldt.plusDays(param);
return Date.from(out.atZone(ZoneId.systemDefault()).toInstant());
}
}
@Override
@Transactional(readOnly = true)
public Map<String, Object> jumlahKehadiran(Integer idUnitKerja, Integer idSubunitKerja, Integer idPegawai,
Long startDate, Long endDate) {
/**
* Unfinished development
*/
Map<String, Object> result = new HashMap<>();
List<Map<String, Object>> data = new ArrayList<>();
List<Map<String, Object>> rawData = new ArrayList<>();
List<Map<String, Object>> rawDataPegawai = new ArrayList<>();
List<Map<String, Object>> rawDataJabatan = new ArrayList<>();
List<Map<String, Object>> rawDataJadwal = new ArrayList<>();
List<Map<String, Object>> rawDataPresensi = new ArrayList<>();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
List<Integer> listIdShiftMalam = splitDataSettingDatafixed("daftarShiftMalam");
String prevTglAwal = df.format(addOrMinDays(startDate, -1));
String prevTglAkhir = df.format(addOrMinDays(endDate, 1));
if (CommonUtil.isNotNullOrEmpty(idUnitKerja) && CommonUtil.isNotNullOrEmpty(idSubunitKerja)
&& CommonUtil.isNullOrEmpty(idPegawai)) {
rawDataPegawai = monitoringAbsenDao.getDataPegawaiPresensiSubunitKerja(idUnitKerja, idSubunitKerja);
rawDataJabatan = monitoringAbsenDao.getDataJabatanPresensiSubunitKerja(idUnitKerja, idSubunitKerja);
rawDataJadwal = monitoringAbsenDao.getDataJadwalPresensiSubunitKerja(prevTglAwal, prevTglAkhir, idUnitKerja,
idSubunitKerja);
rawDataPresensi = monitoringAbsenDao.getDataPresensiSubunitKerja(prevTglAwal, prevTglAkhir, idUnitKerja,
idSubunitKerja);
} else if (CommonUtil.isNotNullOrEmpty(idUnitKerja) && CommonUtil.isNullOrEmpty(idSubunitKerja)
&& CommonUtil.isNullOrEmpty(idPegawai)) {
rawDataPegawai = monitoringAbsenDao.getDataPegawaiPresensiUnitKerja(idUnitKerja);
rawDataJabatan = monitoringAbsenDao.getDataJabatanPresensiUnitKerja(idUnitKerja);
rawDataJadwal = monitoringAbsenDao.getDataJadwalPresensiUnitKerja(prevTglAwal, prevTglAkhir, idUnitKerja);
rawDataPresensi = monitoringAbsenDao.getDataPresensiUnitKerja(prevTglAwal, prevTglAkhir, idUnitKerja);
} else if (CommonUtil.isNullOrEmpty(idUnitKerja) && CommonUtil.isNullOrEmpty(idSubunitKerja)
&& CommonUtil.isNotNullOrEmpty(idPegawai)) {
rawDataPegawai = monitoringAbsenDao.getDataPegawaiPresensiPegawai(idPegawai);
rawDataJabatan = monitoringAbsenDao.getDataJabatanPresensiPegawai(idPegawai);
rawDataJadwal = monitoringAbsenDao.getDataJadwalPresensiPegawai(prevTglAwal, prevTglAkhir, idPegawai);
rawDataPresensi = monitoringAbsenDao.getDataPresensiPegawai(prevTglAwal, prevTglAkhir, idPegawai);
}
List<Map<String, Object>> rawDataKalender = kalenderDao.getTanggalFromPeriodicParameter(prevTglAwal,
prevTglAkhir);
if (CommonUtil.isNotNullOrEmpty(rawDataKalender)) {
for (Map<String, Object> rawKal : rawDataKalender) {
for (Map<String, Object> rawPeg : rawDataPegawai) {
Map<String, Object> rawMap = new HashMap<>();
rawMap.putAll(rawKal);
rawMap.putAll(rawPeg);
rawData.add(rawMap);
}
}
}
for (Map<String, Object> rawMap : rawData) {
String jabatan = "";
for (Map<String, Object> rawJab : rawDataJabatan) {
if (rawMap.get("unitKerjaId").equals(rawJab.get("unitKerjaId"))
&& rawMap.get("pegawaiId").equals(rawJab.get("pegawaiId"))) {
if (CommonUtil.isNullOrEmpty(jabatan)) {
jabatan += rawJab.get("jabatan").toString();
} else {
jabatan += "/ " + rawJab.get("jabatan").toString();
}
}
}
rawMap.put("jabatan", jabatan);
}
if (CommonUtil.isNotNullOrEmpty(rawDataJadwal)) {
for (Map<String, Object> rawMap : rawData) {
for (Map<String, Object> rawJad : rawDataJadwal) {
if (rawMap.get("unitKerjaId").equals(rawJad.get("unitKerjaId"))
&& rawMap.get("pegawaiId").equals(rawJad.get("pegawaiId"))
&& rawMap.get("date").equals(rawJad.get("date"))) {
rawMap.putAll(rawJad);
}
}
}
} else if (CommonUtil.isNullOrEmpty(rawDataJadwal)) {
for (Map<String, Object> rawMap : rawData) {
rawMap.put("shiftId", null);
rawMap.put("kodeShift", "-");
rawMap.put("namaShift", "-");
rawMap.put("jadwalMasuk", "-");
rawMap.put("jadwalPulang", "-");
rawMap.put("waktuIstirahat", "-");
}
}
if (CommonUtil.isNotNullOrEmpty(rawDataPresensi)) {
for (Map<String, Object> rawMap : rawData) {
if (!rawMap.get("strDate").equals(prevTglAwal) && !rawMap.get("strDate").equals(prevTglAkhir)) {
data.add(rawMap);
}
}
} else if (CommonUtil.isNullOrEmpty(rawDataPresensi)) {
}
result.put("data", data);
return result;
}
@Override
@Transactional(readOnly = true)
public Map<String, Object> jumlahKehadiran(Integer unitKerjaId, Integer subUnitKerjaId, Integer idPegawai,
String startDate, String endDate) {
Map<String, Object> result = new HashMap<>();
List<Map<String, Object>> listRs = new ArrayList<Map<String, Object>>();
List<Map<String, Object>> listPegawaiMonitoring = new ArrayList<>();
List<Integer> listIdPegawai = new ArrayList<>();
if (CommonUtil.isNotNullOrEmpty(idPegawai)) {
listIdPegawai.add(idPegawai);
listPegawaiMonitoring = monitoringAbsenDao.findPegawaiAktifDanKaryawan(idPegawai);
} else if (CommonUtil.isNullOrEmpty(idPegawai) && CommonUtil.isNotNullOrEmpty(subUnitKerjaId)) {
listIdPegawai = monitoringAbsenDao.findPegawaiaAktifDanKaryawanByUnitKerjaAndSubUnitKerja(unitKerjaId,
subUnitKerjaId);
listPegawaiMonitoring = monitoringAbsenDao
.findPegawaiAktifDanKaryawanByUnitKerjaAndSubUnitKerja(unitKerjaId, subUnitKerjaId);
} else if (CommonUtil.isNullOrEmpty(idPegawai) && CommonUtil.isNullOrEmpty(subUnitKerjaId)) {
listIdPegawai = monitoringAbsenDao.findPegawaiaAktifDanKaryawanByUnitKerja(unitKerjaId);
listPegawaiMonitoring = monitoringAbsenDao.findPegawaiAktifDanKaryawanByUnitKerja(unitKerjaId);
}
for (Integer id : listIdPegawai) {
String idFinger = pegawaiDao.getidFinger(id);
List<Map<String, Object>> listKomponenJadwal = monitoringAbsenDao.findKalender(startDate, endDate);
for (Map<String, Object> pegawaiMonitoring : listPegawaiMonitoring) {
String idFinger = pegawaiMonitoring.get("fingerId").toString();
Map<String, Object> rsMap = new HashMap<String, Object>();
List<Map<String, Object>> listkehadiran = new ArrayList<Map<String, Object>>();
Integer harikerja = 0;
@ -1368,12 +1493,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
DateFormat sdf = new SimpleDateFormat("HH.mm");
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
DateFormat stf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Map<String, Object> pegawaiMonitoring = new HashMap<>();
if (CommonUtil.isNotNullOrEmpty(idFinger)) {
pegawaiMonitoring = pegawaiDao.getPegawaiToMonitoringAbsen(idFinger);
}
List<Map<String, Object>> listKomponenJadwal = monitoringAbsenDao.findKalender(startDate, endDate);
for (Map<String, Object> data : listKomponenJadwal) {
String alasanCuti = "";
// put everything data needs
@ -1381,7 +1501,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
data.putAll(pegawaiMonitoring);
}
Map<String, Object> listJadwal = monitoringAbsenDao.findJadwalPegawai(idFinger,
df.format((Date) data.get("tanggal")));
data.get("tanggal2").toString());
if (CommonUtil.isNotNullOrEmpty(listJadwal)) {
data.putAll(listJadwal);
if (listJadwal.get("kodeShift").equals("TL")) {
@ -1397,7 +1517,7 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
String jamPulang = (String) data.get("jamPulang");
String tgl = df.format(tanggal);
data.put("dates", tanggal.getTime());
data.put("idPegawai", id);
data.put("idPegawai", pegawaiMonitoring.get("pegawaiId"));
data.put("tanggal", data.get("tgl").toString() + "-" + data.get("bulan").toString() + "-"
+ data.get("tahun").toString());
@ -1409,9 +1529,10 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
sakit++;
}
if (!((String) data.get("namaShift")).equals("Libur")) {
alasanCuti = this.wfh(id, tgl, tanggal, tglRilisFiturPresensi);
alasanCuti = this.wfh(Integer.valueOf(pegawaiMonitoring.get("pegawaiId").toString()), tgl,
tanggal, tglRilisFiturPresensi);
if (CommonUtil.isNullOrEmpty(alasanCuti)) {
alasanCuti = this.cuti(id, tgl);
alasanCuti = this.cuti(Integer.valueOf(pegawaiMonitoring.get("pegawaiId").toString()), tgl);
}
}
}
@ -1710,7 +1831,9 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
}
// Ambil data monitoringAbsen
MonitoringAbsen monitoringAbsen = monitoringAbsenDao
.findByIdPegawaiAndTanggalMonitoringAbsen(id, data.get("tanggal").toString());
.findByIdPegawaiAndTanggalMonitoringAbsen(
Integer.valueOf(pegawaiMonitoring.get("pegawaiId").toString()),
data.get("tanggal").toString());
if (CommonUtil.isNotNullOrEmpty(monitoringAbsen)) {
if (CommonUtil.isNotNullOrEmpty(monitoringAbsen.getAlasan())) {
alasanCuti += monitoringAbsen.getAlasan();
@ -1919,7 +2042,8 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
data.put("terlambat", (long) 0);
}
// Ambil data monitoringAbsen
MonitoringAbsen monitoringAbsen = monitoringAbsenDao.findByIdPegawaiAndTanggalMonitoringAbsen(id,
MonitoringAbsen monitoringAbsen = monitoringAbsenDao.findByIdPegawaiAndTanggalMonitoringAbsen(
Integer.valueOf(pegawaiMonitoring.get("pegawaiId").toString()),
data.get("tanggal").toString());
if (CommonUtil.isNotNullOrEmpty(monitoringAbsen)) {
if (CommonUtil.isNotNullOrEmpty(monitoringAbsen.getAlasan())) {
@ -2016,13 +2140,15 @@ public class MonitoringAbsenServiceImpl extends BaseVoServiceImpl implements Mon
rsMap.put("menitPulangAwal", jumlahPulangAwal);
rsMap.put("jumlahCountPulangAwal", jumlahCountPulangAwal);
rsMap.put("jumlahHariKerja", harikerja);
rsMap.put("idPegawai", id);
rsMap.put("idPegawai", Integer.valueOf(pegawaiMonitoring.get("pegawaiId").toString()));
rsMap.put("mangkir", mangkir);
rsMap.put("hariKerja", hariKerja);
rsMap.put("listkehadiran", listkehadiran);
listRs.addAll((Collection<? extends Map<String, Object>>) rsMap.get("listkehadiran"));
listRs.addAll(listkehadiran);
result.putAll(rsMap);
}
result.put("listkehadiran", listRs);
return result;

View File

@ -427,9 +427,10 @@ public class ReportServiceImpl extends BaseVoServiceImpl implements ReportServic
String endDate) {
Map<String, Object> temp = new HashMap<String, Object>();
List<Map<String, Object>> listkehadiran = new ArrayList<Map<String, Object>>();
List<Integer> listId = monitoringAbsenDao.findPegawaiaAktifDanKaryawanByUnitKerja(idRuangan);
for (Integer idPegawai : listId) {
temp = monitoringAbsenService.rekapitulasiKehadiranByPegawai(idPegawai, startDate, endDate);
List<Map<String, Object>> listPegawai = monitoringAbsenDao.findPegawaiAktifDanKaryawanByUnitKerja(idRuangan);
for (Map<String, Object> pegawai : listPegawai) {
temp = monitoringAbsenService.rekapitulasiKehadiranByPegawai(
Integer.valueOf(pegawai.get("pegawaiId").toString()), startDate, endDate);
if (CommonUtil.isNotNullOrEmpty(temp)) {
listkehadiran.add(temp);
}

View File

@ -1,10 +1,14 @@
package com.jasamedika.medifirst2000.entities;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;
import com.jasamedika.medifirst2000.base.BaseTransaction;
@ -68,6 +72,11 @@ public class MonitoringAbsen extends BaseTransaction {
@Column(name = "tanggal", nullable = false)
private String tanggal;
@Caption(value = "Tanggal Presensi")
@Column(name = "tglpresensi", nullable = false)
@Temporal(TemporalType.DATE)
private Date tglPresensi;
// Untuk Absensi verifikasi
@ManyToOne
@JoinColumn(name = "verifikasiUnitKerjaFK")
@ -105,7 +114,7 @@ public class MonitoringAbsen extends BaseTransaction {
@Caption(value = "Status Atribut Lengkap")
@Column(name = "isatributlengkap", nullable = true)
private Boolean isAtributLengkap;
@Caption(value = "Status Verifikasi")
@Column(name = "isverifikasi", nullable = true)
private Boolean isVerifikasi;
@ -214,6 +223,14 @@ public class MonitoringAbsen extends BaseTransaction {
this.tanggal = tanggal;
}
public Date getTglPresensi() {
return tglPresensi;
}
public void setTglPresensi(Date tglPresensi) {
this.tglPresensi = tglPresensi;
}
public StrukVerifikasi getStrukVerifikasi() {
return strukVerifikasi;
}

View File

@ -1,5 +1,7 @@
package com.jasamedika.medifirst2000.vo;
import java.util.Date;
import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO;
import com.jasamedika.medifirst2000.helper.Caption;
@ -48,6 +50,9 @@ public class MonitoringAbsenVO extends BaseTransactionVO {
@Caption(value = "Tanggal")
private String tanggal;
@Caption(value = "Tanggal Presensi")
private Date tglPresensi;
@Caption(value = "Struk Verifikasi Unit Kerja")
private StrukVerifikasiVO strukVerifikasi;
@ -193,6 +198,14 @@ public class MonitoringAbsenVO extends BaseTransactionVO {
this.tanggal = tanggal;
}
public Date getTglPresensi() {
return tglPresensi;
}
public void setTglPresensi(Date tglPresensi) {
this.tglPresensi = tglPresensi;
}
public StrukVerifikasiVO getStrukVerifikasi() {
return strukVerifikasi;
}

View File

@ -698,5 +698,6 @@
<mapping class="com.jasamedika.medifirst2000.entities.Profesi"/>
<mapping class="com.jasamedika.medifirst2000.entities.SkoringTindakanNakes"/>
<mapping class="com.jasamedika.medifirst2000.entities.PelayananPasienNakes"/>
<mapping class="com.jasamedika.medifirst2000.entities.MonitoringAbsen"/>
</session-factory>
</hibernate-configuration>

View File

@ -4628,25 +4628,25 @@ public class ReportingController extends LocaleController<RegistrasiPelayananVO>
@RequestParam(value = "subUnitKerja", required = false) Integer subUnitKerja) {
List<Map<String, Object>> listkehadiran = new ArrayList<Map<String, Object>>();
Map<String, Object> kehadiran = new HashMap<String, Object>();
if (CommonUtil.isNotNullOrEmpty(subUnitKerja) && CommonUtil.isNullOrEmpty(idPegawai)) {
List<Integer> listId = monitoringAbsenDao.findPegawaiaAktifDanKaryawanByUnitKerjaAndSubUnitKerja(unitKerja,
subUnitKerja);
for (Integer id : listId) {
kehadiran = monitoringAbsenService.jumlahKehadiran(id, startDate, endDate);
kehadiran = monitoringAbsenService.jumlahKehadiran(null, null, id, startDate, endDate);
listkehadiran.addAll((List<Map<String, Object>>) kehadiran.get("listkehadiran"));
}
} else if (CommonUtil.isNullOrEmpty(subUnitKerja) && CommonUtil.isNullOrEmpty(idPegawai)) {
List<Integer> listId = monitoringAbsenDao.findPegawaiaAktifDanKaryawanByUnitKerja(unitKerja);
for (Integer id : listId) {
kehadiran = monitoringAbsenService.jumlahKehadiran(id, startDate, endDate);
kehadiran = monitoringAbsenService.jumlahKehadiran(null, null, id, startDate, endDate);
listkehadiran.addAll((List<Map<String, Object>>) kehadiran.get("listkehadiran"));
}
} else if (CommonUtil.isNotNullOrEmpty(idPegawai)) {
kehadiran = monitoringAbsenService.jumlahKehadiran(idPegawai, startDate, endDate);
kehadiran = monitoringAbsenService.jumlahKehadiran(null, null, idPegawai, startDate, endDate);
listkehadiran.addAll((List<Map<String, Object>>) kehadiran.get("listkehadiran"));
}
if (CommonUtil.isNotNullOrEmpty(listkehadiran)) {
Map<String, Object> temp = listkehadiran.get(0);
m.addObject("dataSource", listkehadiran);
@ -4672,7 +4672,7 @@ public class ReportingController extends LocaleController<RegistrasiPelayananVO>
if (format != null && !format.isEmpty()) {
m.addObject("format", format);
}
return m;
}

View File

@ -2688,21 +2688,6 @@ public class SdmController extends LocaleController<AkunVO> {
}
}
@RequestMapping(value = "/get-kehadiran-rev/{idPegawai}/{startDate}/{endDate}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Map<String, Object>> findKehadiranRev(@PathVariable("idPegawai") Integer idPegawai,
@PathVariable("startDate") String startDate, @PathVariable("endDate") String endDate,
HttpServletRequest request) {
Map<String, Object> result = null;
try {
result = monitoringAbsenService.jumlahKehadiranRev(idPegawai, startDate, endDate);
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,
getMessage(MessageResource.LABEL_SUCCESS, request));
} catch (Exception e) {
e.printStackTrace();
}
return RestUtil.getJsonResponse(result, HttpStatus.OK);
}
@RequestMapping(value = "/save-monitoring-absen", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Map<String, Object>> saveMonitoringAbsen(@Valid @RequestBody MonitoringAbsenCustomVO vo,
HttpServletRequest request) throws ParseException {
@ -2738,6 +2723,37 @@ public class SdmController extends LocaleController<AkunVO> {
return RestUtil.getJsonResponse(result, HttpStatus.OK);
}
@RequestMapping(value = "/get-presensi-kehadiran", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Map<String, Object>> getPresensiKehadiran(HttpServletRequest request,
@RequestParam(value = "unitKerjaId", required = false) Integer idUnitKerja,
@RequestParam(value = "subunitKerjaId", required = false) Integer idSubunitKerja,
@RequestParam(value = "pegawaiId", required = false) Integer idPegawai,
@RequestParam(value = "startDate", required = false) Long startDate,
@RequestParam(value = "endDate", required = false) Long endDate) {
try {
Map<String, Object> result = monitoringAbsenService.jumlahKehadiran(idUnitKerja, idSubunitKerja, idPegawai,
startDate, endDate);
if (result != null) {
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,
getMessage(MessageResource.LABEL_SUCCESS, request));
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);
} else {
return RestUtil.getJsonResponse(result, HttpStatus.NOT_FOUND, mapHeaderMessage);
}
} catch (ServiceVOException e) {
LOGGER.error("Got exception {} when get presensi kehadiran", e.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when get presensi kehadiran", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
}
}
@RequestMapping(value = "/get-kehadiran/{idPegawai}/{startDate}/{endDate}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Map<String, Object>> findKehadiran(@PathVariable("idPegawai") Integer idPegawai,
@PathVariable("startDate") String startDate, @PathVariable("endDate") String endDate,