Update service logbook kinerja

Penambahan hak akses view ketua komite nakes lain untuk dashboard pencatatan kinerja dan penilaian kinerja individu
This commit is contained in:
Salman Manoe 2024-08-22 14:34:20 +07:00
parent 230e1f33a2
commit 54a5900b54
6 changed files with 56 additions and 185 deletions

View File

@ -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;

View File

@ -122,6 +122,13 @@ public interface LogbookKinerjaDao extends PagingAndSortingRepository<LogbookKin
@Param("listKategoryPegawaiId") List<Integer> listIdKategoriPegawai,
@Param("listKelompokJabatabId") List<Integer> 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<Map<String, Object>> 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 "

View File

@ -243,6 +243,12 @@ public interface MapPegawaiJabatanToUnitKerjaDao extends JpaRepository<MapPegawa
List<Map<String, Object>> 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<Map<String, Object>> 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<MapPegawa
@Query("select mj.pegawaiId from MapPegawaiJabatanToUnitKerja mj " + "where mj.statusEnabled is true "
+ "and mj.subUnitKerjaPegawaiId in (:subUnitKerjaIdIn)")
Set<Integer> findPegawaiIdBySubUnitKerjaIn(@Param("subUnitKerjaIdIn") List<Integer> 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<Integer> idJabatanList);
}

View File

@ -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<Map<String, Object>> aksesByPenilai;
List<Integer> listPurnaWaktu = splitDataSettingDatafixed("kategoriPegawaiAksesAplikasiRemun");
List<Integer> listIdJabatanKetuaKomiteNakesLain = splitDataSettingDatafixed("idJabatanKetuaKomiteNakesLain");
List<Integer> 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<Map<String, Object>> aksesPegawaiNakesLain = logbookKinerjaDao
.findAksesPegawaiNakesLain(PENUNJANG_MEDIK);
for (Map<String, Object> 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<Map<String, Object>> findJabatanKontrakVerifKinerja(Integer idPegawai, Integer idPegawaiLogin) {
List<Integer> listIdJabatanKetuaKomiteNakesLain = splitDataSettingDatafixed("idJabatanKetuaKomiteNakesLain");
List<Map<String, Object>> result = mapPegawaiJabatanToUnitKerjaDao.findJabLvlUkAtasan(idPegawai);
List<Map<String, Object>> aksesPegawaiNakesLain = logbookKinerjaDao.findAksesPegawaiNakesLain(PENUNJANG_MEDIK);
boolean isAksesPegawaiNakes = aksesPegawaiNakesLain.stream()
.map(aksesPegawai -> Integer.parseInt(aksesPegawai.get("id").toString()))
.anyMatch(pgId -> pgId.equals(idPegawai));
for (Map<String, Object> 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);
}

View File

@ -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

View File

@ -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;
}
}