diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapPegawaiJabatanToUnitKerjaDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapPegawaiJabatanToUnitKerjaDao.java index 208140eb..8b34abf6 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapPegawaiJabatanToUnitKerjaDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapPegawaiJabatanToUnitKerjaDao.java @@ -261,6 +261,14 @@ public interface MapPegawaiJabatanToUnitKerjaDao extends JpaRepository> getMapSubunitKerjaMonitoringByUnitPegawai(@Param("idPegawai") Integer idPegawai, @Param("idUnitKerja") Integer idUnitKerja); + @Query("select distinct new Map(subunit.id as id, subunit.name as name) " + "from MapPegawaiJabatanToUnitKerja map " + + "left join map.jabatan jab " + "left join map.subUnitKerjaPegawai subunit " + "where map.statusEnabled is true " + + "and map.pegawaiId = :idPegawai " + "and map.unitKerjaPegawaiId = :idUnitKerja " + "and jb.kelompokJabatanId = :kelompokJabatanId " + + "order by subunit.name") + List> getMapSubunitKerjaMonitoringByUnitPegawaiAndKelompokJabatan(@Param("idPegawai") Integer idPegawai, + @Param("idUnitKerja") Integer idUnitKerja, + @Param("kelompokJabatanId") Integer IdKelompokJabatan); + @Query("select distinct mapp.pegawaiId from MapPegawaiJabatanToUnitKerja mapp " + "where mapp.statusEnabled is true and mapp.pegawaiId is not null and mapp.unitKerjaPegawaiId = :idUnitKerja") List getPegawaiByUnitKerja(@Param("idUnitKerja") Integer idUnitKerja); diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MapPegawaiJabatanToUnitKerjaServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MapPegawaiJabatanToUnitKerjaServiceImpl.java index 3bb946e9..95dd8162 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MapPegawaiJabatanToUnitKerjaServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MapPegawaiJabatanToUnitKerjaServiceImpl.java @@ -1447,10 +1447,11 @@ public class MapPegawaiJabatanToUnitKerjaServiceImpl extends BaseVoServiceImpl } @Override - public List> getMapSubunitKerjaByUnitPegawai(Integer idPegawai, Integer idUnitKerja) { + public List> getMapSubunitKerjaByUnitPegawai(Integer idPegawaiLogin, Integer idUnitKerja) { int lvlJabatan = 0; + List listIdJabatanKetuaKomiteNakesLain = splitDataSettingDatafixed("idJabatanKetuaKomiteNakesLain"); List> listLevelJabatanAndMonitoring = mapPegawaiJabatanToUnitKerjaDao - .getMappLevelJabatanAndMonitoring(idPegawai, idUnitKerja); + .getMappLevelJabatanAndMonitoring(idPegawaiLogin, idUnitKerja); if (CommonUtil.isNotNullOrEmpty(listLevelJabatanAndMonitoring)) { for (Map mapLj : listLevelJabatanAndMonitoring) { lvlJabatan = Integer.parseInt(mapLj.get("levelJabatan").toString()); @@ -1464,7 +1465,20 @@ public class MapPegawaiJabatanToUnitKerjaServiceImpl extends BaseVoServiceImpl if (lvlJabatan <= 3) { result = subUnitKerjaDao.getSubUnitKerjaCustomByUnitKerja(idUnitKerja); } else { - result = mapPegawaiJabatanToUnitKerjaDao.getMapSubunitKerjaMonitoringByUnitPegawai(idPegawai, idUnitKerja); + result = mapPegawaiJabatanToUnitKerjaDao.getMapSubunitKerjaMonitoringByUnitPegawai(idPegawaiLogin, + idUnitKerja); + } + + if (mapPegawaiJabatanToUnitKerjaDao.existsByPegawaiIdAndJabatanIdIn(idPegawaiLogin, + listIdJabatanKetuaKomiteNakesLain)) { + List> listSubUnitKerjaNakesLain = mapPegawaiJabatanToUnitKerjaDao + .getMapSubunitKerjaMonitoringByUnitPegawaiAndKelompokJabatan(idPegawaiLogin, idUnitKerja, + PENUNJANG_MEDIK); + List alreadyAdded = result.stream().map(rs -> Integer.parseInt(rs.get("id").toString())) + .collect(Collectors.toList()); + result.addAll(listSubUnitKerjaNakesLain.stream() + .filter(sk -> !alreadyAdded.contains(Integer.parseInt(sk.get("id").toString()))) + .collect(Collectors.toList())); } return result;