- perbaikan kondisi asisten spesialis di logbook kontrak kinerja

- perbaikan timer otomatisasi generate target pelayanan medis
This commit is contained in:
salmanoe 2021-06-23 11:11:15 +07:00
parent aff09769a5
commit 1c677d86c5
3 changed files with 22 additions and 16 deletions

View File

@ -36,7 +36,6 @@ import com.jasamedika.medifirst2000.entities.LogbookKinerja;
import com.jasamedika.medifirst2000.entities.Pegawai; import com.jasamedika.medifirst2000.entities.Pegawai;
import com.jasamedika.medifirst2000.entities.SatuanIndikator; import com.jasamedika.medifirst2000.entities.SatuanIndikator;
import com.jasamedika.medifirst2000.exception.ServiceVOException; import com.jasamedika.medifirst2000.exception.ServiceVOException;
import com.jasamedika.medifirst2000.service.IkiDanRemunerasiService;
import com.jasamedika.medifirst2000.service.LogbookKinerjaService; import com.jasamedika.medifirst2000.service.LogbookKinerjaService;
import com.jasamedika.medifirst2000.util.CommonUtil; import com.jasamedika.medifirst2000.util.CommonUtil;
import com.jasamedika.medifirst2000.vo.IndikatorKinerjaVO; import com.jasamedika.medifirst2000.vo.IndikatorKinerjaVO;
@ -596,9 +595,10 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
// RULES // RULES
for (Map<String, Object> mapLayanan : dataLayanan) { for (Map<String, Object> mapLayanan : dataLayanan) {
if (mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) { if (mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) {
mapLayanan.put("skor", Double.valueOf(mapLayanan.get("skor").toString())
* Master.Remunerasi.PERSEN_SKOR_ASISTEN_SPESIALIS);
mapLayanan.put("tSkor", mapLayanan.put("tSkor",
Double.valueOf(mapLayanan.get("skor").toString()) Double.valueOf(mapLayanan.get("skor").toString())
* Master.Remunerasi.PERSEN_SKOR_ASISTEN_SPESIALIS
* Double.valueOf(mapLayanan.get("jumlah").toString())); * Double.valueOf(mapLayanan.get("jumlah").toString()));
} else if (Double.valueOf(mapLayanan.get("hargaDiskon").toString()) > 0.0 } else if (Double.valueOf(mapLayanan.get("hargaDiskon").toString()) > 0.0
&& (CommonUtil.isNullOrEmpty(mapLayanan.get("statusDiskon")) && (CommonUtil.isNullOrEmpty(mapLayanan.get("statusDiskon"))

View File

@ -23,8 +23,9 @@ public class TargetLayananGenerating extends LocaleController<TargetLayananVO> {
private IkiDanRemunerasiService remunerasiService; private IkiDanRemunerasiService remunerasiService;
public TargetLayananGenerating() { public TargetLayananGenerating() {
int the4th = 4; int day = 4;
int at0hrs = 0; int hour = 0;
int minute = 00;
TargetLayananTimer.schedule(new Runnable() { TargetLayananTimer.schedule(new Runnable() {
@Override @Override
public void run() { public void run() {
@ -37,7 +38,7 @@ public class TargetLayananGenerating extends LocaleController<TargetLayananVO> {
LOGGER.info("Task Target Layanan : Finishing Task Target Layanan"); LOGGER.info("Task Target Layanan : Finishing Task Target Layanan");
} }
} }
}, the4th, at0hrs); }, day, hour, minute);
} }
@Async @Async

View File

@ -17,6 +17,7 @@ public class TargetLayananTimer {
// when // when
private final int dayOfMonth; private final int dayOfMonth;
private final int hourOfDay; private final int hourOfDay;
private final int minuteOfHour;
// The current timer // The current timer
private Timer current = new Timer(); private Timer current = new Timer();
@ -29,15 +30,16 @@ public class TargetLayananTimer {
current.purge(); current.purge();
} }
public static TargetLayananTimer schedule(Runnable runnable, int dayOfMonth, int hourOfDay) { public static TargetLayananTimer schedule(Runnable runnable, int dayOfMonth, int hourOfDay, int minuteOfHour) {
LOGGER.info("TargetLayananTimer : Create a new instance"); LOGGER.info("TargetLayananTimer : Create a new instance");
return new TargetLayananTimer(runnable, dayOfMonth, hourOfDay); return new TargetLayananTimer(runnable, dayOfMonth, hourOfDay, minuteOfHour);
} }
private TargetLayananTimer(Runnable runnable, int day, int hour) { private TargetLayananTimer(Runnable runnable, int day, int hour, int minute) {
this.whatToDo = runnable; this.whatToDo = runnable;
this.dayOfMonth = day; this.dayOfMonth = day;
this.hourOfDay = hour; this.hourOfDay = hour;
this.minuteOfHour = minute;
schedule(); schedule();
} }
@ -62,17 +64,20 @@ public class TargetLayananTimer {
} }
private Date nextDate() { private Date nextDate() {
Calendar curDate = Calendar.getInstance();
Calendar runDate = Calendar.getInstance(); Calendar runDate = Calendar.getInstance();
if (runDate.get(Calendar.DAY_OF_MONTH) < dayOfMonth) {
// set_for_compare
runDate.set(Calendar.DAY_OF_MONTH, dayOfMonth);
runDate.set(Calendar.HOUR_OF_DAY, hourOfDay);
runDate.set(Calendar.MINUTE, minuteOfHour);
runDate.set(Calendar.SECOND, 0);
runDate.set(Calendar.MILLISECOND, 0);
if (curDate.getTime().after(runDate.getTime())) {
runDate.set(Calendar.DAY_OF_MONTH, dayOfMonth); runDate.set(Calendar.DAY_OF_MONTH, dayOfMonth);
runDate.set(Calendar.HOUR_OF_DAY, hourOfDay); runDate.set(Calendar.HOUR_OF_DAY, hourOfDay);
runDate.set(Calendar.MINUTE, 0); runDate.set(Calendar.MINUTE, minuteOfHour);
runDate.set(Calendar.SECOND, 0);
runDate.set(Calendar.MILLISECOND, 0);
} else {
runDate.set(Calendar.DAY_OF_MONTH, dayOfMonth);
runDate.set(Calendar.HOUR_OF_DAY, hourOfDay);
runDate.set(Calendar.MINUTE, 0);
runDate.set(Calendar.SECOND, 0); runDate.set(Calendar.SECOND, 0);
runDate.set(Calendar.MILLISECOND, 0); runDate.set(Calendar.MILLISECOND, 0);
runDate.add(Calendar.MONTH, 1); runDate.add(Calendar.MONTH, 1);