- penambahan kondisi kedudukan inactive login pada perhitungan target layanan dokter otomatis
- perbaikan service penentuan jumlah anggota kelompok kerja untuk pembagian target layanan dokter per individu - perbaikan penentuan iki dan kriteria dari mapping saat pencarian penilaian kinerja individu - perbaikan penentuan iki dari mapping saat pencarian dashboard pencatatan kinerja
This commit is contained in:
parent
f589bc92b6
commit
f91c28db49
@ -113,9 +113,9 @@ public interface IkiDanRemunerasiDao extends PagingAndSortingRepository<IkiDanRe
|
||||
+ "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 pg.kategoryPegawaiId in (:listKategoriRemun) "
|
||||
+ "and mpju.unitKerjaPegawaiId in (:listKsmId) " + "and jb.levelJabatan = 5 "
|
||||
+ "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 pg.kedudukanId not in (:listInactiveId) " + "and mpju.unitKerjaPegawaiId in (:listKsmId) "
|
||||
+ "and jb.levelJabatan = 5 " + "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 ((pd.kelompokPasienId in (:listBpjsId) or (pd.kelompokPasienId = :asuransiLainId and pd.rekananId = :jaminanKemenkesId)) "
|
||||
@ -130,7 +130,8 @@ public interface IkiDanRemunerasiDao extends PagingAndSortingRepository<IkiDanRe
|
||||
@Param("tglAkhir") Date tglAkhir, @Param("psbbAwal") Date psbbAwal, @Param("psbbAkhir") Date psbbAkhir,
|
||||
@Param("listNonjadwalId") List<Integer> listIdNonjadwal, @Param("jenisPegawaiId") Integer idJenisPegawai,
|
||||
@Param("listDepartemenId") List<Integer> listIdDepartemen,
|
||||
@Param("listKategoriRemun") List<Integer> listKategoriRemun, @Param("listKsmId") List<Integer> listIdKsm,
|
||||
@Param("listKategoriRemun") List<Integer> listKategoriRemun,
|
||||
@Param("listInactiveId") List<Integer> listIdInactive, @Param("listKsmId") List<Integer> listIdKsm,
|
||||
@Param("listNontindakanId") List<Integer> listIdNontindakan, @Param("listBpjsId") List<Integer> listIdBpjs,
|
||||
@Param("asuransiLainId") Integer idAsuransiLain, @Param("jaminanKemenkesId") Integer idJaminanKemenkes,
|
||||
@Param("karcisId") Integer idKarcis);
|
||||
@ -156,12 +157,13 @@ public interface IkiDanRemunerasiDao extends PagingAndSortingRepository<IkiDanRe
|
||||
+ "and ((to_char(pp.tglPelayanan,'dy') in ('mon','tue','wed','thu') and (to_char(pp.tglPelayanan,'HH24:MI:ss') between (case when pp.tglPelayanan between cast(:psbbAwal as timestamp) and cast(:psbbAkhir as timestamp) and ru.departemenId in (:listDepartemenId) then '14:00:01' else '15:30:01' end) and '23:59:59' or to_char(pp.tglPelayanan,'HH24:MI:ss') between '00:00:00' and '07:00:00') and sk.id not in (:listNonjadwalId)) "
|
||||
+ "or (to_char(pp.tglPelayanan,'dy') in ('fri') and (to_char(pp.tglPelayanan,'HH24:MI:ss') between (case when pp.tglPelayanan between cast(:psbbAwal as timestamp) and cast(:psbbAkhir as timestamp) and ru.departemenId in (:listDepartemenId) then '15:30:01' else '16:00:01'end) and '23:59:59' or to_char(pp.tglPelayanan,'HH24:MI:ss') between '00:00:00' and '07:00:00') and sk.id not in (:listNonjadwalId)) "
|
||||
+ "or to_char(pp.tglPelayanan,'dy') in ('sat','sun') " + "or sk.id in (:listNonjadwalId))) "
|
||||
+ "and pg.jenisPegawaiId = :jenisPegawaiId " + "and jb.kelompokJabatanId in (3,4) "
|
||||
+ "and djp.jenisProdukId not in (:listNontindakanId) " + "and pr.id <> :karcisId "
|
||||
+ "order by pg.namaLengkap, pr.id")
|
||||
+ "and pg.jenisPegawaiId = :jenisPegawaiId " + "and pg.kedudukanId not in (:listInactiveId) "
|
||||
+ "and jb.kelompokJabatanId in (3,4) " + "and djp.jenisProdukId not in (:listNontindakanId) "
|
||||
+ "and pr.id <> :karcisId " + "order by pg.namaLengkap, pr.id")
|
||||
public List<Map<String, Object>> getDataLayananLuarJamKerja(@Param("tglAwal") Date tglAwal,
|
||||
@Param("tglAkhir") Date tglAkhir, @Param("psbbAwal") Date psbbAwal, @Param("psbbAkhir") Date psbbAkhir,
|
||||
@Param("listNonjadwalId") List<Integer> listIdNonjadwal, @Param("jenisPegawaiId") Integer idJenisPegawai,
|
||||
@Param("listInactiveId") List<Integer> listIdInactive,
|
||||
@Param("listDepartemenId") List<Integer> listIdDepartemen, @Param("listKsmId") List<Integer> listIdKsm,
|
||||
@Param("listNontindakanId") List<Integer> listIdNontindakan, @Param("listBpjsId") List<Integer> listIdBpjs,
|
||||
@Param("asuransiLainId") Integer idAsuransiLain, @Param("jaminanKemenkesId") Integer idJaminanKemenkes,
|
||||
|
||||
@ -16,7 +16,11 @@ public interface IndikatorKinerjaDetailDao extends PagingAndSortingRepository<In
|
||||
@Query("select new Map(ikd.id as id,ikd.detailIndikator as detailIndikator) " + "from IndikatorKinerjaDetail ikd "
|
||||
+ "where ikd.statusEnabled is true and ikd.id in (:listDetailId) " + "order by ikd.detailIndikator")
|
||||
public List<Map<String, Object>> findByListId(@Param("listDetailId") List<Integer> listIdDetail);
|
||||
|
||||
|
||||
@Query("select ikd " + "from IndikatorKinerjaDetail ikd " + "where ikd.statusEnabled is true "
|
||||
+ "and ikd.indikatorKinerjaId = :indikatorId")
|
||||
public List<IndikatorKinerjaDetail> findByIndikator(@Param("indikatorId") Integer idIndikator);
|
||||
|
||||
@Query("select ikd.detailIndikator from IndikatorKinerjaDetail ikd where ikd.id = :indikatorId")
|
||||
public String findNamaIndikator(@Param("indikatorId") Integer idIndikator);
|
||||
|
||||
|
||||
@ -479,9 +479,13 @@ public interface MapPegawaiJabatanToUnitKerjaDao extends CrudRepository<MapPegaw
|
||||
+ "and mj.pegawaiId = :pegawaiId " + "order by mj.nilaiJabatan desc, " + "mj.isPrimary desc")
|
||||
List<Map<String, Object>> findNilaiJabatanByPegawai(@Param("pegawaiId") Integer idPegawai);
|
||||
|
||||
@Query("select new Map(mj.pegawaiId as pegawaiId,mj.jabatanId as jabatanId) "
|
||||
+ "from MapPegawaiJabatanToUnitKerja mj " + "where mj.statusEnabled is true "
|
||||
+ "and mj.subUnitKerjaPegawaiId = :subunitKerjaId")
|
||||
List<Map<String, Object>> findPegawaiJabatanBySubunitKerja(@Param("subunitKerjaId") Integer idSubunitKerja);
|
||||
@Query("select distinct new Map(mj.pegawaiId as pegawaiId,mj.jabatanId as jabatanId) "
|
||||
+ "from MapPegawaiJabatanToUnitKerja mj " + "inner join mj.pegawai pg " + "where mj.statusEnabled is true "
|
||||
+ "and pg.statusEnabled is true " + "and mj.subUnitKerjaPegawaiId = :kelompokKerja "
|
||||
+ "and pg.kategoryPegawaiId in (:remun) " + "and pg.jenisPegawaiId = :dokter "
|
||||
+ "and pg.kedudukanId not in (:nonAktif)")
|
||||
List<Map<String, Object>> findPegawaiJabatanByKelompokKerja(@Param("kelompokKerja") Integer idKK,
|
||||
@Param("remun") List<Integer> listIdRemun, @Param("dokter") Integer idDokter,
|
||||
@Param("nonAktif") List<Integer> listIdNonAktif);
|
||||
|
||||
}
|
||||
|
||||
@ -546,9 +546,9 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
||||
List<Map<String, Object>> dataRaw = ikiDanRemunerasiDao.getDataLayananJamKerja(calTglAwal.getTime(),
|
||||
bulan.getTime(), pssbAwal, pssbAkhir, listIdNonjadwal, Master.JenisPegawai.DOKTER,
|
||||
Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN), Arrays.asList(Master.KategoryPegawai.REMUN),
|
||||
Arrays.asList(Master.UnitKerja.KSM), Arrays.asList(Master.JenisProduk.NONTINDAKAN),
|
||||
Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS), Master.KelompokPasien.ASURANSI_LAIN,
|
||||
Master.Rekanan.JAMINAN_KEMENKES, Master.Produk.KARCIS);
|
||||
Arrays.asList(Master.KedudukanPegawai.INACTIVE_LOGIN), Arrays.asList(Master.UnitKerja.KSM),
|
||||
Arrays.asList(Master.JenisProduk.NONTINDAKAN), Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS),
|
||||
Master.KelompokPasien.ASURANSI_LAIN, Master.Rekanan.JAMINAN_KEMENKES, Master.Produk.KARCIS);
|
||||
|
||||
// filter detail jenis produk
|
||||
for (Map<String, Object> map : dataRaw) {
|
||||
@ -970,7 +970,9 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
||||
targetLayananDao.save(targetLayanan);
|
||||
if (sdf.format(targetLayanan.getPeriode()).equals(sdf.format(periodeHitung))) {
|
||||
List<Map<String, Object>> dataPegawai = mapPegawaiJabatanToUnitKerjaDao
|
||||
.findPegawaiJabatanBySubunitKerja(targetLayanan.getSubUnitKerjaPegawai().getId());
|
||||
.findPegawaiJabatanByKelompokKerja(targetLayanan.getSubUnitKerjaPegawai().getId(),
|
||||
Arrays.asList(Master.KategoryPegawai.REMUN), Master.JenisPegawai.DOKTER,
|
||||
Arrays.asList(Master.KedudukanPegawai.INACTIVE_LOGIN));
|
||||
|
||||
Double detailTarget = Math.floor(targetLayanan.getTarget() / dataPegawai.size());
|
||||
if (detailTarget < 1.0) {
|
||||
@ -1060,6 +1062,7 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
||||
|
||||
List<Map<String, Object>> dataRaw = ikiDanRemunerasiDao.getDataLayananLuarJamKerja(calTglAwal.getTime(),
|
||||
bulan.getTime(), pssbAwal, pssbAkhir, listIdNonjadwal, Master.JenisPegawai.DOKTER,
|
||||
Arrays.asList(Master.KedudukanPegawai.INACTIVE_LOGIN),
|
||||
Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN), Arrays.asList(Master.UnitKerja.KSM),
|
||||
Arrays.asList(Master.JenisProduk.NONTINDAKAN), Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS),
|
||||
Master.KelompokPasien.ASURANSI_LAIN, Master.Rekanan.JAMINAN_KEMENKES, Master.Produk.KARCIS);
|
||||
|
||||
@ -422,21 +422,26 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
|
||||
if (CommonUtil.isNotNullOrEmpty(detailIndikator2)) {
|
||||
map.put("detail", detailIndikator2);
|
||||
} else {
|
||||
IndikatorKinerjaDetail ikd = indikatorKinerjaDetailDao.findOne(17);
|
||||
Jabatan jb = jabatanDao.findOne(idJabatan);
|
||||
Pegawai pg = pegawaiDao.findOne(idPegawai);
|
||||
List<IndikatorKinerjaDetail> ikds = indikatorKinerjaDetailDao
|
||||
.findByIndikator(Integer.valueOf(map.get("indikatorId").toString()));
|
||||
List<LogbookKinerjaDokter> lkds = new ArrayList<>();
|
||||
for (IndikatorKinerjaDetail ikd : ikds) {
|
||||
Jabatan jb = jabatanDao.findOne(idJabatan);
|
||||
Pegawai pg = pegawaiDao.findOne(idPegawai);
|
||||
|
||||
LogbookKinerjaDokter lkd = new LogbookKinerjaDokter();
|
||||
lkd.setBulan(new Date(bulan));
|
||||
lkd.setDetailTarget(70.0);
|
||||
lkd.setKdProfile((short) 0);
|
||||
lkd.setStatusEnabled(true);
|
||||
lkd.setTglHitung(new Date());
|
||||
lkd.setIndikatorDetail(ikd);
|
||||
lkd.setJabatan(jb);
|
||||
lkd.setPegawai(pg);
|
||||
LogbookKinerjaDokter model = logbookKinerjaDokterDao.save(lkd);
|
||||
if (CommonUtil.isNotNullOrEmpty(model)) {
|
||||
LogbookKinerjaDokter lkd = new LogbookKinerjaDokter();
|
||||
lkd.setBulan(new Date(bulan));
|
||||
lkd.setDetailTarget(70.0);
|
||||
lkd.setKdProfile((short) 0);
|
||||
lkd.setStatusEnabled(true);
|
||||
lkd.setTglHitung(new Date());
|
||||
lkd.setIndikatorDetail(ikd);
|
||||
lkd.setJabatan(jb);
|
||||
lkd.setPegawai(pg);
|
||||
lkds.add(lkd);
|
||||
}
|
||||
Iterable<LogbookKinerjaDokter> models = logbookKinerjaDokterDao.save(lkds);
|
||||
if (CommonUtil.isNotNullOrEmpty(models)) {
|
||||
List<Map<String, Object>> detailIndikator3 = logbookKinerjaDokterDao
|
||||
.findDetailKontrakKinerja(df.format(new Date(bulan)), idJabatan, idPegawai,
|
||||
Integer.valueOf(map.get("indikatorId").toString()));
|
||||
@ -644,9 +649,17 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
|
||||
}
|
||||
|
||||
Double iki = 0.0;
|
||||
Map<String, Object> acuanIndeks = tabelAcuanIndeksIKIDao.findIKI(totAllPersen);
|
||||
if (CommonUtil.isNotNullOrEmpty(acuanIndeks)) {
|
||||
iki = Double.valueOf(acuanIndeks.get("indeks").toString());
|
||||
List<Map<String, Object>> acuanIndeks = tabelAcuanIndeksIKIDao.findAllAcuanIndeks();
|
||||
for (Map<String, Object> aiki : acuanIndeks) {
|
||||
if ((Double.valueOf(aiki.get("nilaiBawah").toString()) < Double.parseDouble(df.format(totAllPersen))
|
||||
&& Double.parseDouble(df.format(totAllPersen)) <= Double
|
||||
.valueOf(aiki.get("nilaiAtas").toString()))
|
||||
|| (Double.parseDouble(df.format(totAllPersen)) > 1000
|
||||
&& Double.valueOf(aiki.get("nilaiAtas").toString()) == 1000)) {
|
||||
iki = Double.valueOf(aiki.get("iki").toString());
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
double targetRupiahP1 = nilaiJabatan * Master.Remunerasi.IKI_STANDAR * pir * Master.Remunerasi.PERSEN_P1;
|
||||
@ -2049,10 +2062,17 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
|
||||
|
||||
Double iki = 0.0;
|
||||
String kriteria = "-";
|
||||
Map<String, Object> acuanIndeks = tabelAcuanIndeksIKIDao.findIKI(Double.parseDouble(df.format(tHasil)));
|
||||
if (CommonUtil.isNotNullOrEmpty(acuanIndeks)) {
|
||||
iki = Double.valueOf(acuanIndeks.get("indeks").toString());
|
||||
kriteria = acuanIndeks.get("kriteria").toString();
|
||||
List<Map<String, Object>> acuanIndeks = tabelAcuanIndeksIKIDao.findAllAcuanIndeks();
|
||||
for (Map<String, Object> aiki : acuanIndeks) {
|
||||
if ((Double.valueOf(aiki.get("nilaiBawah").toString()) < Double.parseDouble(df.format(tHasil))
|
||||
&& Double.parseDouble(df.format(tHasil)) <= Double.valueOf(aiki.get("nilaiAtas").toString()))
|
||||
|| (Double.parseDouble(df.format(tHasil)) > 1000
|
||||
&& Double.valueOf(aiki.get("nilaiAtas").toString()) == 1000)) {
|
||||
iki = Double.valueOf(aiki.get("iki").toString());
|
||||
kriteria = aiki.get("kriteria").toString();
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
result.put("tBobot", tBobot);
|
||||
@ -2178,7 +2198,7 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
|
||||
Double iki = 0.00;
|
||||
String kriteria = "";
|
||||
for (Map<String, Object> aiki : acuanIndeks) {
|
||||
if ((Double.valueOf(aiki.get("nilaiBawah").toString()) <= Double
|
||||
if ((Double.valueOf(aiki.get("nilaiBawah").toString()) < Double
|
||||
.parseDouble(df.format(tHasil))
|
||||
&& Double.parseDouble(df.format(tHasil)) <= Double
|
||||
.valueOf(aiki.get("nilaiAtas").toString()))
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user