- perbaikan service pencarian hasil hitung target pelayanan medis bulanan
- perbaikan service otomatis hitung pelayanan medis bulanan
This commit is contained in:
parent
a6d207af30
commit
e49884c679
@ -1,6 +1,7 @@
|
|||||||
package com.jasamedika.medifirst2000.dao;
|
package com.jasamedika.medifirst2000.dao;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import org.springframework.data.jpa.repository.Query;
|
import org.springframework.data.jpa.repository.Query;
|
||||||
import org.springframework.data.repository.PagingAndSortingRepository;
|
import org.springframework.data.repository.PagingAndSortingRepository;
|
||||||
@ -12,8 +13,8 @@ import com.jasamedika.medifirst2000.entities.IndikatorKinerjaDetail;
|
|||||||
@Repository("indikatorKinerjaDetailDao")
|
@Repository("indikatorKinerjaDetailDao")
|
||||||
public interface IndikatorKinerjaDetailDao extends PagingAndSortingRepository<IndikatorKinerjaDetail, Integer> {
|
public interface IndikatorKinerjaDetailDao extends PagingAndSortingRepository<IndikatorKinerjaDetail, Integer> {
|
||||||
|
|
||||||
@Query("select ikd from IndikatorKinerjaDetail ikd "
|
@Query("select new Map(ikd.id as id,ikd.detailIndikator as detailIndikator) " + "from IndikatorKinerjaDetail ikd "
|
||||||
+ "where ikd.statusEnabled is true and ikd.id in (:listDetailId) " + "order by ikd.detailIndikator")
|
+ "where ikd.statusEnabled is true and ikd.id in (:listDetailId) " + "order by ikd.detailIndikator")
|
||||||
public List<IndikatorKinerjaDetail> findByListId(@Param("listDetailId") List<Integer> listIdDetail);
|
public List<Map<String, Object>> findByListId(@Param("listDetailId") List<Integer> listIdDetail);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -22,9 +22,15 @@ public interface SubUnitKerjaDao extends PagingAndSortingRepository<SubUnitKerja
|
|||||||
@Query("select model from SubUnitKerjaPegawai model where model.statusEnabled is true and model.unitKerjaId = :id order by model.name")
|
@Query("select model from SubUnitKerjaPegawai model where model.statusEnabled is true and model.unitKerjaId = :id order by model.name")
|
||||||
List<SubUnitKerjaPegawai> getSubUnitKerjaByUnitkerja(@Param("id") Integer id);
|
List<SubUnitKerjaPegawai> getSubUnitKerjaByUnitkerja(@Param("id") Integer id);
|
||||||
|
|
||||||
@Query("select model from SubUnitKerjaPegawai model " + "where model.statusEnabled is true "
|
@Query("select distinct new Map(sk.id as subId,sk.name as subName," + "uk.id as unitId,uk.name as unitName) "
|
||||||
|
+ "from SubUnitKerjaPegawai sk " + "inner join sk.unitKerja uk " + "where sk.statusEnabled is true "
|
||||||
|
+ "and sk.id in (:listSubunitKerjaId) " + "order by sk.name")
|
||||||
|
List<Map<String, Object>> findSubunitKerjaById(@Param("listSubunitKerjaId") List<Integer> listIdSubunitKerja);
|
||||||
|
|
||||||
|
@Query("select new Map(model.id as subunitKerjaId,model.unitKerjaId as unitKerjaId) "
|
||||||
|
+ "from SubUnitKerjaPegawai model " + "where model.statusEnabled is true "
|
||||||
+ "and model.id in (:listSubunitKerjaId) " + "order by model.name")
|
+ "and model.id in (:listSubunitKerjaId) " + "order by model.name")
|
||||||
List<SubUnitKerjaPegawai> findSubunitKerjaById(@Param("listSubunitKerjaId") List<Integer> listIdSubunitKerja);
|
List<Map<String, Object>> findSubDanUnitKerjaById(@Param("listSubunitKerjaId") List<Integer> listIdSubunitKerja);
|
||||||
|
|
||||||
@Query("select subUnitKerja.id " + "from MapPegawaiJabatanToUnitKerja mappeg " + "left join mappeg.pegawai p "
|
@Query("select subUnitKerja.id " + "from MapPegawaiJabatanToUnitKerja mappeg " + "left join mappeg.pegawai p "
|
||||||
+ "inner join mappeg.subUnitKerjaPegawai subUnitKerja " + "where mappeg.statusEnabled is true "
|
+ "inner join mappeg.subUnitKerjaPegawai subUnitKerja " + "where mappeg.statusEnabled is true "
|
||||||
|
|||||||
@ -1,18 +1,17 @@
|
|||||||
package com.jasamedika.medifirst2000.dao;
|
package com.jasamedika.medifirst2000.dao;
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.springframework.data.jpa.repository.Query;
|
import org.springframework.data.jpa.repository.Query;
|
||||||
import org.springframework.data.repository.CrudRepository;
|
import org.springframework.data.repository.PagingAndSortingRepository;
|
||||||
import org.springframework.data.repository.query.Param;
|
import org.springframework.data.repository.query.Param;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
import com.jasamedika.medifirst2000.entities.TargetLayanan;
|
import com.jasamedika.medifirst2000.entities.TargetLayanan;
|
||||||
|
|
||||||
@Repository("targetLayananDao")
|
@Repository("targetLayananDao")
|
||||||
public interface TargetLayananDao extends CrudRepository<TargetLayanan, String> {
|
public interface TargetLayananDao extends PagingAndSortingRepository<TargetLayanan, String> {
|
||||||
|
|
||||||
@Query("select new Map(sk.id as kelompokKerjaId," + "ikd.id as indikatorId," + "tl.target as target,"
|
@Query("select new Map(sk.id as kelompokKerjaId," + "ikd.id as indikatorId," + "tl.target as target,"
|
||||||
+ "to_char(tl.periode,'yyyy-MM') as periode," + "tl.tglHitung as tglHitung) " + "from TargetLayanan tl "
|
+ "to_char(tl.periode,'yyyy-MM') as periode," + "tl.tglHitung as tglHitung) " + "from TargetLayanan tl "
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package com.jasamedika.medifirst2000.service;
|
package com.jasamedika.medifirst2000.service;
|
||||||
|
|
||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -30,8 +31,11 @@ public interface IkiDanRemunerasiService {
|
|||||||
|
|
||||||
public Map<String, Object> savePirDanIku(List<SettingPirSdmVO> vo);
|
public Map<String, Object> savePirDanIku(List<SettingPirSdmVO> vo);
|
||||||
|
|
||||||
public List<TargetLayananCustomVO> calcTargetCapaianLayanan(String strPeriode, Integer idKsm) throws ParseException;
|
public void autoSaveTargetCapaianLayanan(String strPeriode, Integer idKsm) throws ParseException;
|
||||||
|
|
||||||
public List<TargetLayananCustomVO> findAllTargetCapaianLayanan(String strPeriode, Integer idKsm) throws ParseException;
|
public void saveTargetCapaianLayanan(TargetLayananCustomVO vo, Date periodeHitung) throws ParseException;
|
||||||
|
|
||||||
|
public List<TargetLayananCustomVO> findAllTargetCapaianLayanan(String strPeriode, Integer idKsm)
|
||||||
|
throws ParseException;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,18 +1,8 @@
|
|||||||
package com.jasamedika.medifirst2000.service;
|
package com.jasamedika.medifirst2000.service;
|
||||||
|
|
||||||
import java.text.ParseException;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.springframework.orm.jpa.JpaSystemException;
|
|
||||||
|
|
||||||
import com.jasamedika.medifirst2000.entities.TargetLayanan;
|
import com.jasamedika.medifirst2000.entities.TargetLayanan;
|
||||||
import com.jasamedika.medifirst2000.exception.ServiceVOException;
|
|
||||||
import com.jasamedika.medifirst2000.vo.TargetLayananVO;
|
import com.jasamedika.medifirst2000.vo.TargetLayananVO;
|
||||||
import com.jasamedika.medifirst2000.vo.custom.TargetLayananCustomVO;
|
|
||||||
|
|
||||||
public interface TargetLayananService extends BaseVoService<TargetLayanan, TargetLayananVO, String> {
|
public interface TargetLayananService extends BaseVoService<TargetLayanan, TargetLayananVO, String> {
|
||||||
|
|
||||||
List<String> addAll(List<TargetLayananCustomVO> vos, Long periodeHitung)
|
|
||||||
throws JpaSystemException, ServiceVOException, ParseException;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -22,6 +22,8 @@ import com.jasamedika.medifirst2000.constants.Master;
|
|||||||
import com.jasamedika.medifirst2000.converter.BaseConverterImpl;
|
import com.jasamedika.medifirst2000.converter.BaseConverterImpl;
|
||||||
import com.jasamedika.medifirst2000.dao.IkiDanRemunerasiDao;
|
import com.jasamedika.medifirst2000.dao.IkiDanRemunerasiDao;
|
||||||
import com.jasamedika.medifirst2000.dao.IndikatorKinerjaDetailDao;
|
import com.jasamedika.medifirst2000.dao.IndikatorKinerjaDetailDao;
|
||||||
|
import com.jasamedika.medifirst2000.dao.LogbookKinerjaDokterDao;
|
||||||
|
import com.jasamedika.medifirst2000.dao.MapPegawaiJabatanToUnitKerjaDao;
|
||||||
import com.jasamedika.medifirst2000.dao.MonitoringAbsenDao;
|
import com.jasamedika.medifirst2000.dao.MonitoringAbsenDao;
|
||||||
import com.jasamedika.medifirst2000.dao.RunningNumberDao;
|
import com.jasamedika.medifirst2000.dao.RunningNumberDao;
|
||||||
import com.jasamedika.medifirst2000.dao.SettingPirSdmDao;
|
import com.jasamedika.medifirst2000.dao.SettingPirSdmDao;
|
||||||
@ -33,7 +35,9 @@ import com.jasamedika.medifirst2000.dao.TargetLayananDao;
|
|||||||
import com.jasamedika.medifirst2000.entities.EvaluasiJabatan;
|
import com.jasamedika.medifirst2000.entities.EvaluasiJabatan;
|
||||||
import com.jasamedika.medifirst2000.entities.IkiDanRemunerasi;
|
import com.jasamedika.medifirst2000.entities.IkiDanRemunerasi;
|
||||||
import com.jasamedika.medifirst2000.entities.IndikatorKinerjaDetail;
|
import com.jasamedika.medifirst2000.entities.IndikatorKinerjaDetail;
|
||||||
|
import com.jasamedika.medifirst2000.entities.Jabatan;
|
||||||
import com.jasamedika.medifirst2000.entities.KelompokTransaksi;
|
import com.jasamedika.medifirst2000.entities.KelompokTransaksi;
|
||||||
|
import com.jasamedika.medifirst2000.entities.LogbookKinerjaDokter;
|
||||||
import com.jasamedika.medifirst2000.entities.Pegawai;
|
import com.jasamedika.medifirst2000.entities.Pegawai;
|
||||||
import com.jasamedika.medifirst2000.entities.PegawaiHistoriRekap;
|
import com.jasamedika.medifirst2000.entities.PegawaiHistoriRekap;
|
||||||
import com.jasamedika.medifirst2000.entities.Ruangan;
|
import com.jasamedika.medifirst2000.entities.Ruangan;
|
||||||
@ -75,9 +79,6 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
|||||||
@Autowired
|
@Autowired
|
||||||
private BaseConverterImpl<UnitKerjaPegawaiVO, UnitKerjaPegawai> unitKerjaPegawaiConverter;
|
private BaseConverterImpl<UnitKerjaPegawaiVO, UnitKerjaPegawai> unitKerjaPegawaiConverter;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private BaseConverterImpl<SubUnitKerjaPegawaiVO, SubUnitKerjaPegawai> subunitKerjaConverter;
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private BaseConverterImpl<RuanganVO, Ruangan> ruanganConverter;
|
private BaseConverterImpl<RuanganVO, Ruangan> ruanganConverter;
|
||||||
|
|
||||||
@ -96,9 +97,6 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
|||||||
@Autowired
|
@Autowired
|
||||||
private BaseConverterImpl<PegawaiVO, Pegawai> pegawaiConverter;
|
private BaseConverterImpl<PegawaiVO, Pegawai> pegawaiConverter;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private BaseConverterImpl<IndikatorKinerjaDetailVO, IndikatorKinerjaDetail> indikatorKinerjaDetailConverter;
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private IkiDanRemunerasiDao ikiDanRemunerasiDao;
|
private IkiDanRemunerasiDao ikiDanRemunerasiDao;
|
||||||
|
|
||||||
@ -129,6 +127,12 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
|||||||
@Autowired
|
@Autowired
|
||||||
private SubUnitKerjaDao subunitKerjaDao;
|
private SubUnitKerjaDao subunitKerjaDao;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private MapPegawaiJabatanToUnitKerjaDao mapPegawaiJabatanToUnitKerjaDao;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private LogbookKinerjaDokterDao logbookKinerjaDokterDao;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> loadData() {
|
public Map<String, Object> loadData() {
|
||||||
Map<String, Object> result = new HashMap<>();
|
Map<String, Object> result = new HashMap<>();
|
||||||
@ -460,10 +464,7 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<TargetLayananCustomVO> calcTargetCapaianLayanan(String strPeriode, Integer idKsm)
|
public void autoSaveTargetCapaianLayanan(String strPeriode, Integer idKsm) throws ParseException {
|
||||||
throws ParseException {
|
|
||||||
List<TargetLayananCustomVO> result = new ArrayList<>();
|
|
||||||
|
|
||||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
|
||||||
SimpleDateFormat sdfINA = new SimpleDateFormat("MMMM yyyy", new Locale("in", "ID"));
|
SimpleDateFormat sdfINA = new SimpleDateFormat("MMMM yyyy", new Locale("in", "ID"));
|
||||||
|
|
||||||
@ -488,8 +489,7 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
|||||||
|
|
||||||
List<Integer> listRuangEks = splitDataSettingDatafixed("IdRuanganEksekutif");
|
List<Integer> listRuangEks = splitDataSettingDatafixed("IdRuanganEksekutif");
|
||||||
|
|
||||||
List<IndikatorKinerjaDetail> listIndikatorPelayanan = indikatorKinerjaDetailDao
|
List<Integer> listIndikatorPelayanan = Arrays.asList(Master.IndikatorKinerja.INDIKATOR_PELAYANAN_MEDIS);
|
||||||
.findByListId(Arrays.asList(Master.IndikatorKinerja.INDIKATOR_PELAYANAN_MEDIS));
|
|
||||||
|
|
||||||
List<Map<String, Object>> dataLayananRaw = new ArrayList<>();
|
List<Map<String, Object>> dataLayananRaw = new ArrayList<>();
|
||||||
if (CommonUtil.isNotNullOrEmpty(idKsm)) {
|
if (CommonUtil.isNotNullOrEmpty(idKsm)) {
|
||||||
@ -519,7 +519,8 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
|||||||
listIdKK.add(Integer.parseInt(map.get("idKelompokKerja").toString()));
|
listIdKK.add(Integer.parseInt(map.get("idKelompokKerja").toString()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
List<SubUnitKerjaPegawai> listKelompokKerja = subunitKerjaDao.findSubunitKerjaById(listIdKK);
|
|
||||||
|
List<Map<String, Object>> listKelompokKerja = subunitKerjaDao.findSubDanUnitKerjaById(listIdKK);
|
||||||
|
|
||||||
List<Map<String, Object>> dataLastTargetLayanan = targetLayananDao
|
List<Map<String, Object>> dataLastTargetLayanan = targetLayananDao
|
||||||
.getLastTargetLayanan(sdf.format(calTglAwal.getTime()), sdf.format(bulan.getTime()));
|
.getLastTargetLayanan(sdf.format(calTglAwal.getTime()), sdf.format(bulan.getTime()));
|
||||||
@ -608,8 +609,8 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
|||||||
dataLayananScored.add(layanan);
|
dataLayananScored.add(layanan);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (SubUnitKerjaPegawai kelompokKerja : listKelompokKerja) {
|
for (Map<String, Object> kelompokKerja : listKelompokKerja) {
|
||||||
for (IndikatorKinerjaDetail indikator : listIndikatorPelayanan) {
|
for (Integer idIndikator : listIndikatorPelayanan) {
|
||||||
TargetLayananCustomVO resultVo = new TargetLayananCustomVO();
|
TargetLayananCustomVO resultVo = new TargetLayananCustomVO();
|
||||||
List<TargetLayananCustomDetailVO> listDetail = new ArrayList<>();
|
List<TargetLayananCustomDetailVO> listDetail = new ArrayList<>();
|
||||||
|
|
||||||
@ -630,17 +631,17 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
|||||||
double capaianBulanan = 0.0;
|
double capaianBulanan = 0.0;
|
||||||
double targetBulanan = 0.0;
|
double targetBulanan = 0.0;
|
||||||
for (Map<String, Object> data : dataLayananScored) {
|
for (Map<String, Object> data : dataLayananScored) {
|
||||||
if (kelompokKerja.getId().equals(data.get("idKelompokKerja"))
|
if (kelompokKerja.get("subunitKerjaId").equals(data.get("idKelompokKerja"))
|
||||||
&& datePelayanan.equals(sdf.format(data.get("tglPelayanan")))) {
|
&& datePelayanan.equals(sdf.format(data.get("tglPelayanan")))) {
|
||||||
if (indikator.getId().equals(Master.IndikatorKinerja.KONSUL_EKS)
|
if (idIndikator.equals(Master.IndikatorKinerja.KONSUL_EKS)
|
||||||
&& data.get("namaTindakan").equals(Master.KONSUL)
|
&& data.get("namaTindakan").equals(Master.KONSUL)
|
||||||
&& listRuangEks.contains(data.get("idRuangan"))) {
|
&& listRuangEks.contains(data.get("idRuangan"))) {
|
||||||
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||||
if (i < listBulanPelayananSorted.size()) {
|
if (i < listBulanPelayananSorted.size()) {
|
||||||
capaianTriwulanKE += Double.valueOf(data.get("jumlahTindakan").toString());
|
capaianTriwulanKE += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||||
for (Map<String, Object> target : dataTargetFiltered) {
|
for (Map<String, Object> target : dataTargetFiltered) {
|
||||||
if (kelompokKerja.getId().equals(target.get("kelompokKerjaId"))
|
if (kelompokKerja.get("subunitKerjaId").equals(target.get("kelompokKerjaId"))
|
||||||
&& indikator.getId().equals(target.get("indikatorId"))
|
&& idIndikator.equals(target.get("indikatorId"))
|
||||||
&& datePelayanan.equals(target.get("periode"))) {
|
&& datePelayanan.equals(target.get("periode"))) {
|
||||||
targetBulanan = Double.valueOf(target.get("target").toString());
|
targetBulanan = Double.valueOf(target.get("target").toString());
|
||||||
break;
|
break;
|
||||||
@ -650,15 +651,15 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
|||||||
targetBulanan = Math
|
targetBulanan = Math
|
||||||
.floor(capaianTriwulanKE / (listBulanPelayananSorted.size() - 1));
|
.floor(capaianTriwulanKE / (listBulanPelayananSorted.size() - 1));
|
||||||
}
|
}
|
||||||
} else if (indikator.getId().equals(Master.IndikatorKinerja.KONSUL_GADAR)
|
} else if (idIndikator.equals(Master.IndikatorKinerja.KONSUL_GADAR)
|
||||||
&& data.get("namaTindakan").equals(Master.KONSUL)
|
&& data.get("namaTindakan").equals(Master.KONSUL)
|
||||||
&& data.get("idDepartemen").equals(Master.Departemen.IGD)) {
|
&& data.get("idDepartemen").equals(Master.Departemen.IGD)) {
|
||||||
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||||
if (i < listBulanPelayananSorted.size()) {
|
if (i < listBulanPelayananSorted.size()) {
|
||||||
capaianTriwulanKG += Double.valueOf(data.get("jumlahTindakan").toString());
|
capaianTriwulanKG += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||||
for (Map<String, Object> target : dataTargetFiltered) {
|
for (Map<String, Object> target : dataTargetFiltered) {
|
||||||
if (kelompokKerja.getId().equals(target.get("kelompokKerjaId"))
|
if (kelompokKerja.get("subunitKerjaId").equals(target.get("kelompokKerjaId"))
|
||||||
&& indikator.getId().equals(target.get("indikatorId"))
|
&& idIndikator.equals(target.get("indikatorId"))
|
||||||
&& datePelayanan.equals(target.get("periode"))) {
|
&& datePelayanan.equals(target.get("periode"))) {
|
||||||
targetBulanan = Double.valueOf(target.get("target").toString());
|
targetBulanan = Double.valueOf(target.get("target").toString());
|
||||||
break;
|
break;
|
||||||
@ -668,14 +669,14 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
|||||||
targetBulanan = Math
|
targetBulanan = Math
|
||||||
.floor(capaianTriwulanKG / (listBulanPelayananSorted.size() - 1));
|
.floor(capaianTriwulanKG / (listBulanPelayananSorted.size() - 1));
|
||||||
}
|
}
|
||||||
} else if (indikator.getId().equals(Master.IndikatorKinerja.KONSUL_REG)
|
} else if (idIndikator.equals(Master.IndikatorKinerja.KONSUL_REG)
|
||||||
&& data.get("namaTindakan").equals(Master.KONSUL)) {
|
&& data.get("namaTindakan").equals(Master.KONSUL)) {
|
||||||
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||||
if (i < listBulanPelayananSorted.size()) {
|
if (i < listBulanPelayananSorted.size()) {
|
||||||
capaianTriwulanKR += Double.valueOf(data.get("jumlahTindakan").toString());
|
capaianTriwulanKR += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||||
for (Map<String, Object> target : dataTargetFiltered) {
|
for (Map<String, Object> target : dataTargetFiltered) {
|
||||||
if (kelompokKerja.getId().equals(target.get("kelompokKerjaId"))
|
if (kelompokKerja.get("subunitKerjaId").equals(target.get("kelompokKerjaId"))
|
||||||
&& indikator.getId().equals(target.get("indikatorId"))
|
&& idIndikator.equals(target.get("indikatorId"))
|
||||||
&& datePelayanan.equals(target.get("periode"))) {
|
&& datePelayanan.equals(target.get("periode"))) {
|
||||||
targetBulanan = Double.valueOf(target.get("target").toString());
|
targetBulanan = Double.valueOf(target.get("target").toString());
|
||||||
break;
|
break;
|
||||||
@ -685,14 +686,14 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
|||||||
targetBulanan = Math
|
targetBulanan = Math
|
||||||
.floor(capaianTriwulanKR / (listBulanPelayananSorted.size() - 1));
|
.floor(capaianTriwulanKR / (listBulanPelayananSorted.size() - 1));
|
||||||
}
|
}
|
||||||
} else if (indikator.getId().equals(Master.IndikatorKinerja.VISITE)
|
} else if (idIndikator.equals(Master.IndikatorKinerja.VISITE)
|
||||||
&& data.get("namaTindakan").equals(Master.VISIT)) {
|
&& data.get("namaTindakan").equals(Master.VISIT)) {
|
||||||
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||||
if (i < listBulanPelayananSorted.size()) {
|
if (i < listBulanPelayananSorted.size()) {
|
||||||
capaianTriwulanVI += Double.valueOf(data.get("jumlahTindakan").toString());
|
capaianTriwulanVI += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||||
for (Map<String, Object> target : dataTargetFiltered) {
|
for (Map<String, Object> target : dataTargetFiltered) {
|
||||||
if (kelompokKerja.getId().equals(target.get("kelompokKerjaId"))
|
if (kelompokKerja.get("subunitKerjaId").equals(target.get("kelompokKerjaId"))
|
||||||
&& indikator.getId().equals(target.get("indikatorId"))
|
&& idIndikator.equals(target.get("indikatorId"))
|
||||||
&& datePelayanan.equals(target.get("periode"))) {
|
&& datePelayanan.equals(target.get("periode"))) {
|
||||||
targetBulanan = Double.valueOf(target.get("target").toString());
|
targetBulanan = Double.valueOf(target.get("target").toString());
|
||||||
break;
|
break;
|
||||||
@ -702,14 +703,14 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
|||||||
targetBulanan = Math
|
targetBulanan = Math
|
||||||
.floor(capaianTriwulanVI / (listBulanPelayananSorted.size() - 1));
|
.floor(capaianTriwulanVI / (listBulanPelayananSorted.size() - 1));
|
||||||
}
|
}
|
||||||
} else if (indikator.getId().equals(Master.IndikatorKinerja.TINDAKAN_EKS)
|
} else if (idIndikator.equals(Master.IndikatorKinerja.TINDAKAN_EKS)
|
||||||
&& listRuangEks.contains(data.get("idRuangan"))) {
|
&& listRuangEks.contains(data.get("idRuangan"))) {
|
||||||
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||||
if (i < listBulanPelayananSorted.size()) {
|
if (i < listBulanPelayananSorted.size()) {
|
||||||
capaianTriwulanTE += Double.valueOf(data.get("jumlahTindakan").toString());
|
capaianTriwulanTE += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||||
for (Map<String, Object> target : dataTargetFiltered) {
|
for (Map<String, Object> target : dataTargetFiltered) {
|
||||||
if (kelompokKerja.getId().equals(target.get("kelompokKerjaId"))
|
if (kelompokKerja.get("subunitKerjaId").equals(target.get("kelompokKerjaId"))
|
||||||
&& indikator.getId().equals(target.get("indikatorId"))
|
&& idIndikator.equals(target.get("indikatorId"))
|
||||||
&& datePelayanan.equals(target.get("periode"))) {
|
&& datePelayanan.equals(target.get("periode"))) {
|
||||||
targetBulanan = Double.valueOf(target.get("target").toString());
|
targetBulanan = Double.valueOf(target.get("target").toString());
|
||||||
break;
|
break;
|
||||||
@ -719,14 +720,14 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
|||||||
targetBulanan = Math
|
targetBulanan = Math
|
||||||
.floor(capaianTriwulanTE / (listBulanPelayananSorted.size() - 1));
|
.floor(capaianTriwulanTE / (listBulanPelayananSorted.size() - 1));
|
||||||
}
|
}
|
||||||
} else if (indikator.getId().equals(Master.IndikatorKinerja.TINDAKAN_GADAR)
|
} else if (idIndikator.equals(Master.IndikatorKinerja.TINDAKAN_GADAR)
|
||||||
&& data.get("idDepartemen").equals(Master.Departemen.IGD)) {
|
&& data.get("idDepartemen").equals(Master.Departemen.IGD)) {
|
||||||
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||||
if (i < listBulanPelayananSorted.size()) {
|
if (i < listBulanPelayananSorted.size()) {
|
||||||
capaianTriwulanTG += Double.valueOf(data.get("jumlahTindakan").toString());
|
capaianTriwulanTG += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||||
for (Map<String, Object> target : dataTargetFiltered) {
|
for (Map<String, Object> target : dataTargetFiltered) {
|
||||||
if (kelompokKerja.getId().equals(target.get("kelompokKerjaId"))
|
if (kelompokKerja.get("subunitKerjaId").equals(target.get("kelompokKerjaId"))
|
||||||
&& indikator.getId().equals(target.get("indikatorId"))
|
&& idIndikator.equals(target.get("indikatorId"))
|
||||||
&& datePelayanan.equals(target.get("periode"))) {
|
&& datePelayanan.equals(target.get("periode"))) {
|
||||||
targetBulanan = Double.valueOf(target.get("target").toString());
|
targetBulanan = Double.valueOf(target.get("target").toString());
|
||||||
break;
|
break;
|
||||||
@ -736,14 +737,14 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
|||||||
targetBulanan = Math
|
targetBulanan = Math
|
||||||
.floor(capaianTriwulanTG / (listBulanPelayananSorted.size() - 1));
|
.floor(capaianTriwulanTG / (listBulanPelayananSorted.size() - 1));
|
||||||
}
|
}
|
||||||
} else if (indikator.getId().equals(Master.IndikatorKinerja.TINDAKAN_OPS)
|
} else if (idIndikator.equals(Master.IndikatorKinerja.TINDAKAN_OPS)
|
||||||
&& data.get("idRuangan").equals(Master.Ruangan.OK)) {
|
&& data.get("idRuangan").equals(Master.Ruangan.OK)) {
|
||||||
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||||
if (i < listBulanPelayananSorted.size()) {
|
if (i < listBulanPelayananSorted.size()) {
|
||||||
capaianTriwulanTO += Double.valueOf(data.get("jumlahTindakan").toString());
|
capaianTriwulanTO += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||||
for (Map<String, Object> target : dataTargetFiltered) {
|
for (Map<String, Object> target : dataTargetFiltered) {
|
||||||
if (kelompokKerja.getId().equals(target.get("kelompokKerjaId"))
|
if (kelompokKerja.get("subunitKerjaId").equals(target.get("kelompokKerjaId"))
|
||||||
&& indikator.getId().equals(target.get("indikatorId"))
|
&& idIndikator.equals(target.get("indikatorId"))
|
||||||
&& datePelayanan.equals(target.get("periode"))) {
|
&& datePelayanan.equals(target.get("periode"))) {
|
||||||
targetBulanan = Double.valueOf(target.get("target").toString());
|
targetBulanan = Double.valueOf(target.get("target").toString());
|
||||||
break;
|
break;
|
||||||
@ -753,13 +754,13 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
|||||||
targetBulanan = Math
|
targetBulanan = Math
|
||||||
.floor(capaianTriwulanTO / (listBulanPelayananSorted.size() - 1));
|
.floor(capaianTriwulanTO / (listBulanPelayananSorted.size() - 1));
|
||||||
}
|
}
|
||||||
} else if (indikator.getId().equals(Master.IndikatorKinerja.TINDAKAN_REG)) {
|
} else if (idIndikator.equals(Master.IndikatorKinerja.TINDAKAN_REG)) {
|
||||||
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||||
if (i < listBulanPelayananSorted.size()) {
|
if (i < listBulanPelayananSorted.size()) {
|
||||||
capaianTriwulanTR += Double.valueOf(data.get("jumlahTindakan").toString());
|
capaianTriwulanTR += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||||
for (Map<String, Object> target : dataTargetFiltered) {
|
for (Map<String, Object> target : dataTargetFiltered) {
|
||||||
if (kelompokKerja.getId().equals(target.get("kelompokKerjaId"))
|
if (kelompokKerja.get("subunitKerjaId").equals(target.get("kelompokKerjaId"))
|
||||||
&& indikator.getId().equals(target.get("indikatorId"))
|
&& idIndikator.equals(target.get("indikatorId"))
|
||||||
&& datePelayanan.equals(target.get("periode"))) {
|
&& datePelayanan.equals(target.get("periode"))) {
|
||||||
targetBulanan = Double.valueOf(target.get("target").toString());
|
targetBulanan = Double.valueOf(target.get("target").toString());
|
||||||
break;
|
break;
|
||||||
@ -782,17 +783,83 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
|||||||
}
|
}
|
||||||
if (Double.valueOf(listDetail.get(listDetail.size() - 1).getTarget()) > 0.0) {
|
if (Double.valueOf(listDetail.get(listDetail.size() - 1).getTarget()) > 0.0) {
|
||||||
resultVo.setDetail(listDetail);
|
resultVo.setDetail(listDetail);
|
||||||
resultVo.setKelompokKerja(
|
SubUnitKerjaPegawaiVO kelompokKerjaVO = new SubUnitKerjaPegawaiVO();
|
||||||
subunitKerjaConverter.transferModelToVO(kelompokKerja, new SubUnitKerjaPegawaiVO()));
|
kelompokKerjaVO.setId(Integer.valueOf(kelompokKerja.get("subunitKerjaId").toString()));
|
||||||
resultVo.setIndikator(indikatorKinerjaDetailConverter.transferModelToVO(indikator,
|
|
||||||
new IndikatorKinerjaDetailVO()));
|
|
||||||
|
|
||||||
result.add(resultVo);
|
UnitKerjaPegawaiVO unitKerjaVO = new UnitKerjaPegawaiVO();
|
||||||
|
unitKerjaVO.setId(Integer.valueOf(kelompokKerja.get("unitKerjaId").toString()));
|
||||||
|
kelompokKerjaVO.setUnitKerja(unitKerjaVO);
|
||||||
|
|
||||||
|
IndikatorKinerjaDetailVO detailIndikatorVO = new IndikatorKinerjaDetailVO();
|
||||||
|
detailIndikatorVO.setId(idIndikator);
|
||||||
|
|
||||||
|
resultVo.setKelompokKerja(kelompokKerjaVO);
|
||||||
|
resultVo.setIndikator(detailIndikatorVO);
|
||||||
|
|
||||||
|
saveTargetCapaianLayanan(resultVo, sdf.parse(strPeriode));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(readOnly = false)
|
||||||
|
public void saveTargetCapaianLayanan(TargetLayananCustomVO vo, Date periodeHitung) throws ParseException {
|
||||||
|
Date tglHitung = new Date();
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
|
||||||
|
for (TargetLayananCustomDetailVO detail : vo.getDetail()) {
|
||||||
|
SubUnitKerjaPegawai kelompokKerja = new SubUnitKerjaPegawai();
|
||||||
|
kelompokKerja.setId(vo.getKelompokKerja().getId());
|
||||||
|
|
||||||
|
UnitKerjaPegawai unitKerja = new UnitKerjaPegawai();
|
||||||
|
unitKerja.setId(vo.getKelompokKerja().getUnitKerja().getId());
|
||||||
|
kelompokKerja.setUnitKerja(unitKerja);
|
||||||
|
|
||||||
|
IndikatorKinerjaDetail indikator = new IndikatorKinerjaDetail();
|
||||||
|
indikator.setId(vo.getIndikator().getId());
|
||||||
|
|
||||||
|
TargetLayanan targetLayanan = new TargetLayanan();
|
||||||
|
targetLayanan.setKdProfile((short) 0);
|
||||||
|
targetLayanan.setStatusEnabled(true);
|
||||||
|
targetLayanan.setUnitKerjaPegawai(unitKerja);
|
||||||
|
targetLayanan.setSubUnitKerjaPegawai(kelompokKerja);
|
||||||
|
targetLayanan.setTglHitung(tglHitung);
|
||||||
|
targetLayanan.setPeriode(sdf.parse(detail.getDate()));
|
||||||
|
targetLayanan.setIndikatorDetail(indikator);
|
||||||
|
targetLayanan.setTarget(detail.getTarget());
|
||||||
|
targetLayanan.setCapaian(detail.getCapaian());
|
||||||
|
|
||||||
|
targetLayananDao.save(targetLayanan);
|
||||||
|
if (sdf.format(targetLayanan.getPeriode()).equals(sdf.format(periodeHitung))) {
|
||||||
|
List<Map<String, Object>> dataPegawai = mapPegawaiJabatanToUnitKerjaDao
|
||||||
|
.findPegawaiJabatanBySubunitKerja(targetLayanan.getSubUnitKerjaPegawai().getId());
|
||||||
|
|
||||||
|
Double detailTarget = Math.floor(targetLayanan.target / dataPegawai.size());
|
||||||
|
if (detailTarget < 1.0) {
|
||||||
|
detailTarget = 1.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (Map<String, Object> map : dataPegawai) {
|
||||||
|
LogbookKinerjaDokter logbook = new LogbookKinerjaDokter();
|
||||||
|
logbook.setKdProfile((short) 0);
|
||||||
|
logbook.setStatusEnabled(true);
|
||||||
|
logbook.setBulan(targetLayanan.getPeriode());
|
||||||
|
logbook.setDetailTarget(detailTarget);
|
||||||
|
logbook.setDetailCapaian(
|
||||||
|
CommonUtil.isNotNullOrEmpty(targetLayanan.getCapaian()) ? targetLayanan.getCapaian() : 0);
|
||||||
|
logbook.setIndikatorDetail(targetLayanan.getIndikatorDetail());
|
||||||
|
Jabatan jabatan = new Jabatan();
|
||||||
|
jabatan.setId(Integer.valueOf(map.get("jabatanId").toString()));
|
||||||
|
logbook.setJabatan(jabatan);
|
||||||
|
Pegawai pegawai = new Pegawai();
|
||||||
|
pegawai.setId(Integer.valueOf(map.get("pegawaiId").toString()));
|
||||||
|
logbook.setPegawai(pegawai);
|
||||||
|
|
||||||
|
logbookKinerjaDokterDao.save(logbook);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -800,7 +867,7 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
|||||||
throws ParseException {
|
throws ParseException {
|
||||||
List<TargetLayananCustomVO> result = new ArrayList<>();
|
List<TargetLayananCustomVO> result = new ArrayList<>();
|
||||||
List<TargetLayanan> data = new ArrayList<>();
|
List<TargetLayanan> data = new ArrayList<>();
|
||||||
List<SubUnitKerjaPegawai> listKelompokKerja = new ArrayList<>();
|
List<Map<String, Object>> listKelompokKerja = new ArrayList<>();
|
||||||
List<Integer> listIdKelompokKerja = new ArrayList<>();
|
List<Integer> listIdKelompokKerja = new ArrayList<>();
|
||||||
|
|
||||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
|
||||||
@ -842,18 +909,18 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
|||||||
listKelompokKerja = subunitKerjaDao.findSubunitKerjaById(listIdKelompokKerja);
|
listKelompokKerja = subunitKerjaDao.findSubunitKerjaById(listIdKelompokKerja);
|
||||||
}
|
}
|
||||||
|
|
||||||
List<IndikatorKinerjaDetail> listIndikatorPelayanan = indikatorKinerjaDetailDao
|
List<Map<String, Object>> listIndikatorPelayanan = indikatorKinerjaDetailDao
|
||||||
.findByListId(Arrays.asList(Master.IndikatorKinerja.INDIKATOR_PELAYANAN_MEDIS));
|
.findByListId(Arrays.asList(Master.IndikatorKinerja.INDIKATOR_PELAYANAN_MEDIS));
|
||||||
|
|
||||||
for (SubUnitKerjaPegawai kelompokKerja : listKelompokKerja) {
|
for (Map<String, Object> kelompokKerja : listKelompokKerja) {
|
||||||
for (IndikatorKinerjaDetail indikator : listIndikatorPelayanan) {
|
for (Map<String, Object> indikator : listIndikatorPelayanan) {
|
||||||
|
|
||||||
List<String> paramPeriode = new ArrayList<>();
|
List<String> paramPeriode = new ArrayList<>();
|
||||||
TargetLayananCustomVO resultVo = new TargetLayananCustomVO();
|
TargetLayananCustomVO resultVo = new TargetLayananCustomVO();
|
||||||
List<TargetLayananCustomDetailVO> listDetail = new ArrayList<>();
|
List<TargetLayananCustomDetailVO> listDetail = new ArrayList<>();
|
||||||
for (TargetLayanan targetLayanan : data) {
|
for (TargetLayanan targetLayanan : data) {
|
||||||
if (kelompokKerja.getId().equals(targetLayanan.getSubUnitKerjaPegawai().getId())
|
if (kelompokKerja.get("subId").equals(targetLayanan.getSubUnitKerjaPegawai().getId())
|
||||||
&& indikator.getId().equals(targetLayanan.getIndikatorDetail().getId())) {
|
&& indikator.get("id").equals(targetLayanan.getIndikatorDetail().getId())) {
|
||||||
TargetLayananCustomDetailVO detail = new TargetLayananCustomDetailVO();
|
TargetLayananCustomDetailVO detail = new TargetLayananCustomDetailVO();
|
||||||
detail.setDate(sdf.format(targetLayanan.getPeriode()));
|
detail.setDate(sdf.format(targetLayanan.getPeriode()));
|
||||||
detail.setBulan(sdfINA.format(targetLayanan.getPeriode()));
|
detail.setBulan(sdfINA.format(targetLayanan.getPeriode()));
|
||||||
@ -872,10 +939,21 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
|||||||
|
|
||||||
if (listDetail.size() == 4 && listDetail.get(listDetail.size() - 1).getTarget() > 0.0) {
|
if (listDetail.size() == 4 && listDetail.get(listDetail.size() - 1).getTarget() > 0.0) {
|
||||||
resultVo.setDetail(listDetail);
|
resultVo.setDetail(listDetail);
|
||||||
resultVo.setKelompokKerja(
|
|
||||||
subunitKerjaConverter.transferModelToVO(kelompokKerja, new SubUnitKerjaPegawaiVO()));
|
UnitKerjaPegawaiVO unitKerjaVO = new UnitKerjaPegawaiVO();
|
||||||
resultVo.setIndikator(indikatorKinerjaDetailConverter.transferModelToVO(indikator,
|
unitKerjaVO.setId(Integer.valueOf(kelompokKerja.get("unitId").toString()));
|
||||||
new IndikatorKinerjaDetailVO()));
|
unitKerjaVO.setName(kelompokKerja.get("unitName").toString());
|
||||||
|
|
||||||
|
SubUnitKerjaPegawaiVO kelompokKerjaVO = new SubUnitKerjaPegawaiVO();
|
||||||
|
kelompokKerjaVO.setId(Integer.valueOf(kelompokKerja.get("subId").toString()));
|
||||||
|
kelompokKerjaVO.setName(kelompokKerja.get("subName").toString());
|
||||||
|
kelompokKerjaVO.setUnitKerja(unitKerjaVO);
|
||||||
|
resultVo.setKelompokKerja(kelompokKerjaVO);
|
||||||
|
|
||||||
|
IndikatorKinerjaDetailVO indikatorVO = new IndikatorKinerjaDetailVO();
|
||||||
|
indikatorVO.setId(Integer.valueOf(indikator.get("id").toString()));
|
||||||
|
indikatorVO.setDetailIndikator(indikator.get("detailIndikator").toString());
|
||||||
|
resultVo.setIndikator(indikatorVO);
|
||||||
|
|
||||||
result.add(resultVo);
|
result.add(resultVo);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,9 +1,6 @@
|
|||||||
package com.jasamedika.medifirst2000.service.impl;
|
package com.jasamedika.medifirst2000.service.impl;
|
||||||
|
|
||||||
import java.text.ParseException;
|
|
||||||
import java.text.SimpleDateFormat;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -11,130 +8,23 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.orm.jpa.JpaSystemException;
|
import org.springframework.orm.jpa.JpaSystemException;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import com.jasamedika.medifirst2000.converter.BaseConverterImpl;
|
|
||||||
import com.jasamedika.medifirst2000.converter.TargetLayananConverter;
|
import com.jasamedika.medifirst2000.converter.TargetLayananConverter;
|
||||||
import com.jasamedika.medifirst2000.dao.LogbookKinerjaDokterDao;
|
|
||||||
import com.jasamedika.medifirst2000.dao.MapPegawaiJabatanToUnitKerjaDao;
|
|
||||||
import com.jasamedika.medifirst2000.dao.TargetLayananDao;
|
import com.jasamedika.medifirst2000.dao.TargetLayananDao;
|
||||||
import com.jasamedika.medifirst2000.entities.IndikatorKinerjaDetail;
|
|
||||||
import com.jasamedika.medifirst2000.entities.Jabatan;
|
|
||||||
import com.jasamedika.medifirst2000.entities.LogbookKinerjaDokter;
|
|
||||||
import com.jasamedika.medifirst2000.entities.Pegawai;
|
|
||||||
import com.jasamedika.medifirst2000.entities.SubUnitKerjaPegawai;
|
|
||||||
import com.jasamedika.medifirst2000.entities.TargetLayanan;
|
import com.jasamedika.medifirst2000.entities.TargetLayanan;
|
||||||
import com.jasamedika.medifirst2000.entities.UnitKerjaPegawai;
|
|
||||||
import com.jasamedika.medifirst2000.exception.ServiceVOException;
|
import com.jasamedika.medifirst2000.exception.ServiceVOException;
|
||||||
import com.jasamedika.medifirst2000.service.TargetLayananService;
|
import com.jasamedika.medifirst2000.service.TargetLayananService;
|
||||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
import com.jasamedika.medifirst2000.util.CommonUtil;
|
||||||
import com.jasamedika.medifirst2000.vo.IndikatorKinerjaDetailVO;
|
|
||||||
import com.jasamedika.medifirst2000.vo.SubUnitKerjaPegawaiVO;
|
|
||||||
import com.jasamedika.medifirst2000.vo.TargetLayananVO;
|
import com.jasamedika.medifirst2000.vo.TargetLayananVO;
|
||||||
import com.jasamedika.medifirst2000.vo.custom.TargetLayananCustomDetailVO;
|
|
||||||
import com.jasamedika.medifirst2000.vo.custom.TargetLayananCustomVO;
|
|
||||||
|
|
||||||
@Service("targetLayananService")
|
@Service("targetLayananService")
|
||||||
public class TargetLayananServiceImpl implements TargetLayananService {
|
public class TargetLayananServiceImpl extends BaseVoServiceImpl implements TargetLayananService {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private TargetLayananConverter targetLayananConverter;
|
private TargetLayananConverter targetLayananConverter;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private BaseConverterImpl<SubUnitKerjaPegawaiVO, SubUnitKerjaPegawai> subunitKerjaConverter;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private BaseConverterImpl<IndikatorKinerjaDetailVO, IndikatorKinerjaDetail> indikatorKinerjaDetailConverter;
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private TargetLayananDao targetLayananDao;
|
private TargetLayananDao targetLayananDao;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private MapPegawaiJabatanToUnitKerjaDao mapPegawaiJabatanToUnitKerjaDao;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private LogbookKinerjaDokterDao logbookKinerjaDokterDao;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<String> addAll(List<TargetLayananCustomVO> vos, Long periodeHitung)
|
|
||||||
throws JpaSystemException, ServiceVOException, ParseException {
|
|
||||||
List<String> resultListVO = new ArrayList<>();
|
|
||||||
List<TargetLayanan> listTargetLayanan = new ArrayList<>();
|
|
||||||
|
|
||||||
Date tglHitung = new Date();
|
|
||||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
|
|
||||||
for (TargetLayananCustomVO vo : vos) {
|
|
||||||
for (TargetLayananCustomDetailVO detail : vo.getDetail()) {
|
|
||||||
UnitKerjaPegawai unitKerja = new UnitKerjaPegawai();
|
|
||||||
unitKerja.setId(vo.getKelompokKerja().getUnitKerjaId());
|
|
||||||
|
|
||||||
SubUnitKerjaPegawai kelompokKerja = subunitKerjaConverter.transferVOToModel(vo.getKelompokKerja(),
|
|
||||||
new SubUnitKerjaPegawai());
|
|
||||||
IndikatorKinerjaDetail indikator = indikatorKinerjaDetailConverter.transferVOToModel(vo.getIndikator(),
|
|
||||||
new IndikatorKinerjaDetail());
|
|
||||||
|
|
||||||
TargetLayanan targetLayanan = new TargetLayanan();
|
|
||||||
targetLayanan.setKdProfile((short) 0);
|
|
||||||
targetLayanan.setStatusEnabled(true);
|
|
||||||
targetLayanan.setUnitKerjaPegawai(unitKerja);
|
|
||||||
targetLayanan.setSubUnitKerjaPegawai(kelompokKerja);
|
|
||||||
targetLayanan.setTglHitung(tglHitung);
|
|
||||||
targetLayanan.setPeriode(sdf.parse(detail.getDate()));
|
|
||||||
targetLayanan.setIndikatorDetail(indikator);
|
|
||||||
targetLayanan.setTarget(detail.getTarget());
|
|
||||||
targetLayanan.setCapaian(detail.getCapaian());
|
|
||||||
|
|
||||||
listTargetLayanan.add(targetLayanan);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Iterable<TargetLayanan> listResultModel = targetLayananDao.save(listTargetLayanan);
|
|
||||||
for (TargetLayanan resultModel : listResultModel) {
|
|
||||||
TargetLayananVO resultVo = new TargetLayananVO();
|
|
||||||
resultVo = targetLayananConverter.transferModelToVO(resultModel, resultVo);
|
|
||||||
|
|
||||||
// pembagian target untuk anggota kelompok kerja
|
|
||||||
if (sdf.format(resultModel.getPeriode()).equals(sdf.format(new Date(periodeHitung)))) {
|
|
||||||
setKontrakKinerjaDokter(resultModel);
|
|
||||||
}
|
|
||||||
|
|
||||||
resultListVO.add(resultVo.getNoRec());
|
|
||||||
}
|
|
||||||
|
|
||||||
return resultListVO;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setKontrakKinerjaDokter(TargetLayanan targetLayanan) throws JpaSystemException, ServiceVOException {
|
|
||||||
List<LogbookKinerjaDokter> models = new ArrayList<>();
|
|
||||||
|
|
||||||
List<Map<String, Object>> dataPegawai = mapPegawaiJabatanToUnitKerjaDao
|
|
||||||
.findPegawaiJabatanBySubunitKerja(targetLayanan.getSubUnitKerjaPegawai().getId());
|
|
||||||
|
|
||||||
Double detailTarget = Math.floor(targetLayanan.target / dataPegawai.size());
|
|
||||||
if (detailTarget < 1.0) {
|
|
||||||
detailTarget = 1.0;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (Map<String, Object> map : dataPegawai) {
|
|
||||||
LogbookKinerjaDokter logbook = new LogbookKinerjaDokter();
|
|
||||||
logbook.setKdProfile((short) 0);
|
|
||||||
logbook.setStatusEnabled(true);
|
|
||||||
logbook.setBulan(targetLayanan.getPeriode());
|
|
||||||
logbook.setDetailTarget(detailTarget);
|
|
||||||
logbook.setDetailCapaian(
|
|
||||||
CommonUtil.isNotNullOrEmpty(targetLayanan.getCapaian()) ? targetLayanan.getCapaian() : 0);
|
|
||||||
logbook.setIndikatorDetail(targetLayanan.getIndikatorDetail());
|
|
||||||
Jabatan jabatan = new Jabatan();
|
|
||||||
jabatan.setId(Integer.valueOf(map.get("jabatanId").toString()));
|
|
||||||
logbook.setJabatan(jabatan);
|
|
||||||
Pegawai pegawai = new Pegawai();
|
|
||||||
pegawai.setId(Integer.valueOf(map.get("pegawaiId").toString()));
|
|
||||||
logbook.setPegawai(pegawai);
|
|
||||||
|
|
||||||
models.add(logbook);
|
|
||||||
}
|
|
||||||
|
|
||||||
logbookKinerjaDokterDao.save(models);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TargetLayananVO add(TargetLayananVO vo) throws JpaSystemException, ServiceVOException {
|
public TargetLayananVO add(TargetLayananVO vo) throws JpaSystemException, ServiceVOException {
|
||||||
TargetLayanan targetLayanan = targetLayananConverter.transferVOToModel(vo, new TargetLayanan());
|
TargetLayanan targetLayanan = targetLayananConverter.transferVOToModel(vo, new TargetLayanan());
|
||||||
|
|||||||
@ -8,11 +8,11 @@ hibernate.show_sql = true
|
|||||||
hikari.config.maximum.pool.size = 5
|
hikari.config.maximum.pool.size = 5
|
||||||
|
|
||||||
# DB Development
|
# DB Development
|
||||||
jdbc.url = jdbc:postgresql://localhost:5432/backup_31Jan21
|
jdbc.url = jdbc:postgresql://localhost:5432/backup_01Mar21
|
||||||
jdbc.username = postgres
|
jdbc.username = postgres
|
||||||
jdbc.password = root
|
jdbc.password = root
|
||||||
jdbc.serverName = localhost
|
jdbc.serverName = localhost
|
||||||
jdbc.databaseName = backup_31Jan21
|
jdbc.databaseName = backup_01Mar21
|
||||||
jdbc.portNumber = 5432
|
jdbc.portNumber = 5432
|
||||||
|
|
||||||
corePoolSizeAsyncConfigurer = 5
|
corePoolSizeAsyncConfigurer = 5
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import java.util.Date;
|
|||||||
|
|
||||||
import javax.persistence.Column;
|
import javax.persistence.Column;
|
||||||
import javax.persistence.Entity;
|
import javax.persistence.Entity;
|
||||||
|
import javax.persistence.FetchType;
|
||||||
import javax.persistence.JoinColumn;
|
import javax.persistence.JoinColumn;
|
||||||
import javax.persistence.ManyToOne;
|
import javax.persistence.ManyToOne;
|
||||||
import javax.persistence.Table;
|
import javax.persistence.Table;
|
||||||
@ -19,7 +20,7 @@ public class TargetLayanan extends BaseTransaction {
|
|||||||
|
|
||||||
private static final long serialVersionUID = -8426274186046883050L;
|
private static final long serialVersionUID = -8426274186046883050L;
|
||||||
|
|
||||||
@ManyToOne
|
@ManyToOne(fetch = FetchType.LAZY)
|
||||||
@JoinColumn(name = "objectunitkerjafk")
|
@JoinColumn(name = "objectunitkerjafk")
|
||||||
@Caption(value = "Unit Kerja")
|
@Caption(value = "Unit Kerja")
|
||||||
public UnitKerjaPegawai unitKerjaPegawai;
|
public UnitKerjaPegawai unitKerjaPegawai;
|
||||||
@ -27,7 +28,7 @@ public class TargetLayanan extends BaseTransaction {
|
|||||||
@Column(name = "objectunitkerjafk", insertable = false, updatable = false)
|
@Column(name = "objectunitkerjafk", insertable = false, updatable = false)
|
||||||
public Integer unitKerjaPegawaiId;
|
public Integer unitKerjaPegawaiId;
|
||||||
|
|
||||||
@ManyToOne
|
@ManyToOne(fetch = FetchType.LAZY)
|
||||||
@JoinColumn(name = "objectsubunitkerjafk")
|
@JoinColumn(name = "objectsubunitkerjafk")
|
||||||
@Caption(value = "Subunit Kerja")
|
@Caption(value = "Subunit Kerja")
|
||||||
public SubUnitKerjaPegawai subUnitKerjaPegawai;
|
public SubUnitKerjaPegawai subUnitKerjaPegawai;
|
||||||
@ -45,7 +46,7 @@ public class TargetLayanan extends BaseTransaction {
|
|||||||
@Caption(value = "Periode")
|
@Caption(value = "Periode")
|
||||||
public Date periode;
|
public Date periode;
|
||||||
|
|
||||||
@ManyToOne
|
@ManyToOne(fetch = FetchType.LAZY)
|
||||||
@JoinColumn(name = "objectindikatordetailfk")
|
@JoinColumn(name = "objectindikatordetailfk")
|
||||||
@Caption(value = "Indikator Kinerja")
|
@Caption(value = "Indikator Kinerja")
|
||||||
public IndikatorKinerjaDetail indikatorDetail;
|
public IndikatorKinerjaDetail indikatorDetail;
|
||||||
|
|||||||
@ -1,7 +1,5 @@
|
|||||||
package com.jasamedika.medifirst2000.vo;
|
package com.jasamedika.medifirst2000.vo;
|
||||||
|
|
||||||
import com.jasamedika.medifirst2000.entities.UnitKerjaPegawai;
|
|
||||||
|
|
||||||
public class SubUnitKerjaPegawaiVO extends BaseKeyValueMasterVO{
|
public class SubUnitKerjaPegawaiVO extends BaseKeyValueMasterVO{
|
||||||
|
|
||||||
private UnitKerjaPegawaiVO unitKerja;
|
private UnitKerjaPegawaiVO unitKerja;
|
||||||
|
|||||||
@ -2,7 +2,6 @@ package com.jasamedika.medifirst2000.asynctask;
|
|||||||
|
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
@ -13,7 +12,6 @@ import org.springframework.stereotype.Component;
|
|||||||
import com.jasamedika.medifirst2000.asynctask.timer.MonthlyTimer;
|
import com.jasamedika.medifirst2000.asynctask.timer.MonthlyTimer;
|
||||||
import com.jasamedika.medifirst2000.controller.base.LocaleController;
|
import com.jasamedika.medifirst2000.controller.base.LocaleController;
|
||||||
import com.jasamedika.medifirst2000.service.IkiDanRemunerasiService;
|
import com.jasamedika.medifirst2000.service.IkiDanRemunerasiService;
|
||||||
import com.jasamedika.medifirst2000.service.TargetLayananService;
|
|
||||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
import com.jasamedika.medifirst2000.util.CommonUtil;
|
||||||
import com.jasamedika.medifirst2000.vo.TargetLayananVO;
|
import com.jasamedika.medifirst2000.vo.TargetLayananVO;
|
||||||
|
|
||||||
@ -24,9 +22,6 @@ public class TargetLayananGenerating extends LocaleController<TargetLayananVO> {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private IkiDanRemunerasiService remunerasiService;
|
private IkiDanRemunerasiService remunerasiService;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private TargetLayananService targetLayananService;
|
|
||||||
|
|
||||||
public TargetLayananGenerating() {
|
public TargetLayananGenerating() {
|
||||||
int the1st = 1;
|
int the1st = 1;
|
||||||
int at0hrs = 0;
|
int at0hrs = 0;
|
||||||
@ -50,11 +45,8 @@ public class TargetLayananGenerating extends LocaleController<TargetLayananVO> {
|
|||||||
try {
|
try {
|
||||||
if (CommonUtil.isNotNullOrEmpty(remunerasiService)) {
|
if (CommonUtil.isNotNullOrEmpty(remunerasiService)) {
|
||||||
LOGGER.info("Task Target Layanan : Running Generate Target Layanan");
|
LOGGER.info("Task Target Layanan : Running Generate Target Layanan");
|
||||||
List<String> rsList = targetLayananService.addAll(remunerasiService.calcTargetCapaianLayanan(
|
remunerasiService.autoSaveTargetCapaianLayanan(new SimpleDateFormat("yyyy-MM").format(new Date()),
|
||||||
new SimpleDateFormat("yyyy-MM").format(new Date()), null), new Date().getTime());
|
null);
|
||||||
if (CommonUtil.isNullOrEmpty(rsList)) {
|
|
||||||
LOGGER.info("Task Target Layanan : No Generating Target Layanan");
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
LOGGER.warn("Task Target Layanan : Undefined service");
|
LOGGER.warn("Task Target Layanan : Undefined service");
|
||||||
}
|
}
|
||||||
|
|||||||
@ -239,27 +239,6 @@ public class IkiDanRemunerasiController extends LocaleController<IkiDanRemuneras
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Postman using only!
|
|
||||||
@RequestMapping(value = "/calculate-target-dan-capaian-layanan", method = RequestMethod.GET)
|
|
||||||
public ResponseEntity<List<TargetLayananCustomVO>> calculateTargetLayanan(HttpServletRequest request,
|
|
||||||
@RequestParam(value = "periode", required = true) String periode,
|
|
||||||
@RequestParam(value = "ksmId", required = false) Integer idKsm) throws ParseException {
|
|
||||||
try {
|
|
||||||
List<TargetLayananCustomVO> result = service.calcTargetCapaianLayanan(periode, idKsm);
|
|
||||||
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,
|
|
||||||
getMessage(MessageResource.LABEL_SUCCESS, request));
|
|
||||||
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);
|
|
||||||
} catch (ServiceVOException sve) {
|
|
||||||
LOGGER.error("Got exception {} when calculate target dan capaian layanan", sve.getMessage());
|
|
||||||
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, sve.getMessage());
|
|
||||||
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage);
|
|
||||||
} catch (JpaSystemException jse) {
|
|
||||||
LOGGER.error("Got exception {} when calculate target dan capaian layanan", jse.getMessage());
|
|
||||||
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage());
|
|
||||||
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@RequestMapping(value = "/get-all-target-dan-capaian-layanan", method = RequestMethod.GET)
|
@RequestMapping(value = "/get-all-target-dan-capaian-layanan", method = RequestMethod.GET)
|
||||||
public ResponseEntity<List<TargetLayananCustomVO>> getAllTargetLayanan(HttpServletRequest request,
|
public ResponseEntity<List<TargetLayananCustomVO>> getAllTargetLayanan(HttpServletRequest request,
|
||||||
@RequestParam(value = "periode", required = true) String periode,
|
@RequestParam(value = "periode", required = true) String periode,
|
||||||
|
|||||||
@ -5530,27 +5530,6 @@ public class SdmController extends LocaleController<AkunVO> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping(value = "/save-target-layanan/", method = RequestMethod.POST)
|
|
||||||
public ResponseEntity<List<String>> saveTargetLayanan(HttpServletRequest request,
|
|
||||||
@RequestBody List<TargetLayananCustomVO> vos,
|
|
||||||
@RequestParam(value = "periodeHitung", required = true) Long periodeHitung) throws ParseException {
|
|
||||||
try {
|
|
||||||
List<String> result = targetLayananService.addAll(vos, periodeHitung);
|
|
||||||
if (null != result)
|
|
||||||
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,
|
|
||||||
getMessage(MessageResource.LABEL_SUCCESS, request));
|
|
||||||
return RestUtil.getJsonResponse(result, HttpStatus.CREATED, mapHeaderMessage);
|
|
||||||
} catch (ServiceVOException e) {
|
|
||||||
LOGGER.error("Got exception {} when add target layanan", e.getMessage());
|
|
||||||
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage());
|
|
||||||
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage);
|
|
||||||
} catch (JpaSystemException jse) {
|
|
||||||
LOGGER.error("Got exception {} when add target layanan", jse.getMessage());
|
|
||||||
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage());
|
|
||||||
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@RequestMapping(value = "/get-jadwal-pegawai", method = RequestMethod.GET)
|
@RequestMapping(value = "/get-jadwal-pegawai", method = RequestMethod.GET)
|
||||||
public ResponseEntity<Map<String, Object>> getJadwalPegawai(HttpServletRequest request,
|
public ResponseEntity<Map<String, Object>> getJadwalPegawai(HttpServletRequest request,
|
||||||
@RequestParam(value = "idPegawai", required = true) Integer idPegawai) {
|
@RequestParam(value = "idPegawai", required = true) Integer idPegawai) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user