- perbaikan service hitung target pelayanan medis otomatis karena harga diskon null dan filter detail jenis produk

- penambahan kondisi kategori remunerasi dan level jabatan dokter untuk filter perhitungan target pelayanan medis otomatis
This commit is contained in:
Salman Manoe 2021-09-29 21:07:53 +07:00
parent 487dcec699
commit 7879fb6ddb
2 changed files with 37 additions and 33 deletions

View File

@ -100,7 +100,7 @@ public interface IkiDanRemunerasiDao extends PagingAndSortingRepository<IkiDanRe
// Target_pelayanan_jam_kerja
@Query("select distinct new Map(ppp.ObjectJenisPetugasPeId as jenisPetugasId," + "pg.id as pegawaiId,"
+ "pp.noRec as noRec,pp.tglPelayanan as tglPelayanan,pp.hargaDiscount as hargaDiskon,pp.jumlah as jumlahTindakan,"
+ "pp.noRec as noRec,pp.tglPelayanan as tglPelayanan,coalesce(pp.hargaDiscount,0) as hargaDiskon,pp.jumlah as jumlahTindakan,"
+ "su.id as idKelompokKerja,su.name as kelompokKerja,"
+ "pr.id as idTindakan,pr.namaProduk as namaTindakan," + "djp.id as djpId,"
+ "ru.departemenId as idDepartemen,ru.id as idRuangan," + "pd.diskonPegawai as statusDiskon) "
@ -108,13 +108,15 @@ public interface IkiDanRemunerasiDao extends PagingAndSortingRepository<IkiDanRe
+ "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 "
+ "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 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 "
+ "left join mpju.jabatan jb " + "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 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 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)) "
+ "or (((pd.kelompokPasienId not in (:listBpjsId) and pd.kelompokPasienId <> :asuransiLainId and pd.rekananId is not null and pd.rekananId <> :jaminanKemenkesId) "
@ -127,14 +129,15 @@ public interface IkiDanRemunerasiDao extends PagingAndSortingRepository<IkiDanRe
public List<Map<String, Object>> getDataLayananJamKerja(@Param("tglAwal") Date tglAwal,
@Param("psbbAwal") Date psbbAwal, @Param("psbbAkhir") Date psbbAkhir, @Param("tglAkhir") Date tglAkhir,
@Param("listNonjadwalId") List<Integer> listIdNonjadwal, @Param("jenisPegawaiId") Integer idJenisPegawai,
@Param("listDepartemenId") List<Integer> listIdDepartemen, @Param("listKsmId") List<Integer> listIdKsm,
@Param("listDepartemenId") List<Integer> listIdDepartemen,
@Param("listKategoriRemun") List<Integer> listKategoriRemun, @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);
// 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,"
+ "pp.noRec as noRec,pp.tglPelayanan as tglPelayanan,coalesce(pp.hargaDiscount,0) as hargaDiskon,pp.jumlah as jumlahTindakan,"
+ "pg.id as pegawaiId,pg.namaLengkap as namaLengkap," + "jb.id as jabatanId,jb.namaJabatan as namaJabatan,"
+ "pr.id as idTindakan,pr.namaProduk as namaTindakan," + "djp.id as djpId,"
+ "ru.departemenId as idDepartemen,ru.id as idRuangan," + "pd.diskonPegawai as statusDiskon) "

View File

@ -545,15 +545,16 @@ 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.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.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);
// filter detail jenis produk
for (Map<String, Object> map : dataRaw) {
if (listIdDokterLabPA.contains(map.get("pegawaiId"))) {
List<Integer> listIdTempLabPA = listIdDJPLabPA;
List<Integer> listIdTempAdmPK = listIdDJPAdmPK;
List<Integer> listIdTempLabPA = new ArrayList<Integer>(listIdDJPLabPA);
List<Integer> listIdTempAdmPK = new ArrayList<Integer>(listIdDJPAdmPK);
if (listIdLaboranRadiolog.contains(map.get("pegawaiId"))) {
listIdTempAdmPK.removeAll(listIdTempLabPA);
if (CommonUtil.isNotNullOrEmpty(listIdTempAdmPK)) {
@ -564,8 +565,8 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
dataLayananRaw.add(map);
}
} else if (listIdDokterLabPK.contains(map.get("pegawaiId"))) {
List<Integer> listIdTempLabPK = listIdDJPLabPK;
List<Integer> listIdTempAdmPK = listIdDJPAdmPK;
List<Integer> listIdTempLabPK = new ArrayList<Integer>(listIdDJPLabPK);
List<Integer> listIdTempAdmPK = new ArrayList<Integer>(listIdDJPAdmPK);
if (listIdLaboranRadiolog.contains(map.get("pegawaiId"))) {
listIdTempAdmPK.removeAll(listIdTempLabPK);
if (CommonUtil.isNotNullOrEmpty(listIdTempAdmPK)) {
@ -576,8 +577,8 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
dataLayananRaw.add(map);
}
} else if (listIdDokterRad.contains(map.get("pegawaiId"))) {
List<Integer> listIdTempRad = listIdDJPRad;
List<Integer> listIdTempAdmPK = listIdDJPAdmPK;
List<Integer> listIdTempRad = new ArrayList<Integer>(listIdDJPRad);
List<Integer> listIdTempAdmPK = new ArrayList<Integer>(listIdDJPAdmPK);
if (listIdLaboranRadiolog.contains(map.get("pegawaiId"))) {
listIdTempAdmPK.removeAll(listIdTempRad);
if (CommonUtil.isNotNullOrEmpty(listIdTempAdmPK)) {
@ -588,8 +589,8 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
dataLayananRaw.add(map);
}
} else if (listIdDJPUtama.contains(map.get("djpId"))) {
List<Integer> listIdTempUtama = listIdDJPUtama;
List<Integer> listIdTempAdmPK = listIdDJPAdmPK;
List<Integer> listIdTempUtama = new ArrayList<Integer>(listIdDJPUtama);
List<Integer> listIdTempAdmPK = new ArrayList<Integer>(listIdDJPAdmPK);
if (listIdLaboranRadiolog.contains(map.get("pegawaiId"))) {
listIdTempAdmPK.removeAll(listIdTempUtama);
if (CommonUtil.isNotNullOrEmpty(listIdTempAdmPK)) {
@ -600,8 +601,8 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
dataLayananRaw.add(map);
}
} else if (!listIdDJPUtama.contains(map.get("djpId"))) {
List<Integer> listIdTempUtama = listIdDJPUtama;
List<Integer> listIdTempAdmPK = listIdDJPAdmPK;
List<Integer> listIdTempUtama = new ArrayList<Integer>(listIdDJPUtama);
List<Integer> listIdTempAdmPK = new ArrayList<Integer>(listIdDJPAdmPK);
if (listIdLaboranRadiolog.contains(map.get("pegawaiId"))) {
listIdTempAdmPK.removeAll(listIdTempUtama);
if (CommonUtil.isNotNullOrEmpty(listIdTempAdmPK)) {
@ -1066,8 +1067,8 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
// filter detail jenis produk
for (Map<String, Object> map : dataRaw) {
if (listIdDokterLabPA.contains(map.get("pegawaiId"))) {
List<Integer> listIdTempLabPA = listIdDJPLabPA;
List<Integer> listIdTempAdmPK = listIdDJPAdmPK;
List<Integer> listIdTempLabPA = new ArrayList<Integer>(listIdDJPLabPA);
List<Integer> listIdTempAdmPK = new ArrayList<Integer>(listIdDJPAdmPK);
if (listIdLaboranRadiolog.contains(map.get("pegawaiId"))) {
listIdTempAdmPK.removeAll(listIdTempLabPA);
if (CommonUtil.isNotNullOrEmpty(listIdTempAdmPK)) {
@ -1078,8 +1079,8 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
dataLayananRaw.add(map);
}
} else if (listIdDokterLabPK.contains(map.get("pegawaiId"))) {
List<Integer> listIdTempLabPK = listIdDJPLabPK;
List<Integer> listIdTempAdmPK = listIdDJPAdmPK;
List<Integer> listIdTempLabPK = new ArrayList<Integer>(listIdDJPLabPK);
List<Integer> listIdTempAdmPK = new ArrayList<Integer>(listIdDJPAdmPK);
if (listIdLaboranRadiolog.contains(map.get("pegawaiId"))) {
listIdTempAdmPK.removeAll(listIdTempLabPK);
if (CommonUtil.isNotNullOrEmpty(listIdTempAdmPK)) {
@ -1090,8 +1091,8 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
dataLayananRaw.add(map);
}
} else if (listIdDokterRad.contains(map.get("pegawaiId"))) {
List<Integer> listIdTempRad = listIdDJPRad;
List<Integer> listIdTempAdmPK = listIdDJPAdmPK;
List<Integer> listIdTempRad = new ArrayList<Integer>(listIdDJPRad);
List<Integer> listIdTempAdmPK = new ArrayList<Integer>(listIdDJPAdmPK);
if (listIdLaboranRadiolog.contains(map.get("pegawaiId"))) {
listIdTempAdmPK.removeAll(listIdTempRad);
if (CommonUtil.isNotNullOrEmpty(listIdTempAdmPK)) {
@ -1102,8 +1103,8 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
dataLayananRaw.add(map);
}
} else if (listIdDJPUtama.contains(map.get("djpId"))) {
List<Integer> listIdTempUtama = listIdDJPUtama;
List<Integer> listIdTempAdmPK = listIdDJPAdmPK;
List<Integer> listIdTempUtama = new ArrayList<Integer>(listIdDJPUtama);
List<Integer> listIdTempAdmPK = new ArrayList<Integer>(listIdDJPAdmPK);
if (listIdLaboranRadiolog.contains(map.get("pegawaiId"))) {
listIdTempAdmPK.removeAll(listIdTempUtama);
if (CommonUtil.isNotNullOrEmpty(listIdTempAdmPK)) {
@ -1114,8 +1115,8 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
dataLayananRaw.add(map);
}
} else if (!listIdDJPUtama.contains(map.get("djpId"))) {
List<Integer> listIdTempUtama = listIdDJPUtama;
List<Integer> listIdTempAdmPK = listIdDJPAdmPK;
List<Integer> listIdTempUtama = new ArrayList<Integer>(listIdDJPUtama);
List<Integer> listIdTempAdmPK = new ArrayList<Integer>(listIdDJPAdmPK);
if (listIdLaboranRadiolog.contains(map.get("pegawaiId"))) {
listIdTempAdmPK.removeAll(listIdTempUtama);
if (CommonUtil.isNotNullOrEmpty(listIdTempAdmPK)) {