diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/LogbookKinerjaDetailDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/LogbookKinerjaDetailDao.java index e07e2b06..64816cc0 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/LogbookKinerjaDetailDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/LogbookKinerjaDetailDao.java @@ -1,15 +1,14 @@ package com.jasamedika.medifirst2000.dao; -import java.util.Date; -import java.util.List; -import java.util.Map; - +import com.jasamedika.medifirst2000.entities.LogbookKinerjaDetail; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.PagingAndSortingRepository; import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; -import com.jasamedika.medifirst2000.entities.LogbookKinerjaDetail; +import java.util.Date; +import java.util.List; +import java.util.Map; @Repository("logbookKinerjaDetailDao") public interface LogbookKinerjaDetailDao extends PagingAndSortingRepository { diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaDetailServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaDetailServiceImpl.java index c43a5e88..4c65feb5 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaDetailServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaDetailServiceImpl.java @@ -1,23 +1,5 @@ package com.jasamedika.medifirst2000.service.impl; -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.time.LocalTime; -import java.time.ZoneId; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Comparator; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -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; @@ -30,6 +12,17 @@ import com.jasamedika.medifirst2000.service.LogbookKinerjaDetailService; import com.jasamedika.medifirst2000.util.CommonUtil; import com.jasamedika.medifirst2000.util.DateUtil; import com.jasamedika.medifirst2000.vo.LogbookKinerjaDetailVO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.orm.jpa.JpaSystemException; +import org.springframework.stereotype.Service; + +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.ZoneId; +import java.util.*; @Service("LogbookKinerjaDetailService") public class LogbookKinerjaDetailServiceImpl extends BaseVoServiceImpl implements LogbookKinerjaDetailService { @@ -49,18 +42,13 @@ public class LogbookKinerjaDetailServiceImpl extends BaseVoServiceImpl implement @Override public LogbookKinerjaDetailVO add(LogbookKinerjaDetailVO vo) throws JpaSystemException, ServiceVOException { LogbookKinerja logbookKinerja = logbookKinerjaDao.findOne(vo.getLogbookKinerja().getNoRec()); - LogbookKinerjaDetail logbookKinerjaDetail = logbookKinerjaDetailConverter.transferVOToModel(vo, new LogbookKinerjaDetail()); - logbookKinerjaDetail.setLogbookKinerja(logbookKinerja); logbookKinerjaDetail.setTanggalKegiatan(new Date()); - - logbookKinerjaDao.save(logbookKinerja); - LogbookKinerjaDetail resultModel = logbookKinerjaDetailDao.save(logbookKinerjaDetail); if (CommonUtil.isNotNullOrEmpty(resultModel)) { - /** + /* * menghitung capaian indikator satuan yang harus dihitung secara * akumulatif */ @@ -75,8 +63,7 @@ public class LogbookKinerjaDetailServiceImpl extends BaseVoServiceImpl implement } logbookKinerjaDao.save(models); } - - /** + /* * menghitung capaian indikator satuan yang harus dihitung secara * rata-rata */ @@ -92,10 +79,8 @@ public class LogbookKinerjaDetailServiceImpl extends BaseVoServiceImpl implement logbookKinerjaDao.save(models); } } - LogbookKinerjaDetailVO resultVO = new LogbookKinerjaDetailVO(); resultVO = logbookKinerjaDetailConverter.transferModelToVO(resultModel, resultVO); - return resultVO; } @@ -103,30 +88,30 @@ public class LogbookKinerjaDetailServiceImpl extends BaseVoServiceImpl implement public LogbookKinerjaDetailVO update(LogbookKinerjaDetailVO vo) throws JpaSystemException, ServiceVOException { LogbookKinerja logbookKinerja = logbookKinerjaDao.findOne(vo.getLogbookKinerja().getNoRec()); LogbookKinerjaDetail logbookKinerjaDetailLama = logbookKinerjaDetailDao.findOne(vo.getNoRec()); - - /** - * menghitung indikator capaian satuan yang harus dihitung secara - * akumulatif - */ - if (!vo.getStatusEnabled() && !vo.getStatusVerifikasi()) { - logbookKinerja.setCapaian(logbookKinerja.getCapaian() - vo.getCapaian()); - } else if (vo.getStatusEnabled() && vo.getStatusVerifikasi()) { - logbookKinerja.setCapaian(logbookKinerja.getCapaian() + vo.getCapaian()); - } - LogbookKinerjaDetail logbookKinerjaDetailBaru = logbookKinerjaDetailConverter.transferVOToModel(vo, logbookKinerjaDetailLama); - logbookKinerjaDetailBaru.setLogbookKinerja(logbookKinerja); - - logbookKinerjaDao.save(logbookKinerja); LogbookKinerjaDetail resultModel = logbookKinerjaDetailDao.save(logbookKinerjaDetailBaru); - - /** - * menghitung capaian indikator satuan yang harus dihitung secara - * rata-rata - */ if (CommonUtil.isNotNullOrEmpty(resultModel)) { + /* + * menghitung capaian indikator satuan yang harus dihitung secara + * akumulatif + */ + List> dataSatuanJumlah = logbookKinerjaDetailDao.findSumCapaianByKontrak( + vo.getLogbookKinerja().getNoRec(), Arrays.asList(Master.SatuanIndikator.PERCENTAGE)); + if (CommonUtil.isNotNullOrEmpty(dataSatuanJumlah)) { + List models = new ArrayList<>(); + for (Map map : dataSatuanJumlah) { + LogbookKinerja model = logbookKinerjaDao.findOne(map.get("logbookId").toString()); + model.setCapaian(Double.valueOf(map.get("sumCapaian").toString())); + models.add(model); + } + logbookKinerjaDao.save(models); + } + /* + * menghitung capaian indikator satuan yang harus dihitung secara + * rata-rata + */ List> dataSatuanRatarata = logbookKinerjaDetailDao.findAvgCapaianByKontrak( vo.getLogbookKinerja().getNoRec(), Arrays.asList(Master.SatuanIndikator.PERCENTAGE)); if (CommonUtil.isNotNullOrEmpty(dataSatuanRatarata)) { @@ -139,10 +124,8 @@ public class LogbookKinerjaDetailServiceImpl extends BaseVoServiceImpl implement logbookKinerjaDao.save(models); } } - LogbookKinerjaDetailVO resultVO = new LogbookKinerjaDetailVO(); resultVO = logbookKinerjaDetailConverter.transferModelToVO(resultModel, resultVO); - return resultVO; } @@ -167,7 +150,7 @@ public class LogbookKinerjaDetailServiceImpl extends BaseVoServiceImpl implement @Override public List findAll() throws JpaSystemException { - List result = new ArrayList(); + List result = new ArrayList<>(); Iterable models = logbookKinerjaDetailDao.findAll(); if (CommonUtil.isNotNullOrEmpty(models)) { @@ -202,7 +185,7 @@ public class LogbookKinerjaDetailServiceImpl extends BaseVoServiceImpl implement List> result = logbookKinerjaDetailDao.findWorkingRecord(idPegawai, idJabatan, start, end, statusVerif); for (Map map : result) { - Map logbook = new HashMap(); + Map logbook = new HashMap<>(); logbook.put("noRec", map.get("logbookNoRec")); map.put("logbookKinerja", logbook); map.put("tglBatasAkhirVerif", Date.from(tglLimitVerif.atZone(ZoneId.systemDefault()).toInstant())); @@ -221,7 +204,7 @@ public class LogbookKinerjaDetailServiceImpl extends BaseVoServiceImpl implement List> result = logbookKinerjaDetailDao.findWorkingRecord(idPegawai, idJabatan, idIndikator, start, end); for (Map map : result) { - Map logbook = new HashMap(); + Map logbook = new HashMap<>(); logbook.put("noRec", map.get("logbookNoRec")); map.put("logbookKinerja", logbook); map.remove("logbookNoRec"); @@ -250,15 +233,14 @@ public class LogbookKinerjaDetailServiceImpl extends BaseVoServiceImpl implement DateFormat mf = new SimpleDateFormat("yyyy-MM"); - List listKategoriPegawaiWorkingRecord = new ArrayList<>(); - listKategoriPegawaiWorkingRecord.addAll(Arrays.asList(Master.KategoryPegawai.REMUN)); + List listKategoriPegawaiWorkingRecord = new ArrayList<>(Arrays.asList(Master.KategoryPegawai.REMUN)); listKategoriPegawaiWorkingRecord.add(Master.KategoryPegawai.BLU_PKWT); List> tugasVerifikasi = logbookKinerjaDetailDao.findVerifWorkingRecord(idPegawai, mf.format(new Date(bulan)), listKategoriPegawaiWorkingRecord, Arrays.asList(Master.UnitKerja.KSM)); if (CommonUtil.isNotNullOrEmpty(tugasVerifikasi) && tugasVerifikasi.size() == 2) { for (Map tv : tugasVerifikasi) { - if (Boolean.valueOf(tv.get("statusVerifikasi").toString())) { + if (Boolean.parseBoolean(tv.get("statusVerifikasi").toString())) { rsMap1.put("sudahDiverifikasi", tv.get("jumlah")); } else { rsMap1.put("belumDiverifikasi", tv.get("jumlah")); @@ -266,7 +248,7 @@ public class LogbookKinerjaDetailServiceImpl extends BaseVoServiceImpl implement } } else if (CommonUtil.isNotNullOrEmpty(tugasVerifikasi) && tugasVerifikasi.size() == 1) { for (Map tv : tugasVerifikasi) { - if (Boolean.valueOf(tv.get("statusVerifikasi").toString())) { + if (Boolean.parseBoolean(tv.get("statusVerifikasi").toString())) { rsMap1.put("sudahDiverifikasi", tv.get("jumlah")); rsMap1.put("belumDiverifikasi", 0); } else { @@ -284,7 +266,7 @@ public class LogbookKinerjaDetailServiceImpl extends BaseVoServiceImpl implement mf.format(new Date(bulan)), listKategoriPegawaiWorkingRecord); if (CommonUtil.isNotNullOrEmpty(statusVerifikasi) && statusVerifikasi.size() == 2) { for (Map sv : statusVerifikasi) { - if (Boolean.valueOf(sv.get("statusVerifikasi").toString())) { + if (Boolean.parseBoolean(sv.get("statusVerifikasi").toString())) { rsMap2.put("sudahDiverifikasi", sv.get("jumlah")); } else { rsMap2.put("belumDiverifikasi", sv.get("jumlah")); @@ -292,7 +274,7 @@ public class LogbookKinerjaDetailServiceImpl extends BaseVoServiceImpl implement } } else if (CommonUtil.isNotNullOrEmpty(statusVerifikasi) && statusVerifikasi.size() == 1) { for (Map sv : statusVerifikasi) { - if (Boolean.valueOf(sv.get("statusVerifikasi").toString())) { + if (Boolean.parseBoolean(sv.get("statusVerifikasi").toString())) { rsMap2.put("sudahDiverifikasi", sv.get("jumlah")); rsMap2.put("belumDiverifikasi", 0); } else { diff --git a/jasamedika-core/pom.xml b/jasamedika-core/pom.xml index 93d6afb0..e60cfec5 100644 --- a/jasamedika-core/pom.xml +++ b/jasamedika-core/pom.xml @@ -62,7 +62,7 @@ specification-arg-resolver 0.9.0 - + com.itextpdf.tool @@ -76,8 +76,6 @@ itextpdf 5.5.9 - - Jasa Medika