- 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("indikatorId") Integer idIndikator);
String strKontrakKinerja = "select new Map(lk.noRec as noRec," + "pg.id as idPegawai,pg.namaLengkap as namaPegawai,"
+ "jb.id as idJabatan,jb.namaJabatan as namaJabatan,"
+ "ik.id as idIndikator,ik.namaIndikator as namaIndikator," + "ik.jenisIndikator as idJenisIndikator,"
+ "(case when ik.jenisIndikator = 1 then 'Kuantitas' " + "when ik.jenisIndikator = 2 then 'Kualitas' "
+ "when ik.jenisIndikator = 3 then 'Perilaku' end) as jenisIndikator," + "lk.target as target,"
+ "lk.bobot as bobot," + "to_char(lk.bulan,'yyyy-MM') as strBulan," + "lk.bulan as bulan,"
+ "lk.statusVerifikasi as isStatusVerifikasi,"
+ "(case when lk.statusVerifikasi is false then 'Belum Terverifikasi' "
+ "when lk.statusVerifikasi is true then 'Terverifikasi' end) as statusVerifikasi) "
+ "from LogbookKinerja lk " + "inner join lk.indikatorKinerja ik " + "inner join lk.pegawai pg "
+ "inner join lk.jabatan jb " + "where lk.statusEnabled is true and ik.statusEnabled is true "
+ "and ik.statusVerifikasi is true ";
@Query("select new Map(ikm.jenisIndikator as jenisIndikatorId,ikm.id as indikatorId,ikm.namaIndikator as namaIndikator,"
+ "si.id as satuanId,si.satuanIndikator as satuanIndikator,"
+ "ikt.tanggalMulaiBerlaku as tglBerlaku,ikt.tanggalPembaharuanData as tglPembaharuanData) "
+ "from IndikatorKinerjaJabatan ikt " + "inner join ikt.indikatorKinerja ikm "
+ "inner join ikm.satuanIndikator si " + "where ikt.statusEnabled is true "
+ "and ikm.statusEnabled is true " + "and si.statusEnabled is true " + "and ikt.jabatanId = :jabatanId "
+ "and to_char(ikt.tanggalMulaiBerlaku,'yyyy-MM') <= to_char(now(),'yyyy-MM') "
+ "order by ikm.jenisIndikator, ikm.namaIndikator, "
+ "ikt.tanggalMulaiBerlaku desc, ikt.tanggalPembaharuanData desc")
List<Map<String, Object>> findIndikatorByJabatan(@Param("jabatanId") Integer idJabatan);
String pegawaiLogbook = "and lk.pegawaiId = :pegawaiId ";
String jabatanLogbook = "and lk.jabatanId = :jabatanId ";
String bulanLogbook = "and to_char(lk.bulan,'yyyy-MM') = :bulan ";
String sortIndikator = "order by ik.jenisIndikator, ik.namaIndikator";
@Query(strKontrakKinerja + sortIndikator)
List<Map<String, Object>> findKontrakKinerja();
@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,
@Query("select new Map(lkh.noRec as noRec,ikm.jenisIndikator as jenisIndikatorId,"
+ "ikm.id as indikatorId,ikm.namaIndikator as namaIndikator,"
+ "si.id as satuanId,si.satuanIndikator as satuanIndikator," + "lkh.target as target,lkh.bobot as bobot,"
+ "lkh.statusVerifikasi as isStatusVerifikasi,"
+ "(case when lkh.statusVerifikasi is true then 'Terverifikasi' "
+ "else 'Belum Terverifikasi' end) as statusVerifikasi) " + "from LogbookKinerja lkh "
+ "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 "
+ "and lkh.pegawaiId = :pegawaiId " + "and lkh.jabatanId = :jabatanId "
+ "and to_char(lkh.bulan,'yyyy-MM') = :bulan " + "order by ikm.jenisIndikator, ikm.namaIndikator")
List<Map<String, Object>> findKontrakKinerja(@Param("pegawaiId") Integer idPegawai,
@Param("jabatanId") Integer idJabatan, @Param("bulan") String bulan);
@Query("select new Map(lk.noRec as noRec,ik.namaIndikator as namaIndikator) " + "from LogbookKinerja lk "
+ "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,"
+ "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,
Integer idIndikator) throws JpaSystemException;
List<Map<String, Object>> findKontrakKinerja(Integer idPegawai, Integer idJabatan, Long bulan)
throws JpaSystemException;
Map<String, Object> findKontrakKinerja(Integer idPegawai, Integer idJabatan, Long bulan) throws JpaSystemException;
List<Map<String, Object>> findKontrakKinerja(Integer idIndikator) throws JpaSystemException;
List<Map<String, Object>> findLogbookKinerja(Integer idPegawai, Integer idJabatan, Long bulan)
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)) {
resultListVO.addAll(updateAll(listUpdate, idLoginUser));
} else {
} else if (CommonUtil.isNotNullOrEmpty(listUpdate) && CommonUtil.isNullOrEmpty(resultListVO)) {
resultListVO = updateAll(listUpdate, idLoginUser);
}
@ -219,8 +219,10 @@ public class IndikatorKinerjaJabatanServiceImpl extends BaseVoServiceImpl implem
/**
*
* @param listVO : mapping indikator yang akan dihapus
* @param idLoginUser : identitas user saat login
* @param listVO
* : mapping indikator yang akan dihapus
* @param idLoginUser
* : identitas user saat login
* @return Daftar identitas transaksi mapping indikator
* @throws JpaSystemException
* @throws ServiceVOException

View File

@ -234,37 +234,66 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
}
@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 {
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");
if (CommonUtil.isNullOrEmpty(idPegawai) && CommonUtil.isNullOrEmpty(idJabatan)
&& CommonUtil.isNullOrEmpty(bulan)) {
result = logbookKinerjaDao.findKontrakKinerja();
} else if (CommonUtil.isNotNullOrEmpty(idPegawai) && CommonUtil.isNullOrEmpty(idJabatan)
&& CommonUtil.isNullOrEmpty(bulan)) {
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>> listMap = logbookKinerjaDao.findIndikatorByJabatan(idJabatan);
for (Map<String, Object> map : listMap) {
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) {
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;
}
@ -292,11 +321,4 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
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)
public ResponseEntity<List<Map<String, Object>>> getKontrakKinerja(HttpServletRequest request,
@RequestParam(value = "pegawaiId", required = false) Integer idPegawai,
@RequestParam(value = "jabatanId", required = false) Integer idJabatan,
@RequestParam(value = "bulan", required = false) Long bulan) throws ParseException {
public ResponseEntity<Map<String, Object>> getKontrakKinerja(HttpServletRequest request,
@RequestParam(value = "pegawaiId", required = true) Integer idPegawai,
@RequestParam(value = "jabatanId", required = true) Integer idJabatan,
@RequestParam(value = "bulan", required = true) Long bulan) throws ParseException {
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,
getMessage(MessageResource.LABEL_SUCCESS, request));
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);