- perbaikan evaluasi jabatan karena relasi grade
- pembuatan fungsi simpan master anggaran remunerasi - penyesuaian dashboard kinerja
This commit is contained in:
parent
4b1d3cb90e
commit
db0fe43262
@ -65,17 +65,18 @@ public interface LogbookKinerjaDao extends PagingAndSortingRepository<LogbookKin
|
||||
+ "inner join lk.indikatorKinerja ik " + "where ik.id = :indikatorId")
|
||||
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,coalesce(pg.nilaiJabatan,0) as nilaiJabatan,"
|
||||
+ "jb.id as idJabatan,jb.namaJabatan as namaJabatan," + "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,"
|
||||
+ "ik.id as idIndikator,ik.namaIndikator as namaIndikator,"
|
||||
+ "si.id as satuanId,si.satuanIndikator as satuanIndikator," + "lk.capaian/lk.target*100 as persenCapaian) "
|
||||
+ "from LogbookKinerja lk " + "inner join lk.indikatorKinerja ik " + "inner join ik.satuanIndikator si "
|
||||
+ "inner join lk.pegawai pg " + "inner join lk.jabatan jb " + "where lk.statusEnabled is true "
|
||||
+ "and ik.statusEnabled is true " + "and lk.statusVerifikasi is true " + "and ik.statusVerifikasi is true "
|
||||
+ "and si.statusEnabled is true " + "and lk.pegawaiId = :pegawaiId " + "and lk.jabatanId = :jabatanId "
|
||||
+ "and to_char(lk.bulan,'yyyy-MM') = :bulan")
|
||||
+ "si.id as satuanId,si.satuanIndikator as satuanIndikator," + "lk.capaian/lk.target as fragCapaian,"
|
||||
+ "lk.bobot as bobot) " + "from LogbookKinerja lk " + "inner join lk.indikatorKinerja ik "
|
||||
+ "inner join ik.satuanIndikator si " + "inner join lk.pegawai pg " + "inner join lk.jabatan jb "
|
||||
+ "where lk.statusEnabled is true " + "and ik.statusEnabled is true " + "and lk.statusVerifikasi is true "
|
||||
+ "and ik.statusVerifikasi is true " + "and si.statusEnabled is true " + "and lk.pegawaiId = :pegawaiId "
|
||||
+ "and lk.jabatanId = :jabatanId " + "and to_char(lk.bulan,'yyyy-MM') = :bulan")
|
||||
List<Map<String, Object>> findLogbookKinerja(@Param("pegawaiId") Integer idPegawai,
|
||||
@Param("jabatanId") Integer idJabatan, @Param("bulan") String bulan);
|
||||
|
||||
|
||||
@ -341,7 +341,7 @@ public class EvaluasiJabatanServiceImpl extends BaseVoServiceImpl implements Eva
|
||||
|
||||
result.put("result", total);
|
||||
if (CommonUtil.isNotNullOrEmpty(getGrade)) {
|
||||
result.put("grade", getGrade.getGrade());
|
||||
result.put("grade", getGrade.getGradeDesc());
|
||||
result.put("detailGrade", getGrade.getDetailKelompokJabatan());
|
||||
} else {
|
||||
result.put("grade", "");
|
||||
|
||||
@ -19,6 +19,7 @@ import org.springframework.stereotype.Service;
|
||||
|
||||
import com.jasamedika.medifirst2000.constants.Master;
|
||||
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.entities.IndikatorKinerja;
|
||||
@ -59,6 +60,9 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
|
||||
@Autowired
|
||||
private IndikatorKinerjaDao indikatorKinerjaDao;
|
||||
|
||||
@Autowired
|
||||
private AnggaranRemunerasiDao anggaranRemunerasiDao;
|
||||
|
||||
@Override
|
||||
public LogbookKinerjaVO add(LogbookKinerjaVO vo) throws JpaSystemException, ServiceVOException {
|
||||
Pegawai pegawai = pegawaiConverter.transferVOToModel(vo.getPegawai(), new Pegawai());
|
||||
@ -301,6 +305,15 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
|
||||
return result;
|
||||
}
|
||||
|
||||
public Map<String, Object> findAnggaranRemunerasi() throws JpaSystemException {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
|
||||
List<Map<String, Object>> data = anggaranRemunerasiDao.findTahunIni();
|
||||
result = data.get(0);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> findLogbookKinerja(Integer idPegawai, Integer idJabatan, Long bulan)
|
||||
throws JpaSystemException {
|
||||
@ -308,7 +321,6 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
|
||||
List<Map<String, Object>> listJenisIndikator = new ArrayList<>();
|
||||
DateFormat df = new SimpleDateFormat("yyyy-MM");
|
||||
double totAllPersen = 0.0;
|
||||
int jmlAllJenisIndikator = Arrays.asList(Master.JENIS_INDIKATOR).size();
|
||||
|
||||
DecimalFormatSymbols formatRp = new DecimalFormatSymbols();
|
||||
formatRp.setCurrencySymbol("Rp");
|
||||
@ -320,55 +332,55 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
|
||||
|
||||
List<Map<String, Object>> rs = logbookKinerjaDao.findLogbookKinerja(idPegawai, idJabatan,
|
||||
df.format(new Date(bulan)));
|
||||
|
||||
double nilaiJabatan = Double.valueOf(rs.get(0).get("nilaiJabatan").toString());
|
||||
double pir = Double.valueOf(findAnggaranRemunerasi().get("pir").toString());
|
||||
|
||||
for (String ji : Arrays.asList(Master.JENIS_INDIKATOR)) {
|
||||
double totPersen = 0.0;
|
||||
int jmlIndikator = 0;
|
||||
double hasil = 0.0;
|
||||
List<Map<String, Object>> data = new ArrayList<>();
|
||||
Map<String, Object> jenisIndikator = new HashMap<>();
|
||||
jenisIndikator.put("jenisIndikator", ji);
|
||||
for (Map<String, Object> map : rs) {
|
||||
if (map.get("jenisIndikator").equals(ji)) {
|
||||
jmlIndikator++;
|
||||
totPersen += new BigDecimal(Double.valueOf(map.get("persenCapaian").toString()))
|
||||
.setScale(2, RoundingMode.HALF_UP).doubleValue();
|
||||
|
||||
hasil += Double.valueOf(map.get("fragCapaian").toString())
|
||||
* Double.valueOf(map.get("bobot").toString());
|
||||
map.put("persenCapaianDibulatkan",
|
||||
new BigDecimal(Double.valueOf(map.get("persenCapaian").toString())).setScale(2,
|
||||
new BigDecimal(Double.valueOf(map.get("fragCapaian").toString()) * 100).setScale(2,
|
||||
RoundingMode.HALF_UP));
|
||||
data.add(map);
|
||||
}
|
||||
}
|
||||
|
||||
// divided by zero exception
|
||||
if (jmlIndikator == 0) {
|
||||
jmlIndikator = 1;
|
||||
if (ji.equals("Kuantitas")) {
|
||||
totAllPersen += hasil;
|
||||
jenisIndikator.put("persenCapaian", (100.0 / 40.0) * hasil);
|
||||
jenisIndikator.put("persenCapaianDibulatkan",
|
||||
new BigDecimal(Double.valueOf((100.0 / 40.0) * hasil)).setScale(2, RoundingMode.HALF_UP));
|
||||
} else if (ji.equals("Kualitas")) {
|
||||
totAllPersen += hasil;
|
||||
jenisIndikator.put("persenCapaian", (100.0 / 30.0) * hasil);
|
||||
jenisIndikator.put("persenCapaianDibulatkan",
|
||||
new BigDecimal(Double.valueOf((100.0 / 30.0) * hasil)).setScale(2, RoundingMode.HALF_UP));
|
||||
} else if (ji.equals("Perilaku")) {
|
||||
totAllPersen += hasil;
|
||||
jenisIndikator.put("persenCapaian", (100.0 / 30.0) * hasil);
|
||||
jenisIndikator.put("persenCapaianDibulatkan",
|
||||
new BigDecimal(Double.valueOf((100.0 / 30.0) * hasil)).setScale(2, RoundingMode.HALF_UP));
|
||||
}
|
||||
|
||||
totAllPersen += new BigDecimal(Double.valueOf(totPersen / jmlIndikator)).setScale(2, RoundingMode.HALF_UP)
|
||||
.doubleValue();
|
||||
|
||||
jenisIndikator.put("data", data);
|
||||
jenisIndikator.put("persenCapaian", totPersen / jmlIndikator);
|
||||
jenisIndikator.put("persenCapaianDibulatkan",
|
||||
new BigDecimal(Double.valueOf(totPersen / jmlIndikator)).setScale(2, RoundingMode.HALF_UP));
|
||||
|
||||
listJenisIndikator.add(jenisIndikator);
|
||||
}
|
||||
|
||||
// divided by zero exception
|
||||
if (jmlAllJenisIndikator == 0) {
|
||||
jmlAllJenisIndikator = 1;
|
||||
}
|
||||
|
||||
result.put("listJenisIndikator", listJenisIndikator);
|
||||
result.put("rupiahCapaian", (totAllPersen / jmlAllJenisIndikator) / 100 * 9999999);
|
||||
result.put("rupiahCapaianFormat",
|
||||
kursINA.format((totAllPersen / jmlAllJenisIndikator) / 100 * 9999999).toString());
|
||||
result.put("rupiahTarget", 9999999);
|
||||
result.put("rupiahTargetFormat", kursINA.format(9999999).toString());
|
||||
result.put("persenCapaian", totAllPersen / jmlAllJenisIndikator);
|
||||
result.put("rupiahCapaian", totAllPersen / 100 * nilaiJabatan * 3 * pir);
|
||||
result.put("rupiahCapaianFormat", kursINA.format(totAllPersen / 100 * nilaiJabatan * 3 * pir).toString());
|
||||
result.put("rupiahTarget", nilaiJabatan * 3 * pir);
|
||||
result.put("rupiahTargetFormat", kursINA.format(nilaiJabatan * 3 * pir).toString());
|
||||
result.put("persenCapaian", totAllPersen);
|
||||
result.put("persenCapaianDibulatkan",
|
||||
new BigDecimal(Double.valueOf(totAllPersen / jmlAllJenisIndikator)).setScale(2, RoundingMode.HALF_UP));
|
||||
new BigDecimal(Double.valueOf(totAllPersen)).setScale(2, RoundingMode.HALF_UP));
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user