- perbaikan get data kontrak kinerja

- perbaikan simpan mapping indikator banyak jabatan
This commit is contained in:
salmanoe 2021-03-23 14:22:29 +07:00
parent 823661a2c5
commit af36a7c45b
5 changed files with 90 additions and 92 deletions

View File

@ -37,58 +37,33 @@ public interface LogbookKinerjaDao extends PagingAndSortingRepository<LogbookKin
@Param("jabatanId") Integer idJabatan, @Param("bulan") String bulan, @Param("jabatanId") Integer idJabatan, @Param("bulan") String bulan,
@Param("indikatorId") Integer idIndikator); @Param("indikatorId") Integer idIndikator);
String strKontrakKinerja = "select new Map(lk.noRec as noRec," + "pg.id as idPegawai,pg.namaLengkap as namaPegawai," @Query("select new Map(ikm.jenisIndikator as jenisIndikatorId,ikm.id as indikatorId,ikm.namaIndikator as namaIndikator,"
+ "jb.id as idJabatan,jb.namaJabatan as namaJabatan," + "si.id as satuanId,si.satuanIndikator as satuanIndikator,"
+ "ik.id as idIndikator,ik.namaIndikator as namaIndikator," + "ik.jenisIndikator as idJenisIndikator," + "ikt.tanggalMulaiBerlaku as tglBerlaku,ikt.tanggalPembaharuanData as tglPembaharuanData) "
+ "(case when ik.jenisIndikator = 1 then 'Kuantitas' " + "when ik.jenisIndikator = 2 then 'Kualitas' " + "from IndikatorKinerjaJabatan ikt " + "inner join ikt.indikatorKinerja ikm "
+ "when ik.jenisIndikator = 3 then 'Perilaku' end) as jenisIndikator," + "lk.target as target," + "inner join ikm.satuanIndikator si " + "where ikt.statusEnabled is true "
+ "lk.bobot as bobot," + "to_char(lk.bulan,'yyyy-MM') as strBulan," + "lk.bulan as bulan," + "and ikm.statusEnabled is true " + "and si.statusEnabled is true " + "and ikt.jabatanId = :jabatanId "
+ "lk.statusVerifikasi as isStatusVerifikasi," + "and to_char(ikt.tanggalMulaiBerlaku,'yyyy-MM') <= to_char(now(),'yyyy-MM') "
+ "(case when lk.statusVerifikasi is false then 'Belum Terverifikasi' " + "order by ikm.jenisIndikator, ikm.namaIndikator, "
+ "when lk.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi) " + "ikt.tanggalMulaiBerlaku desc, ikt.tanggalPembaharuanData desc")
+ "from LogbookKinerja lk " + "inner join lk.indikatorKinerja ik " + "inner join lk.pegawai pg " List<Map<String, Object>> findIndikatorByJabatan(@Param("jabatanId") Integer idJabatan);
+ "inner join lk.jabatan jb " + "where lk.statusEnabled is true and ik.statusEnabled is true "
+ "and ik.statusVerifikasi is true ";
String pegawaiLogbook = "and lk.pegawaiId = :pegawaiId "; @Query("select new Map(lkh.noRec as noRec,ikm.jenisIndikator as jenisIndikatorId,"
+ "ikm.id as indikatorId,ikm.namaIndikator as namaIndikator,"
String jabatanLogbook = "and lk.jabatanId = :jabatanId "; + "si.id as satuanId,si.satuanIndikator as satuanIndikator," + "lkh.target as target,lkh.bobot as bobot,"
+ "lkh.statusVerifikasi as isStatusVerifikasi,"
String bulanLogbook = "and to_char(lk.bulan,'yyyy-MM') = :bulan "; + "(case when lkh.statusVerifikasi is true then 'Terverifikasi' "
+ "else 'Belum Terverifikasi' end) as statusVerifikasi) " + "from LogbookKinerja lkh "
String sortIndikator = "order by ik.jenisIndikator, ik.namaIndikator"; + "inner join lkh.indikatorKinerja ikm " + "inner join ikm.satuanIndikator si "
+ "where lkh.statusEnabled is true " + "and ikm.statusEnabled is true " + "and si.statusEnabled is true "
@Query(strKontrakKinerja + sortIndikator) + "and lkh.pegawaiId = :pegawaiId " + "and lkh.jabatanId = :jabatanId "
List<Map<String, Object>> findKontrakKinerja(); + "and to_char(lkh.bulan,'yyyy-MM') = :bulan " + "order by ikm.jenisIndikator, ikm.namaIndikator")
List<Map<String, Object>> findKontrakKinerja(@Param("pegawaiId") Integer idPegawai,
@Query(strKontrakKinerja + pegawaiLogbook + sortIndikator)
List<Map<String, Object>> findKontrakKinerjaByPegawai(@Param("pegawaiId") Integer idPegawai);
@Query(strKontrakKinerja + jabatanLogbook + sortIndikator)
List<Map<String, Object>> findKontrakKinerjaByJabatan(@Param("jabatanId") Integer idJabatan);
@Query(strKontrakKinerja + bulanLogbook + sortIndikator)
List<Map<String, Object>> findKontrakKinerjaByBulan(@Param("bulan") String bulan);
@Query(strKontrakKinerja + pegawaiLogbook + jabatanLogbook + sortIndikator)
List<Map<String, Object>> findKontrakKinerjaByPegawaiJabatan(@Param("pegawaiId") Integer idPegawai,
@Param("jabatanId") Integer idJabatan);
@Query(strKontrakKinerja + pegawaiLogbook + bulanLogbook + sortIndikator)
List<Map<String, Object>> findKontrakKinerjaByPegawaiBulan(@Param("pegawaiId") Integer idPegawai,
@Param("bulan") String bulan);
@Query(strKontrakKinerja + jabatanLogbook + bulanLogbook + sortIndikator)
List<Map<String, Object>> findKontrakKinerjaByJabatanBulan(@Param("jabatanId") Integer idJabatan,
@Param("bulan") String bulan);
@Query(strKontrakKinerja + pegawaiLogbook + jabatanLogbook + bulanLogbook + sortIndikator)
List<Map<String, Object>> findKontrakKinerjaByAll(@Param("pegawaiId") Integer idPegawai,
@Param("jabatanId") Integer idJabatan, @Param("bulan") String bulan); @Param("jabatanId") Integer idJabatan, @Param("bulan") String bulan);
@Query("select new Map(lk.noRec as noRec,ik.namaIndikator as namaIndikator) " + "from LogbookKinerja lk " @Query("select new Map(lk.noRec as noRec,ik.namaIndikator as namaIndikator) " + "from LogbookKinerja lk "
+ "inner join lk.indikatorKinerja ik " + "where ik.id = :indikatorId") + "inner join lk.indikatorKinerja ik " + "where ik.id = :indikatorId")
List<Map<String, Object>> findKontrakKinerjaByIndikator(@Param("indikatorId") Integer idIndikator); List<Map<String, Object>> findKontrakKinerja(@Param("indikatorId") Integer idIndikator);
@Query("select new Map(lk.noRec as noRec," + "pg.id as idPegawai,pg.namaLengkap as namaPegawai," @Query("select new Map(lk.noRec as noRec," + "pg.id as idPegawai,pg.namaLengkap as namaPegawai,"
+ "jb.id as idJabatan,jb.namaJabatan as namaJabatan," + "jb.id as idJabatan,jb.namaJabatan as namaJabatan,"

View File

@ -21,12 +21,11 @@ public interface LogbookKinerjaService extends BaseVoService<LogbookKinerja, Log
List<Map<String, Object>> findDupKontrakKinerja(Integer idPegawai, Integer idJabatan, Long bulan, List<Map<String, Object>> findDupKontrakKinerja(Integer idPegawai, Integer idJabatan, Long bulan,
Integer idIndikator) throws JpaSystemException; Integer idIndikator) throws JpaSystemException;
List<Map<String, Object>> findKontrakKinerja(Integer idPegawai, Integer idJabatan, Long bulan) Map<String, Object> findKontrakKinerja(Integer idPegawai, Integer idJabatan, Long bulan) throws JpaSystemException;
throws JpaSystemException;
List<Map<String, Object>> findKontrakKinerja(Integer idIndikator) throws JpaSystemException;
List<Map<String, Object>> findLogbookKinerja(Integer idPegawai, Integer idJabatan, Long bulan) List<Map<String, Object>> findLogbookKinerja(Integer idPegawai, Integer idJabatan, Long bulan)
throws JpaSystemException; throws JpaSystemException;
List<Map<String, Object>> findKontrakKinerja(Integer idIndikator) throws JpaSystemException;
} }

View File

@ -186,7 +186,7 @@ public class IndikatorKinerjaJabatanServiceImpl extends BaseVoServiceImpl implem
} }
if (CommonUtil.isNotNullOrEmpty(listUpdate) && CommonUtil.isNotNullOrEmpty(resultListVO)) { if (CommonUtil.isNotNullOrEmpty(listUpdate) && CommonUtil.isNotNullOrEmpty(resultListVO)) {
resultListVO.addAll(updateAll(listUpdate, idLoginUser)); resultListVO.addAll(updateAll(listUpdate, idLoginUser));
} else { } else if (CommonUtil.isNotNullOrEmpty(listUpdate) && CommonUtil.isNullOrEmpty(resultListVO)) {
resultListVO = updateAll(listUpdate, idLoginUser); resultListVO = updateAll(listUpdate, idLoginUser);
} }
@ -219,8 +219,10 @@ public class IndikatorKinerjaJabatanServiceImpl extends BaseVoServiceImpl implem
/** /**
* *
* @param listVO : mapping indikator yang akan dihapus * @param listVO
* @param idLoginUser : identitas user saat login * : mapping indikator yang akan dihapus
* @param idLoginUser
* : identitas user saat login
* @return Daftar identitas transaksi mapping indikator * @return Daftar identitas transaksi mapping indikator
* @throws JpaSystemException * @throws JpaSystemException
* @throws ServiceVOException * @throws ServiceVOException

View File

@ -234,36 +234,65 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
} }
@Override @Override
public List<Map<String, Object>> findKontrakKinerja(Integer idPegawai, Integer idJabatan, Long bulan) public Map<String, Object> findKontrakKinerja(Integer idPegawai, Integer idJabatan, Long bulan)
throws JpaSystemException { throws JpaSystemException {
List<Map<String, Object>> result = new ArrayList<>(); Map<String, Object> result = new HashMap<>();
List<Map<String, Object>> listRes = new ArrayList<>();
List<Integer> listIdIndikator = new ArrayList<>();
DateFormat df = new SimpleDateFormat("yyyy-MM"); DateFormat df = new SimpleDateFormat("yyyy-MM");
if (CommonUtil.isNullOrEmpty(idPegawai) && CommonUtil.isNullOrEmpty(idJabatan) List<Map<String, Object>> listMap = logbookKinerjaDao.findIndikatorByJabatan(idJabatan);
&& CommonUtil.isNullOrEmpty(bulan)) { for (Map<String, Object> map : listMap) {
result = logbookKinerjaDao.findKontrakKinerja(); if (!listIdIndikator.contains(map.get("indikatorId"))) {
} else if (CommonUtil.isNotNullOrEmpty(idPegawai) && CommonUtil.isNullOrEmpty(idJabatan) listIdIndikator.add(Integer.valueOf(map.get("indikatorId").toString()));
&& CommonUtil.isNullOrEmpty(bulan)) { listRes.add(map);
result = logbookKinerjaDao.findKontrakKinerjaByPegawai(idPegawai);
} else if (CommonUtil.isNullOrEmpty(idPegawai) && CommonUtil.isNotNullOrEmpty(idJabatan)
&& CommonUtil.isNullOrEmpty(bulan)) {
result = logbookKinerjaDao.findKontrakKinerjaByJabatan(idJabatan);
} else if (CommonUtil.isNullOrEmpty(idPegawai) && CommonUtil.isNullOrEmpty(idJabatan)
&& CommonUtil.isNotNullOrEmpty(bulan)) {
result = logbookKinerjaDao.findKontrakKinerjaByBulan(df.format(new Date(bulan)));
} else if (CommonUtil.isNotNullOrEmpty(idPegawai) && CommonUtil.isNotNullOrEmpty(idJabatan)
&& CommonUtil.isNullOrEmpty(bulan)) {
result = logbookKinerjaDao.findKontrakKinerjaByPegawaiJabatan(idPegawai, idJabatan);
} else if (CommonUtil.isNotNullOrEmpty(idPegawai) && CommonUtil.isNullOrEmpty(idJabatan)
&& CommonUtil.isNotNullOrEmpty(bulan)) {
result = logbookKinerjaDao.findKontrakKinerjaByPegawaiBulan(idPegawai, df.format(new Date(bulan)));
} else if (CommonUtil.isNullOrEmpty(idPegawai) && CommonUtil.isNotNullOrEmpty(idJabatan)
&& CommonUtil.isNotNullOrEmpty(bulan)) {
result = logbookKinerjaDao.findKontrakKinerjaByJabatanBulan(idJabatan, df.format(new Date(bulan)));
} else if (CommonUtil.isNotNullOrEmpty(idPegawai) && CommonUtil.isNotNullOrEmpty(idJabatan)
&& CommonUtil.isNotNullOrEmpty(bulan)) {
result = logbookKinerjaDao.findKontrakKinerjaByAll(idPegawai, idJabatan, df.format(new Date(bulan)));
} }
}
List<Map<String, Object>> data = logbookKinerjaDao.findKontrakKinerja(idPegawai, idJabatan,
df.format(new Date(bulan)));
for (Map<String, Object> res : listRes) {
for (Map<String, Object> map : data) {
if (res.get("indikatorId").equals(map.get("indikatorId"))) {
res.put("noRec", map.get("noRec"));
res.put("target", map.get("target"));
res.put("bobot", map.get("bobot"));
res.put("isStatusVerifikasi", map.get("isStatusVerifikasi"));
res.put("statusVerifikasi", map.get("statusVerifikasi"));
}
}
if (CommonUtil.isNullOrEmpty(res.get("noRec"))) {
res.put("noRec", null);
res.put("target", null);
res.put("bobot", null);
res.put("isStatusVerifikasi", null);
res.put("statusVerifikasi", null);
}
}
for (Integer idJenisIndikator : Arrays.asList(Master.Remunerasi.JENIS_INDIKATOR)) {
List<Map<String, Object>> resByJenisIndikator = new ArrayList<>();
for (Map<String, Object> res : listRes) {
if (res.get("jenisIndikatorId").equals(idJenisIndikator)) {
resByJenisIndikator.add(res);
}
}
if (idJenisIndikator.equals(1)) {
result.put("Kuantitas", resByJenisIndikator);
} else if (idJenisIndikator.equals(2)) {
result.put("Kualitas", resByJenisIndikator);
} else if (idJenisIndikator.equals(3)) {
result.put("Perilaku", resByJenisIndikator);
}
}
return result;
}
@Override
public List<Map<String, Object>> findKontrakKinerja(Integer idIndikator) throws JpaSystemException {
List<Map<String, Object>> result = logbookKinerjaDao.findKontrakKinerja(idIndikator);
return result; return result;
} }
@ -292,11 +321,4 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
return result; return result;
} }
@Override
public List<Map<String, Object>> findKontrakKinerja(Integer idIndikator) throws JpaSystemException {
List<Map<String, Object>> result = logbookKinerjaDao.findKontrakKinerjaByIndikator(idIndikator);
return result;
}
} }

View File

@ -570,12 +570,12 @@ public class IkiDanRemunerasiController extends LocaleController<IkiDanRemuneras
} }
@RequestMapping(value = "/get-kontrak-kinerja", method = RequestMethod.GET) @RequestMapping(value = "/get-kontrak-kinerja", method = RequestMethod.GET)
public ResponseEntity<List<Map<String, Object>>> getKontrakKinerja(HttpServletRequest request, public ResponseEntity<Map<String, Object>> getKontrakKinerja(HttpServletRequest request,
@RequestParam(value = "pegawaiId", required = false) Integer idPegawai, @RequestParam(value = "pegawaiId", required = true) Integer idPegawai,
@RequestParam(value = "jabatanId", required = false) Integer idJabatan, @RequestParam(value = "jabatanId", required = true) Integer idJabatan,
@RequestParam(value = "bulan", required = false) Long bulan) throws ParseException { @RequestParam(value = "bulan", required = true) Long bulan) throws ParseException {
try { try {
List<Map<String, Object>> result = logbookKinerjaService.findKontrakKinerja(idPegawai, idJabatan, bulan); Map<String, Object> result = logbookKinerjaService.findKontrakKinerja(idPegawai, idJabatan, bulan);
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,
getMessage(MessageResource.LABEL_SUCCESS, request)); getMessage(MessageResource.LABEL_SUCCESS, request));
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);