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

View File

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

View File

@ -17,6 +17,7 @@ public class TargetLayananTimer {
// when
private final int dayOfMonth;
private final int hourOfDay;
private final int minuteOfHour;
// The current timer
private Timer current = new Timer();
@ -29,15 +30,16 @@ public class TargetLayananTimer {
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");
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.dayOfMonth = day;
this.hourOfDay = hour;
this.minuteOfHour = minute;
schedule();
}
@ -62,17 +64,20 @@ public class TargetLayananTimer {
}
private Date nextDate() {
Calendar curDate = 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.HOUR_OF_DAY, hourOfDay);
runDate.set(Calendar.MINUTE, 0);
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.MINUTE, minuteOfHour);
runDate.set(Calendar.SECOND, 0);
runDate.set(Calendar.MILLISECOND, 0);
runDate.add(Calendar.MONTH, 1);