diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/custom/impl/PegawaiDaoCustomImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/custom/impl/PegawaiDaoCustomImpl.java index c74db247..a873e021 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/custom/impl/PegawaiDaoCustomImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/custom/impl/PegawaiDaoCustomImpl.java @@ -305,6 +305,12 @@ public class PegawaiDaoCustomImpl extends CoreDaoImpl implements Pegawa public List> findPegawaiCustom(String nama, Integer idUnitKerja, Integer idKedudukan, List listStatusPegawaiId, String periode, List listKedudukanException) { StringBuffer buffer = new StringBuffer(); + List> list = new ArrayList<>(); + + List listPegawaiByUnitKerja = pegawaiDao.getPegawaiByIdUnitKerja(idUnitKerja); + if (CommonUtil.isNullOrEmpty(listPegawaiByUnitKerja)) { + return list; + } buffer.append("select new map (pegawai.id as idPegawai," + "pegawai.nama as nama," + "pegawai.namaLengkap as namaLengkap," + "pegawai.tglLahir as tglLahir," @@ -346,7 +352,7 @@ public class PegawaiDaoCustomImpl extends CoreDaoImpl implements Pegawa + "shiftKerja.id as idKelompokShiftKerja," + "statusPegawai.statusPegawai as statusPegawai," + "statusKawin.statusPerkawinan as statusKawin," + "statusPerkawinanPegawai.statusPerkawinan as statusPerkawinanPegawai," + "suku.suku as suku," - + "typePegawai.typePegawai as typePegawai," + "pegawai.statusEnabled as statusEnabled)" + + "typePegawai.typePegawai as typePegawai," + "pegawai.statusEnabled as statusEnabled) " + "from Pegawai pegawai " + "left join pegawai.detailKategoryPegawai detailKategoryPegawai " + "left join pegawai.agama agama " + "left join pegawai.detailKelompokJabatan kelompokJabatan " + "left join pegawai.dokumen dokumen " + "left join pegawai.eselon eselon " @@ -384,7 +390,8 @@ public class PegawaiDaoCustomImpl extends CoreDaoImpl implements Pegawa buffer.append("and lower(pegawai.nama) like lower ('%" + nama + "%') "); } - if (CommonUtil.isNotNullOrEmpty(idUnitKerja)) { + if (CommonUtil.isNotNullOrEmpty(idUnitKerja) && CommonUtil.isNotNullOrEmpty(listPegawaiByUnitKerja) + && listPegawaiByUnitKerja.size() > 0) { buffer.append("and pegawai.id in (:listPegawaiByUnitKerja) "); } @@ -419,8 +426,8 @@ public class PegawaiDaoCustomImpl extends CoreDaoImpl implements Pegawa query.setParameter("nonSdmKategory", Arrays.asList(Master.KategoryPegawai.NONSDM)); } - if (CommonUtil.isNotNullOrEmpty(idUnitKerja)) { - List listPegawaiByUnitKerja = pegawaiDao.getPegawaiByIdUnitKerja(idUnitKerja); + if (CommonUtil.isNotNullOrEmpty(idUnitKerja) && CommonUtil.isNotNullOrEmpty(listPegawaiByUnitKerja) + && listPegawaiByUnitKerja.size() > 0) { query.setParameter("listPegawaiByUnitKerja", listPegawaiByUnitKerja); } @@ -438,9 +445,7 @@ public class PegawaiDaoCustomImpl extends CoreDaoImpl implements Pegawa query.setParameter("periode", periode); } - List> list = query.getResultList(); - - return list; + return query.getResultList(); } @Override