From 57de829702f38dbb3e5c87394eb952f5b8841dde Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Sun, 3 Apr 2022 11:13:33 +0700 Subject: [PATCH] Update LogbookKinerjaDetailService Perbaikan service fungsi simpan total capaian saat verifikasi catatan kegiatan harian --- .../impl/LogbookKinerjaDetailServiceImpl.java | 34 ++++++++++++------- 1 file changed, 22 insertions(+), 12 deletions(-) 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 5d695591..3e969cea 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 @@ -48,24 +48,34 @@ public class LogbookKinerjaDetailServiceImpl extends BaseVoServiceImpl implement LogbookKinerjaDetail logbookKinerjaDetail = logbookKinerjaDetailConverter.transferVOToModel(vo, new LogbookKinerjaDetail()); - /** - * menghitung capaian indikator satuan yang harus dihitung secara - * akumulatif - */ - if (vo.getStatusEnabled() && vo.getStatusVerifikasi()) { - logbookKinerja.setCapaian(logbookKinerja.getCapaian() + vo.getCapaian()); - } + logbookKinerjaDetail.setLogbookKinerja(logbookKinerja); logbookKinerjaDetail.setTanggalKegiatan(new Date()); logbookKinerjaDao.save(logbookKinerja); + LogbookKinerjaDetail resultModel = logbookKinerjaDetailDao.save(logbookKinerjaDetail); - - /** - * 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)) {