- penerapan jadwal kerja pegawai pada perhitungan target pelayanan kelompok kerja
- penerapan jadwal kerja pegawai pada logbook skor kinerja dokter - penerapan jadwal kerja pegawai pada detail pasien di logbook skor kinerja dokter - pembuatan query service perhitungan target pelayanan dokter di luar jam kerja
This commit is contained in:
parent
7d11d54ded
commit
a119744163
@ -98,30 +98,66 @@ public interface IkiDanRemunerasiDao extends PagingAndSortingRepository<IkiDanRe
|
||||
+ "where to_char(strukHistori.tglHistori,'yyyy-MM') =:periode " + "and pegawai.id = :idPegawai")
|
||||
public Double findRemunerasi(@Param("periode") String periode, @Param("idPegawai") Integer idPegawai);
|
||||
|
||||
// Target_pelayanan
|
||||
// Target_pelayanan_jam_kerja
|
||||
@Query("select distinct new Map(ppp.ObjectJenisPetugasPeId as jenisPetugasId,"
|
||||
+ "pp.noRec as noRec,pp.tglPelayanan as tglPelayanan,"
|
||||
+ "pp.hargaDiscount as hargaDiskon,pp.jumlah as jumlahTindakan,"
|
||||
+ "pp.noRec as noRec,pp.tglPelayanan as tglPelayanan,pp.hargaDiscount as hargaDiskon,pp.jumlah as jumlahTindakan,"
|
||||
+ "su.id as idKelompokKerja,su.name as kelompokKerja,"
|
||||
+ "pr.id as idTindakan,pr.namaProduk as namaTindakan,"
|
||||
+ "ru.departemenId as idDepartemen, ru.id as idRuangan, " + "pd.isDiskonPegawai as statusDiskon) "
|
||||
+ "from PelayananPasienPetugas ppp, MapRuanganToProduk mrtp, MapPegawaiJabatanToUnitKerja mpju "
|
||||
+ "ru.departemenId as idDepartemen,ru.id as idRuangan," + "pd.isDiskonPegawai as statusDiskon) "
|
||||
+ "from PelayananPasienPetugas ppp, MapRuanganToProduk mrtp, MapPegawaiJabatanToUnitKerja mpju, PegawaiJadwalKerja pjk "
|
||||
+ "left join ppp.pelayananPasien pp " + "left join ppp.kdpegawai pg " + "left join pp.produk pr "
|
||||
+ "left join pp.pasienDaftar apd " + "left join pr.detailJenisProduk djp "
|
||||
+ "left join apd.pasienDaftar pd " + "left join apd.ruangan ru " + "left join mpju.subUnitKerjaPegawai su "
|
||||
+ "where mrtp.produkId = pr.id " + "and mrtp.ruanganId = apd.ruanganId "
|
||||
+ "and ppp.kdpegawai = mpju.pegawai " + "and mpju.pegawaiId = pg.id "
|
||||
+ "and mpju.unitKerjaPegawaiId in (:listKsmId)" + "and mrtp.statusEnabled is true "
|
||||
+ "left join pjk.shift sk " + "left join pjk.tanggal kl " + "where mrtp.produkId = pr.id "
|
||||
+ "and mrtp.ruanganId = apd.ruanganId " + "and ppp.ObjectPegawaiId = mpju.pegawaiId "
|
||||
+ "and mpju.pegawaiId = pg.id " + "and pjk.pegawaiId = ppp.ObjectPegawaiId "
|
||||
+ "and pjk.pegawaiId = mpju.pegawaiId " + "and pjk.pegawaiId = pg.id "
|
||||
+ "and mpju.unitKerjaPegawaiId in (:listKsmId) " + "and mrtp.statusEnabled is true "
|
||||
+ "and mpju.statusEnabled is true " + "and pg.statusEnabled is true " + "and su.statusEnabled is true "
|
||||
+ "and pd.statusEnabled is true " + "and pp.tglPelayanan between :tglAwal and :tglAkhir "
|
||||
+ "and ((to_char(pp.tglPelayanan,'dy') in ('mon','tue','wed','thu') "
|
||||
+ "and to_char(pp.tglPelayanan,'HH24:MM:ss') between '07:00:00' and '15:30:00') "
|
||||
+ "or (to_char(pp.tglPelayanan,'dy') in ('fri') "
|
||||
+ "and pd.statusEnabled is true " + "and sk.statusEnabled is true "
|
||||
+ "and pp.tglPelayanan between :tglAwal and :tglAkhir "
|
||||
+ "and cast(pp.tglPelayanan as date) = cast(kl.tanggal as date) "
|
||||
+ "and (((to_char(pp.tglPelayanan,'dy') in ('mon','tue','wed','thu') and to_char(pp.tglPelayanan,'HH24:MM:ss') "
|
||||
+ "between '07:00:00' and '15:30:00') or (to_char(pp.tglPelayanan,'dy') in ('fri') "
|
||||
+ "and to_char(pp.tglPelayanan,'HH24:MM:ss') between '07:00:00' and '16:00:00')) "
|
||||
+ "and sk.id not in (:listNonjadwalId)) " + "and pg.jenisPegawaiId = :jenisPegawaiId "
|
||||
+ "and djp.jenisProdukId not in (:listNontindakanId) " + "and pr.id <> :karcisId "
|
||||
+ "order by su.name, pr.id")
|
||||
public List<Map<String, Object>> getDataLayananJamKerja(@Param("tglAwal") Date tglAwal,
|
||||
@Param("tglAkhir") Date tglAkhir, @Param("listNonjadwalId") List<Integer> listIdNonjadwal,
|
||||
@Param("jenisPegawaiId") Integer idJenisPegawai, @Param("listKsmId") List<Integer> listIdKsm,
|
||||
@Param("listNontindakanId") List<Integer> listIdNontindakan, @Param("karcisId") Integer idKarcis);
|
||||
|
||||
// Target_pelayanan_luar_jam_kerja
|
||||
@Query("select distinct new Map(ppp.ObjectJenisPetugasPeId as jenisPetugasId,"
|
||||
+ "pp.noRec as noRec,pp.tglPelayanan as tglPelayanan,pp.hargaDiscount as hargaDiskon,pp.jumlah as jumlahTindakan,"
|
||||
+ "pr.id as idTindakan,pr.namaProduk as namaTindakan,"
|
||||
+ "ru.departemenId as idDepartemen,ru.id as idRuangan," + "pd.isDiskonPegawai as statusDiskon) "
|
||||
+ "from PelayananPasienPetugas ppp, MapRuanganToProduk mrtp, PegawaiJadwalKerja pjk "
|
||||
+ "left join ppp.pelayananPasien pp " + "left join ppp.kdpegawai pg " + "left join pp.produk pr "
|
||||
+ "left join pp.pasienDaftar apd " + "left join pr.detailJenisProduk djp "
|
||||
+ "left join apd.pasienDaftar pd " + "left join apd.ruangan ru " + "left join pjk.shift sk "
|
||||
+ "left join pjk.tanggal kl " + "where mrtp.produkId = pr.id " + "and mrtp.ruanganId = apd.ruanganId "
|
||||
+ "and ppp.ObjectPegawaiId = mpju.pegawaiId " + "and mpju.pegawaiId = pg.id "
|
||||
+ "and pjk.pegawaiId = ppp.ObjectPegawaiId " + "and pjk.pegawaiId = mpju.pegawaiId "
|
||||
+ "and pjk.pegawaiId = pg.id " + "and mpju.unitKerjaPegawaiId in (:listKsmId) "
|
||||
+ "and mrtp.statusEnabled is true " + "and mpju.statusEnabled is true " + "and pg.statusEnabled is true "
|
||||
+ "and su.statusEnabled is true " + "and pd.statusEnabled is true " + "and sk.statusEnabled is true "
|
||||
+ "and pp.tglPelayanan between :tglAwal and :tglAkhir "
|
||||
+ "and cast(pp.tglPelayanan as date) = cast(kl.tanggal as date) "
|
||||
+ "and (((to_char(pp.tglPelayanan,'dy') in ('mon','tue','wed','thu') "
|
||||
+ "and (to_char(pp.tglPelayanan,'HH24:MM:ss') between '15:30:01' and '23:59:59' "
|
||||
+ "or to_char(pp.tglPelayanan,'HH24:MM:ss') between '00:00:00' and '06:59:59') "
|
||||
+ "or (to_char(pp.tglPelayanan,'dy') in ('fri') "
|
||||
+ "and (to_char(pp.tglPelayanan,'HH24:MM:ss') between '16:00:00' and '23:59:59' "
|
||||
+ "or to_char(pp.tglPelayanan,'HH24:MM:ss') between '00:00:00' and '06:59:59'))) and sk.id not in (:listNonjadwalId)) "
|
||||
+ "or (to_char(pp.tglPelayanan,'dy') in ('mon','tue','wed','thu','fri') and sk.id in (:listNonjadwalId)) "
|
||||
+ "or (to_char(pp.tglPelayanan,'dy') in ('sat','sun') and sk.id in (:listNonjadwalId))) "
|
||||
+ "and pg.jenisPegawaiId = :jenisPegawaiId " + "and djp.jenisProdukId not in (:listNontindakanId) "
|
||||
+ "and pr.id <> :karcisId " + "order by su.name, pr.id")
|
||||
public List<Map<String, Object>> getDataLayanan(@Param("tglAwal") Date tglAwal, @Param("tglAkhir") Date tglAkhir,
|
||||
@Param("jenisPegawaiId") Integer idJenisPegawai, @Param("listKsmId") List<Integer> listIdKsm,
|
||||
public List<Map<String, Object>> getDataLayananLuarJamKerja(@Param("tglAwal") Date tglAwal,
|
||||
@Param("tglAkhir") Date tglAkhir, @Param("listNonjadwalId") List<Integer> listIdNonjadwal,
|
||||
@Param("jenisPegawaiId") Integer idJenisPegawai,
|
||||
@Param("listNontindakanId") List<Integer> listIdNontindakan, @Param("karcisId") Integer idKarcis);
|
||||
|
||||
// Logbook_kinerja_dokter
|
||||
@ -129,21 +165,26 @@ public interface IkiDanRemunerasiDao extends PagingAndSortingRepository<IkiDanRe
|
||||
+ "pr.id as produkId,pr.namaProduk as namaProduk,"
|
||||
+ "pp.noRec as noRec,pp.tglPelayanan as tglPelayanan,pp.jumlah as jumlah,pp.hargaDiscount as hargaDiskon,"
|
||||
+ "ru.departemenId as departemenId,ru.id as ruanganId," + "pd.isDiskonPegawai as statusDiskon) "
|
||||
+ "from PelayananPasienPetugas ppp, MapRuanganToProduk mrtp " + "left join ppp.pelayananPasien pp "
|
||||
+ "left join ppp.kdpegawai pg " + "left join pp.produk pr " + "left join pp.pasienDaftar apd "
|
||||
+ "left join pr.detailJenisProduk djp " + "left join apd.pasienDaftar pd " + "left join apd.ruangan ru "
|
||||
+ "where mrtp.produkId = pr.id and mrtp.ruanganId = apd.ruanganId "
|
||||
+ "and mrtp.statusEnabled is true and pg.statusEnabled is true and pd.statusEnabled is true "
|
||||
+ "and to_char(pp.tglPelayanan,'yyyy-MM') = :bulan "
|
||||
+ "and ((to_char(pp.tglPelayanan,'dy') in ('mon','tue','wed','thu') "
|
||||
+ "from PelayananPasienPetugas ppp, MapRuanganToProduk mrtp, PegawaiJadwalKerja pjk "
|
||||
+ "left join ppp.pelayananPasien pp " + "left join ppp.kdpegawai pg " + "left join pp.produk pr "
|
||||
+ "left join pp.pasienDaftar apd " + "left join pr.detailJenisProduk djp "
|
||||
+ "left join apd.pasienDaftar pd " + "left join apd.ruangan ru " + "left join pjk.shift sk "
|
||||
+ "left join pjk.tanggal kl " + "where mrtp.produkId = pr.id " + "and mrtp.ruanganId = apd.ruanganId "
|
||||
+ "and pjk.pegawaiId = ppp.ObjectPegawaiId " + "and pjk.pegawaiId = pg.id "
|
||||
+ "and mrtp.statusEnabled is true " + "and pg.statusEnabled is true " + "and pd.statusEnabled is true "
|
||||
+ "and sk.statusEnabled is true " + "and to_char(pp.tglPelayanan,'yyyy-MM') = :bulan "
|
||||
+ "and cast(pp.tglPelayanan as date) = cast(kl.tanggal as date) "
|
||||
+ "and (((to_char(pp.tglPelayanan,'dy') in ('mon','tue','wed','thu') "
|
||||
+ "and to_char(pp.tglPelayanan,'HH24:MM:ss') between '07:00:00' and '15:30:00') "
|
||||
+ "or (to_char(pp.tglPelayanan,'dy') in ('fri') "
|
||||
+ "and to_char(pp.tglPelayanan,'HH24:MM:ss') between '07:00:00' and '16:00:00')) "
|
||||
+ "and pg.jenisPegawaiId = :jenisPegawaiId " + "and djp.jenisProdukId not in (:listNontindakanId) "
|
||||
+ "and pr.id <> :karcisId " + "and pg.id = :pegawaiId " + "order by pr.namaProduk, pp.tglPelayanan")
|
||||
+ "and sk.id not in (:listNonjadwalId)) " + "and pg.jenisPegawaiId = :jenisPegawaiId "
|
||||
+ "and djp.jenisProdukId not in (:listNontindakanId) " + "and pr.id <> :karcisId "
|
||||
+ "and pg.id = :pegawaiId " + "order by pr.namaProduk, pp.tglPelayanan")
|
||||
public List<Map<String, Object>> getDataLogbookDokter(@Param("bulan") String bulan,
|
||||
@Param("jenisPegawaiId") Integer idJenisPegawai, @Param("pegawaiId") Integer idPegawai,
|
||||
@Param("listNontindakanId") List<Integer> listIdNontindakan, @Param("karcisId") Integer idKarcis);
|
||||
@Param("listNonjadwalId") List<Integer> listIdNonjadwal, @Param("jenisPegawaiId") Integer idJenisPegawai,
|
||||
@Param("pegawaiId") Integer idPegawai, @Param("listNontindakanId") List<Integer> listIdNontindakan,
|
||||
@Param("karcisId") Integer idKarcis);
|
||||
|
||||
@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,"
|
||||
@ -153,21 +194,25 @@ public interface IkiDanRemunerasiDao extends PagingAndSortingRepository<IkiDanRe
|
||||
+ "ru.departemenId as departemenId,ru.id as ruanganId,ru.namaRuangan as namaRuangan,"
|
||||
+ "pd.noRegistrasi as noRegistrasi,pd.isDiskonPegawai as statusDiskon,"
|
||||
+ "ps.namaPasien as namaPasien, ps.noCm as noCm) "
|
||||
+ "from PelayananPasienPetugas ppp, MapRuanganToProduk mrtp " + "left join ppp.pelayananPasien pp "
|
||||
+ "left join ppp.kdpegawai pg " + "left join ppp.kdjenispetugaspe jpp " + "left join pp.produk pr "
|
||||
+ "left join pp.pasienDaftar apd " + "left join pr.detailJenisProduk djp "
|
||||
+ "left join apd.pasienDaftar pd " + "left join apd.ruangan ru " + "left join pd.pasien ps "
|
||||
+ "where mrtp.produkId = pr.id " + "and mrtp.ruanganId = apd.ruanganId " + "and mrtp.statusEnabled is true "
|
||||
+ "and pg.statusEnabled is true " + "and pd.statusEnabled is true " + "and pr.id = :produkId "
|
||||
+ "and to_char(pp.tglPelayanan,'yyyy-MM-dd') = :tglPelayanan "
|
||||
+ "and ((to_char(pp.tglPelayanan,'dy') in ('mon','tue','wed','thu') "
|
||||
+ "from PelayananPasienPetugas ppp, MapRuanganToProduk mrtp, PegawaiJadwalKerja pjk "
|
||||
+ "left join ppp.pelayananPasien pp " + "left join ppp.kdpegawai pg "
|
||||
+ "left join ppp.kdjenispetugaspe jpp " + "left join pp.produk pr " + "left join pp.pasienDaftar apd "
|
||||
+ "left join pr.detailJenisProduk djp " + "left join apd.pasienDaftar pd " + "left join apd.ruangan ru "
|
||||
+ "left join pd.pasien ps " + "left join pjk.shift sk " + "left join pjk.tanggal kl "
|
||||
+ "where mrtp.produkId = pr.id " + "and mrtp.ruanganId = apd.ruanganId "
|
||||
+ "and pjk.pegawaiId = ppp.ObjectPegawaiId " + "and pjk.pegawaiId = pg.id "
|
||||
+ "and mrtp.statusEnabled is true " + "and pg.statusEnabled is true " + "and pd.statusEnabled is true "
|
||||
+ "and pr.id = :produkId " + "and to_char(pp.tglPelayanan,'yyyy-MM-dd') = :tglPelayanan "
|
||||
+ "and cast(pp.tglPelayanan as date) = cast(kl.tanggal as date) "
|
||||
+ "and (((to_char(pp.tglPelayanan,'dy') in ('mon','tue','wed','thu') "
|
||||
+ "and to_char(pp.tglPelayanan,'HH24:MM:ss') between '07:00:00' and '15:30:00') "
|
||||
+ "or (to_char(pp.tglPelayanan,'dy') in ('fri') "
|
||||
+ "and to_char(pp.tglPelayanan,'HH24:MM:ss') between '07:00:00' and '16:00:00')) "
|
||||
+ "and pg.jenisPegawaiId = :jenisPegawaiId " + "and djp.jenisProdukId not in (:listNontindakanId) "
|
||||
+ "and pr.id <> :karcisId " + "and pg.id = :pegawaiId " + "order by pr.namaProduk, pp.tglPelayanan")
|
||||
+ "and sk.id not in (:listNonjadwalId)) " + "and pg.jenisPegawaiId = :jenisPegawaiId "
|
||||
+ "and djp.jenisProdukId not in (:listNontindakanId) " + "and pr.id <> :karcisId "
|
||||
+ "and pg.id = :pegawaiId " + "order by pr.namaProduk, pp.tglPelayanan")
|
||||
public List<Map<String, Object>> findDetailPasienLogbook(@Param("produkId") Integer idProduk,
|
||||
@Param("tglPelayanan") String tglPelayanan, @Param("jenisPegawaiId") Integer idJenisPegawai,
|
||||
@Param("pegawaiId") Integer idPegawai, @Param("listNontindakanId") List<Integer> listIdNontindakan,
|
||||
@Param("karcisId") Integer idKarcis);
|
||||
@Param("tglPelayanan") String tglPelayanan, @Param("listNonjadwalId") List<Integer> listIdNonjadwal,
|
||||
@Param("jenisPegawaiId") Integer idJenisPegawai, @Param("pegawaiId") Integer idPegawai,
|
||||
@Param("listNontindakanId") List<Integer> listIdNontindakan, @Param("karcisId") Integer idKarcis);
|
||||
}
|
||||
@ -18,31 +18,18 @@ import com.jasamedika.medifirst2000.entities.ShiftKerja;
|
||||
@Repository("ShiftKerjaDao")
|
||||
public interface ShiftKerjaDao extends PagingAndSortingRepository<ShiftKerja, Integer> {
|
||||
|
||||
@Query("select new Map(model.factorRate as factorRate, "
|
||||
+ "model.flagKetidakhadiran as flagKetidakhadiran, "
|
||||
+ "model.id as id, "
|
||||
+ "model.jadwalPraktekId as jadwalPraktekId, "
|
||||
+ "model.jamBreakAkhir as jamBreakAkhir, "
|
||||
+ "model.jamBreakAwal as jamBreakAwal, "
|
||||
+ "model.jamMasuk as jamMasuk, "
|
||||
+ "model.jamPraktekId as jamPraktekId, "
|
||||
+ "model.jamPulang as jamPulang, "
|
||||
+ "model.kdProfile as kdProfile, "
|
||||
+ "model.kdShift as kdShift, "
|
||||
+ "model.kelompokShiftId as kelompokShiftId, "
|
||||
+ "model.kodeExternal as kodeExternal, "
|
||||
+ "model.komponenIndexId as komponenIndexId, "
|
||||
+ "model.namaExternal as namaExternal, "
|
||||
+ "model.namaShift as namaShift, "
|
||||
+ "model.noRec as noRec, "
|
||||
+ "model.operatorFactorRate as operatorFactorRate, "
|
||||
+ "model.qShift as qShift, "
|
||||
+ "model.reportDisplay as reportDisplay, "
|
||||
+ "model.statusEnabled as statusEnabled, "
|
||||
+ "model.waktuIstirahat as waktuIstirahat) "
|
||||
+ "from ShiftKerja model "
|
||||
+ "where model.kelompokShift.id=:id "
|
||||
+ "and model.statusEnabled is true")
|
||||
@Query("select new Map(model.factorRate as factorRate, " + "model.flagKetidakhadiran as flagKetidakhadiran, "
|
||||
+ "model.id as id, " + "model.jadwalPraktekId as jadwalPraktekId, "
|
||||
+ "model.jamBreakAkhir as jamBreakAkhir, " + "model.jamBreakAwal as jamBreakAwal, "
|
||||
+ "model.jamMasuk as jamMasuk, " + "model.jamPraktekId as jamPraktekId, " + "model.jamPulang as jamPulang, "
|
||||
+ "model.kdProfile as kdProfile, " + "model.kdShift as kdShift, "
|
||||
+ "model.kelompokShiftId as kelompokShiftId, " + "model.kodeExternal as kodeExternal, "
|
||||
+ "model.komponenIndexId as komponenIndexId, " + "model.namaExternal as namaExternal, "
|
||||
+ "model.namaShift as namaShift, " + "model.noRec as noRec, "
|
||||
+ "model.operatorFactorRate as operatorFactorRate, " + "model.qShift as qShift, "
|
||||
+ "model.reportDisplay as reportDisplay, " + "model.statusEnabled as statusEnabled, "
|
||||
+ "model.waktuIstirahat as waktuIstirahat) " + "from ShiftKerja model "
|
||||
+ "where model.kelompokShift.id=:id " + "and model.statusEnabled is true")
|
||||
List<Map<String, Object>> findByKelompokShiftId(@Param("id") Integer idShift);
|
||||
|
||||
@Query(" select new map (komponenIndex.komponenIndex as namaKomponen, " + " komponenIndex.id as idKomponenIndex) "
|
||||
@ -57,14 +44,14 @@ public interface ShiftKerjaDao extends PagingAndSortingRepository<ShiftKerja, In
|
||||
+ "shiftKerja.namaShift as namaShift, " + "shiftKerja.operatorFactorRate as operatorFactorRate, "
|
||||
+ "kelompokShift.id as idkelompokShift, " + "kelompokShift.name as namaKelompokShift, "
|
||||
+ "komponenIndex.id as idkomponenIndex, " + "komponenIndex.komponenIndex as komponenIndex,"
|
||||
+ "shiftKerja.flagKetidakhadiran as flagKetidakhadiran," + "shiftKerja.statusEnabled as statusEnabled) "
|
||||
+ "from ShiftKerja shiftKerja " + "left join shiftKerja.komponenIndex komponenIndex "
|
||||
+ "shiftKerja.flagKetidakhadiran as flagKetidakhadiran," + "shiftKerja.statusEnabled as statusEnabled) "
|
||||
+ "from ShiftKerja shiftKerja " + "left join shiftKerja.komponenIndex komponenIndex "
|
||||
+ "left join shiftKerja.kelompokShift kelompokShift " + "where shiftKerja.statusEnabled is true")
|
||||
public List<Map<String, Object>> getListShiftKerja();
|
||||
|
||||
@Query("select new Map(model.id as id,model.kodeExternal as kodeExternal,model.kelompokShiftId as kelompokShiftId,model.flagKetidakhadiran as flagKetidakhadiran) "
|
||||
+ "from ShiftKerja model " + "where lower(model.kodeExternal) in (:listKdShift) " + "and model.statusEnabled is true "
|
||||
+ "and model.flagKetidakhadiran is false")
|
||||
+ "from ShiftKerja model " + "where lower(model.kodeExternal) in (:listKdShift) "
|
||||
+ "and model.statusEnabled is true " + "and model.flagKetidakhadiran is false")
|
||||
List<Map<String, Object>> getListShiftKerja(@Param("listKdShift") List<String> listKdShift);
|
||||
|
||||
@Query("select distinct new Map(s.kodeExternal as kodeExternal, " + "s.namaShift as namaShift, "
|
||||
@ -72,4 +59,7 @@ public interface ShiftKerjaDao extends PagingAndSortingRepository<ShiftKerja, In
|
||||
+ "where s.statusEnabled is true " + "order by s.kodeExternal")
|
||||
public List<Map<String, Object>> getListKetShift();
|
||||
|
||||
@Query("select sk.id from ShiftKerja sk where sk.statusEnabled is true and sk.jamMasuk = '' and sk.jamPulang = ''")
|
||||
public List<Integer> findListNonjadwal();
|
||||
|
||||
}
|
||||
|
||||
@ -31,7 +31,9 @@ public interface IkiDanRemunerasiService {
|
||||
|
||||
public Map<String, Object> savePirDanIku(List<SettingPirSdmVO> vo);
|
||||
|
||||
public void autoSaveTargetCapaianLayanan(String strPeriode, Integer idKsm) throws ParseException;
|
||||
public void autoSaveTargetCapaianLayananJamKerja(String strPeriode, Integer idKsm) throws ParseException;
|
||||
|
||||
public void autoSaveTargetCapaianLayananLuarJamKerja(String strPeriode) throws ParseException;
|
||||
|
||||
public void saveTargetCapaianLayanan(TargetLayananCustomVO vo, Date periodeHitung) throws ParseException;
|
||||
|
||||
|
||||
@ -27,6 +27,7 @@ import com.jasamedika.medifirst2000.dao.MapPegawaiJabatanToUnitKerjaDao;
|
||||
import com.jasamedika.medifirst2000.dao.MonitoringAbsenDao;
|
||||
import com.jasamedika.medifirst2000.dao.RunningNumberDao;
|
||||
import com.jasamedika.medifirst2000.dao.SettingPirSdmDao;
|
||||
import com.jasamedika.medifirst2000.dao.ShiftKerjaDao;
|
||||
import com.jasamedika.medifirst2000.dao.SkoringTindakanMedisDao;
|
||||
import com.jasamedika.medifirst2000.dao.StrukHistoriDao;
|
||||
import com.jasamedika.medifirst2000.dao.StrukPelayananDao;
|
||||
@ -133,6 +134,9 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
||||
@Autowired
|
||||
private LogbookKinerjaDokterDao logbookKinerjaDokterDao;
|
||||
|
||||
@Autowired
|
||||
private ShiftKerjaDao shiftKerjaDao;
|
||||
|
||||
@Override
|
||||
public Map<String, Object> loadData() {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
@ -464,7 +468,7 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
||||
}
|
||||
|
||||
@Override
|
||||
public void autoSaveTargetCapaianLayanan(String strPeriode, Integer idKsm) throws ParseException {
|
||||
public void autoSaveTargetCapaianLayananJamKerja(String strPeriode, Integer idKsm) throws ParseException {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
|
||||
SimpleDateFormat sdfINA = new SimpleDateFormat("MMMM yyyy", new Locale("in", "ID"));
|
||||
|
||||
@ -492,14 +496,16 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
||||
|
||||
List<Integer> listIndikatorPelayanan = Arrays.asList(Master.IndikatorKinerjaDetail.INDIKATOR_PELAYANAN_MEDIS);
|
||||
|
||||
List<Integer> listIdNonjadwal = shiftKerjaDao.findListNonjadwal();
|
||||
|
||||
List<Map<String, Object>> dataLayananRaw = new ArrayList<>();
|
||||
if (CommonUtil.isNotNullOrEmpty(idKsm)) {
|
||||
dataLayananRaw = ikiDanRemunerasiDao.getDataLayanan(calTglAwal.getTime(), bulan.getTime(),
|
||||
Master.JenisPegawai.DOKTER, Arrays.asList(idKsm), Arrays.asList(Master.JenisProduk.NONTINDAKAN),
|
||||
Master.Produk.KARCIS);
|
||||
dataLayananRaw = ikiDanRemunerasiDao.getDataLayananJamKerja(calTglAwal.getTime(), bulan.getTime(),
|
||||
listIdNonjadwal, Master.JenisPegawai.DOKTER, Arrays.asList(idKsm),
|
||||
Arrays.asList(Master.JenisProduk.NONTINDAKAN), Master.Produk.KARCIS);
|
||||
} else {
|
||||
dataLayananRaw = ikiDanRemunerasiDao.getDataLayanan(calTglAwal.getTime(), bulan.getTime(),
|
||||
Master.JenisPegawai.DOKTER, Arrays.asList(Master.UnitKerja.KSM),
|
||||
dataLayananRaw = ikiDanRemunerasiDao.getDataLayananJamKerja(calTglAwal.getTime(), bulan.getTime(),
|
||||
listIdNonjadwal, Master.JenisPegawai.DOKTER, Arrays.asList(Master.UnitKerja.KSM),
|
||||
Arrays.asList(Master.JenisProduk.NONTINDAKAN), Master.Produk.KARCIS);
|
||||
}
|
||||
|
||||
@ -821,7 +827,361 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void autoSaveTargetCapaianLayananLuarJamKerja(String strPeriode) throws ParseException {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
|
||||
SimpleDateFormat sdfINA = new SimpleDateFormat("MMMM yyyy", new Locale("in", "ID"));
|
||||
|
||||
Date periode = sdf.parse(strPeriode);
|
||||
|
||||
// get_few_months_earlier
|
||||
Calendar calTglAwal = Calendar.getInstance();
|
||||
calTglAwal.setTime(periode);
|
||||
calTglAwal.set(Calendar.HOUR_OF_DAY, 0);
|
||||
calTglAwal.set(Calendar.MINUTE, 0);
|
||||
calTglAwal.set(Calendar.SECOND, 0);
|
||||
calTglAwal.set(Calendar.DAY_OF_MONTH, 1);
|
||||
calTglAwal.add(Calendar.MONTH, -Integer.valueOf(GetSettingDataFixed("jmlBlnHitungTargetMedis")));
|
||||
|
||||
// get_this_period
|
||||
Calendar bulan = Calendar.getInstance();
|
||||
bulan.setTime(periode);
|
||||
bulan.set(Calendar.HOUR_OF_DAY, 23);
|
||||
bulan.set(Calendar.MINUTE, 59);
|
||||
bulan.set(Calendar.SECOND, 0);
|
||||
bulan.set(Calendar.DAY_OF_MONTH, bulan.getActualMaximum(Calendar.DAY_OF_MONTH));
|
||||
|
||||
List<Integer> listRuangEks = splitDataSettingDatafixed("IdRuanganEksekutif");
|
||||
List<Integer> listKonsulTapiVisit = splitDataSettingDatafixed("konsulTapiVisit");
|
||||
|
||||
List<Integer> listIndikatorPelayanan = Arrays.asList(Master.IndikatorKinerjaDetail.INDIKATOR_PELAYANAN_MEDIS);
|
||||
|
||||
List<Integer> listIdNonjadwal = shiftKerjaDao.findListNonjadwal();
|
||||
|
||||
List<Map<String, Object>> dataLayananRaw = ikiDanRemunerasiDao.getDataLayananLuarJamKerja(calTglAwal.getTime(),
|
||||
bulan.getTime(), listIdNonjadwal, Master.JenisPegawai.DOKTER,
|
||||
Arrays.asList(Master.JenisProduk.NONTINDAKAN), Master.Produk.KARCIS);
|
||||
|
||||
// get_kategori_bulan
|
||||
List<String> listBulanPelayanan = new ArrayList<>();
|
||||
List<String> listBulanPelayananSorted = new ArrayList<>();
|
||||
for (Map<String, Object> dat : dataLayananRaw) {
|
||||
if (!listBulanPelayanan.contains(sdf.format(dat.get("tglPelayanan")))) {
|
||||
listBulanPelayanan.add(sdf.format(dat.get("tglPelayanan")));
|
||||
}
|
||||
}
|
||||
listBulanPelayananSorted = listBulanPelayanan.stream().sorted().collect(Collectors.toList());
|
||||
|
||||
// get_kategori_kelompok_kerja
|
||||
List<Integer> listIdKK = new ArrayList<>();
|
||||
for (Map<String, Object> map : dataLayananRaw) {
|
||||
if (!listIdKK.contains(map.get("idKelompokKerja"))) {
|
||||
listIdKK.add(Integer.parseInt(map.get("idKelompokKerja").toString()));
|
||||
}
|
||||
}
|
||||
|
||||
List<Map<String, Object>> listKelompokKerja = subunitKerjaDao.findSubDanUnitKerjaById(listIdKK);
|
||||
|
||||
List<Map<String, Object>> dataLastTargetLayanan = targetLayananDao
|
||||
.getLastTargetLayanan(sdf.format(calTglAwal.getTime()), sdf.format(bulan.getTime()));
|
||||
|
||||
List<Map<String, Object>> filterTarget = new ArrayList<>();
|
||||
// filtering target
|
||||
for (Map<String, Object> mapData : dataLastTargetLayanan) {
|
||||
boolean isContained = false;
|
||||
for (Map<String, Object> mapFilter : filterTarget) {
|
||||
if (mapData.get("kelompokKerjaId").equals(mapFilter.get("kelompokKerjaId"))
|
||||
&& mapData.get("indikatorId").equals(mapFilter.get("indikatorId"))
|
||||
&& mapData.get("periode").equals(mapFilter.get("periode"))) {
|
||||
isContained = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!isContained) {
|
||||
Map<String, Object> mapFilter = new HashMap<>();
|
||||
mapFilter.put("kelompokKerjaId", mapData.get("kelompokKerjaId"));
|
||||
mapFilter.put("indikatorId", mapData.get("indikatorId"));
|
||||
mapFilter.put("periode", mapData.get("periode"));
|
||||
filterTarget.add(mapFilter);
|
||||
}
|
||||
}
|
||||
|
||||
List<Map<String, Object>> dataTargetFiltered = new ArrayList<>();
|
||||
// processing Target
|
||||
for (Map<String, Object> mapFilter : filterTarget) {
|
||||
for (Map<String, Object> mapData : dataLastTargetLayanan) {
|
||||
if (mapData.get("kelompokKerjaId").equals(mapFilter.get("kelompokKerjaId"))
|
||||
&& mapData.get("indikatorId").equals(mapFilter.get("indikatorId"))
|
||||
&& mapData.get("periode").equals(mapFilter.get("periode"))) {
|
||||
dataTargetFiltered.add(mapData);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
List<Map<String, Object>> dataSkoringRaw = skoringTindakanMedisDao.findLatestActiveSkor();
|
||||
|
||||
List<Map<String, Object>> filterSkoring = new ArrayList<>();
|
||||
// filtering skoring
|
||||
for (Map<String, Object> mapData : dataSkoringRaw) {
|
||||
boolean isContained = false;
|
||||
for (Map<String, Object> mapFilter : filterSkoring) {
|
||||
if (mapData.get("produkId").equals(mapFilter.get("produkId"))
|
||||
&& mapData.get("kelompokKerjaId").equals(mapFilter.get("kelompokKerjaId"))) {
|
||||
isContained = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!isContained) {
|
||||
Map<String, Object> mapFilter = new HashMap<>();
|
||||
mapFilter.put("produkId", mapData.get("produkId"));
|
||||
mapFilter.put("kelompokKerjaId", mapData.get("kelompokKerjaId"));
|
||||
filterSkoring.add(mapFilter);
|
||||
}
|
||||
}
|
||||
|
||||
List<Map<String, Object>> dataSkoringFiltered = new ArrayList<>();
|
||||
// processing skoring
|
||||
for (Map<String, Object> mapFilter : filterSkoring) {
|
||||
for (Map<String, Object> mapData : dataSkoringRaw) {
|
||||
if (mapFilter.get("produkId").equals(mapData.get("produkId"))
|
||||
&& mapFilter.get("kelompokKerjaId").equals(mapData.get("kelompokKerjaId"))) {
|
||||
dataSkoringFiltered.add(mapData);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
List<Map<String, Object>> dataLayananScored = new ArrayList<>();
|
||||
// scoring data layanan
|
||||
for (Map<String, Object> layanan : dataLayananRaw) {
|
||||
for (Map<String, Object> skoring : dataSkoringFiltered) {
|
||||
if (layanan.get("idTindakan").equals(skoring.get("produkId"))
|
||||
&& layanan.get("idKelompokKerja").equals(skoring.get("kelompokKerjaId"))
|
||||
&& (((Date) skoring.get("tglBerlaku")).before(((Date) layanan.get("tglPelayanan")))
|
||||
|| ((Date) skoring.get("tglBerlaku")).equals(((Date) layanan.get("tglPelayanan"))))) {
|
||||
|
||||
if (Double.valueOf(layanan.get("hargaDiskon").toString()) > 0.0
|
||||
&& (CommonUtil.isNullOrEmpty(layanan.get("statusDiskon"))
|
||||
|| !Boolean.valueOf(layanan.get("statusDiskon").toString()))) {
|
||||
layanan.put("jumlahTindakan", 0.0);
|
||||
} else if (listRuangEks.contains(layanan.get("idRuangan"))
|
||||
&& !layanan.get("namaTindakan").toString().toLowerCase().contains(Master.KONSUL)
|
||||
&& !layanan.get("namaTindakan").toString().toLowerCase().contains(Master.VISIT)) {
|
||||
layanan.put("jumlahTindakan",
|
||||
Double.valueOf(layanan.get("jumlahTindakan").toString())
|
||||
* Double.valueOf(skoring.get("skor").toString())
|
||||
* Master.Remunerasi.PERSEN_SKOR_EKSEKUTIF);
|
||||
} else if (layanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) {
|
||||
layanan.put("jumlahTindakan",
|
||||
Double.valueOf(layanan.get("jumlahTindakan").toString())
|
||||
* Double.valueOf(skoring.get("skor").toString())
|
||||
* Master.Remunerasi.PERSEN_SKOR_ASISTEN_SPESIALIS);
|
||||
} else {
|
||||
layanan.put("jumlahTindakan", Double.valueOf(layanan.get("jumlahTindakan").toString())
|
||||
* Double.valueOf(skoring.get("skor").toString()));
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
dataLayananScored.add(layanan);
|
||||
}
|
||||
|
||||
for (Map<String, Object> kelompokKerja : listKelompokKerja) {
|
||||
for (Integer idIndikator : listIndikatorPelayanan) {
|
||||
TargetLayananCustomVO resultVo = new TargetLayananCustomVO();
|
||||
List<TargetLayananCustomDetailVO> listDetail = new ArrayList<>();
|
||||
|
||||
double capaianTriwulanKE = 0.0;
|
||||
double capaianTriwulanKG = 0.0;
|
||||
double capaianTriwulanKR = 0.0;
|
||||
double capaianTriwulanTE = 0.0;
|
||||
double capaianTriwulanTG = 0.0;
|
||||
double capaianTriwulanTO = 0.0;
|
||||
double capaianTriwulanTR = 0.0;
|
||||
double capaianTriwulanVI = 0.0;
|
||||
|
||||
int i = 0;
|
||||
for (String datePelayanan : listBulanPelayananSorted) {
|
||||
i++;
|
||||
TargetLayananCustomDetailVO detail = new TargetLayananCustomDetailVO();
|
||||
|
||||
double capaianBulanan = 0.0;
|
||||
double targetBulanan = 0.0;
|
||||
for (Map<String, Object> data : dataLayananScored) {
|
||||
if (kelompokKerja.get("subunitKerjaId").equals(data.get("idKelompokKerja"))
|
||||
&& datePelayanan.equals(sdf.format(data.get("tglPelayanan")))) {
|
||||
if (idIndikator.equals(Master.IndikatorKinerjaDetail.VISITE)
|
||||
&& (listKonsulTapiVisit.contains(data.get("idTindakan")) || data.get("namaTindakan")
|
||||
.toString().toLowerCase().contains(Master.VISIT))) {
|
||||
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||
if (i < listBulanPelayananSorted.size()) {
|
||||
capaianTriwulanVI += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||
for (Map<String, Object> target : dataTargetFiltered) {
|
||||
if (kelompokKerja.get("subunitKerjaId").equals(target.get("kelompokKerjaId"))
|
||||
&& idIndikator.equals(target.get("indikatorId"))
|
||||
&& datePelayanan.equals(target.get("periode"))) {
|
||||
targetBulanan = Double.valueOf(target.get("target").toString());
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if (i == listBulanPelayananSorted.size()) {
|
||||
targetBulanan = Math
|
||||
.floor(capaianTriwulanVI / (listBulanPelayananSorted.size() - 1));
|
||||
}
|
||||
} else if (idIndikator.equals(Master.IndikatorKinerjaDetail.KONSUL_EKS)
|
||||
&& data.get("namaTindakan").toString().toLowerCase().contains(Master.KONSUL)
|
||||
&& listRuangEks.contains(data.get("idRuangan"))) {
|
||||
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||
if (i < listBulanPelayananSorted.size()) {
|
||||
capaianTriwulanKE += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||
for (Map<String, Object> target : dataTargetFiltered) {
|
||||
if (kelompokKerja.get("subunitKerjaId").equals(target.get("kelompokKerjaId"))
|
||||
&& idIndikator.equals(target.get("indikatorId"))
|
||||
&& datePelayanan.equals(target.get("periode"))) {
|
||||
targetBulanan = Double.valueOf(target.get("target").toString());
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if (i == listBulanPelayananSorted.size()) {
|
||||
targetBulanan = Math
|
||||
.floor(capaianTriwulanKE / (listBulanPelayananSorted.size() - 1));
|
||||
}
|
||||
} else if (idIndikator.equals(Master.IndikatorKinerjaDetail.KONSUL_GADAR)
|
||||
&& data.get("namaTindakan").toString().toLowerCase().contains(Master.KONSUL)
|
||||
&& data.get("idDepartemen").equals(Master.Departemen.IGD)) {
|
||||
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||
if (i < listBulanPelayananSorted.size()) {
|
||||
capaianTriwulanKG += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||
for (Map<String, Object> target : dataTargetFiltered) {
|
||||
if (kelompokKerja.get("subunitKerjaId").equals(target.get("kelompokKerjaId"))
|
||||
&& idIndikator.equals(target.get("indikatorId"))
|
||||
&& datePelayanan.equals(target.get("periode"))) {
|
||||
targetBulanan = Double.valueOf(target.get("target").toString());
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if (i == listBulanPelayananSorted.size()) {
|
||||
targetBulanan = Math
|
||||
.floor(capaianTriwulanKG / (listBulanPelayananSorted.size() - 1));
|
||||
}
|
||||
} else if (idIndikator.equals(Master.IndikatorKinerjaDetail.KONSUL_REG)
|
||||
&& data.get("namaTindakan").toString().toLowerCase().contains(Master.KONSUL)) {
|
||||
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||
if (i < listBulanPelayananSorted.size()) {
|
||||
capaianTriwulanKR += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||
for (Map<String, Object> target : dataTargetFiltered) {
|
||||
if (kelompokKerja.get("subunitKerjaId").equals(target.get("kelompokKerjaId"))
|
||||
&& idIndikator.equals(target.get("indikatorId"))
|
||||
&& datePelayanan.equals(target.get("periode"))) {
|
||||
targetBulanan = Double.valueOf(target.get("target").toString());
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if (i == listBulanPelayananSorted.size()) {
|
||||
targetBulanan = Math
|
||||
.floor(capaianTriwulanKR / (listBulanPelayananSorted.size() - 1));
|
||||
}
|
||||
} else if (idIndikator.equals(Master.IndikatorKinerjaDetail.TINDAKAN_EKS)
|
||||
&& listRuangEks.contains(data.get("idRuangan"))) {
|
||||
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||
if (i < listBulanPelayananSorted.size()) {
|
||||
capaianTriwulanTE += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||
for (Map<String, Object> target : dataTargetFiltered) {
|
||||
if (kelompokKerja.get("subunitKerjaId").equals(target.get("kelompokKerjaId"))
|
||||
&& idIndikator.equals(target.get("indikatorId"))
|
||||
&& datePelayanan.equals(target.get("periode"))) {
|
||||
targetBulanan = Double.valueOf(target.get("target").toString());
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if (i == listBulanPelayananSorted.size()) {
|
||||
targetBulanan = Math
|
||||
.floor(capaianTriwulanTE / (listBulanPelayananSorted.size() - 1));
|
||||
}
|
||||
} else if (idIndikator.equals(Master.IndikatorKinerjaDetail.TINDAKAN_GADAR)
|
||||
&& data.get("idDepartemen").equals(Master.Departemen.IGD)) {
|
||||
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||
if (i < listBulanPelayananSorted.size()) {
|
||||
capaianTriwulanTG += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||
for (Map<String, Object> target : dataTargetFiltered) {
|
||||
if (kelompokKerja.get("subunitKerjaId").equals(target.get("kelompokKerjaId"))
|
||||
&& idIndikator.equals(target.get("indikatorId"))
|
||||
&& datePelayanan.equals(target.get("periode"))) {
|
||||
targetBulanan = Double.valueOf(target.get("target").toString());
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if (i == listBulanPelayananSorted.size()) {
|
||||
targetBulanan = Math
|
||||
.floor(capaianTriwulanTG / (listBulanPelayananSorted.size() - 1));
|
||||
}
|
||||
} else if (idIndikator.equals(Master.IndikatorKinerjaDetail.TINDAKAN_OPS)
|
||||
&& data.get("idRuangan").equals(Master.Ruangan.OK)) {
|
||||
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||
if (i < listBulanPelayananSorted.size()) {
|
||||
capaianTriwulanTO += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||
for (Map<String, Object> target : dataTargetFiltered) {
|
||||
if (kelompokKerja.get("subunitKerjaId").equals(target.get("kelompokKerjaId"))
|
||||
&& idIndikator.equals(target.get("indikatorId"))
|
||||
&& datePelayanan.equals(target.get("periode"))) {
|
||||
targetBulanan = Double.valueOf(target.get("target").toString());
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if (i == listBulanPelayananSorted.size()) {
|
||||
targetBulanan = Math
|
||||
.floor(capaianTriwulanTO / (listBulanPelayananSorted.size() - 1));
|
||||
}
|
||||
} else if (idIndikator.equals(Master.IndikatorKinerjaDetail.TINDAKAN_REG)) {
|
||||
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||
if (i < listBulanPelayananSorted.size()) {
|
||||
capaianTriwulanTR += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||
for (Map<String, Object> target : dataTargetFiltered) {
|
||||
if (kelompokKerja.get("subunitKerjaId").equals(target.get("kelompokKerjaId"))
|
||||
&& idIndikator.equals(target.get("indikatorId"))
|
||||
&& datePelayanan.equals(target.get("periode"))) {
|
||||
targetBulanan = Double.valueOf(target.get("target").toString());
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if (i == listBulanPelayananSorted.size()) {
|
||||
targetBulanan = Math
|
||||
.floor(capaianTriwulanTR / (listBulanPelayananSorted.size() - 1));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Date bulanPelayanan = sdf.parse(datePelayanan);
|
||||
|
||||
detail.setDate(datePelayanan);
|
||||
detail.setBulan(sdfINA.format(bulanPelayanan));
|
||||
detail.setTarget(targetBulanan);
|
||||
detail.setCapaian(capaianBulanan);
|
||||
listDetail.add(detail);
|
||||
}
|
||||
if (Double.valueOf(listDetail.get(listDetail.size() - 1).getTarget()) > 0.0) {
|
||||
resultVo.setDetail(listDetail);
|
||||
SubUnitKerjaPegawaiVO kelompokKerjaVO = new SubUnitKerjaPegawaiVO();
|
||||
kelompokKerjaVO.setId(Integer.valueOf(kelompokKerja.get("subunitKerjaId").toString()));
|
||||
|
||||
UnitKerjaPegawaiVO unitKerjaVO = new UnitKerjaPegawaiVO();
|
||||
unitKerjaVO.setId(Integer.valueOf(kelompokKerja.get("unitKerjaId").toString()));
|
||||
kelompokKerjaVO.setUnitKerja(unitKerjaVO);
|
||||
|
||||
IndikatorKinerjaDetailVO detailIndikatorVO = new IndikatorKinerjaDetailVO();
|
||||
detailIndikatorVO.setId(idIndikator);
|
||||
|
||||
resultVo.setKelompokKerja(kelompokKerjaVO);
|
||||
resultVo.setIndikator(detailIndikatorVO);
|
||||
|
||||
saveTargetCapaianLayanan(resultVo, sdf.parse(strPeriode));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -984,4 +1344,5 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -29,6 +29,7 @@ import com.jasamedika.medifirst2000.dao.LogbookKinerjaDao;
|
||||
import com.jasamedika.medifirst2000.dao.LogbookKinerjaDetailDao;
|
||||
import com.jasamedika.medifirst2000.dao.LogbookKinerjaDokterDao;
|
||||
import com.jasamedika.medifirst2000.dao.PegawaiDao;
|
||||
import com.jasamedika.medifirst2000.dao.ShiftKerjaDao;
|
||||
import com.jasamedika.medifirst2000.dao.SkoringTindakanMedisDao;
|
||||
import com.jasamedika.medifirst2000.dao.TabelAcuanIndeksIKIDao;
|
||||
import com.jasamedika.medifirst2000.entities.IndikatorKinerja;
|
||||
@ -93,6 +94,9 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
|
||||
@Autowired
|
||||
private TabelAcuanIndeksIKIDao tabelAcuanIndeksIKIDao;
|
||||
|
||||
@Autowired
|
||||
private ShiftKerjaDao shiftKerjaDao;
|
||||
|
||||
@Override
|
||||
public LogbookKinerjaVO add(LogbookKinerjaVO vo) throws JpaSystemException, ServiceVOException {
|
||||
Pegawai pegawai = pegawaiConverter.transferVOToModel(vo.getPegawai(), new Pegawai());
|
||||
@ -587,8 +591,10 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
|
||||
List<Integer> listRuangEks = splitDataSettingDatafixed("IdRuanganEksekutif");
|
||||
List<Integer> listKonsulTapiVisit = splitDataSettingDatafixed("konsulTapiVisit");
|
||||
|
||||
List<Integer> listIdNonjadwal = shiftKerjaDao.findListNonjadwal();
|
||||
|
||||
List<Map<String, Object>> dataLayanan = ikiDanRemunerasiDao.getDataLogbookDokter(mf.format(new Date(bulan)),
|
||||
Master.JenisPegawai.DOKTER, idPegawai, Arrays.asList(Master.JenisProduk.NONTINDAKAN),
|
||||
listIdNonjadwal, Master.JenisPegawai.DOKTER, idPegawai, Arrays.asList(Master.JenisProduk.NONTINDAKAN),
|
||||
Master.Produk.KARCIS);
|
||||
|
||||
List<Map<String, Object>> dataSkor = skoringTindakanMedisDao
|
||||
@ -774,8 +780,10 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
|
||||
List<Integer> listRuangEks = splitDataSettingDatafixed("IdRuanganEksekutif");
|
||||
List<Integer> listKonsulTapiVisit = splitDataSettingDatafixed("konsulTapiVisit");
|
||||
|
||||
List<Integer> listIdNonjadwal = shiftKerjaDao.findListNonjadwal();
|
||||
|
||||
List<Map<String, Object>> dataLayanan = ikiDanRemunerasiDao.findDetailPasienLogbook(idProduk, tglPelayanan,
|
||||
Master.JenisPegawai.DOKTER, idPegawai, Arrays.asList(Master.JenisProduk.NONTINDAKAN),
|
||||
listIdNonjadwal, Master.JenisPegawai.DOKTER, idPegawai, Arrays.asList(Master.JenisProduk.NONTINDAKAN),
|
||||
Master.Produk.KARCIS);
|
||||
|
||||
for (Map<String, Object> mapLayanan : dataLayanan) {
|
||||
|
||||
@ -46,7 +46,7 @@ public class TargetLayananGenerating extends LocaleController<TargetLayananVO> {
|
||||
try {
|
||||
if (CommonUtil.isNotNullOrEmpty(remunerasiService)) {
|
||||
LOGGER.info("Task Target Layanan : Running Generate Target Layanan");
|
||||
remunerasiService.autoSaveTargetCapaianLayanan(new SimpleDateFormat("yyyy-MM").format(new Date()),
|
||||
remunerasiService.autoSaveTargetCapaianLayananJamKerja(new SimpleDateFormat("yyyy-MM").format(new Date()),
|
||||
null);
|
||||
} else {
|
||||
LOGGER.warn("Task Target Layanan : Undefined service");
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user