- perbaikan fitur sotk di kontrak kinerja hanya untuk pkwt, pegawai tetap, cpns, dan pns

- perbaikan fitur sotk atasan di verifikasi catatan kegiatan harian
- penyesuaian service get data kontrak kinerja jika ada data mapping indikator jabatan dihapus di menu tersebut
This commit is contained in:
salmanoe 2021-04-18 17:35:57 +07:00
parent 6b25124b4e
commit 45f04a3761
4 changed files with 66 additions and 17 deletions

View File

@ -83,23 +83,28 @@ public interface LogbookKinerjaDao extends PagingAndSortingRepository<LogbookKin
@Query("select distinct new Map(pg.id as id,pg.namaLengkap as namaLengkap) "
+ "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 pg.id = :pegawaiId")
List<Map<String, Object>> findAksesPegawaiByStaf(@Param("pegawaiId") Integer idPegawai);
+ "and pg.id = :pegawaiId " + "and pg.kategoryPegawaiId in (:listKategoryPegawaiId)")
List<Map<String, Object>> findAksesPegawaiByStaf(@Param("pegawaiId") Integer idPegawai,
@Param("listKategoryPegawaiId") List<Integer> listIdKategoriPegawai);
@Query("select distinct new Map(pgb.id as id,pgb.namaLengkap as namaLengkap) "
+ "from MapPegawaiJabatanToUnitKerja mjp, MapPegawaiJabatanToUnitKerja mja " + "inner join mjp.pegawai pgb "
+ "inner join mjp.atasanLangsung pg " + "inner join mja.jabatan jb "
+ "where mjp.atasanLangsungId = mja.pegawaiId " + "and mja.pegawaiId = pg.id "
+ "and mjp.statusEnabled is true " + "and mja.statusEnabled is true " + "and pgb.statusEnabled is true "
+ "and pg.statusEnabled is true " + "and jb.statusEnabled is true " + "and pg.id = :pegawaiId")
List<Map<String, Object>> findAksesPegawaiByAtasan(@Param("pegawaiId") Integer idPegawai);
+ "and pg.statusEnabled is true " + "and jb.statusEnabled is true " + "and pg.id = :pegawaiId "
+ "and pgb.kategoryPegawaiId in (:listKategoryPegawaiId)")
List<Map<String, Object>> findAksesPegawaiByAtasan(@Param("pegawaiId") Integer idPegawai,
@Param("listKategoryPegawaiId") List<Integer> listIdKategoriPegawai);
@Query("select distinct new Map(pgb.id as id,pgb.namaLengkap as namaLengkap) "
+ "from MapPegawaiJabatanToUnitKerja mjp, MapPegawaiJabatanToUnitKerja mjn " + "inner join mjp.pegawai pgb "
+ "inner join mjp.pejabatPenilai pg " + "inner join mjn.jabatan jb "
+ "where mjp.pejabatPenilaiId = mjn.pegawaiId " + "and mjn.pegawaiId = pg.id "
+ "and mjp.statusEnabled is true " + "and mjn.statusEnabled is true " + "and pgb.statusEnabled is true "
+ "and pg.statusEnabled is true " + "and jb.statusEnabled is true " + "and pg.id = :pegawaiId")
List<Map<String, Object>> findAksesPegawaiByPenilai(@Param("pegawaiId") Integer idPegawai);
+ "and pg.statusEnabled is true " + "and jb.statusEnabled is true " + "and pg.id = :pegawaiId "
+ "and pgb.kategoryPegawaiId in (:listKategoryPegawaiId)")
List<Map<String, Object>> findAksesPegawaiByPenilai(@Param("pegawaiId") Integer idPegawai,
@Param("listKategoryPegawaiId") List<Integer> listIdKategoriPegawai);
}

View File

@ -1051,4 +1051,10 @@ public interface PegawaiDao extends PagingAndSortingRepository<Pegawai, Integer>
@Query("select new Map(pg.id as id,pg.shiftKerjaId as shiftKerjaId) from Pegawai pg where pg.statusEnabled is true and pg.id in (:listIdPegawai)")
public List<Map<String, Object>> getListKelompokShiftKerja(@Param("listIdPegawai") List<Integer> listIdPegawai);
@Query("select new Map (pg.id as id,pg.namaLengkap as namaLengkap) " + "from Pegawai pg "
+ "where pg.statusEnabled is true " + "and pg.kategoryPegawaiId in (:listKategoryPegawaiId)")
public List<Map<String, Object>> findPegawaiByListKategori(
@Param("listKategoryPegawaiId") List<Integer> listIdKategoriPegawai);
}

View File

@ -3,6 +3,7 @@ package com.jasamedika.medifirst2000.service.impl;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
@ -13,6 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.jpa.JpaSystemException;
import org.springframework.stereotype.Service;
import com.jasamedika.medifirst2000.constants.Master;
import com.jasamedika.medifirst2000.converter.BaseConverterImpl;
import com.jasamedika.medifirst2000.dao.LogbookKinerjaDao;
import com.jasamedika.medifirst2000.dao.LogbookKinerjaDetailDao;
@ -142,7 +144,8 @@ public class LogbookKinerjaDetailServiceImpl extends BaseVoServiceImpl implement
@Override
public List<Map<String, Object>> findAksesPegawai(Integer idPegawai) {
List<Map<String, Object>> result = logbookKinerjaDao.findAksesPegawaiByAtasan(idPegawai);
List<Map<String, Object>> result = logbookKinerjaDao.findAksesPegawaiByAtasan(idPegawai,
Arrays.asList(Master.KategoryPegawai.PURNA_WAKTU));
if (CommonUtil.isNotNullOrEmpty(result)) {
result.sort(Comparator.comparing(m -> (String) m.get("namaLengkap"), String.CASE_INSENSITIVE_ORDER));

View File

@ -23,6 +23,7 @@ import com.jasamedika.medifirst2000.converter.BaseConverterImpl;
import com.jasamedika.medifirst2000.dao.AnggaranRemunerasiDao;
import com.jasamedika.medifirst2000.dao.IndikatorKinerjaDao;
import com.jasamedika.medifirst2000.dao.LogbookKinerjaDao;
import com.jasamedika.medifirst2000.dao.PegawaiDao;
import com.jasamedika.medifirst2000.entities.IndikatorKinerja;
import com.jasamedika.medifirst2000.entities.Jabatan;
import com.jasamedika.medifirst2000.entities.LogbookKinerja;
@ -64,6 +65,9 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
@Autowired
private AnggaranRemunerasiDao anggaranRemunerasiDao;
@Autowired
private PegawaiDao pegawaiDao;
@Override
public LogbookKinerjaVO add(LogbookKinerjaVO vo) throws JpaSystemException, ServiceVOException {
Pegawai pegawai = pegawaiConverter.transferVOToModel(vo.getPegawai(), new Pegawai());
@ -251,15 +255,22 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
DateFormat df = new SimpleDateFormat("yyyy-MM");
List<Map<String, Object>> listMap = logbookKinerjaDao.findIndikatorByJabatan(idJabatan);
List<Map<String, Object>> data = logbookKinerjaDao.findKontrakKinerja(idPegawai, idJabatan,
df.format(new Date(bulan)));
for (Map<String, Object> map : listMap) {
if (!listIdIndikator.contains(map.get("indikatorId"))) {
listIdIndikator.add(Integer.valueOf(map.get("indikatorId").toString()));
listRes.add(map);
}
}
for (Map<String, Object> map : data) {
if (!listIdIndikator.contains(map.get("indikatorId"))) {
listIdIndikator.add(Integer.valueOf(map.get("indikatorId").toString()));
listRes.add(map);
}
}
List<Map<String, Object>> data = logbookKinerjaDao.findKontrakKinerja(idPegawai, idJabatan,
df.format(new Date(bulan)));
for (Map<String, Object> res : listRes) {
res.put("noRecMap", res.get("noRecMap"));
for (Map<String, Object> map : data) {
@ -394,24 +405,48 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
@Override
public List<Map<String, Object>> findAksesPegawai(Integer idPegawai) {
List<Map<String, Object>> result = new ArrayList<>();
List<Map<String, Object>> rsAll = new ArrayList<>();
List<Integer> listPurnaWaktu = Arrays.asList(Master.KategoryPegawai.PURNA_WAKTU);
List<Map<String, Object>> aksesByStaf = logbookKinerjaDao.findAksesPegawaiByStaf(idPegawai);
List<Map<String, Object>> aksesByAtasan = logbookKinerjaDao.findAksesPegawaiByAtasan(idPegawai);
List<Map<String, Object>> aksesByPenilai = logbookKinerjaDao.findAksesPegawaiByPenilai(idPegawai);
List<Integer> listIdSDM = pegawaiDao.getPegawaiSDMforCred(Master.UnitKerja.BAG_SDM,
Master.SubUnitKerja.SUBBAG_KESEJAHTERAAN);
if (listIdSDM.contains(idPegawai)) {
rsAll = pegawaiDao.findPegawaiByListKategori(listPurnaWaktu);
result.addAll(rsAll);
for (Map<String, Object> map : result) {
map.put("isModifAkses", false);
}
}
if (CommonUtil.isNotNullOrEmpty(aksesByStaf)) {
List<Map<String, Object>> aksesByStaf = logbookKinerjaDao.findAksesPegawaiByStaf(idPegawai, listPurnaWaktu);
List<Map<String, Object>> aksesByAtasan = logbookKinerjaDao.findAksesPegawaiByAtasan(idPegawai, listPurnaWaktu);
List<Map<String, Object>> aksesByPenilai = logbookKinerjaDao.findAksesPegawaiByPenilai(idPegawai,
listPurnaWaktu);
if (CommonUtil.isNotNullOrEmpty(aksesByStaf) && CommonUtil.isNullOrEmpty(rsAll)) {
for (Map<String, Object> map : aksesByStaf) {
map.put("isModifAkses", false);
}
result.addAll(aksesByStaf);
}
if (CommonUtil.isNotNullOrEmpty(aksesByAtasan)) {
for (Map<String, Object> map : aksesByAtasan) {
map.put("isModifAkses", true);
if (CommonUtil.isNullOrEmpty(rsAll)) {
for (Map<String, Object> map : aksesByAtasan) {
map.put("isModifAkses", true);
}
result.addAll(aksesByAtasan);
} else {
for (Map<String, Object> res : result) {
for (Map<String, Object> map : aksesByAtasan) {
if (res.get("id").equals(map.get("id"))) {
res.put("isModifAkses", true);
break;
}
}
}
}
result.addAll(aksesByAtasan);
}
if (CommonUtil.isNotNullOrEmpty(aksesByPenilai)) {
if (CommonUtil.isNotNullOrEmpty(aksesByPenilai) && CommonUtil.isNullOrEmpty(rsAll)) {
for (Map<String, Object> map : aksesByPenilai) {
map.put("isModifAkses", false);
}