Add CRUD Service target skor dokter
Penambahan service simpan, update, delete, view untuk target skor dokter kelompok kerja dan individu. Penambahan hitung pembagian skor kelopmok kerja untuk individu.
This commit is contained in:
parent
b396626f69
commit
4705b4d248
@ -18,10 +18,16 @@ import com.jasamedika.medifirst2000.entities.IndeksKinerjaDokter;
|
||||
@Repository("indeksKinerjaDokterDao")
|
||||
public interface IndeksKinerjaDokterDao extends PagingAndSortingRepository<IndeksKinerjaDokter, String> {
|
||||
|
||||
@Query("select new Map(pkd.noRec as noRec," + "pkd.bulan as bulan," + "pkd.unitKerjaId as unitKerjaId,"
|
||||
+ "pkd.subunitKerjaId as subunitKerjaId," + "pkd.pegawaiId as pegawaiId," + "pkd.iki as iki,"
|
||||
+ "pkd.skor as skor," + "pkd.skorDasar as skorDasar) " + "from IndeksKinerjaDokter pkd "
|
||||
+ "where pkd.statusEnabled is true " + "and to_char(pkd.bulan,'yyyy') = :tahun")
|
||||
@Query("select new Map(ikid.noRec as noRec," + "ikid.bulan as bulan," + "ikid.unitKerjaId as unitKerjaId,"
|
||||
+ "ikid.subunitKerjaId as subunitKerjaId," + "ikid.pegawaiId as pegawaiId," + "ikid.iki as iki,"
|
||||
+ "ikid.skor as skor," + "ikid.skorDasar as skorDasar) " + "from IndeksKinerjaDokter ikid "
|
||||
+ "where ikid.statusEnabled is true " + "and to_char(ikid.bulan,'yyyy') = :tahun")
|
||||
List<Map<String, Object>> findAll(@Param("tahun") String tahun) throws JpaSystemException;
|
||||
|
||||
@Query("select new Map(ikid.unitKerjaId as unitKerjaId," + "ikid.subunitKerjaId as subunitKerjaId,"
|
||||
+ "coalesce(sum(ikid.skorDasar),0) as totalSkorDasar) " + "from IndeksKinerjaDokter ikid "
|
||||
+ "where ikid.statusEnabled is true " + "and to_char(ikid.bulan,'yyyy') = :tahun "
|
||||
+ "group by ikid.unitKerjaId, ikid.subunitKerjaId " + "order by ikid.unitKerjaId, ikid.subunitKerjaId")
|
||||
List<Map<String, Object>> findTotalSkorByKelompokKerja(@Param("tahun") String tahun) throws JpaSystemException;
|
||||
|
||||
}
|
||||
|
||||
@ -1,6 +1,12 @@
|
||||
package com.jasamedika.medifirst2000.dao;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.data.repository.PagingAndSortingRepository;
|
||||
import org.springframework.data.repository.query.Param;
|
||||
import org.springframework.orm.jpa.JpaSystemException;
|
||||
|
||||
import com.jasamedika.medifirst2000.entities.TargetSkorDokterDetail;
|
||||
|
||||
@ -10,4 +16,10 @@ import com.jasamedika.medifirst2000.entities.TargetSkorDokterDetail;
|
||||
*/
|
||||
public interface TargetSkorDokterDetailDao extends PagingAndSortingRepository<TargetSkorDokterDetail, String> {
|
||||
|
||||
@Query("select new Map(tsdd.kdProfile as kdProfile,tsdd.statusEnabled as statusEnabled,"
|
||||
+ "tsdd.targetSkorId as targetSkorId,tsdd.noRec as noRec,"
|
||||
+ "tsdd.pegawaiId as pegawaiId,tsdd.skor as skor) " + "from TargetSkorDokterDetail tsdd "
|
||||
+ "where tsdd.statusEnabled is true " + "and tsdd.targetSkorId = :noRec")
|
||||
public List<Map<String, Object>> findByHeadId(@Param("noRec") String noRec) throws JpaSystemException;
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,13 @@
|
||||
package com.jasamedika.medifirst2000.service;
|
||||
|
||||
import com.jasamedika.medifirst2000.entities.TargetSkorDokterDetail;
|
||||
import com.jasamedika.medifirst2000.vo.TargetSkorDokterDetailVO;
|
||||
|
||||
/**
|
||||
* @author salmanoe
|
||||
* @since Dec 27, 2021
|
||||
*/
|
||||
public interface TargetSkorDokterDetailService
|
||||
extends BaseVoService<TargetSkorDokterDetail, TargetSkorDokterDetailVO, String> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,22 @@
|
||||
package com.jasamedika.medifirst2000.service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.springframework.orm.jpa.JpaSystemException;
|
||||
|
||||
import com.jasamedika.medifirst2000.entities.TargetSkorDokter;
|
||||
import com.jasamedika.medifirst2000.vo.TargetSkorDokterDetailVO;
|
||||
import com.jasamedika.medifirst2000.vo.TargetSkorDokterVO;
|
||||
|
||||
/**
|
||||
* @author salmanoe
|
||||
* @since Dec 24, 2021
|
||||
*/
|
||||
public interface TargetSkorDokterService extends BaseVoService<TargetSkorDokter, TargetSkorDokterVO, String> {
|
||||
|
||||
public List<TargetSkorDokterDetailVO> getDetail(TargetSkorDokter targetSkor) throws JpaSystemException;
|
||||
|
||||
public List<Map<String, Object>> findAll(Long tahun) throws JpaSystemException;
|
||||
|
||||
}
|
||||
@ -6,6 +6,7 @@ import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.time.temporal.TemporalAdjusters;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Calendar;
|
||||
@ -62,6 +63,7 @@ import com.jasamedika.medifirst2000.entities.TargetLayanan;
|
||||
import com.jasamedika.medifirst2000.entities.UnitKerjaPegawai;
|
||||
import com.jasamedika.medifirst2000.service.IkiDanRemunerasiService;
|
||||
import com.jasamedika.medifirst2000.service.LogbookKinerjaService;
|
||||
import com.jasamedika.medifirst2000.service.TargetSkorDokterService;
|
||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
||||
import com.jasamedika.medifirst2000.util.CurrencyUtil;
|
||||
import com.jasamedika.medifirst2000.util.StringUtil;
|
||||
@ -77,6 +79,7 @@ import com.jasamedika.medifirst2000.vo.SkorDokterVO;
|
||||
import com.jasamedika.medifirst2000.vo.StrukHistoriVO;
|
||||
import com.jasamedika.medifirst2000.vo.SubUnitKerjaPegawaiVO;
|
||||
import com.jasamedika.medifirst2000.vo.SuratKeputusanVO;
|
||||
import com.jasamedika.medifirst2000.vo.TargetSkorDokterVO;
|
||||
import com.jasamedika.medifirst2000.vo.UnitKerjaPegawaiVO;
|
||||
import com.jasamedika.medifirst2000.vo.custom.TargetLayananJamKerjaDetailVO;
|
||||
import com.jasamedika.medifirst2000.vo.custom.TargetLayananJamKerjaVO;
|
||||
@ -89,6 +92,9 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
||||
@Autowired
|
||||
private LogbookKinerjaService logbookKinerjaService;
|
||||
|
||||
@Autowired
|
||||
private TargetSkorDokterService targetSkorDokterService;
|
||||
|
||||
@Autowired
|
||||
private BaseConverterImpl<StrukHistoriVO, StrukHistori> strukHistoriConverter;
|
||||
|
||||
@ -501,6 +507,8 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
||||
public void autoSaveTargetCapaianLayananJamKerja() throws ParseException {
|
||||
List<Map<String, Object>> listIkiDokter = new ArrayList<>();
|
||||
|
||||
Date tglHitung = new Date();
|
||||
LocalDate firstDayOfYear = LocalDate.now().with(TemporalAdjusters.firstDayOfYear());
|
||||
Integer lastYear = LocalDate.now().minusYears(1).getYear();
|
||||
|
||||
List<Map<String, Object>> data = indeksKinerjaDokterDao.findAll(lastYear.toString());
|
||||
@ -565,6 +573,35 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
||||
}
|
||||
|
||||
indeksKinerjaDokterDao.save(models);
|
||||
|
||||
List<Map<String, Object>> listTotalSkor = indeksKinerjaDokterDao
|
||||
.findTotalSkorByKelompokKerja(lastYear.toString());
|
||||
for (Map<String, Object> totalSkor : listTotalSkor) {
|
||||
TargetSkorDokterVO vo = new TargetSkorDokterVO();
|
||||
vo.setKdProfile((short) 0);
|
||||
vo.setStatusEnabled(true);
|
||||
|
||||
UnitKerjaPegawaiVO unitKerjVO = new UnitKerjaPegawaiVO();
|
||||
unitKerjVO.setId(Integer.parseInt(totalSkor.get("unitKerjaId").toString()));
|
||||
vo.setUnitKerjaPegawai(unitKerjVO);
|
||||
|
||||
SubUnitKerjaPegawaiVO subunitKerjaVO = new SubUnitKerjaPegawaiVO();
|
||||
subunitKerjaVO.setId(Integer.parseInt(totalSkor.get("subunitKerjaId").toString()));
|
||||
vo.setSubUnitKerjaPegawai(subunitKerjaVO);
|
||||
|
||||
vo.setTotalSkorDasar(Double.parseDouble(totalSkor.get("totalSkorDasar").toString()));
|
||||
vo.setTglHitung(tglHitung);
|
||||
vo.setTmt(Date.from(firstDayOfYear.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant()));
|
||||
|
||||
/**
|
||||
* Tidak memungkinkan untuk hitung ulang target skor kelompok kerja
|
||||
* dengan asumsi tidak adanya fitur batal verifikasi logbook skor
|
||||
* dokter
|
||||
*
|
||||
* Sehingga tidak memanggil service update
|
||||
*/
|
||||
targetSkorDokterService.add(vo);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -0,0 +1,120 @@
|
||||
package com.jasamedika.medifirst2000.service.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
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.converter.BaseConverterImpl;
|
||||
import com.jasamedika.medifirst2000.dao.TargetSkorDokterDetailDao;
|
||||
import com.jasamedika.medifirst2000.entities.Pegawai;
|
||||
import com.jasamedika.medifirst2000.entities.TargetSkorDokter;
|
||||
import com.jasamedika.medifirst2000.entities.TargetSkorDokterDetail;
|
||||
import com.jasamedika.medifirst2000.exception.ServiceVOException;
|
||||
import com.jasamedika.medifirst2000.service.TargetSkorDokterDetailService;
|
||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
||||
import com.jasamedika.medifirst2000.vo.PegawaiVO;
|
||||
import com.jasamedika.medifirst2000.vo.TargetSkorDokterDetailVO;
|
||||
import com.jasamedika.medifirst2000.vo.TargetSkorDokterVO;
|
||||
|
||||
/**
|
||||
* @author salmanoe
|
||||
* @since Dec 27, 2021
|
||||
*/
|
||||
@Service("targetSkorDokterDetailService")
|
||||
public class TargetSkorDokterDetailServiceImpl extends BaseVoServiceImpl implements TargetSkorDokterDetailService {
|
||||
|
||||
@Autowired
|
||||
private BaseConverterImpl<TargetSkorDokterVO, TargetSkorDokter> targetSkorConverter;
|
||||
|
||||
@Autowired
|
||||
private BaseConverterImpl<PegawaiVO, Pegawai> pegawaiConverter;
|
||||
|
||||
@Autowired
|
||||
private BaseConverterImpl<TargetSkorDokterDetailVO, TargetSkorDokterDetail> targetSkorDetailConverter;
|
||||
|
||||
@Autowired
|
||||
private TargetSkorDokterDetailDao targetSkorDetailDao;
|
||||
|
||||
@Override
|
||||
public TargetSkorDokterDetailVO add(TargetSkorDokterDetailVO vo) throws JpaSystemException, ServiceVOException {
|
||||
TargetSkorDokter targetSkor = targetSkorConverter.transferVOToModel(vo.getTargetSkor(), new TargetSkorDokter());
|
||||
Pegawai pegawai = pegawaiConverter.transferVOToModel(vo.getPegawai(), new Pegawai());
|
||||
|
||||
TargetSkorDokterDetail targetSkorDetail = targetSkorDetailConverter.transferVOToModel(vo,
|
||||
new TargetSkorDokterDetail());
|
||||
targetSkorDetail.setTargetSkor(targetSkor);
|
||||
targetSkorDetail.setPegawai(pegawai);
|
||||
TargetSkorDokterDetail resultModel = targetSkorDetailDao.save(targetSkorDetail);
|
||||
|
||||
TargetSkorDokterDetailVO resultVO = new TargetSkorDokterDetailVO();
|
||||
resultVO = targetSkorDetailConverter.transferModelToVO(resultModel, resultVO);
|
||||
|
||||
return resultVO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TargetSkorDokterDetailVO update(TargetSkorDokterDetailVO vo) throws JpaSystemException, ServiceVOException {
|
||||
TargetSkorDokterDetail targetSkorDetailLama = targetSkorDetailDao.findOne(vo.getNoRec());
|
||||
|
||||
TargetSkorDokter targetSkor = targetSkorConverter.transferVOToModel(vo.getTargetSkor(), new TargetSkorDokter());
|
||||
Pegawai pegawai = pegawaiConverter.transferVOToModel(vo.getPegawai(), new Pegawai());
|
||||
|
||||
TargetSkorDokterDetail targetSkorDetailBaru = targetSkorDetailConverter.transferVOToModel(vo,
|
||||
targetSkorDetailLama);
|
||||
targetSkorDetailBaru.setTargetSkor(targetSkor);
|
||||
targetSkorDetailBaru.setPegawai(pegawai);
|
||||
TargetSkorDokterDetail resultModel = targetSkorDetailDao.save(targetSkorDetailBaru);
|
||||
|
||||
TargetSkorDokterDetailVO resultVO = new TargetSkorDokterDetailVO();
|
||||
resultVO = targetSkorDetailConverter.transferModelToVO(resultModel, resultVO);
|
||||
|
||||
return resultVO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean delete(String key) throws JpaSystemException {
|
||||
targetSkorDetailDao.delete(key);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TargetSkorDokterDetailVO findById(String key) throws JpaSystemException {
|
||||
TargetSkorDokterDetailVO result = new TargetSkorDokterDetailVO();
|
||||
|
||||
TargetSkorDokterDetail targetSkorDetail = targetSkorDetailDao.findOne(key);
|
||||
if (CommonUtil.isNotNullOrEmpty(targetSkorDetail)) {
|
||||
result = targetSkorDetailConverter.transferModelToVO(targetSkorDetail, result);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<TargetSkorDokterDetailVO> findAll() throws JpaSystemException {
|
||||
List<TargetSkorDokterDetailVO> result = new ArrayList<TargetSkorDokterDetailVO>();
|
||||
|
||||
Iterable<TargetSkorDokterDetail> models = targetSkorDetailDao.findAll();
|
||||
if (CommonUtil.isNotNullOrEmpty(models)) {
|
||||
for (TargetSkorDokterDetail model : models) {
|
||||
TargetSkorDokterDetailVO vo = new TargetSkorDokterDetailVO();
|
||||
vo = targetSkorDetailConverter.transferModelToVO(model, vo);
|
||||
result.add(vo);
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> findAllWithPageAndLimitAndSortByAndDirectionParameter(Integer page, Integer limit,
|
||||
String sort, String dir) {
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,224 @@
|
||||
package com.jasamedika.medifirst2000.service.impl;
|
||||
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
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.MapPegawaiJabatanToUnitKerjaDao;
|
||||
import com.jasamedika.medifirst2000.dao.TargetSkorDokterDao;
|
||||
import com.jasamedika.medifirst2000.dao.TargetSkorDokterDetailDao;
|
||||
import com.jasamedika.medifirst2000.entities.SubUnitKerjaPegawai;
|
||||
import com.jasamedika.medifirst2000.entities.TargetSkorDokter;
|
||||
import com.jasamedika.medifirst2000.entities.UnitKerjaPegawai;
|
||||
import com.jasamedika.medifirst2000.exception.ServiceVOException;
|
||||
import com.jasamedika.medifirst2000.service.TargetSkorDokterDetailService;
|
||||
import com.jasamedika.medifirst2000.service.TargetSkorDokterService;
|
||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
||||
import com.jasamedika.medifirst2000.util.MathUtil;
|
||||
import com.jasamedika.medifirst2000.vo.PegawaiVO;
|
||||
import com.jasamedika.medifirst2000.vo.SubUnitKerjaPegawaiVO;
|
||||
import com.jasamedika.medifirst2000.vo.TargetSkorDokterDetailVO;
|
||||
import com.jasamedika.medifirst2000.vo.TargetSkorDokterVO;
|
||||
import com.jasamedika.medifirst2000.vo.UnitKerjaPegawaiVO;
|
||||
|
||||
/**
|
||||
* @author salmanoe
|
||||
* @since Dec 24, 2021
|
||||
*/
|
||||
@Service("targetSkorDokterService")
|
||||
public class TargetSkorDokterServiceImpl extends BaseVoServiceImpl implements TargetSkorDokterService {
|
||||
|
||||
@Autowired
|
||||
private TargetSkorDokterDetailService targetSkorDetailService;
|
||||
|
||||
@Autowired
|
||||
private BaseConverterImpl<UnitKerjaPegawaiVO, UnitKerjaPegawai> unitKerjaConverter;
|
||||
|
||||
@Autowired
|
||||
private BaseConverterImpl<SubUnitKerjaPegawaiVO, SubUnitKerjaPegawai> subunitKerjaConverter;
|
||||
|
||||
@Autowired
|
||||
private BaseConverterImpl<TargetSkorDokterVO, TargetSkorDokter> targetSkorConverter;
|
||||
|
||||
@Autowired
|
||||
private TargetSkorDokterDao targetSkorDao;
|
||||
|
||||
@Autowired
|
||||
private TargetSkorDokterDetailDao targetSkorDetailDao;
|
||||
|
||||
@Autowired
|
||||
private MapPegawaiJabatanToUnitKerjaDao mapJabatanDao;
|
||||
|
||||
@Override
|
||||
public TargetSkorDokterVO add(TargetSkorDokterVO vo) throws JpaSystemException, ServiceVOException {
|
||||
UnitKerjaPegawai unitKerja = unitKerjaConverter.transferVOToModel(vo.getUnitKerjaPegawai(),
|
||||
new UnitKerjaPegawai());
|
||||
SubUnitKerjaPegawai subunitKerja = subunitKerjaConverter.transferVOToModel(vo.getSubUnitKerjaPegawai(),
|
||||
new SubUnitKerjaPegawai());
|
||||
TargetSkorDokter targetSkor = targetSkorConverter.transferVOToModel(vo, new TargetSkorDokter());
|
||||
targetSkor.setUnitKerjaPegawai(unitKerja);
|
||||
targetSkor.setSubUnitKerjaPegawai(subunitKerja);
|
||||
targetSkor.setTglHitung(new Date());
|
||||
TargetSkorDokter resultModel = targetSkorDao.save(targetSkor);
|
||||
|
||||
TargetSkorDokterVO resultVO = new TargetSkorDokterVO();
|
||||
if (CommonUtil.isNotNullOrEmpty(resultModel)) {
|
||||
resultVO = targetSkorConverter.transferModelToVO(resultModel, resultVO);
|
||||
|
||||
/**
|
||||
* Pembagian skor untuk seluruh anggota kelompok kerja
|
||||
*/
|
||||
List<TargetSkorDokterDetailVO> listDetailVO = this.getDetail(resultModel);
|
||||
for (TargetSkorDokterDetailVO detailVO : listDetailVO) {
|
||||
if (CommonUtil.isNotNullOrEmpty(detailVO.getNoRec())) {
|
||||
targetSkorDetailService.update(detailVO);
|
||||
} else {
|
||||
targetSkorDetailService.add(detailVO);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return resultVO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TargetSkorDokterVO update(TargetSkorDokterVO vo) throws JpaSystemException, ServiceVOException {
|
||||
TargetSkorDokter targetSkorLama = targetSkorDao.findOne(vo.getNoRec());
|
||||
|
||||
UnitKerjaPegawai unitKerja = unitKerjaConverter.transferVOToModel(vo.getUnitKerjaPegawai(),
|
||||
new UnitKerjaPegawai());
|
||||
SubUnitKerjaPegawai subunitKerja = subunitKerjaConverter.transferVOToModel(vo.getSubUnitKerjaPegawai(),
|
||||
new SubUnitKerjaPegawai());
|
||||
|
||||
TargetSkorDokter targetSkorBaru = targetSkorConverter.transferVOToModel(vo, targetSkorLama);
|
||||
targetSkorBaru.setUnitKerjaPegawai(unitKerja);
|
||||
targetSkorBaru.setSubUnitKerjaPegawai(subunitKerja);
|
||||
targetSkorBaru.setTglHitung(new Date());
|
||||
TargetSkorDokter resultModel = targetSkorDao.save(targetSkorBaru);
|
||||
|
||||
TargetSkorDokterVO resultVO = new TargetSkorDokterVO();
|
||||
if (CommonUtil.isNotNullOrEmpty(resultModel)) {
|
||||
resultVO = targetSkorConverter.transferModelToVO(resultModel, resultVO);
|
||||
|
||||
/**
|
||||
* Pembagian skor untuk seluruh anggota kelompok kerja
|
||||
*/
|
||||
List<TargetSkorDokterDetailVO> listDetailVO = this.getDetail(resultModel);
|
||||
for (TargetSkorDokterDetailVO detailVO : listDetailVO) {
|
||||
if (CommonUtil.isNotNullOrEmpty(detailVO.getNoRec())) {
|
||||
targetSkorDetailService.update(detailVO);
|
||||
} else {
|
||||
targetSkorDetailService.add(detailVO);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return resultVO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean delete(String key) throws JpaSystemException {
|
||||
targetSkorDao.delete(key);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TargetSkorDokterVO findById(String key) throws JpaSystemException {
|
||||
TargetSkorDokterVO result = new TargetSkorDokterVO();
|
||||
|
||||
TargetSkorDokter targetSkor = targetSkorDao.findOne(key);
|
||||
if (CommonUtil.isNotNullOrEmpty(targetSkor)) {
|
||||
result = targetSkorConverter.transferModelToVO(targetSkor, result);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<TargetSkorDokterVO> findAll() throws JpaSystemException {
|
||||
List<TargetSkorDokterVO> result = new ArrayList<TargetSkorDokterVO>();
|
||||
|
||||
Iterable<TargetSkorDokter> models = targetSkorDao.findAll();
|
||||
if (CommonUtil.isNotNullOrEmpty(models)) {
|
||||
for (TargetSkorDokter model : models) {
|
||||
TargetSkorDokterVO vo = new TargetSkorDokterVO();
|
||||
vo = targetSkorConverter.transferModelToVO(model, vo);
|
||||
result.add(vo);
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> findAllWithPageAndLimitAndSortByAndDirectionParameter(Integer page, Integer limit,
|
||||
String sort, String dir) {
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<TargetSkorDokterDetailVO> getDetail(TargetSkorDokter targetSkor) throws JpaSystemException {
|
||||
List<TargetSkorDokterDetailVO> result = new ArrayList<>();
|
||||
|
||||
List<Map<String, Object>> listPegawai = mapJabatanDao.findPegawaiJabatanByKelompokKerja(
|
||||
targetSkor.getSubUnitKerjaPegawai().getId(), Arrays.asList(Master.KategoryPegawai.REMUN),
|
||||
Master.JenisPegawai.DOKTER, Arrays.asList(Master.KedudukanPegawai.INACTIVE_LOGIN));
|
||||
|
||||
List<Map<String, Object>> listDetail = targetSkorDetailDao.findByHeadId(targetSkor.getNoRec());
|
||||
|
||||
for (Map<String, Object> pegawai : listPegawai) {
|
||||
TargetSkorDokterDetailVO vo = new TargetSkorDokterDetailVO();
|
||||
|
||||
for (Map<String, Object> detail : listDetail) {
|
||||
if (detail.get("pegawaiId").toString().equals(pegawai.get("pegawaiId").toString())) {
|
||||
vo.setNoRec(detail.get("noRec").toString());
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
TargetSkorDokterVO targetSkorVO = new TargetSkorDokterVO();
|
||||
targetSkorVO = targetSkorConverter.transferModelToVO(targetSkor, targetSkorVO);
|
||||
vo.setTargetSkor(targetSkorVO);
|
||||
|
||||
PegawaiVO pegawaiVO = new PegawaiVO();
|
||||
pegawaiVO.setId(Integer.parseInt(pegawai.get("pegawaiId").toString()));
|
||||
vo.setPegawai(pegawaiVO);
|
||||
|
||||
vo.setKdProfile((short) 0);
|
||||
vo.setStatusEnabled(true);
|
||||
vo.setSkor(targetSkor.getTotalSkorDasar() / listPegawai.size());
|
||||
|
||||
result.add(vo);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Map<String, Object>> findAll(Long tahun) throws JpaSystemException {
|
||||
DateFormat tf = new SimpleDateFormat("yyyy");
|
||||
|
||||
List<Map<String, Object>> result = targetSkorDao.findAll(tf.format(new Date(tahun)));
|
||||
for (Map<String, Object> rs : result) {
|
||||
double totalTargetSkor = Double.parseDouble(rs.get("totalTargetSkor").toString());
|
||||
|
||||
rs.put("totalTargetSkor", MathUtil.round(totalTargetSkor, 2));
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user