Update logbook kinerja service

Prepare perhitungan target kuantitas dan kualitas dokter untuk otomatisasi kontrak kinerja
This commit is contained in:
salmanoersabhk 2022-09-09 08:28:16 +07:00
parent b09670e2c9
commit 3804590d35
3 changed files with 59 additions and 8 deletions

View File

@ -537,4 +537,8 @@ public interface MapPegawaiJabatanToUnitKerjaDao extends CrudRepository<MapPegaw
Optional<Double> findByPegawaiAndJabatan(@Param("pegawaiId") Integer idPegawai,
@Param("jabatanId") Integer idJabatan);
@Query("select distinct mj.pegawaiId " + "from MapPegawaiJabatanToUnitKerja mj "
+ "where mj.jabatanId in (:listIdJabatan)")
List<Integer> listIdPegawaiByAllJabatan(@Param("listIdJabatan") List<Integer> listIdJabatan);
}

View File

@ -54,9 +54,9 @@ public interface LogbookKinerjaService extends BaseVoService<LogbookKinerja, Log
public List<Map<String, Object>> findRekapPenilaianKinerja(Long bulan, Integer idUnitKerja, Integer idSubunitKerja,
Integer idPegawai) throws JpaSystemException;
public void autoVerifLogbookJamKerjaDokter(Date bulan);
public void autoVerifKontrakJamKerjaDokter(Date bulan);
public void autoVerifLogbookJamKerjaDokter(Date bulan);
public List<SkorDokterVO> hitungTargetSkorLogbookDokter(String tahun) throws ParseException;

View File

@ -34,6 +34,7 @@ import com.jasamedika.medifirst2000.dao.BobotJenisIndikatorDao;
import com.jasamedika.medifirst2000.dao.IkiDanRemunerasiDao;
import com.jasamedika.medifirst2000.dao.IndikatorKinerjaDao;
import com.jasamedika.medifirst2000.dao.IndikatorKinerjaDetailDao;
import com.jasamedika.medifirst2000.dao.IndikatorKinerjaJabatanDao;
import com.jasamedika.medifirst2000.dao.JabatanDao;
import com.jasamedika.medifirst2000.dao.KalenderDao;
import com.jasamedika.medifirst2000.dao.LogbookKinerjaDao;
@ -165,6 +166,9 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
@Autowired
private PelayananFarmakologiDao pelayananFarmakologiDao;
@Autowired
private IndikatorKinerjaJabatanDao indikatorKinerjaJabatanDao;
@Override
public LogbookKinerjaVO add(LogbookKinerjaVO vo) throws JpaSystemException, ServiceVOException {
Pegawai pegawai = pegawaiConverter.transferVOToModel(vo.getPegawai(), new Pegawai());
@ -3069,6 +3073,55 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
return result;
}
@Override
public void autoVerifKontrakJamKerjaDokter(Date bulan) {
DateFormat yf = new SimpleDateFormat("yyyy");
DateFormat mf = new SimpleDateFormat("yyyy-MM");
Integer targetHariKerja = hitungTargetHariKerja(bulan);
Double targetJamKerja = hitungTargetMenitKerja(bulan);
List<Map<String, Object>> listIndikatorDokter = indikatorKinerjaJabatanDao
.findAllByIndikator(Master.IndikatorKinerja.PELAYANAN_MEDIS_JAM_KERJA);
List<Integer> listIdIndikator = new ArrayList<>();
for (Map<String, Object> map : listIndikatorDokter) {
listIdIndikator.add(Integer.parseInt(map.get("jabatanId").toString()));
}
// Double targetSkorJamKerja = 0.0;
// List<Double> target = targetSkorDokterDetailDao.findTargetByPegawai(idPegawai, mf.format(bulan),
// yf.format(bulan));
// if (CommonUtil.isNotNullOrEmpty(target)) {
// targetSkorJamKerja = Math.floor(target.get(0));
// }
// List<IndikatorKinerjaDetail> ikds = indikatorKinerjaDetailDao
// .findByIndikator(Master.IndikatorKinerja.KEPATUHAN_PELAYANAN_MEDIS);
// List<LogbookKinerjaDokter> lkds = new ArrayList<>();
// for (IndikatorKinerjaDetail ikd : ikds) {
// Jabatan jb = jabatanDao.findOne(idJabatan);
// Pegawai pg = pegawaiDao.findOne(idPegawai);
//
// LogbookKinerjaDokter logbookKinerjaLama = logbookKinerjaDokterDao.findOne(mf.format(bulan), idPegawai,
// idJabatan, ikd.getId());
// if (CommonUtil.isNullOrEmpty(logbookKinerjaLama)) {
// LogbookKinerjaDokter logbookKinerjaBaru = new LogbookKinerjaDokter();
// logbookKinerjaBaru.setBulan(bulan);
// logbookKinerjaBaru.setDetailTarget(70.0);
// logbookKinerjaBaru.setKdProfile((short) 0);
// logbookKinerjaBaru.setStatusEnabled(true);
// logbookKinerjaBaru.setTglHitung(new Date());
// logbookKinerjaBaru.setIndikatorDetail(ikd);
// logbookKinerjaBaru.setJabatan(jb);
// logbookKinerjaBaru.setPegawai(pg);
// lkds.add(logbookKinerjaBaru);
// }
// }
// if (CommonUtil.isNotNullOrEmpty(lkds)) {
// logbookKinerjaDokterDao.save(lkds);
// }
}
@Override
public void autoVerifLogbookJamKerjaDokter(Date bulan) {
byte verifId = 2;
@ -3088,12 +3141,6 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
}
}
@Override
public void autoVerifKontrakJamKerjaDokter(Date bulan) {
// TODO Auto-generated method stub
}
@Override
public List<SkorDokterVO> hitungTargetSkorLogbookDokter(String tahun) throws ParseException {
List<SkorDokterVO> result = new ArrayList<>();