- penambahan tabel bobot jenis indikator
- pembuatan fungsi simpan data master bobot jenis indikator - pembuatan fungsi delete data master bobot jenis indikator - pembuatan fungsi tampil data master bobot jenis indikator - penyesuaian fungsi hitung target dari capaian pelayanan medis - penyesuaian jenis presensi untuk fitur penanda masuk atau pulang - pembuatan service simpan otomatis target dari capaian pelayanan medis bulanan
This commit is contained in:
parent
037c8648d5
commit
b8bd63df72
@ -0,0 +1,41 @@
|
||||
package com.jasamedika.medifirst2000.dao;
|
||||
|
||||
import java.util.Date;
|
||||
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.stereotype.Repository;
|
||||
|
||||
import com.jasamedika.medifirst2000.entities.BobotJenisIndikator;
|
||||
|
||||
@Repository("BobotJenisIndikatorDao")
|
||||
public interface BobotJenisIndikatorDao extends PagingAndSortingRepository<BobotJenisIndikator, String> {
|
||||
|
||||
@Query("select new Map(bj.noRec as noRec,bj.bulan as bulanBerlaku," + "bj.jenisIndikator as jenisIndikatorId,"
|
||||
+ "(case when bj.jenisIndikator = 1 then 'Kuantitas' " + "when bj.jenisIndikator = 2 then 'Kualitas' "
|
||||
+ "when bj.jenisIndikator = 3 then 'Perilaku' end) as jenisIndikator,"
|
||||
+ "kj.id as kelompokJabatanId,kj.namaKelompokJabatan as kelompokJabatan," + "bj.persentase as persentase) "
|
||||
+ "from BobotJenisIndikator bj " + "left join bj.kelompokJabatan kj " + "where bj.statusEnabled is true "
|
||||
+ "and to_char(bj.bulan,'yyyy-MM') <= :periode "
|
||||
+ "order by bj.bulan desc, kj.namaKelompokJabatan, bj.jenisIndikator ")
|
||||
public List<Map<String, Object>> findAllBobotJenis(@Param("periode") String periode);
|
||||
|
||||
@Query("select distinct bj.bulan " + "from BobotJenisIndikator bj " + "where bj.statusEnabled is true "
|
||||
+ "and bj.bulan <= :periode " + "order by bj.bulan desc")
|
||||
public List<Date> findBulanBerlakuByPeriode(@Param("periode") Date periode);
|
||||
|
||||
@Query("select new Map(bj.jenisIndikator as jenisIndikatorId," + "bj.persentase as persentase) "
|
||||
+ "from BobotJenisIndikator bj " + "where bj.statusEnabled is true " + "and bj.bulan = :periode "
|
||||
+ "order by bj.jenisIndikator")
|
||||
public List<Map<String, Object>> findBobotJenis(@Param("periode") Date periode);
|
||||
|
||||
@Query("select new Map(bj.jenisIndikator as jenisIndikatorId," + "bj.persentase as persentase) "
|
||||
+ "from BobotJenisIndikator bj " + "inner join bj.kelompokJabatan kj " + "where bj.statusEnabled is true "
|
||||
+ "and bj.bulan = :periode " + "and kj.id = :kelompokJabatanId " + "order by bj.jenisIndikator")
|
||||
public List<Map<String, Object>> findBobotJenis(@Param("periode") Date periode,
|
||||
@Param("kelompokJabatanId") Integer idKelompokJabatan);
|
||||
|
||||
}
|
||||
@ -74,4 +74,8 @@ public interface IndikatorKinerjaDao extends PagingAndSortingRepository<Indikato
|
||||
+ "where ik.statusEnabled is true " + "and ik.id in (:listIdIndikator)")
|
||||
List<Map<String, Object>> findIndikator(@Param("listIdIndikator") List<Integer> listIdIndikator);
|
||||
|
||||
@Query("select ik from IndikatorKinerja ik " + "where ik.statusEnabled is true "
|
||||
+ "and ik.id in (:listIdIndikator)")
|
||||
List<IndikatorKinerja> findIndikatorById(@Param("listIdIndikator") List<Integer> listIdIndikator);
|
||||
|
||||
}
|
||||
|
||||
@ -22,6 +22,10 @@ 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")
|
||||
List<SubUnitKerjaPegawai> getSubUnitKerjaByUnitkerja(@Param("id") Integer id);
|
||||
|
||||
@Query("select model from SubUnitKerjaPegawai model " + "where model.statusEnabled is true "
|
||||
+ "and model.id in (:listSubunitKerjaId) " + "order by model.name")
|
||||
List<SubUnitKerjaPegawai> findSubunitKerjaById(@Param("listSubunitKerjaId") List<Integer> listIdSubunitKerja);
|
||||
|
||||
@Query("select subUnitKerja.id " + "from MapPegawaiJabatanToUnitKerja mappeg " + "left join mappeg.pegawai p "
|
||||
+ "inner join mappeg.subUnitKerjaPegawai subUnitKerja " + "where mappeg.statusEnabled is true "
|
||||
+ "and mappeg.isPrimary is true " + "and mappeg.statusEnabled is true " + "and p.statusEnabled is true "
|
||||
|
||||
@ -0,0 +1,13 @@
|
||||
package com.jasamedika.medifirst2000.service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.jasamedika.medifirst2000.entities.BobotJenisIndikator;
|
||||
import com.jasamedika.medifirst2000.vo.BobotJenisIndikatorVO;
|
||||
|
||||
public interface BobotJenisIndikatorService extends BaseVoService<BobotJenisIndikator, BobotJenisIndikatorVO, String> {
|
||||
|
||||
public List<Map<String, Object>> findAllBobotJenis(Long periode);
|
||||
|
||||
}
|
||||
@ -6,6 +6,7 @@ import java.util.Map;
|
||||
|
||||
import com.jasamedika.medifirst2000.vo.SettingPirSdmVO;
|
||||
import com.jasamedika.medifirst2000.vo.StrukHistoriVO;
|
||||
import com.jasamedika.medifirst2000.vo.custom.TargetLayananCustomVO;
|
||||
|
||||
public interface IkiDanRemunerasiService {
|
||||
|
||||
@ -28,7 +29,8 @@ public interface IkiDanRemunerasiService {
|
||||
public List<Map<String, Object>> findAllIKU();
|
||||
|
||||
public Map<String, Object> savePirDanIku(List<SettingPirSdmVO> vo);
|
||||
|
||||
public List<Map<String, Object>> findAllTargetCapaianLayanan(String strPeriode, Integer jmlBulan) throws ParseException;
|
||||
|
||||
public List<TargetLayananCustomVO> findAllTargetCapaianLayanan(String strPeriode, Integer idKsm)
|
||||
throws ParseException;
|
||||
|
||||
}
|
||||
|
||||
@ -7,8 +7,8 @@ import org.springframework.orm.jpa.JpaSystemException;
|
||||
|
||||
import com.jasamedika.medifirst2000.entities.TargetLayanan;
|
||||
import com.jasamedika.medifirst2000.exception.ServiceVOException;
|
||||
import com.jasamedika.medifirst2000.vo.TargetLayananCustomVO;
|
||||
import com.jasamedika.medifirst2000.vo.TargetLayananVO;
|
||||
import com.jasamedika.medifirst2000.vo.custom.TargetLayananCustomVO;
|
||||
|
||||
public interface TargetLayananService extends BaseVoService<TargetLayanan, TargetLayananVO, String> {
|
||||
|
||||
|
||||
@ -0,0 +1,122 @@
|
||||
package com.jasamedika.medifirst2000.service.impl;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
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.converter.BaseConverterImpl;
|
||||
import com.jasamedika.medifirst2000.dao.BobotJenisIndikatorDao;
|
||||
import com.jasamedika.medifirst2000.entities.BobotJenisIndikator;
|
||||
import com.jasamedika.medifirst2000.entities.KelompokJabatan;
|
||||
import com.jasamedika.medifirst2000.exception.ServiceVOException;
|
||||
import com.jasamedika.medifirst2000.service.BobotJenisIndikatorService;
|
||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
||||
import com.jasamedika.medifirst2000.vo.BobotJenisIndikatorVO;
|
||||
import com.jasamedika.medifirst2000.vo.KelompokJabatanVO;
|
||||
|
||||
@Service("BobotJenisIndikatorService")
|
||||
public class BobotJenisIndikatorServiceImpl extends BaseVoServiceImpl implements BobotJenisIndikatorService {
|
||||
|
||||
@Autowired
|
||||
private BaseConverterImpl<BobotJenisIndikatorVO, BobotJenisIndikator> bobotJenisIndikatorConverter;
|
||||
|
||||
@Autowired
|
||||
private BaseConverterImpl<KelompokJabatanVO, KelompokJabatan> kelompokJabatanConverter;
|
||||
|
||||
@Autowired
|
||||
private BobotJenisIndikatorDao bobotJenisIndikatorDao;
|
||||
|
||||
@Override
|
||||
public BobotJenisIndikatorVO add(BobotJenisIndikatorVO vo) throws JpaSystemException, ServiceVOException {
|
||||
BobotJenisIndikator bobotJenis = bobotJenisIndikatorConverter.transferVOToModel(vo, new BobotJenisIndikator());
|
||||
|
||||
if (CommonUtil.isNotNullOrEmpty(vo.getKelompokJabatan())) {
|
||||
KelompokJabatan kelompokJabatan = kelompokJabatanConverter.transferVOToModel(vo.getKelompokJabatan(),
|
||||
new KelompokJabatan());
|
||||
bobotJenis.setKelompokJabatan(kelompokJabatan);
|
||||
}
|
||||
|
||||
BobotJenisIndikator resultModel = bobotJenisIndikatorDao.save(bobotJenis);
|
||||
|
||||
BobotJenisIndikatorVO resultVO = new BobotJenisIndikatorVO();
|
||||
resultVO = bobotJenisIndikatorConverter.transferModelToVO(resultModel, resultVO);
|
||||
|
||||
return resultVO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BobotJenisIndikatorVO update(BobotJenisIndikatorVO vo) throws JpaSystemException, ServiceVOException {
|
||||
BobotJenisIndikator bobotJenisLama = bobotJenisIndikatorDao.findOne(vo.getNoRec());
|
||||
BobotJenisIndikator bobotJenisBaru = bobotJenisIndikatorConverter.transferVOToModel(vo, bobotJenisLama);
|
||||
|
||||
if (CommonUtil.isNotNullOrEmpty(vo.getKelompokJabatan())) {
|
||||
KelompokJabatan kelompokJabatan = kelompokJabatanConverter.transferVOToModel(vo.getKelompokJabatan(),
|
||||
new KelompokJabatan());
|
||||
bobotJenisBaru.setKelompokJabatan(kelompokJabatan);
|
||||
}
|
||||
|
||||
BobotJenisIndikator resultModel = bobotJenisIndikatorDao.save(bobotJenisBaru);
|
||||
|
||||
BobotJenisIndikatorVO resultVO = new BobotJenisIndikatorVO();
|
||||
resultVO = bobotJenisIndikatorConverter.transferModelToVO(resultModel, resultVO);
|
||||
|
||||
return resultVO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean delete(String key) throws JpaSystemException {
|
||||
bobotJenisIndikatorDao.delete(key);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BobotJenisIndikatorVO findById(String key) throws JpaSystemException {
|
||||
BobotJenisIndikatorVO result = new BobotJenisIndikatorVO();
|
||||
|
||||
BobotJenisIndikator bobotJenis = bobotJenisIndikatorDao.findOne(key);
|
||||
if (CommonUtil.isNotNullOrEmpty(bobotJenis)) {
|
||||
result = bobotJenisIndikatorConverter.transferModelToVO(bobotJenis, result);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BobotJenisIndikatorVO> findAll() throws JpaSystemException {
|
||||
List<BobotJenisIndikatorVO> result = new ArrayList<BobotJenisIndikatorVO>();
|
||||
|
||||
Iterable<BobotJenisIndikator> models = bobotJenisIndikatorDao.findAll();
|
||||
if (CommonUtil.isNotNullOrEmpty(models)) {
|
||||
for (BobotJenisIndikator model : models) {
|
||||
BobotJenisIndikatorVO vo = new BobotJenisIndikatorVO();
|
||||
vo = bobotJenisIndikatorConverter.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<Map<String, Object>> findAllBobotJenis(Long periode) {
|
||||
List<Map<String, Object>> result = bobotJenisIndikatorDao
|
||||
.findAllBobotJenis(new SimpleDateFormat("yyyy-MM").format(new Date(periode)));
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
@ -32,6 +32,7 @@ import com.jasamedika.medifirst2000.dao.SubUnitKerjaDao;
|
||||
import com.jasamedika.medifirst2000.dao.TargetLayananDao;
|
||||
import com.jasamedika.medifirst2000.entities.EvaluasiJabatan;
|
||||
import com.jasamedika.medifirst2000.entities.IkiDanRemunerasi;
|
||||
import com.jasamedika.medifirst2000.entities.IndikatorKinerja;
|
||||
import com.jasamedika.medifirst2000.entities.KelompokTransaksi;
|
||||
import com.jasamedika.medifirst2000.entities.Pegawai;
|
||||
import com.jasamedika.medifirst2000.entities.PegawaiHistoriRekap;
|
||||
@ -40,6 +41,7 @@ import com.jasamedika.medifirst2000.entities.RunningNumber;
|
||||
import com.jasamedika.medifirst2000.entities.SettingPirSdm;
|
||||
import com.jasamedika.medifirst2000.entities.StrukHistori;
|
||||
import com.jasamedika.medifirst2000.entities.StrukPelayanan;
|
||||
import com.jasamedika.medifirst2000.entities.SubUnitKerjaPegawai;
|
||||
import com.jasamedika.medifirst2000.entities.SuratKeputusan;
|
||||
import com.jasamedika.medifirst2000.entities.UnitKerjaPegawai;
|
||||
import com.jasamedika.medifirst2000.service.IkiDanRemunerasiService;
|
||||
@ -48,13 +50,17 @@ import com.jasamedika.medifirst2000.util.CurrencyUtil;
|
||||
import com.jasamedika.medifirst2000.util.StringUtil;
|
||||
import com.jasamedika.medifirst2000.vo.EvaluasiJabatanVO;
|
||||
import com.jasamedika.medifirst2000.vo.IkiDanRemunerasiVO;
|
||||
import com.jasamedika.medifirst2000.vo.IndikatorKinerjaVO;
|
||||
import com.jasamedika.medifirst2000.vo.KelompokTransaksiVO;
|
||||
import com.jasamedika.medifirst2000.vo.PegawaiVO;
|
||||
import com.jasamedika.medifirst2000.vo.RuanganVO;
|
||||
import com.jasamedika.medifirst2000.vo.SettingPirSdmVO;
|
||||
import com.jasamedika.medifirst2000.vo.StrukHistoriVO;
|
||||
import com.jasamedika.medifirst2000.vo.SubUnitKerjaPegawaiVO;
|
||||
import com.jasamedika.medifirst2000.vo.SuratKeputusanVO;
|
||||
import com.jasamedika.medifirst2000.vo.UnitKerjaPegawaiVO;
|
||||
import com.jasamedika.medifirst2000.vo.custom.TargetLayananCustomDetailVO;
|
||||
import com.jasamedika.medifirst2000.vo.custom.TargetLayananCustomVO;
|
||||
|
||||
@Service("IkiDanRemunerasiService")
|
||||
public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements IkiDanRemunerasiService {
|
||||
@ -98,6 +104,9 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
||||
@Autowired
|
||||
private BaseConverterImpl<UnitKerjaPegawaiVO, UnitKerjaPegawai> unitKerjaPegawaiConverter;
|
||||
|
||||
@Autowired
|
||||
private BaseConverterImpl<SubUnitKerjaPegawaiVO, SubUnitKerjaPegawai> subunitKerjaConverter;
|
||||
|
||||
@Autowired
|
||||
private BaseConverterImpl<RuanganVO, Ruangan> ruanganConverter;
|
||||
|
||||
@ -116,6 +125,9 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
||||
@Autowired
|
||||
private BaseConverterImpl<PegawaiVO, Pegawai> pegawaiConverter;
|
||||
|
||||
@Autowired
|
||||
private BaseConverterImpl<IndikatorKinerjaVO, IndikatorKinerja> indikatorKinerjaConverter;
|
||||
|
||||
@Override
|
||||
public Map<String, Object> loadData() {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
@ -447,16 +459,17 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Map<String, Object>> findAllTargetCapaianLayanan(String strPeriode, Integer jmlBulan)
|
||||
public List<TargetLayananCustomVO> findAllTargetCapaianLayanan(String strPeriode, Integer idKsm)
|
||||
throws ParseException {
|
||||
List<Map<String, Object>> result = new ArrayList<>();
|
||||
List<TargetLayananCustomVO> result = new ArrayList<>();
|
||||
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
|
||||
SimpleDateFormat sdfINA = new SimpleDateFormat("MMMM yyyy", new Locale("in", "ID"));
|
||||
|
||||
Date periode = sdf.parse(strPeriode);
|
||||
|
||||
// get_three_month_earlier
|
||||
// get_few_months_earlier
|
||||
Integer jmlBulan = Integer.valueOf(GetSettingDataFixed("jmlBlnHitungTargetMedis"));
|
||||
Calendar calTglAwal = Calendar.getInstance();
|
||||
calTglAwal.setTime(periode);
|
||||
calTglAwal.set(Calendar.HOUR_OF_DAY, 0);
|
||||
@ -475,12 +488,19 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
||||
|
||||
List<Integer> listRuangEks = splitDataSettingDatafixed("IdRuanganEksekutif");
|
||||
|
||||
List<Map<String, Object>> listIndikatorPelayanan = indikatorKinerjaDao
|
||||
.findIndikator(Arrays.asList(Master.IndikatorKinerja.INDIKATOR_PELAYANAN_MEDIS));
|
||||
List<IndikatorKinerja> listIndikatorPelayanan = indikatorKinerjaDao
|
||||
.findIndikatorById(Arrays.asList(Master.IndikatorKinerja.INDIKATOR_PELAYANAN_MEDIS));
|
||||
|
||||
List<Map<String, Object>> dataLayananRaw = ikiDanRemunerasiDao.getDataLayanan(calTglAwal.getTime(),
|
||||
bulan.getTime(), Master.JenisPegawai.DOKTER, Arrays.asList(Master.UnitKerja.KSM),
|
||||
Arrays.asList(Master.JenisProduk.NONTINDAKAN), Master.Produk.KARCIS);
|
||||
List<Map<String, Object>> dataLayananRaw = new ArrayList<>();
|
||||
if (CommonUtil.isNotNullOrEmpty(idKsm)) {
|
||||
dataLayananRaw = ikiDanRemunerasiDao.getDataLayanan(calTglAwal.getTime(), bulan.getTime(),
|
||||
Master.JenisPegawai.DOKTER, Arrays.asList(idKsm), Arrays.asList(Master.JenisProduk.NONTINDAKAN),
|
||||
Master.Produk.KARCIS);
|
||||
} else {
|
||||
dataLayananRaw = ikiDanRemunerasiDao.getDataLayanan(calTglAwal.getTime(), bulan.getTime(),
|
||||
Master.JenisPegawai.DOKTER, Arrays.asList(Master.UnitKerja.KSM),
|
||||
Arrays.asList(Master.JenisProduk.NONTINDAKAN), Master.Produk.KARCIS);
|
||||
}
|
||||
|
||||
// get_kategori_bulan
|
||||
List<String> listBulanPelayanan = new ArrayList<>();
|
||||
@ -499,7 +519,7 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
||||
listIdKK.add(Integer.parseInt(map.get("idKelompokKerja").toString()));
|
||||
}
|
||||
}
|
||||
List<Map<String, Object>> listKelompokKerja = subunitKerjaDao.findSubunitKerja(listIdKK);
|
||||
List<SubUnitKerjaPegawai> listKelompokKerja = subunitKerjaDao.findSubunitKerjaById(listIdKK);
|
||||
|
||||
List<Map<String, Object>> dataLastTargetLayanan = targetLayananDao
|
||||
.getLastTargetLayanan(sdf.format(calTglAwal.getTime()), sdf.format(bulan.getTime()));
|
||||
@ -588,10 +608,10 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
||||
dataLayananScored.add(layanan);
|
||||
}
|
||||
|
||||
for (Map<String, Object> kelompokKerja : listKelompokKerja) {
|
||||
for (Map<String, Object> indikator : listIndikatorPelayanan) {
|
||||
Map<String, Object> rsMap = new HashMap<>();
|
||||
List<Map<String, Object>> listDetail = new ArrayList<>();
|
||||
for (SubUnitKerjaPegawai kelompokKerja : listKelompokKerja) {
|
||||
for (IndikatorKinerja indikator : listIndikatorPelayanan) {
|
||||
TargetLayananCustomVO resultVo = new TargetLayananCustomVO();
|
||||
List<TargetLayananCustomDetailVO> listDetail = new ArrayList<>();
|
||||
|
||||
double capaianTriwulanKE = 0.0;
|
||||
double capaianTriwulanKG = 0.0;
|
||||
@ -605,22 +625,22 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
||||
int i = 0;
|
||||
for (String datePelayanan : listBulanPelayananSorted) {
|
||||
i++;
|
||||
Map<String, Object> detail = new HashMap<>();
|
||||
TargetLayananCustomDetailVO detail = new TargetLayananCustomDetailVO();
|
||||
|
||||
double capaianBulanan = 0.0;
|
||||
double targetBulanan = 0.0;
|
||||
for (Map<String, Object> data : dataLayananScored) {
|
||||
if (kelompokKerja.get("id").equals(data.get("idKelompokKerja"))
|
||||
if (kelompokKerja.getId().equals(data.get("idKelompokKerja"))
|
||||
&& datePelayanan.equals(sdf.format(data.get("tglPelayanan")))) {
|
||||
if (indikator.get("id").equals(Master.IndikatorKinerja.KONSUL_EKS)
|
||||
if (indikator.getId().equals(Master.IndikatorKinerja.KONSUL_EKS)
|
||||
&& data.get("namaTindakan").equals(Master.KONSUL)
|
||||
&& listRuangEks.contains(data.get("idRuangan"))) {
|
||||
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||
if (i < listBulanPelayananSorted.size()) {
|
||||
capaianTriwulanKE += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||
for (Map<String, Object> target : dataTargetFiltered) {
|
||||
if (kelompokKerja.get("id").equals(target.get("kelompokKerjaId"))
|
||||
&& indikator.get("id").equals(target.get("indikatorId"))
|
||||
if (kelompokKerja.getId().equals(target.get("kelompokKerjaId"))
|
||||
&& indikator.getId().equals(target.get("indikatorId"))
|
||||
&& datePelayanan.equals(target.get("periode"))) {
|
||||
targetBulanan = Double.valueOf(target.get("target").toString());
|
||||
break;
|
||||
@ -630,15 +650,15 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
||||
targetBulanan = Math
|
||||
.floor(capaianTriwulanKE / (listBulanPelayananSorted.size() - 1));
|
||||
}
|
||||
} else if (indikator.get("id").equals(Master.IndikatorKinerja.KONSUL_GADAR)
|
||||
} else if (indikator.getId().equals(Master.IndikatorKinerja.KONSUL_GADAR)
|
||||
&& data.get("namaTindakan").equals(Master.KONSUL)
|
||||
&& data.get("idDepartemen").equals(Master.Departemen.IGD)) {
|
||||
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||
if (i < listBulanPelayananSorted.size()) {
|
||||
capaianTriwulanKG += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||
for (Map<String, Object> target : dataTargetFiltered) {
|
||||
if (kelompokKerja.get("id").equals(target.get("kelompokKerjaId"))
|
||||
&& indikator.get("id").equals(target.get("indikatorId"))
|
||||
if (kelompokKerja.getId().equals(target.get("kelompokKerjaId"))
|
||||
&& indikator.getId().equals(target.get("indikatorId"))
|
||||
&& datePelayanan.equals(target.get("periode"))) {
|
||||
targetBulanan = Double.valueOf(target.get("target").toString());
|
||||
break;
|
||||
@ -648,14 +668,14 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
||||
targetBulanan = Math
|
||||
.floor(capaianTriwulanKG / (listBulanPelayananSorted.size() - 1));
|
||||
}
|
||||
} else if (indikator.get("id").equals(Master.IndikatorKinerja.KONSUL_REG)
|
||||
} else if (indikator.getId().equals(Master.IndikatorKinerja.KONSUL_REG)
|
||||
&& data.get("namaTindakan").equals(Master.KONSUL)) {
|
||||
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||
if (i < listBulanPelayananSorted.size()) {
|
||||
capaianTriwulanKR += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||
for (Map<String, Object> target : dataTargetFiltered) {
|
||||
if (kelompokKerja.get("id").equals(target.get("kelompokKerjaId"))
|
||||
&& indikator.get("id").equals(target.get("indikatorId"))
|
||||
if (kelompokKerja.getId().equals(target.get("kelompokKerjaId"))
|
||||
&& indikator.getId().equals(target.get("indikatorId"))
|
||||
&& datePelayanan.equals(target.get("periode"))) {
|
||||
targetBulanan = Double.valueOf(target.get("target").toString());
|
||||
break;
|
||||
@ -665,14 +685,14 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
||||
targetBulanan = Math
|
||||
.floor(capaianTriwulanKR / (listBulanPelayananSorted.size() - 1));
|
||||
}
|
||||
} else if (indikator.get("id").equals(Master.IndikatorKinerja.VISITE)
|
||||
} else if (indikator.getId().equals(Master.IndikatorKinerja.VISITE)
|
||||
&& data.get("namaTindakan").equals(Master.VISIT)) {
|
||||
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||
if (i < listBulanPelayananSorted.size()) {
|
||||
capaianTriwulanVI += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||
for (Map<String, Object> target : dataTargetFiltered) {
|
||||
if (kelompokKerja.get("id").equals(target.get("kelompokKerjaId"))
|
||||
&& indikator.get("id").equals(target.get("indikatorId"))
|
||||
if (kelompokKerja.getId().equals(target.get("kelompokKerjaId"))
|
||||
&& indikator.getId().equals(target.get("indikatorId"))
|
||||
&& datePelayanan.equals(target.get("periode"))) {
|
||||
targetBulanan = Double.valueOf(target.get("target").toString());
|
||||
break;
|
||||
@ -682,14 +702,14 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
||||
targetBulanan = Math
|
||||
.floor(capaianTriwulanVI / (listBulanPelayananSorted.size() - 1));
|
||||
}
|
||||
} else if (indikator.get("id").equals(Master.IndikatorKinerja.TINDAKAN_EKS)
|
||||
} else if (indikator.getId().equals(Master.IndikatorKinerja.TINDAKAN_EKS)
|
||||
&& listRuangEks.contains(data.get("idRuangan"))) {
|
||||
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||
if (i < listBulanPelayananSorted.size()) {
|
||||
capaianTriwulanTE += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||
for (Map<String, Object> target : dataTargetFiltered) {
|
||||
if (kelompokKerja.get("id").equals(target.get("kelompokKerjaId"))
|
||||
&& indikator.get("id").equals(target.get("indikatorId"))
|
||||
if (kelompokKerja.getId().equals(target.get("kelompokKerjaId"))
|
||||
&& indikator.getId().equals(target.get("indikatorId"))
|
||||
&& datePelayanan.equals(target.get("periode"))) {
|
||||
targetBulanan = Double.valueOf(target.get("target").toString());
|
||||
break;
|
||||
@ -699,14 +719,14 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
||||
targetBulanan = Math
|
||||
.floor(capaianTriwulanTE / (listBulanPelayananSorted.size() - 1));
|
||||
}
|
||||
} else if (indikator.get("id").equals(Master.IndikatorKinerja.TINDAKAN_GADAR)
|
||||
} else if (indikator.getId().equals(Master.IndikatorKinerja.TINDAKAN_GADAR)
|
||||
&& data.get("idDepartemen").equals(Master.Departemen.IGD)) {
|
||||
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||
if (i < listBulanPelayananSorted.size()) {
|
||||
capaianTriwulanTG += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||
for (Map<String, Object> target : dataTargetFiltered) {
|
||||
if (kelompokKerja.get("id").equals(target.get("kelompokKerjaId"))
|
||||
&& indikator.get("id").equals(target.get("indikatorId"))
|
||||
if (kelompokKerja.getId().equals(target.get("kelompokKerjaId"))
|
||||
&& indikator.getId().equals(target.get("indikatorId"))
|
||||
&& datePelayanan.equals(target.get("periode"))) {
|
||||
targetBulanan = Double.valueOf(target.get("target").toString());
|
||||
break;
|
||||
@ -716,14 +736,14 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
||||
targetBulanan = Math
|
||||
.floor(capaianTriwulanTG / (listBulanPelayananSorted.size() - 1));
|
||||
}
|
||||
} else if (indikator.get("id").equals(Master.IndikatorKinerja.TINDAKAN_OPS)
|
||||
} else if (indikator.getId().equals(Master.IndikatorKinerja.TINDAKAN_OPS)
|
||||
&& data.get("idRuangan").equals(Master.Ruangan.OK)) {
|
||||
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||
if (i < listBulanPelayananSorted.size()) {
|
||||
capaianTriwulanTO += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||
for (Map<String, Object> target : dataTargetFiltered) {
|
||||
if (kelompokKerja.get("id").equals(target.get("kelompokKerjaId"))
|
||||
&& indikator.get("id").equals(target.get("indikatorId"))
|
||||
if (kelompokKerja.getId().equals(target.get("kelompokKerjaId"))
|
||||
&& indikator.getId().equals(target.get("indikatorId"))
|
||||
&& datePelayanan.equals(target.get("periode"))) {
|
||||
targetBulanan = Double.valueOf(target.get("target").toString());
|
||||
break;
|
||||
@ -733,13 +753,13 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
||||
targetBulanan = Math
|
||||
.floor(capaianTriwulanTO / (listBulanPelayananSorted.size() - 1));
|
||||
}
|
||||
} else if (indikator.get("id").equals(Master.IndikatorKinerja.TINDAKAN_REG)) {
|
||||
} else if (indikator.getId().equals(Master.IndikatorKinerja.TINDAKAN_REG)) {
|
||||
capaianBulanan += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||
if (i < listBulanPelayananSorted.size()) {
|
||||
capaianTriwulanTR += Double.valueOf(data.get("jumlahTindakan").toString());
|
||||
for (Map<String, Object> target : dataTargetFiltered) {
|
||||
if (kelompokKerja.get("id").equals(target.get("kelompokKerjaId"))
|
||||
&& indikator.get("id").equals(target.get("indikatorId"))
|
||||
if (kelompokKerja.getId().equals(target.get("kelompokKerjaId"))
|
||||
&& indikator.getId().equals(target.get("indikatorId"))
|
||||
&& datePelayanan.equals(target.get("periode"))) {
|
||||
targetBulanan = Double.valueOf(target.get("target").toString());
|
||||
break;
|
||||
@ -754,20 +774,20 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
||||
}
|
||||
Date bulanPelayanan = sdf.parse(datePelayanan);
|
||||
|
||||
detail.put("date", datePelayanan);
|
||||
detail.put("bulan", sdfINA.format(bulanPelayanan));
|
||||
detail.put("target", targetBulanan);
|
||||
detail.put("capaian", capaianBulanan);
|
||||
detail.setDate(datePelayanan);
|
||||
detail.setBulan(sdfINA.format(bulanPelayanan));
|
||||
detail.setTarget(targetBulanan);
|
||||
detail.setCapaian(capaianBulanan);
|
||||
listDetail.add(detail);
|
||||
}
|
||||
if (Double.valueOf(listDetail.get(listDetail.size() - 1).get("target").toString()) > 0.0) {
|
||||
rsMap.put("detail", listDetail);
|
||||
rsMap.put("kelompokKerja", kelompokKerja);
|
||||
rsMap.put("indikator", indikator);
|
||||
}
|
||||
if (Double.valueOf(listDetail.get(listDetail.size() - 1).getTarget()) > 0.0) {
|
||||
resultVo.setDetail(listDetail);
|
||||
resultVo.setKelompokKerja(
|
||||
subunitKerjaConverter.transferModelToVO(kelompokKerja, new SubUnitKerjaPegawaiVO()));
|
||||
resultVo.setIndikator(
|
||||
indikatorKinerjaConverter.transferModelToVO(indikator, new IndikatorKinerjaVO()));
|
||||
|
||||
if (CommonUtil.isNotNullOrEmpty(rsMap)) {
|
||||
result.add(rsMap);
|
||||
result.add(resultVo);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -23,9 +23,9 @@ import com.jasamedika.medifirst2000.service.TargetLayananService;
|
||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
||||
import com.jasamedika.medifirst2000.vo.IndikatorKinerjaVO;
|
||||
import com.jasamedika.medifirst2000.vo.SubUnitKerjaPegawaiVO;
|
||||
import com.jasamedika.medifirst2000.vo.TargetLayananCustomDetailVO;
|
||||
import com.jasamedika.medifirst2000.vo.TargetLayananCustomVO;
|
||||
import com.jasamedika.medifirst2000.vo.TargetLayananVO;
|
||||
import com.jasamedika.medifirst2000.vo.custom.TargetLayananCustomDetailVO;
|
||||
import com.jasamedika.medifirst2000.vo.custom.TargetLayananCustomVO;
|
||||
|
||||
@Service("targetLayananService")
|
||||
public class TargetLayananServiceImpl implements TargetLayananService {
|
||||
|
||||
@ -0,0 +1,80 @@
|
||||
package com.jasamedika.medifirst2000.entities;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.JoinColumn;
|
||||
import javax.persistence.ManyToOne;
|
||||
import javax.persistence.Table;
|
||||
import javax.persistence.Temporal;
|
||||
import javax.persistence.TemporalType;
|
||||
|
||||
import com.jasamedika.medifirst2000.base.BaseTransaction;
|
||||
import com.jasamedika.medifirst2000.helper.Caption;
|
||||
|
||||
@Entity
|
||||
@Table(name = "sdm_bobotjenisindikator_t")
|
||||
public class BobotJenisIndikator extends BaseTransaction {
|
||||
|
||||
@Caption(value = "Bulan")
|
||||
@Column(name = "bulan", nullable = false)
|
||||
@Temporal(TemporalType.DATE)
|
||||
private Date bulan;
|
||||
|
||||
@Caption(value = "Jenis Indikator")
|
||||
@Column(name = "jenisindikator", nullable = false)
|
||||
private Integer jenisIndikator;
|
||||
|
||||
@ManyToOne
|
||||
@JoinColumn(name = "objectkelompokjabatanfk")
|
||||
@Caption(value = "Kelompok Jabatan")
|
||||
private KelompokJabatan kelompokJabatan;
|
||||
|
||||
@Column(name = "objectkelompokjabatanfk", insertable = false, updatable = false, nullable = true)
|
||||
private Integer kelompokJabatanId;
|
||||
|
||||
@Caption(value = "Persentase")
|
||||
@Column(name = "persentase", nullable = false)
|
||||
private Double persentase;
|
||||
|
||||
public Date getBulan() {
|
||||
return bulan;
|
||||
}
|
||||
|
||||
public void setBulan(Date bulan) {
|
||||
this.bulan = bulan;
|
||||
}
|
||||
|
||||
public Integer getJenisIndikator() {
|
||||
return jenisIndikator;
|
||||
}
|
||||
|
||||
public void setJenisIndikator(Integer jenisIndikator) {
|
||||
this.jenisIndikator = jenisIndikator;
|
||||
}
|
||||
|
||||
public KelompokJabatan getKelompokJabatan() {
|
||||
return kelompokJabatan;
|
||||
}
|
||||
|
||||
public void setKelompokJabatan(KelompokJabatan kelompokJabatan) {
|
||||
this.kelompokJabatan = kelompokJabatan;
|
||||
}
|
||||
|
||||
public Integer getKelompokJabatanId() {
|
||||
return kelompokJabatanId;
|
||||
}
|
||||
|
||||
public void setKelompokJabatanId(Integer kelompokJabatanId) {
|
||||
this.kelompokJabatanId = kelompokJabatanId;
|
||||
}
|
||||
|
||||
public Double getPersentase() {
|
||||
return persentase;
|
||||
}
|
||||
|
||||
public void setPersentase(Double persentase) {
|
||||
this.persentase = persentase;
|
||||
}
|
||||
}
|
||||
@ -76,6 +76,10 @@ public class Habsen extends BaseModel {
|
||||
@Column(name = "lokasi", nullable = true, length = 1000)
|
||||
@Caption(value = "lokasi")
|
||||
private String lokasi;
|
||||
|
||||
@Column(name = "jenispresensi", nullable = true)
|
||||
@Caption(value = "Jenis Presensi")
|
||||
private Integer jenisPresensi;
|
||||
|
||||
public Integer getTr_no() {
|
||||
return tr_no;
|
||||
@ -189,4 +193,12 @@ public class Habsen extends BaseModel {
|
||||
this.lokasi = lokasi;
|
||||
}
|
||||
|
||||
public Integer getJenisPresensi() {
|
||||
return jenisPresensi;
|
||||
}
|
||||
|
||||
public void setJenisPresensi(Integer jenisPresensi) {
|
||||
this.jenisPresensi = jenisPresensi;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,64 @@
|
||||
package com.jasamedika.medifirst2000.vo;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO;
|
||||
import com.jasamedika.medifirst2000.helper.Caption;
|
||||
|
||||
public class BobotJenisIndikatorVO extends BaseTransactionVO {
|
||||
|
||||
@Caption(value = "Bulan")
|
||||
private Date bulan;
|
||||
|
||||
@Caption(value = "Jenis Indikator")
|
||||
private Integer jenisIndikator;
|
||||
|
||||
@Caption(value = "Kelompok Jabatan")
|
||||
private KelompokJabatanVO kelompokJabatan;
|
||||
|
||||
private Integer kelompokJabatanId;
|
||||
|
||||
@Caption(value = "Persentase")
|
||||
private Double persentase;
|
||||
|
||||
public Date getBulan() {
|
||||
return bulan;
|
||||
}
|
||||
|
||||
public void setBulan(Date bulan) {
|
||||
this.bulan = bulan;
|
||||
}
|
||||
|
||||
public Integer getJenisIndikator() {
|
||||
return jenisIndikator;
|
||||
}
|
||||
|
||||
public void setJenisIndikator(Integer jenisIndikator) {
|
||||
this.jenisIndikator = jenisIndikator;
|
||||
}
|
||||
|
||||
public KelompokJabatanVO getKelompokJabatan() {
|
||||
return kelompokJabatan;
|
||||
}
|
||||
|
||||
public void setKelompokJabatan(KelompokJabatanVO kelompokJabatan) {
|
||||
this.kelompokJabatan = kelompokJabatan;
|
||||
}
|
||||
|
||||
public Integer getKelompokJabatanId() {
|
||||
return kelompokJabatanId;
|
||||
}
|
||||
|
||||
public void setKelompokJabatanId(Integer kelompokJabatanId) {
|
||||
this.kelompokJabatanId = kelompokJabatanId;
|
||||
}
|
||||
|
||||
public Double getPersentase() {
|
||||
return persentase;
|
||||
}
|
||||
|
||||
public void setPersentase(Double persentase) {
|
||||
this.persentase = persentase;
|
||||
}
|
||||
|
||||
}
|
||||
@ -36,7 +36,7 @@ public class HabsenVO extends BaseMasterVO {
|
||||
|
||||
@Caption(value = "ip_addr")
|
||||
private String ip_addr;
|
||||
|
||||
|
||||
@Caption(value = "clientIPAddress")
|
||||
private String clientIPAddress;
|
||||
|
||||
@ -51,7 +51,10 @@ public class HabsenVO extends BaseMasterVO {
|
||||
|
||||
@Caption(value = "lokasi")
|
||||
private String lokasi;
|
||||
|
||||
|
||||
@Caption(value = "jenispresensi")
|
||||
private Integer jenisPresensi;
|
||||
|
||||
@Caption(value = "imageURLData")
|
||||
private String imageURLData;
|
||||
|
||||
@ -175,6 +178,14 @@ public class HabsenVO extends BaseMasterVO {
|
||||
this.lokasi = lokasi;
|
||||
}
|
||||
|
||||
public Integer getJenisPresensi() {
|
||||
return jenisPresensi;
|
||||
}
|
||||
|
||||
public void setJenisPresensi(Integer jenisPresensi) {
|
||||
this.jenisPresensi = jenisPresensi;
|
||||
}
|
||||
|
||||
public String getImageURLData() {
|
||||
return imageURLData;
|
||||
}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
package com.jasamedika.medifirst2000.vo;
|
||||
package com.jasamedika.medifirst2000.vo.custom;
|
||||
|
||||
import com.jasamedika.medifirst2000.helper.Caption;
|
||||
|
||||
@ -1,9 +1,11 @@
|
||||
package com.jasamedika.medifirst2000.vo;
|
||||
package com.jasamedika.medifirst2000.vo.custom;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO;
|
||||
import com.jasamedika.medifirst2000.helper.Caption;
|
||||
import com.jasamedika.medifirst2000.vo.IndikatorKinerjaVO;
|
||||
import com.jasamedika.medifirst2000.vo.SubUnitKerjaPegawaiVO;
|
||||
|
||||
public class TargetLayananCustomVO extends BaseTransactionVO {
|
||||
|
||||
@ -685,5 +685,6 @@
|
||||
<mapping class="com.jasamedika.medifirst2000.entities.IndikatorKinerjaJabatan"/>
|
||||
<mapping class="com.jasamedika.medifirst2000.entities.AnggaranRemunerasi"/>
|
||||
<mapping class="com.jasamedika.medifirst2000.entities.GradeRemunerasi"/>
|
||||
<mapping class="com.jasamedika.medifirst2000.entities.BobotJenisIndikator"/>
|
||||
</session-factory>
|
||||
</hibernate-configuration>
|
||||
|
||||
@ -6,6 +6,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.jasamedika.medifirst2000.asynctask.timer.YearlyTimer;
|
||||
import com.jasamedika.medifirst2000.controller.base.LocaleController;
|
||||
import com.jasamedika.medifirst2000.service.KalenderService;
|
||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
||||
|
||||
@ -6,6 +6,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.jasamedika.medifirst2000.asynctask.timer.MonthlyTimer;
|
||||
import com.jasamedika.medifirst2000.controller.base.LocaleController;
|
||||
import com.jasamedika.medifirst2000.service.PegawaiJadwalKerjaService;
|
||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
||||
|
||||
@ -0,0 +1,68 @@
|
||||
package com.jasamedika.medifirst2000.asynctask;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.jasamedika.medifirst2000.asynctask.timer.MonthlyTimer;
|
||||
import com.jasamedika.medifirst2000.controller.base.LocaleController;
|
||||
import com.jasamedika.medifirst2000.service.IkiDanRemunerasiService;
|
||||
import com.jasamedika.medifirst2000.service.TargetLayananService;
|
||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
||||
import com.jasamedika.medifirst2000.vo.TargetLayananVO;
|
||||
|
||||
@Component
|
||||
public class TargetLayananGenerating extends LocaleController<TargetLayananVO> {
|
||||
private final static Logger LOGGER = LoggerFactory.getLogger(TargetLayananGenerating.class);
|
||||
|
||||
@Autowired
|
||||
private IkiDanRemunerasiService remunerasiService;
|
||||
|
||||
@Autowired
|
||||
private TargetLayananService targetLayananService;
|
||||
|
||||
public TargetLayananGenerating() {
|
||||
int the1st = 1;
|
||||
int at0hrs = 0;
|
||||
MonthlyTimer.schedule(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
LOGGER.info("Task Target Layanan : Running Task Target Layanan");
|
||||
genTargetLayanan();
|
||||
} catch (Exception ex) {
|
||||
LOGGER.error("Task Target Layanan : Task Target Layanan " + ex.getMessage());
|
||||
} finally {
|
||||
LOGGER.info("Task Target Layanan : Finishing Task Target Layanan");
|
||||
}
|
||||
}
|
||||
}, the1st, at0hrs);
|
||||
}
|
||||
|
||||
@Async
|
||||
public void genTargetLayanan() {
|
||||
try {
|
||||
if (CommonUtil.isNotNullOrEmpty(remunerasiService)) {
|
||||
LOGGER.info("Task Target Layanan : Running Generate Target Layanan");
|
||||
List<String> rsList = targetLayananService.addAll(remunerasiService
|
||||
.findAllTargetCapaianLayanan(new SimpleDateFormat("yyyy-MM").format(new Date()), null));
|
||||
if (CommonUtil.isNullOrEmpty(rsList)) {
|
||||
LOGGER.info("Task Target Layanan : No Generating Target Layanan");
|
||||
}
|
||||
} else {
|
||||
LOGGER.warn("Task Target Layanan : Undefined service");
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
LOGGER.error("Task Target Layanan : Generate Target Layanan " + ex.getMessage());
|
||||
} finally {
|
||||
LOGGER.info("Task Target Layanan : Finishing Generate Target Layanan");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,16 +1,11 @@
|
||||
package com.jasamedika.medifirst2000.asynctask;
|
||||
package com.jasamedika.medifirst2000.asynctask.timer;
|
||||
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.Timer;
|
||||
import java.util.TimerTask;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
public class MonthlyTimer {
|
||||
private final static Logger LOGGER = LoggerFactory.getLogger(MonthlyTimer.class);
|
||||
|
||||
// What to do
|
||||
private final Runnable whatToDo;
|
||||
|
||||
@ -22,15 +17,11 @@ public class MonthlyTimer {
|
||||
private Timer current = new Timer();
|
||||
|
||||
public void cancelCurrent() {
|
||||
LOGGER.info("MonthlyTimer : Cancel current execution");
|
||||
current.cancel();
|
||||
|
||||
LOGGER.info("MonthlyTimer : Removes the timertask so it can be garbage collected");
|
||||
current.purge();
|
||||
}
|
||||
|
||||
public static MonthlyTimer schedule(Runnable runnable, int dayOfMonth, int hourOfDay) {
|
||||
LOGGER.info("MonthlyTimer : Create a new instance");
|
||||
return new MonthlyTimer(runnable, dayOfMonth, hourOfDay);
|
||||
}
|
||||
|
||||
@ -45,16 +36,12 @@ public class MonthlyTimer {
|
||||
private void schedule() {
|
||||
cancelCurrent();
|
||||
|
||||
LOGGER.info("MonthlyTimer : Assigning a new instance of Timer, allow the previous Timer to be garbage collected");
|
||||
current = new Timer();
|
||||
|
||||
current.schedule(new TimerTask() {
|
||||
public void run() {
|
||||
try {
|
||||
LOGGER.info("MonthlyTimer : Running schedule");
|
||||
whatToDo.run();
|
||||
} finally {
|
||||
LOGGER.info("MonthlyTimer : Schedule for the next month");
|
||||
schedule();
|
||||
}
|
||||
}
|
||||
@ -70,8 +57,6 @@ public class MonthlyTimer {
|
||||
runDate.set(Calendar.MILLISECOND, 0);
|
||||
runDate.add(Calendar.MONTH, 1);
|
||||
|
||||
LOGGER.info("MonthlyTimer : Set to next month " + runDate.getTime());
|
||||
|
||||
return runDate.getTime();
|
||||
}
|
||||
}
|
||||
@ -1,15 +1,11 @@
|
||||
package com.jasamedika.medifirst2000.asynctask;
|
||||
package com.jasamedika.medifirst2000.asynctask.timer;
|
||||
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.Timer;
|
||||
import java.util.TimerTask;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
public class YearlyTimer {
|
||||
private final static Logger LOGGER = LoggerFactory.getLogger(YearlyTimer.class);
|
||||
|
||||
// What to do
|
||||
private final Runnable whatToDo;
|
||||
@ -22,15 +18,11 @@ public class YearlyTimer {
|
||||
private Timer current = new Timer();
|
||||
|
||||
public void cancelCurrent() {
|
||||
LOGGER.info("YearlyTimer : Cancel current execution");
|
||||
current.cancel();
|
||||
|
||||
LOGGER.info("YearlyTimer : Removes the timertask so it can be garbage collected");
|
||||
current.purge();
|
||||
}
|
||||
|
||||
public static YearlyTimer schedule(Runnable runnable, int dayOfMonth, int hourOfDay) {
|
||||
LOGGER.info("YearlyTimer : Create a new instance");
|
||||
return new YearlyTimer(runnable, dayOfMonth, hourOfDay);
|
||||
}
|
||||
|
||||
@ -45,16 +37,12 @@ public class YearlyTimer {
|
||||
private void schedule() {
|
||||
cancelCurrent();
|
||||
|
||||
LOGGER.info("YearlyTimer : Assigning a new instance of Timer, allow the previous Timer to be garbage collected");
|
||||
current = new Timer();
|
||||
|
||||
current.schedule(new TimerTask() {
|
||||
public void run() {
|
||||
try {
|
||||
LOGGER.info("YearlyTimer : Running schedule");
|
||||
whatToDo.run();
|
||||
} finally {
|
||||
LOGGER.info("YearlyTimer : Schedule for the next year");
|
||||
schedule();
|
||||
}
|
||||
}
|
||||
@ -71,8 +59,6 @@ public class YearlyTimer {
|
||||
runDate.set(Calendar.MILLISECOND, 0);
|
||||
runDate.add(Calendar.YEAR, 1);
|
||||
|
||||
LOGGER.info("YearlyTimer : Set to next year " + runDate.getTime());
|
||||
|
||||
return runDate.getTime();
|
||||
}
|
||||
}
|
||||
@ -27,6 +27,7 @@ import com.jasamedika.medifirst2000.controller.base.LocaleController;
|
||||
import com.jasamedika.medifirst2000.core.web.WebConstants;
|
||||
import com.jasamedika.medifirst2000.exception.ServiceVOException;
|
||||
import com.jasamedika.medifirst2000.service.AnggaranRemunerasiService;
|
||||
import com.jasamedika.medifirst2000.service.BobotJenisIndikatorService;
|
||||
import com.jasamedika.medifirst2000.service.GradeRemunService;
|
||||
import com.jasamedika.medifirst2000.service.IkiDanRemunerasiService;
|
||||
import com.jasamedika.medifirst2000.service.IndikatorKinerjaJabatanService;
|
||||
@ -37,6 +38,7 @@ import com.jasamedika.medifirst2000.service.SkoringTindakanMedisService;
|
||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
||||
import com.jasamedika.medifirst2000.util.rest.RestUtil;
|
||||
import com.jasamedika.medifirst2000.vo.AnggaranRemunerasiVO;
|
||||
import com.jasamedika.medifirst2000.vo.BobotJenisIndikatorVO;
|
||||
import com.jasamedika.medifirst2000.vo.GradeRemunerasiVO;
|
||||
import com.jasamedika.medifirst2000.vo.IkiDanRemunerasiVO;
|
||||
import com.jasamedika.medifirst2000.vo.IndikatorKinerjaJabatanVO;
|
||||
@ -46,6 +48,7 @@ import com.jasamedika.medifirst2000.vo.LogbookKinerjaVO;
|
||||
import com.jasamedika.medifirst2000.vo.SettingPirSdmVO;
|
||||
import com.jasamedika.medifirst2000.vo.SkoringTindakanMedisVO;
|
||||
import com.jasamedika.medifirst2000.vo.StrukHistoriVO;
|
||||
import com.jasamedika.medifirst2000.vo.custom.TargetLayananCustomVO;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/iki-remunerasi")
|
||||
@ -77,6 +80,9 @@ public class IkiDanRemunerasiController extends LocaleController<IkiDanRemuneras
|
||||
@Autowired
|
||||
private LogbookKinerjaDetailService logbookKinerjaDetailService;
|
||||
|
||||
@Autowired
|
||||
private BobotJenisIndikatorService bobotJenisIndikatorService;
|
||||
|
||||
@RequestMapping(value = "/get-load-data", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
public ResponseEntity<Map<String, Object>> getLoadData(HttpServletRequest request) {
|
||||
try {
|
||||
@ -234,11 +240,11 @@ public class IkiDanRemunerasiController extends LocaleController<IkiDanRemuneras
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/get-all-target-dan-capaian-layanan", method = RequestMethod.GET)
|
||||
public ResponseEntity<List<Map<String, Object>>> getAllTargetLayanan(HttpServletRequest request,
|
||||
public ResponseEntity<List<TargetLayananCustomVO>> getAllTargetLayanan(HttpServletRequest request,
|
||||
@RequestParam(value = "periode", required = true) String periode,
|
||||
@RequestParam(value = "jumlahBulan", required = true) Integer jumlahBulan) throws ParseException {
|
||||
@RequestParam(value = "ksmId", required = false) Integer idKsm) throws ParseException {
|
||||
try {
|
||||
List<Map<String, Object>> result = service.findAllTargetCapaianLayanan(periode, jumlahBulan);
|
||||
List<TargetLayananCustomVO> result = service.findAllTargetCapaianLayanan(periode, idKsm);
|
||||
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,
|
||||
getMessage(MessageResource.LABEL_SUCCESS, request));
|
||||
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);
|
||||
@ -932,4 +938,70 @@ public class IkiDanRemunerasiController extends LocaleController<IkiDanRemuneras
|
||||
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
|
||||
}
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/save-bobot-jenis-indikator", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||
public ResponseEntity<BobotJenisIndikatorVO> saveBobotJenisIndikator(HttpServletRequest request,
|
||||
@Valid @RequestBody BobotJenisIndikatorVO vo) {
|
||||
try {
|
||||
BobotJenisIndikatorVO result = new BobotJenisIndikatorVO();
|
||||
if (CommonUtil.isNotNullOrEmpty(vo.getNoRec())) {
|
||||
result = bobotJenisIndikatorService.update(vo);
|
||||
} else {
|
||||
result = bobotJenisIndikatorService.add(vo);
|
||||
}
|
||||
if (CommonUtil.isNotNullOrEmpty(result)) {
|
||||
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,
|
||||
getMessage(MessageResource.LABEL_SUCCESS, request));
|
||||
return RestUtil.getJsonResponse(result, HttpStatus.CREATED, mapHeaderMessage);
|
||||
} else {
|
||||
return RestUtil.getJsonHttptatus(HttpStatus.NOT_ACCEPTABLE);
|
||||
}
|
||||
} catch (ServiceVOException sve) {
|
||||
LOGGER.error("Got exception {} when add/update bobot jenis indikator", 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 add/update bobot jenis indikator", jse.getMessage());
|
||||
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage());
|
||||
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
|
||||
}
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/get-master-bobot-jenis-indikator", method = RequestMethod.GET)
|
||||
public ResponseEntity<List<Map<String, Object>>> getMasterBobotJenisIndikator(HttpServletRequest request,
|
||||
@RequestParam(value = "periode", required = true) Long periode) throws ParseException {
|
||||
try {
|
||||
List<Map<String, Object>> result = bobotJenisIndikatorService.findAllBobotJenis(periode);
|
||||
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 get master bobot jenis indikator", 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 get master bobot jenis indikator", jse.getMessage());
|
||||
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage());
|
||||
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
|
||||
}
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/delete-master-bobot-jenis-indikator", method = RequestMethod.DELETE)
|
||||
public ResponseEntity<Boolean> deleteMasterBobotJenisIndikator(HttpServletRequest request,
|
||||
@RequestParam(value = "noRec", required = true) String norec) throws ParseException {
|
||||
try {
|
||||
Boolean result = bobotJenisIndikatorService.delete(norec);
|
||||
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 delete master bobot jenis indikator", 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 delete master bobot jenis indikator", jse.getMessage());
|
||||
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage());
|
||||
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -132,6 +132,7 @@ import com.jasamedika.medifirst2000.util.CommonUtil;
|
||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
||||
import com.jasamedika.medifirst2000.util.rest.RestUtil;
|
||||
import com.jasamedika.medifirst2000.vo.*;
|
||||
import com.jasamedika.medifirst2000.vo.custom.TargetLayananCustomVO;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/sdm")
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user