diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java index a9609be9..9f661fd5 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java @@ -169,6 +169,7 @@ public final class Master { public static final class KelompokJabatan { public static final Integer[] DIR_MS = { 3, 9, 10 }; + public static final Integer PENUNJANG_MEDIK = 6; public static final Integer[] RANGE_REMUN = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; } @@ -393,7 +394,6 @@ public final class Master { } public static final class StatusPerkawinan { - public static final Integer BELUM_KAWIN = 1; public static final Integer CERAI_HIDUP = 4; public static final Integer CERAI_MATI = 5; public static final Integer KAWIN = 2; diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/LogbookKinerjaDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/LogbookKinerjaDao.java index 0d17b3e0..71c2f3c1 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/LogbookKinerjaDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/LogbookKinerjaDao.java @@ -122,6 +122,13 @@ public interface LogbookKinerjaDao extends PagingAndSortingRepository listIdKategoriPegawai, @Param("listKelompokJabatabId") List listIdKelompokJabatan); + @Query("select distinct new Map(pg.id as id,pg.namaLengkap as namaLengkap," + "pg.tglMasuk as tglMasuk," + + "pg.jenisPegawaiId as jenisPegawaiId) " + "from MapPegawaiJabatanToUnitKerja mj " + + "inner join mj.pegawai pg " + "inner join mj.jabatan jb " + "where mj.statusEnabled is true " + + "and pg.statusEnabled is true " + "and jb.statusEnabled is true " + + "and jb.kelompokJabatanId in (:KelompokJabatabId)") + List> findAksesPegawaiNakesLain(@Param("KelompokJabatabId") Integer IdKelompokJabatan); + @Query("select distinct new Map(pgb.id as id,pgb.namaLengkap as namaLengkap,pgb.tglMasuk as tglMasuk) " + "from MapPegawaiJabatanToUnitKerja mjp, MapPegawaiJabatanToUnitKerja mja " + "inner join mjp.pegawai pgb " + "inner join mjp.atasanLangsung pg " + "inner join mja.jabatan jb " 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 08a2a08b..b19688af 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 @@ -243,6 +243,12 @@ public interface MapPegawaiJabatanToUnitKerjaDao extends JpaRepository> getMapUnitKerjaByLevelJabatan(@Param("levelJabatan") Integer levelJabatan, @Param("sublevelJabatan") Integer sublevelJabatan); + @Query("select distinct new Map(uk.id as id,uk.name as name) " + "from MapPegawaiJabatanToUnitKerja mp " + + "left join mp.jabatan jb with jb.statusEnabled is true " + + "left join mp.unitKerjaPegawai uk with uk.statusEnabled is true " + "where mp.statusEnabled is true " + + "and jb.kelompokJabatanId = :KelompokJabatabId " + "and uk.id is not null " + "order by uk.name") + List> getMapUnitKerjaByKelompokJabatan(@Param("KelompokJabatabId") Integer IdKelompokJabatan); + @Query("select distinct new Map(mapp.unitKerjaPegawaiId as idUnit, jab.levelJabatan as levelJabatan, jab.subLevelJabatan as subLevelJabatan) " + "from MapPegawaiJabatanToUnitKerja mapp " + "left join mapp.jabatan jab with jab.statusEnabled is true " + "where mapp.statusEnabled is true " + "and mapp.pegawaiId = :pegawaiId ") @@ -507,4 +513,10 @@ public interface MapPegawaiJabatanToUnitKerjaDao extends JpaRepository findPegawaiIdBySubUnitKerjaIn(@Param("subUnitKerjaIdIn") List subUnitKerjaIdIn); + + @Query(value = "select exists(select 1 from mappegawaijabatantounitkerja_m mj " + + "where mj.statusenabled is true and mj.objectpegawaifk = :pegawaiId " + + "and mj.objectjabatanfk in (:listJabatanId))", nativeQuery = true) + boolean existsByPegawaiIdAndJabatanIdIn(@Param("pegawaiId") Integer idPegawai, + @Param("listJabatanId") List idJabatanList); } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaServiceImpl.java index cebcbad7..7276bfef 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaServiceImpl.java @@ -28,6 +28,8 @@ import java.time.format.DateTimeFormatter; import java.util.*; import java.util.stream.Collectors; +import static com.jasamedika.medifirst2000.constants.Master.KelompokJabatan.PENUNJANG_MEDIK; + @Service("LogbookKinerjaService") public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements LogbookKinerjaService { @@ -883,6 +885,7 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb List> aksesByPenilai; List listPurnaWaktu = splitDataSettingDatafixed("kategoriPegawaiAksesAplikasiRemun"); + List listIdJabatanKetuaKomiteNakesLain = splitDataSettingDatafixed("idJabatanKetuaKomiteNakesLain"); List listIdSDM = pegawaiDao.getPegawaiSDMforCred(Master.UnitKerja.BAG_SDM); if (listIdSDM.contains(idPegawai)) { @@ -947,6 +950,19 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb } } } + if (mapPegawaiJabatanToUnitKerjaDao.existsByPegawaiIdAndJabatanIdIn(idPegawai, + listIdJabatanKetuaKomiteNakesLain)) { + List> aksesPegawaiNakesLain = logbookKinerjaDao + .findAksesPegawaiNakesLain(PENUNJANG_MEDIK); + for (Map map : aksesPegawaiNakesLain) { + map.put("isGranted", false); + if (CommonUtil.isNotNullOrEmpty(map.get("id")) + && !listIdPegawai.contains(Integer.parseInt(map.get("id").toString()))) { + listIdPegawai.add(Integer.parseInt(map.get("id").toString())); + result.add(map); + } + } + } if (CommonUtil.isNotNullOrEmpty(result)) { result.sort(Comparator.comparing(m -> (String) m.get("namaLengkap"), String.CASE_INSENSITIVE_ORDER)); @@ -3346,13 +3362,21 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb @Override public List> findJabatanKontrakVerifKinerja(Integer idPegawai, Integer idPegawaiLogin) { + List listIdJabatanKetuaKomiteNakesLain = splitDataSettingDatafixed("idJabatanKetuaKomiteNakesLain"); List> result = mapPegawaiJabatanToUnitKerjaDao.findJabLvlUkAtasan(idPegawai); + List> aksesPegawaiNakesLain = logbookKinerjaDao.findAksesPegawaiNakesLain(PENUNJANG_MEDIK); + boolean isAksesPegawaiNakes = aksesPegawaiNakesLain.stream() + .map(aksesPegawai -> Integer.parseInt(aksesPegawai.get("id").toString())) + .anyMatch(pgId -> pgId.equals(idPegawai)); for (Map map : result) { if ((CommonUtil.isNotNullOrEmpty(map.get("atasanId")) && map.get("atasanId").equals(idPegawaiLogin)) || (CommonUtil.isNotNullOrEmpty(map.get("penilaiId")) && map.get("penilaiId").equals(idPegawaiLogin)) || idPegawai.equals(idPegawaiLogin)) { map.put("isCariAkses", true); + } else if (mapPegawaiJabatanToUnitKerjaDao.existsByPegawaiIdAndJabatanIdIn(idPegawaiLogin, + listIdJabatanKetuaKomiteNakesLain) && isAksesPegawaiNakes) { + map.put("isCariAkses", true); } else { map.put("isCariAkses", false); } diff --git a/jasamedika-config/src/main/resources/jdbc.development.properties b/jasamedika-config/src/main/resources/jdbc.development.properties index 621c0e7f..5db229ff 100644 --- a/jasamedika-config/src/main/resources/jdbc.development.properties +++ b/jasamedika-config/src/main/resources/jdbc.development.properties @@ -8,11 +8,11 @@ hibernate.show_sql = true hikari.config.maximum.pool.size = 5 # DB Development -jdbc.url = jdbc:postgresql://192.168.12.3:5432/rsab_hk_22_01_24 +jdbc.url = jdbc:postgresql://192.168.12.3:5432/rsab_hk_24_08_20 jdbc.username = smart_user jdbc.password = 1miwhir3yr jdbc.serverName = 192.168.12.3 -jdbc.databaseName = rsab_hk_22_01_24 +jdbc.databaseName = rsab_hk_24_08_20 jdbc.portNumber = 5432 corePoolSizeAsyncConfigurer = 5 diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/MapPegawaiJabatanToUnitKerja.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/MapPegawaiJabatanToUnitKerja.java index 923d9f8c..ff708b89 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/MapPegawaiJabatanToUnitKerja.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/MapPegawaiJabatanToUnitKerja.java @@ -4,7 +4,6 @@ import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; @@ -14,14 +13,20 @@ import javax.persistence.Table; import com.fasterxml.jackson.annotation.JsonIgnore; import com.jasamedika.medifirst2000.base.BaseMaster; import com.jasamedika.medifirst2000.helper.Caption; +import lombok.Getter; +import lombok.Setter; +import static javax.persistence.GenerationType.SEQUENCE; + +@Getter +@Setter @Entity @Table(name = "MapPegawaiJabatanToUnitKerja_M") public class MapPegawaiJabatanToUnitKerja extends BaseMaster { private static final long serialVersionUID = 6341974918121262517L; @Id - @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "public.mapPegawaiJabatanToUnitKerja_m_id_seq") + @GeneratedValue(strategy = SEQUENCE, generator = "public.mapPegawaiJabatanToUnitKerja_m_id_seq") @SequenceGenerator(name = "public.mapPegawaiJabatanToUnitKerja_m_id_seq", sequenceName = "public.mapPegawaiJabatanToUnitKerja_m_id_seq", allocationSize = 1) @Column(name = "id") protected Integer id; @@ -94,7 +99,7 @@ public class MapPegawaiJabatanToUnitKerja extends BaseMaster { @Caption(value = "Pejabat Penilai Direksi") private String pejabatPenilaiDireksi; - @Column(name = "nilaijabatan", nullable = true) + @Column(name = "nilaijabatan") @Caption(value = "Nilai Jabatan") private Double nilaiJabatan; @@ -103,187 +108,10 @@ public class MapPegawaiJabatanToUnitKerja extends BaseMaster { @Caption(value = "Grade") private NilaiKelompokJabatan grade; - @Column(name = "objectgradefk", insertable = false, updatable = false, nullable = true) + @Column(name = "objectgradefk", insertable = false, updatable = false) private Integer gradeId; - @Column(name = "sumberdata", nullable = true) + @Column(name = "sumberdata") @Caption(value = "Sumber Data") private Integer sumberData; - - public SubUnitKerjaPegawai getSubUnitKerjaPegawai() { - return subUnitKerjaPegawai; - } - - public void setSubUnitKerjaPegawai(SubUnitKerjaPegawai subUnitKerjaPegawai) { - this.subUnitKerjaPegawai = subUnitKerjaPegawai; - } - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Integer getPegawaiId() { - return pegawaiId; - } - - public void setPegawaiId(Integer pegawaiId) { - this.pegawaiId = pegawaiId; - } - - public Integer getJabatanId() { - return jabatanId; - } - - public void setJabatanId(Integer jabatanId) { - this.jabatanId = jabatanId; - } - - public Integer getUnitKerjaPegawaiId() { - return unitKerjaPegawaiId; - } - - public void setUnitKerjaPegawaiId(Integer unitKerjaPegawaiId) { - this.unitKerjaPegawaiId = unitKerjaPegawaiId; - } - - public Integer getSubUnitKerjaPegawaiId() { - return subUnitKerjaPegawaiId; - } - - public void setSubUnitKerjaPegawaiId(Integer subUnitKerjaPegawaiId) { - this.subUnitKerjaPegawaiId = subUnitKerjaPegawaiId; - } - - public Boolean getIsCanCreateJadwal() { - return isCanCreateJadwal; - } - - public void setIsCanCreateJadwal(Boolean isCanCreateJadwal) { - this.isCanCreateJadwal = isCanCreateJadwal; - } - - public Boolean getIsPrimary() { - return isPrimary; - } - - public void setIsPrimary(Boolean isPrimary) { - this.isPrimary = isPrimary; - } - - public Pegawai getPegawai() { - return pegawai; - } - - public void setPegawai(Pegawai pegawai) { - this.pegawai = pegawai; - } - - public Jabatan getJabatan() { - return jabatan; - } - - public void setJabatan(Jabatan jabatan) { - this.jabatan = jabatan; - } - - public UnitKerjaPegawai getUnitKerjaPegawai() { - return unitKerjaPegawai; - } - - public void setUnitKerjaPegawai(UnitKerjaPegawai unitKerjaPegawai) { - this.unitKerjaPegawai = unitKerjaPegawai; - } - - public Boolean getIsMonitoring() { - return isMonitoring; - } - - public void setIsMonitoring(Boolean isMonitoring) { - this.isMonitoring = isMonitoring; - } - - public Pegawai getAtasanLangsung() { - return atasanLangsung; - } - - public void setAtasanLangsung(Pegawai atasanLangsung) { - this.atasanLangsung = atasanLangsung; - } - - public Integer getAtasanLangsungId() { - return atasanLangsungId; - } - - public void setAtasanLangsungId(Integer atasanLangsungId) { - this.atasanLangsungId = atasanLangsungId; - } - - public Pegawai getPejabatPenilai() { - return pejabatPenilai; - } - - public void setPejabatPenilai(Pegawai pejabatPenilai) { - this.pejabatPenilai = pejabatPenilai; - } - - public Integer getPejabatPenilaiId() { - return pejabatPenilaiId; - } - - public void setPejabatPenilaiId(Integer pejabatPenilaiId) { - this.pejabatPenilaiId = pejabatPenilaiId; - } - - public String getAtasanLangsungDireksi() { - return atasanLangsungDireksi; - } - - public void setAtasanLangsungDireksi(String atasanLangsungDireksi) { - this.atasanLangsungDireksi = atasanLangsungDireksi; - } - - public String getPejabatPenilaiDireksi() { - return pejabatPenilaiDireksi; - } - - public void setPejabatPenilaiDireksi(String pejabatPenilaiDireksi) { - this.pejabatPenilaiDireksi = pejabatPenilaiDireksi; - } - - public Double getNilaiJabatan() { - return nilaiJabatan; - } - - public void setNilaiJabatan(Double nilaiJabatan) { - this.nilaiJabatan = nilaiJabatan; - } - - public NilaiKelompokJabatan getGrade() { - return grade; - } - - public void setGrade(NilaiKelompokJabatan grade) { - this.grade = grade; - } - - public Integer getGradeId() { - return gradeId; - } - - public void setGradeId(Integer gradeId) { - this.gradeId = gradeId; - } - - public Integer getSumberData() { - return sumberData; - } - - public void setSumberData(Integer sumberData) { - this.sumberData = sumberData; - } - }