Delete async tasks
This commit is contained in:
parent
1c277111a9
commit
411ee0619a
@ -1,115 +0,0 @@
|
|||||||
package com.jasamedika.medifirst2000.asynctask;
|
|
||||||
|
|
||||||
import java.text.SimpleDateFormat;
|
|
||||||
import java.util.Calendar;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Timer;
|
|
||||||
import java.util.TimerTask;
|
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
|
||||||
import com.jasamedika.medifirst2000.controller.base.LocaleController;
|
|
||||||
import com.jasamedika.medifirst2000.service.IpsrsMaintenanceService;
|
|
||||||
import com.jasamedika.medifirst2000.service.PegawaiMutasiSanksiResignService;
|
|
||||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
|
||||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
|
||||||
import com.jasamedika.medifirst2000.vo.IpsrsJadwalPemeliharaanVO;
|
|
||||||
|
|
||||||
@Component
|
|
||||||
public class IpsrsAlertMaintenance extends LocaleController<IpsrsJadwalPemeliharaanVO>{
|
|
||||||
/*
|
|
||||||
private Boolean flag =false;
|
|
||||||
private Integer pending = 0;
|
|
||||||
private String time = new SimpleDateFormat("HH:mm").format(Calendar.getInstance().getTime());
|
|
||||||
private SimpleDateFormat format = new SimpleDateFormat("HH:mm");
|
|
||||||
|
|
||||||
public IpsrsAlertMaintenance() {
|
|
||||||
if(!Thread.currentThread().isInterrupted()){
|
|
||||||
try {
|
|
||||||
new Thread(new RunningTask()).start();
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class RunningTask implements Runnable{
|
|
||||||
public void run() {
|
|
||||||
new Timer().schedule(new TimerTask(){
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
try{
|
|
||||||
Date timeNow = format.parse(time);
|
|
||||||
Date timeEnd = format.parse("18:00");
|
|
||||||
Date timeReset = format.parse("21:00");
|
|
||||||
|
|
||||||
if(pending==60*3){
|
|
||||||
if(timeNow.before(timeEnd)){
|
|
||||||
if(flag==false){
|
|
||||||
getAlertlMaintenance();
|
|
||||||
getDataPlanningByDate();
|
|
||||||
flag=true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
pending=0;
|
|
||||||
} else{
|
|
||||||
pending++;
|
|
||||||
if(timeNow.equals(timeReset)){
|
|
||||||
flag=false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}catch(Exception ex){
|
|
||||||
ex.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, 1000L, 1000L);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private IpsrsMaintenanceService ipsrsMaintenanceService;
|
|
||||||
|
|
||||||
public void getAlertlMaintenance(){
|
|
||||||
try{
|
|
||||||
if (ipsrsMaintenanceService != null){
|
|
||||||
Map<String, Object> jadwalMaintenance = ipsrsMaintenanceService.getAlertMaintenance();
|
|
||||||
if(CommonUtil.isNotNullOrEmpty(jadwalMaintenance)){
|
|
||||||
BroadcastMessageOther("jadwalMaintenance", jadwalMaintenance);
|
|
||||||
System.out.println(DateUtil.now()+" task scheduler :");
|
|
||||||
System.out.println(new Gson().toJson(jadwalMaintenance));
|
|
||||||
} else{
|
|
||||||
System.out.println(DateUtil.now()+" task scheduler : tidak ada jadwal maintenance");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}catch (Exception ex){
|
|
||||||
ex.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private PegawaiMutasiSanksiResignService pegawaiMutasiSanksiResignService;
|
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
public void getDataPlanningByDate(){
|
|
||||||
try{
|
|
||||||
if (pegawaiMutasiSanksiResignService != null) {
|
|
||||||
Map<String, Object> mapData = pegawaiMutasiSanksiResignService.getDataPlanningByDate(DateUtil.now());
|
|
||||||
if(CommonUtil.isNotNullOrEmpty(mapData)){
|
|
||||||
for(Map<String, Object> data : (List<Map<String, Object>>) mapData.get("listData")){
|
|
||||||
Map<String, Object> dataResult = pegawaiMutasiSanksiResignService.updateExecPegawai(data);
|
|
||||||
System.out.println(DateUtil.now()+" task scheduler : update pegawai "+new Gson().toJson(dataResult));
|
|
||||||
}
|
|
||||||
} else{
|
|
||||||
System.out.println(DateUtil.now()+" task scheduler : tidak ada update data pegawai musare");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}catch(Exception ex){
|
|
||||||
ex.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
@ -1,186 +0,0 @@
|
|||||||
package com.jasamedika.medifirst2000.asynctask;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.scheduling.annotation.Scheduled;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import com.jasamedika.medifirst2000.controller.base.LocaleController;
|
|
||||||
import com.jasamedika.medifirst2000.dao.PegawaiDao;
|
|
||||||
import com.jasamedika.medifirst2000.dao.RuanganDao;
|
|
||||||
import com.jasamedika.medifirst2000.entities.Pegawai;
|
|
||||||
import com.jasamedika.medifirst2000.entities.Ruangan;
|
|
||||||
import com.jasamedika.medifirst2000.notification.MessagePublisher;
|
|
||||||
import com.jasamedika.medifirst2000.service.NotifMessagingSchedulerService;
|
|
||||||
import com.jasamedika.medifirst2000.service.NotifMessagingService;
|
|
||||||
import com.jasamedika.medifirst2000.service.NotifikasiMessageObjekModulService;
|
|
||||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
|
||||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
|
||||||
import com.jasamedika.medifirst2000.vo.NotifMessagingSchedulerVO;
|
|
||||||
import com.jasamedika.medifirst2000.vo.NotifMessagingVO;
|
|
||||||
import com.jasamedika.medifirst2000.vo.NotifikasiMessageObjekModulVO;
|
|
||||||
|
|
||||||
@Component
|
|
||||||
public class NotificationSchedulerMaintenanceTask extends LocaleController<NotifMessagingSchedulerVO>{
|
|
||||||
/*
|
|
||||||
private final Logger LOG = LoggerFactory.getLogger(NotificationSchedulerMaintenanceTask.class);
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
NotifMessagingSchedulerService<NotifMessagingSchedulerVO> notifMessagingSchedulerService;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
NotifMessagingService<NotifMessagingVO> notifMessagingService;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
NotifikasiMessageObjekModulService<NotifikasiMessageObjekModulVO> notifikasiMessageObjekModulService;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
MessagePublisher<String, Object> messagePublisher;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
PegawaiDao pegawaiDao;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
RuanganDao ruanganDao;
|
|
||||||
|
|
||||||
@Scheduled(cron = "0 30 7 * * *")
|
|
||||||
public void NotificationNormalMaintenanceEvery730AM(){
|
|
||||||
try{
|
|
||||||
MessagePublisher.RabbitHole rabbitHole = messagePublisher.getRabbitHole();
|
|
||||||
|
|
||||||
List<NotifMessagingSchedulerVO> lNotif = notifMessagingSchedulerService.allNotifBelumTerkirim(new Date());
|
|
||||||
|
|
||||||
if (CommonUtil.isNullOrEmpty(lNotif)){
|
|
||||||
LOG.info(DateUtil.now()+" task scheduler : tidak ada jadwal maintenance");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Map<Integer, Integer> pegawaiRuangaAsal = new HashMap<>();
|
|
||||||
|
|
||||||
Map<Integer, List<Integer>> ruanganAsalAll = new HashMap<>();
|
|
||||||
Map<Integer, List<Integer>> notifMapAllRuanganTujuan = new HashMap<>();
|
|
||||||
List<Integer> notifsId = new ArrayList<>();
|
|
||||||
List<Integer> ruanganTujuansId = new ArrayList<>();
|
|
||||||
|
|
||||||
Integer oldNotifId = 0;
|
|
||||||
Integer oldRuanganIdTujuan = 0;
|
|
||||||
|
|
||||||
for (NotifMessagingSchedulerVO notif:lNotif){
|
|
||||||
|
|
||||||
if (notif.getRuanganIdTujuan().intValue() != oldRuanganIdTujuan.intValue()){
|
|
||||||
ruanganTujuansId = new ArrayList<>();
|
|
||||||
oldRuanganIdTujuan = notif.getRuanganIdTujuan();
|
|
||||||
}
|
|
||||||
ruanganTujuansId.add(notif.getRuanganIdTujuan());
|
|
||||||
notifMapAllRuanganTujuan.put(notif.getNotifMessagingId(), ruanganTujuansId);
|
|
||||||
|
|
||||||
if (notif.getNotifMessagingId().intValue() != oldNotifId.intValue()){
|
|
||||||
notifsId = new ArrayList<>();
|
|
||||||
oldNotifId = notif.getNotifMessagingId();
|
|
||||||
}
|
|
||||||
|
|
||||||
notifsId.add(notif.getNotifMessagingId());
|
|
||||||
ruanganAsalAll.put(notif.getRuanganIdAsal(), notifsId);
|
|
||||||
|
|
||||||
pegawaiRuangaAsal.put(notif.getRuanganIdAsal(), notif.getPegawaiId());
|
|
||||||
}
|
|
||||||
|
|
||||||
Set<Integer> ruanganAsalIds = ruanganAsalAll.keySet();
|
|
||||||
|
|
||||||
for(Integer ruanganAsalId:ruanganAsalIds){
|
|
||||||
|
|
||||||
Integer pegawaiId = pegawaiRuangaAsal.get(ruanganAsalId);
|
|
||||||
Pegawai pegawai = pegawaiDao.findById(pegawaiId);
|
|
||||||
Ruangan ruanganAsal = ruanganDao.findById(ruanganAsalId);
|
|
||||||
|
|
||||||
notifsId = ruanganAsalAll.get(ruanganAsalId);
|
|
||||||
|
|
||||||
for (Integer notifMessagingId:notifsId ){
|
|
||||||
|
|
||||||
ruanganTujuansId = notifMapAllRuanganTujuan.get(notifMessagingId);
|
|
||||||
|
|
||||||
try{
|
|
||||||
rabbitHole.sendNotif(rabbitHole, ruanganAsal, pegawai, notifikasiMessageObjekModulService, notifMessagingId, ruanganTujuansId);
|
|
||||||
}catch(Exception e){
|
|
||||||
LOG.info(DateUtil.now()+" task scheduler dari Ruangan {} dengan ruanganId {} pada notifMessageId {} ada masalah {}",
|
|
||||||
ruanganAsal.getNamaRuangan(), ruanganAsalId, notifMessagingId, e.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}catch(Exception e){
|
|
||||||
LOG.info(DateUtil.now() + "Task scheduler gagal penyebab, {} ", e.getMessage());
|
|
||||||
//e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//private void sendNotif(Gson gson, String urlSocket, MessagePublisher.RabbitHole rabbitHole, Integer pegawaiId, Integer ruanganId, Integer notifMessagingId, List<Integer> ruanganTujuansId) throws Exception{
|
|
||||||
//
|
|
||||||
//List<NotifikasiMessageObjekModulVO> notifikasiMessageObjekModulVOs = notifikasiMessageObjekModulService.findByNotifMessagingIdAndRuanganId(notifMessagingId, ruanganTujuansId);
|
|
||||||
//
|
|
||||||
//if (CommonUtil.isNullOrEmpty(notifikasiMessageObjekModulVOs)) {
|
|
||||||
// return;
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//Integer ruanganIdtemp = 0;
|
|
||||||
//boolean connect = false;
|
|
||||||
//
|
|
||||||
//PegawaiVO pegawai = pegawaiService.findById(pegawaiId);
|
|
||||||
//
|
|
||||||
//for (NotifikasiMessageObjekModulVO vo : notifikasiMessageObjekModulVOs){
|
|
||||||
// Ruangan ruangan = vo.getRuangan();
|
|
||||||
// ModulAplikasi modulAplikasi = vo.getModulAplikasi();
|
|
||||||
// ObjekModulAplikasi objekModulAplikasi = vo.getObjekModulAplikasi();
|
|
||||||
// String customURLObjekModul = vo.getCustomURLObjekModul();
|
|
||||||
// String titleNotifikasi = vo.getTitleNotifikasi();
|
|
||||||
// String pesanNotifikasi = vo.getPesanNotifikasi();
|
|
||||||
// String namaFungsiFrontEnd = vo.getNamaFungsiFrontEnd();
|
|
||||||
//
|
|
||||||
// if (ruangan.getId() == ruanganId){
|
|
||||||
// continue;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// RuanganVO dariRuangan = ruanganService.findById(ruanganId);
|
|
||||||
//
|
|
||||||
// if (ruanganIdtemp != ruangan.getId()){
|
|
||||||
// if (connect){
|
|
||||||
// rabbitHole.close();
|
|
||||||
// }
|
|
||||||
// rabbitHole.connect(urlSocket, String.valueOf(ruangan.getId()));
|
|
||||||
// connect = true;
|
|
||||||
// ruanganIdtemp = ruangan.getId();
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// Map<String, Object> map = new HashMap<>();
|
|
||||||
// map.put("title", titleNotifikasi);
|
|
||||||
// map.put("dariRuangan", dariRuangan);
|
|
||||||
// map.put("ruanganId", ruangan.getId());
|
|
||||||
// map.put("ruangan", ruangan);
|
|
||||||
// map.put("modulAplikasi", modulAplikasi);
|
|
||||||
// map.put("objekModulAplikasi", objekModulAplikasi);
|
|
||||||
// map.put("titleNotifikasi", titleNotifikasi);
|
|
||||||
// map.put("pesanNotifikasi", pesanNotifikasi);
|
|
||||||
// map.put("namaFungsiFrontEnd", namaFungsiFrontEnd);
|
|
||||||
// map.put("fromPegawai", pegawai);
|
|
||||||
// map.put("urlForm",CommonUtil.isNullOrEmpty(customURLObjekModul)? objekModulAplikasi.getAlamatUrlForm() : customURLObjekModul);
|
|
||||||
//
|
|
||||||
// rabbitHole.sendRabbitMQNotification(gson.toJson(map));
|
|
||||||
//
|
|
||||||
// //messagePublisher.BroadcastMessage(map);
|
|
||||||
//}
|
|
||||||
//if (connect){
|
|
||||||
// rabbitHole.close();
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//}
|
|
||||||
@ -1,115 +0,0 @@
|
|||||||
package com.jasamedika.medifirst2000.asynctask;
|
|
||||||
|
|
||||||
import java.text.SimpleDateFormat;
|
|
||||||
import java.util.Calendar;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Timer;
|
|
||||||
import java.util.TimerTask;
|
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
|
||||||
import com.jasamedika.medifirst2000.controller.base.LocaleController;
|
|
||||||
import com.jasamedika.medifirst2000.service.IpsrsMaintenanceService;
|
|
||||||
import com.jasamedika.medifirst2000.service.PegawaiMutasiSanksiResignService;
|
|
||||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
|
||||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
|
||||||
import com.jasamedika.medifirst2000.vo.IpsrsJadwalPemeliharaanVO;
|
|
||||||
|
|
||||||
@Component
|
|
||||||
public class IpsrsAlertMaintenance extends LocaleController<IpsrsJadwalPemeliharaanVO>{
|
|
||||||
/*
|
|
||||||
private Boolean flag =false;
|
|
||||||
private Integer pending = 0;
|
|
||||||
private String time = new SimpleDateFormat("HH:mm").format(Calendar.getInstance().getTime());
|
|
||||||
private SimpleDateFormat format = new SimpleDateFormat("HH:mm");
|
|
||||||
|
|
||||||
public IpsrsAlertMaintenance() {
|
|
||||||
if(!Thread.currentThread().isInterrupted()){
|
|
||||||
try {
|
|
||||||
new Thread(new RunningTask()).start();
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class RunningTask implements Runnable{
|
|
||||||
public void run() {
|
|
||||||
new Timer().schedule(new TimerTask(){
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
try{
|
|
||||||
Date timeNow = format.parse(time);
|
|
||||||
Date timeEnd = format.parse("18:00");
|
|
||||||
Date timeReset = format.parse("21:00");
|
|
||||||
|
|
||||||
if(pending==60*3){
|
|
||||||
if(timeNow.before(timeEnd)){
|
|
||||||
if(flag==false){
|
|
||||||
getAlertlMaintenance();
|
|
||||||
getDataPlanningByDate();
|
|
||||||
flag=true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
pending=0;
|
|
||||||
} else{
|
|
||||||
pending++;
|
|
||||||
if(timeNow.equals(timeReset)){
|
|
||||||
flag=false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}catch(Exception ex){
|
|
||||||
ex.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, 1000L, 1000L);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private IpsrsMaintenanceService ipsrsMaintenanceService;
|
|
||||||
|
|
||||||
public void getAlertlMaintenance(){
|
|
||||||
try{
|
|
||||||
if (ipsrsMaintenanceService != null){
|
|
||||||
Map<String, Object> jadwalMaintenance = ipsrsMaintenanceService.getAlertMaintenance();
|
|
||||||
if(CommonUtil.isNotNullOrEmpty(jadwalMaintenance)){
|
|
||||||
BroadcastMessageOther("jadwalMaintenance", jadwalMaintenance);
|
|
||||||
System.out.println(DateUtil.now()+" task scheduler :");
|
|
||||||
System.out.println(new Gson().toJson(jadwalMaintenance));
|
|
||||||
} else{
|
|
||||||
System.out.println(DateUtil.now()+" task scheduler : tidak ada jadwal maintenance");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}catch (Exception ex){
|
|
||||||
ex.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private PegawaiMutasiSanksiResignService pegawaiMutasiSanksiResignService;
|
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
public void getDataPlanningByDate(){
|
|
||||||
try{
|
|
||||||
if (pegawaiMutasiSanksiResignService != null) {
|
|
||||||
Map<String, Object> mapData = pegawaiMutasiSanksiResignService.getDataPlanningByDate(DateUtil.now());
|
|
||||||
if(CommonUtil.isNotNullOrEmpty(mapData)){
|
|
||||||
for(Map<String, Object> data : (List<Map<String, Object>>) mapData.get("listData")){
|
|
||||||
Map<String, Object> dataResult = pegawaiMutasiSanksiResignService.updateExecPegawai(data);
|
|
||||||
System.out.println(DateUtil.now()+" task scheduler : update pegawai "+new Gson().toJson(dataResult));
|
|
||||||
}
|
|
||||||
} else{
|
|
||||||
System.out.println(DateUtil.now()+" task scheduler : tidak ada update data pegawai musare");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}catch(Exception ex){
|
|
||||||
ex.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
@ -1,202 +0,0 @@
|
|||||||
package com.jasamedika.medifirst2000.asynctask;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.scheduling.annotation.Scheduled;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
|
||||||
import com.jasamedika.medifirst2000.controller.base.LocaleController;
|
|
||||||
import com.jasamedika.medifirst2000.dao.PegawaiDao;
|
|
||||||
import com.jasamedika.medifirst2000.dao.RuanganDao;
|
|
||||||
import com.jasamedika.medifirst2000.entities.ModulAplikasi;
|
|
||||||
import com.jasamedika.medifirst2000.entities.ObjekModulAplikasi;
|
|
||||||
import com.jasamedika.medifirst2000.entities.Pegawai;
|
|
||||||
import com.jasamedika.medifirst2000.entities.Ruangan;
|
|
||||||
import com.jasamedika.medifirst2000.notification.MessagePublisher;
|
|
||||||
import com.jasamedika.medifirst2000.service.NotifMessagingSchedulerService;
|
|
||||||
import com.jasamedika.medifirst2000.service.NotifMessagingService;
|
|
||||||
import com.jasamedika.medifirst2000.service.NotifikasiMessageObjekModulService;
|
|
||||||
import com.jasamedika.medifirst2000.service.PegawaiService;
|
|
||||||
import com.jasamedika.medifirst2000.service.RuanganService;
|
|
||||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
|
||||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
|
||||||
import com.jasamedika.medifirst2000.vo.NotifMessagingSchedulerVO;
|
|
||||||
import com.jasamedika.medifirst2000.vo.NotifMessagingVO;
|
|
||||||
import com.jasamedika.medifirst2000.vo.NotifikasiMessageObjekModulVO;
|
|
||||||
import com.jasamedika.medifirst2000.vo.PegawaiVO;
|
|
||||||
import com.jasamedika.medifirst2000.vo.RuanganVO;
|
|
||||||
|
|
||||||
@Component
|
|
||||||
public class NotificationSchedulerMaintenanceTask extends LocaleController<NotifMessagingSchedulerVO> {
|
|
||||||
/*
|
|
||||||
private final Logger LOG = LoggerFactory.getLogger(NotificationSchedulerMaintenanceTask.class);
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
NotifMessagingSchedulerService<NotifMessagingSchedulerVO> notifMessagingSchedulerService;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
NotifMessagingService<NotifMessagingVO> notifMessagingService;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
NotifikasiMessageObjekModulService<NotifikasiMessageObjekModulVO> notifikasiMessageObjekModulService;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
PegawaiService pegawaiService;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
RuanganService<RuanganVO> ruanganService;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
MessagePublisher<String, Object> messagePublisher;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
PegawaiDao pegawaiDao;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
RuanganDao ruanganDao;
|
|
||||||
|
|
||||||
@Scheduled(cron = "0 30 7 * * *")
|
|
||||||
public void NotificationNormalMaintenanceEvery730AM() {
|
|
||||||
try {
|
|
||||||
MessagePublisher.RabbitHole rabbitHole = messagePublisher.getRabbitHole();
|
|
||||||
|
|
||||||
List<NotifMessagingSchedulerVO> lNotif = notifMessagingSchedulerService.allNotifBelumTerkirim(new Date());
|
|
||||||
|
|
||||||
if (CommonUtil.isNullOrEmpty(lNotif)) {
|
|
||||||
LOG.info(DateUtil.now() + " task scheduler : tidak ada jadwal maintenance");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Map<Integer, Integer> pegawaiRuangaAsal = new HashMap<>();
|
|
||||||
|
|
||||||
Map<Integer, List<Integer>> ruanganAsalAll = new HashMap<>();
|
|
||||||
Map<Integer, List<Integer>> notifMapAllRuanganTujuan = new HashMap<>();
|
|
||||||
List<Integer> notifsId = new ArrayList<>();
|
|
||||||
List<Integer> ruanganTujuansId = new ArrayList<>();
|
|
||||||
|
|
||||||
Integer oldNotifId = 0;
|
|
||||||
Integer oldRuanganIdTujuan = 0;
|
|
||||||
|
|
||||||
for (NotifMessagingSchedulerVO notif : lNotif) {
|
|
||||||
|
|
||||||
if (notif.getRuanganIdTujuan().intValue() != oldRuanganIdTujuan.intValue()) {
|
|
||||||
ruanganTujuansId = new ArrayList<>();
|
|
||||||
oldRuanganIdTujuan = notif.getRuanganIdTujuan();
|
|
||||||
}
|
|
||||||
ruanganTujuansId.add(notif.getRuanganIdTujuan());
|
|
||||||
notifMapAllRuanganTujuan.put(notif.getNotifMessagingId(), ruanganTujuansId);
|
|
||||||
|
|
||||||
if (notif.getNotifMessagingId().intValue() != oldNotifId.intValue()) {
|
|
||||||
notifsId = new ArrayList<>();
|
|
||||||
oldNotifId = notif.getNotifMessagingId();
|
|
||||||
}
|
|
||||||
|
|
||||||
notifsId.add(notif.getNotifMessagingId());
|
|
||||||
ruanganAsalAll.put(notif.getRuanganIdAsal(), notifsId);
|
|
||||||
|
|
||||||
pegawaiRuangaAsal.put(notif.getRuanganIdAsal(), notif.getPegawaiId());
|
|
||||||
}
|
|
||||||
|
|
||||||
Set<Integer> ruanganAsalIds = ruanganAsalAll.keySet();
|
|
||||||
|
|
||||||
for (Integer ruanganAsalId : ruanganAsalIds) {
|
|
||||||
|
|
||||||
Integer pegawaiId = pegawaiRuangaAsal.get(ruanganAsalId);
|
|
||||||
Pegawai pegawai = pegawaiDao.findById(pegawaiId);
|
|
||||||
Ruangan ruanganAsal = ruanganDao.findById(ruanganAsalId);
|
|
||||||
|
|
||||||
notifsId = ruanganAsalAll.get(ruanganAsalId);
|
|
||||||
|
|
||||||
for (Integer notifMessagingId : notifsId) {
|
|
||||||
|
|
||||||
ruanganTujuansId = notifMapAllRuanganTujuan.get(notifMessagingId);
|
|
||||||
|
|
||||||
try {
|
|
||||||
rabbitHole.sendNotif(rabbitHole, ruanganAsal, pegawai, notifikasiMessageObjekModulService,
|
|
||||||
notifMessagingId, ruanganTujuansId);
|
|
||||||
} catch (Exception e) {
|
|
||||||
LOG.info(
|
|
||||||
DateUtil.now()
|
|
||||||
+ " task scheduler dari Ruangan {} dengan ruanganId {} pada notifMessageId {} ada masalah {}",
|
|
||||||
ruanganAsal.getNamaRuangan(), ruanganAsalId, notifMessagingId, e.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
LOG.info(DateUtil.now() + "Task scheduler gagal penyebab, {} ", e.getMessage());
|
|
||||||
// e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void sendNotif(Gson gson, String urlSocket, MessagePublisher.RabbitHole rabbitHole, Integer pegawaiId,
|
|
||||||
Integer ruanganId, Integer notifMessagingId, List<Integer> ruanganTujuansId) throws Exception {
|
|
||||||
|
|
||||||
List<NotifikasiMessageObjekModulVO> notifikasiMessageObjekModulVOs = notifikasiMessageObjekModulService
|
|
||||||
.findByNotifMessagingIdAndRuanganId(notifMessagingId, ruanganTujuansId);
|
|
||||||
|
|
||||||
if (CommonUtil.isNullOrEmpty(notifikasiMessageObjekModulVOs)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Integer ruanganIdtemp = 0;
|
|
||||||
boolean connect = false;
|
|
||||||
|
|
||||||
PegawaiVO pegawai = pegawaiService.findById(pegawaiId);
|
|
||||||
|
|
||||||
for (NotifikasiMessageObjekModulVO vo : notifikasiMessageObjekModulVOs) {
|
|
||||||
Ruangan ruangan = vo.getRuangan();
|
|
||||||
ModulAplikasi modulAplikasi = vo.getModulAplikasi();
|
|
||||||
ObjekModulAplikasi objekModulAplikasi = vo.getObjekModulAplikasi();
|
|
||||||
String customURLObjekModul = vo.getCustomURLObjekModul();
|
|
||||||
String titleNotifikasi = vo.getTitleNotifikasi();
|
|
||||||
String pesanNotifikasi = vo.getPesanNotifikasi();
|
|
||||||
String namaFungsiFrontEnd = vo.getNamaFungsiFrontEnd();
|
|
||||||
|
|
||||||
if (ruangan.getId() == ruanganId) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RuanganVO dariRuangan = ruanganService.findById(ruanganId);
|
|
||||||
|
|
||||||
if (ruanganIdtemp != ruangan.getId()) {
|
|
||||||
if (connect) {
|
|
||||||
rabbitHole.close();
|
|
||||||
}
|
|
||||||
rabbitHole.connect(urlSocket, String.valueOf(ruangan.getId()));
|
|
||||||
connect = true;
|
|
||||||
ruanganIdtemp = ruangan.getId();
|
|
||||||
}
|
|
||||||
|
|
||||||
Map<String, Object> map = new HashMap<>();
|
|
||||||
map.put("title", titleNotifikasi);
|
|
||||||
map.put("dariRuangan", dariRuangan);
|
|
||||||
map.put("ruanganId", ruangan.getId());
|
|
||||||
map.put("ruangan", ruangan);
|
|
||||||
map.put("modulAplikasi", modulAplikasi);
|
|
||||||
map.put("objekModulAplikasi", objekModulAplikasi);
|
|
||||||
map.put("titleNotifikasi", titleNotifikasi);
|
|
||||||
map.put("pesanNotifikasi", pesanNotifikasi);
|
|
||||||
map.put("namaFungsiFrontEnd", namaFungsiFrontEnd);
|
|
||||||
map.put("fromPegawai", pegawai);
|
|
||||||
map.put("urlForm", CommonUtil.isNullOrEmpty(customURLObjekModul) ? objekModulAplikasi.getAlamatUrlForm()
|
|
||||||
: customURLObjekModul);
|
|
||||||
|
|
||||||
rabbitHole.sendRabbitMQNotification(gson.toJson(map));
|
|
||||||
|
|
||||||
messagePublisher.BroadcastMessage(map);
|
|
||||||
}
|
|
||||||
if (connect) {
|
|
||||||
rabbitHole.close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
@ -1,115 +0,0 @@
|
|||||||
package com.jasamedika.medifirst2000.asynctask;
|
|
||||||
|
|
||||||
import java.text.SimpleDateFormat;
|
|
||||||
import java.util.Calendar;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Timer;
|
|
||||||
import java.util.TimerTask;
|
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
|
||||||
import com.jasamedika.medifirst2000.controller.base.LocaleController;
|
|
||||||
import com.jasamedika.medifirst2000.service.IpsrsMaintenanceService;
|
|
||||||
import com.jasamedika.medifirst2000.service.PegawaiMutasiSanksiResignService;
|
|
||||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
|
||||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
|
||||||
import com.jasamedika.medifirst2000.vo.IpsrsJadwalPemeliharaanVO;
|
|
||||||
|
|
||||||
@Component
|
|
||||||
public class IpsrsAlertMaintenance extends LocaleController<IpsrsJadwalPemeliharaanVO>{
|
|
||||||
/*
|
|
||||||
private Boolean flag =false;
|
|
||||||
private Integer pending = 0;
|
|
||||||
private String time = new SimpleDateFormat("HH:mm").format(Calendar.getInstance().getTime());
|
|
||||||
private SimpleDateFormat format = new SimpleDateFormat("HH:mm");
|
|
||||||
|
|
||||||
public IpsrsAlertMaintenance() {
|
|
||||||
if(!Thread.currentThread().isInterrupted()){
|
|
||||||
try {
|
|
||||||
new Thread(new RunningTask()).start();
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class RunningTask implements Runnable{
|
|
||||||
public void run() {
|
|
||||||
new Timer().schedule(new TimerTask(){
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
try{
|
|
||||||
Date timeNow = format.parse(time);
|
|
||||||
Date timeEnd = format.parse("18:00");
|
|
||||||
Date timeReset = format.parse("21:00");
|
|
||||||
|
|
||||||
if(pending==60*3){
|
|
||||||
if(timeNow.before(timeEnd)){
|
|
||||||
if(flag==false){
|
|
||||||
getAlertlMaintenance();
|
|
||||||
getDataPlanningByDate();
|
|
||||||
flag=true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
pending=0;
|
|
||||||
} else{
|
|
||||||
pending++;
|
|
||||||
if(timeNow.equals(timeReset)){
|
|
||||||
flag=false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}catch(Exception ex){
|
|
||||||
ex.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, 1000L, 1000L);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private IpsrsMaintenanceService ipsrsMaintenanceService;
|
|
||||||
|
|
||||||
public void getAlertlMaintenance(){
|
|
||||||
try{
|
|
||||||
if (ipsrsMaintenanceService != null){
|
|
||||||
Map<String, Object> jadwalMaintenance = ipsrsMaintenanceService.getAlertMaintenance();
|
|
||||||
if(CommonUtil.isNotNullOrEmpty(jadwalMaintenance)){
|
|
||||||
BroadcastMessageOther("jadwalMaintenance", jadwalMaintenance);
|
|
||||||
System.out.println(DateUtil.now()+" task scheduler :");
|
|
||||||
System.out.println(new Gson().toJson(jadwalMaintenance));
|
|
||||||
} else{
|
|
||||||
System.out.println(DateUtil.now()+" task scheduler : tidak ada jadwal maintenance");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}catch (Exception ex){
|
|
||||||
ex.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private PegawaiMutasiSanksiResignService pegawaiMutasiSanksiResignService;
|
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
public void getDataPlanningByDate(){
|
|
||||||
try{
|
|
||||||
if (pegawaiMutasiSanksiResignService != null) {
|
|
||||||
Map<String, Object> mapData = pegawaiMutasiSanksiResignService.getDataPlanningByDate(DateUtil.now());
|
|
||||||
if(CommonUtil.isNotNullOrEmpty(mapData)){
|
|
||||||
for(Map<String, Object> data : (List<Map<String, Object>>) mapData.get("listData")){
|
|
||||||
Map<String, Object> dataResult = pegawaiMutasiSanksiResignService.updateExecPegawai(data);
|
|
||||||
System.out.println(DateUtil.now()+" task scheduler : update pegawai "+new Gson().toJson(dataResult));
|
|
||||||
}
|
|
||||||
} else{
|
|
||||||
System.out.println(DateUtil.now()+" task scheduler : tidak ada update data pegawai musare");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}catch(Exception ex){
|
|
||||||
ex.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
@ -1,202 +0,0 @@
|
|||||||
package com.jasamedika.medifirst2000.asynctask;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.scheduling.annotation.Scheduled;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
|
||||||
import com.jasamedika.medifirst2000.controller.base.LocaleController;
|
|
||||||
import com.jasamedika.medifirst2000.dao.PegawaiDao;
|
|
||||||
import com.jasamedika.medifirst2000.dao.RuanganDao;
|
|
||||||
import com.jasamedika.medifirst2000.entities.ModulAplikasi;
|
|
||||||
import com.jasamedika.medifirst2000.entities.ObjekModulAplikasi;
|
|
||||||
import com.jasamedika.medifirst2000.entities.Pegawai;
|
|
||||||
import com.jasamedika.medifirst2000.entities.Ruangan;
|
|
||||||
import com.jasamedika.medifirst2000.notification.MessagePublisher;
|
|
||||||
import com.jasamedika.medifirst2000.service.NotifMessagingSchedulerService;
|
|
||||||
import com.jasamedika.medifirst2000.service.NotifMessagingService;
|
|
||||||
import com.jasamedika.medifirst2000.service.NotifikasiMessageObjekModulService;
|
|
||||||
import com.jasamedika.medifirst2000.service.PegawaiService;
|
|
||||||
import com.jasamedika.medifirst2000.service.RuanganService;
|
|
||||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
|
||||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
|
||||||
import com.jasamedika.medifirst2000.vo.NotifMessagingSchedulerVO;
|
|
||||||
import com.jasamedika.medifirst2000.vo.NotifMessagingVO;
|
|
||||||
import com.jasamedika.medifirst2000.vo.NotifikasiMessageObjekModulVO;
|
|
||||||
import com.jasamedika.medifirst2000.vo.PegawaiVO;
|
|
||||||
import com.jasamedika.medifirst2000.vo.RuanganVO;
|
|
||||||
|
|
||||||
@Component
|
|
||||||
public class NotificationSchedulerMaintenanceTask extends LocaleController<NotifMessagingSchedulerVO> {
|
|
||||||
/*
|
|
||||||
private final Logger LOG = LoggerFactory.getLogger(NotificationSchedulerMaintenanceTask.class);
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
NotifMessagingSchedulerService<NotifMessagingSchedulerVO> notifMessagingSchedulerService;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
NotifMessagingService<NotifMessagingVO> notifMessagingService;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
NotifikasiMessageObjekModulService<NotifikasiMessageObjekModulVO> notifikasiMessageObjekModulService;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
PegawaiService pegawaiService;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
RuanganService<RuanganVO> ruanganService;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
MessagePublisher<String, Object> messagePublisher;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
PegawaiDao pegawaiDao;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
RuanganDao ruanganDao;
|
|
||||||
|
|
||||||
@Scheduled(cron = "0 30 7 * * *")
|
|
||||||
public void NotificationNormalMaintenanceEvery730AM() {
|
|
||||||
try {
|
|
||||||
MessagePublisher.RabbitHole rabbitHole = messagePublisher.getRabbitHole();
|
|
||||||
|
|
||||||
List<NotifMessagingSchedulerVO> lNotif = notifMessagingSchedulerService.allNotifBelumTerkirim(new Date());
|
|
||||||
|
|
||||||
if (CommonUtil.isNullOrEmpty(lNotif)) {
|
|
||||||
LOG.info(DateUtil.now() + " task scheduler : tidak ada jadwal maintenance");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Map<Integer, Integer> pegawaiRuangaAsal = new HashMap<>();
|
|
||||||
|
|
||||||
Map<Integer, List<Integer>> ruanganAsalAll = new HashMap<>();
|
|
||||||
Map<Integer, List<Integer>> notifMapAllRuanganTujuan = new HashMap<>();
|
|
||||||
List<Integer> notifsId = new ArrayList<>();
|
|
||||||
List<Integer> ruanganTujuansId = new ArrayList<>();
|
|
||||||
|
|
||||||
Integer oldNotifId = 0;
|
|
||||||
Integer oldRuanganIdTujuan = 0;
|
|
||||||
|
|
||||||
for (NotifMessagingSchedulerVO notif : lNotif) {
|
|
||||||
|
|
||||||
if (notif.getRuanganIdTujuan().intValue() != oldRuanganIdTujuan.intValue()) {
|
|
||||||
ruanganTujuansId = new ArrayList<>();
|
|
||||||
oldRuanganIdTujuan = notif.getRuanganIdTujuan();
|
|
||||||
}
|
|
||||||
ruanganTujuansId.add(notif.getRuanganIdTujuan());
|
|
||||||
notifMapAllRuanganTujuan.put(notif.getNotifMessagingId(), ruanganTujuansId);
|
|
||||||
|
|
||||||
if (notif.getNotifMessagingId().intValue() != oldNotifId.intValue()) {
|
|
||||||
notifsId = new ArrayList<>();
|
|
||||||
oldNotifId = notif.getNotifMessagingId();
|
|
||||||
}
|
|
||||||
|
|
||||||
notifsId.add(notif.getNotifMessagingId());
|
|
||||||
ruanganAsalAll.put(notif.getRuanganIdAsal(), notifsId);
|
|
||||||
|
|
||||||
pegawaiRuangaAsal.put(notif.getRuanganIdAsal(), notif.getPegawaiId());
|
|
||||||
}
|
|
||||||
|
|
||||||
Set<Integer> ruanganAsalIds = ruanganAsalAll.keySet();
|
|
||||||
|
|
||||||
for (Integer ruanganAsalId : ruanganAsalIds) {
|
|
||||||
|
|
||||||
Integer pegawaiId = pegawaiRuangaAsal.get(ruanganAsalId);
|
|
||||||
Pegawai pegawai = pegawaiDao.findById(pegawaiId);
|
|
||||||
Ruangan ruanganAsal = ruanganDao.findById(ruanganAsalId);
|
|
||||||
|
|
||||||
notifsId = ruanganAsalAll.get(ruanganAsalId);
|
|
||||||
|
|
||||||
for (Integer notifMessagingId : notifsId) {
|
|
||||||
|
|
||||||
ruanganTujuansId = notifMapAllRuanganTujuan.get(notifMessagingId);
|
|
||||||
|
|
||||||
try {
|
|
||||||
rabbitHole.sendNotif(rabbitHole, ruanganAsal, pegawai, notifikasiMessageObjekModulService,
|
|
||||||
notifMessagingId, ruanganTujuansId);
|
|
||||||
} catch (Exception e) {
|
|
||||||
LOG.info(
|
|
||||||
DateUtil.now()
|
|
||||||
+ " task scheduler dari Ruangan {} dengan ruanganId {} pada notifMessageId {} ada masalah {}",
|
|
||||||
ruanganAsal.getNamaRuangan(), ruanganAsalId, notifMessagingId, e.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
LOG.info(DateUtil.now() + "Task scheduler gagal penyebab, {} ", e.getMessage());
|
|
||||||
// e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void sendNotif(Gson gson, String urlSocket, MessagePublisher.RabbitHole rabbitHole, Integer pegawaiId,
|
|
||||||
Integer ruanganId, Integer notifMessagingId, List<Integer> ruanganTujuansId) throws Exception {
|
|
||||||
|
|
||||||
List<NotifikasiMessageObjekModulVO> notifikasiMessageObjekModulVOs = notifikasiMessageObjekModulService
|
|
||||||
.findByNotifMessagingIdAndRuanganId(notifMessagingId, ruanganTujuansId);
|
|
||||||
|
|
||||||
if (CommonUtil.isNullOrEmpty(notifikasiMessageObjekModulVOs)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Integer ruanganIdtemp = 0;
|
|
||||||
boolean connect = false;
|
|
||||||
|
|
||||||
PegawaiVO pegawai = pegawaiService.findById(pegawaiId);
|
|
||||||
|
|
||||||
for (NotifikasiMessageObjekModulVO vo : notifikasiMessageObjekModulVOs) {
|
|
||||||
Ruangan ruangan = vo.getRuangan();
|
|
||||||
ModulAplikasi modulAplikasi = vo.getModulAplikasi();
|
|
||||||
ObjekModulAplikasi objekModulAplikasi = vo.getObjekModulAplikasi();
|
|
||||||
String customURLObjekModul = vo.getCustomURLObjekModul();
|
|
||||||
String titleNotifikasi = vo.getTitleNotifikasi();
|
|
||||||
String pesanNotifikasi = vo.getPesanNotifikasi();
|
|
||||||
String namaFungsiFrontEnd = vo.getNamaFungsiFrontEnd();
|
|
||||||
|
|
||||||
if (ruangan.getId() == ruanganId) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RuanganVO dariRuangan = ruanganService.findById(ruanganId);
|
|
||||||
|
|
||||||
if (ruanganIdtemp != ruangan.getId()) {
|
|
||||||
if (connect) {
|
|
||||||
rabbitHole.close();
|
|
||||||
}
|
|
||||||
rabbitHole.connect(urlSocket, String.valueOf(ruangan.getId()));
|
|
||||||
connect = true;
|
|
||||||
ruanganIdtemp = ruangan.getId();
|
|
||||||
}
|
|
||||||
|
|
||||||
Map<String, Object> map = new HashMap<>();
|
|
||||||
map.put("title", titleNotifikasi);
|
|
||||||
map.put("dariRuangan", dariRuangan);
|
|
||||||
map.put("ruanganId", ruangan.getId());
|
|
||||||
map.put("ruangan", ruangan);
|
|
||||||
map.put("modulAplikasi", modulAplikasi);
|
|
||||||
map.put("objekModulAplikasi", objekModulAplikasi);
|
|
||||||
map.put("titleNotifikasi", titleNotifikasi);
|
|
||||||
map.put("pesanNotifikasi", pesanNotifikasi);
|
|
||||||
map.put("namaFungsiFrontEnd", namaFungsiFrontEnd);
|
|
||||||
map.put("fromPegawai", pegawai);
|
|
||||||
map.put("urlForm", CommonUtil.isNullOrEmpty(customURLObjekModul) ? objekModulAplikasi.getAlamatUrlForm()
|
|
||||||
: customURLObjekModul);
|
|
||||||
|
|
||||||
rabbitHole.sendRabbitMQNotification(gson.toJson(map));
|
|
||||||
|
|
||||||
messagePublisher.BroadcastMessage(map);
|
|
||||||
}
|
|
||||||
if (connect) {
|
|
||||||
rabbitHole.close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
@ -1,115 +0,0 @@
|
|||||||
package com.jasamedika.medifirst2000.asynctask;
|
|
||||||
|
|
||||||
import java.text.SimpleDateFormat;
|
|
||||||
import java.util.Calendar;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Timer;
|
|
||||||
import java.util.TimerTask;
|
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
|
||||||
import com.jasamedika.medifirst2000.controller.base.LocaleController;
|
|
||||||
import com.jasamedika.medifirst2000.service.IpsrsMaintenanceService;
|
|
||||||
import com.jasamedika.medifirst2000.service.PegawaiMutasiSanksiResignService;
|
|
||||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
|
||||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
|
||||||
import com.jasamedika.medifirst2000.vo.IpsrsJadwalPemeliharaanVO;
|
|
||||||
|
|
||||||
@Component
|
|
||||||
public class IpsrsAlertMaintenance extends LocaleController<IpsrsJadwalPemeliharaanVO>{
|
|
||||||
/*
|
|
||||||
private Boolean flag =false;
|
|
||||||
private Integer pending = 0;
|
|
||||||
private String time = new SimpleDateFormat("HH:mm").format(Calendar.getInstance().getTime());
|
|
||||||
private SimpleDateFormat format = new SimpleDateFormat("HH:mm");
|
|
||||||
|
|
||||||
public IpsrsAlertMaintenance() {
|
|
||||||
if(!Thread.currentThread().isInterrupted()){
|
|
||||||
try {
|
|
||||||
new Thread(new RunningTask()).start();
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class RunningTask implements Runnable{
|
|
||||||
public void run() {
|
|
||||||
new Timer().schedule(new TimerTask(){
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
try{
|
|
||||||
Date timeNow = format.parse(time);
|
|
||||||
Date timeEnd = format.parse("18:00");
|
|
||||||
Date timeReset = format.parse("21:00");
|
|
||||||
|
|
||||||
if(pending==60*3){
|
|
||||||
if(timeNow.before(timeEnd)){
|
|
||||||
if(flag==false){
|
|
||||||
getAlertlMaintenance();
|
|
||||||
getDataPlanningByDate();
|
|
||||||
flag=true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
pending=0;
|
|
||||||
} else{
|
|
||||||
pending++;
|
|
||||||
if(timeNow.equals(timeReset)){
|
|
||||||
flag=false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}catch(Exception ex){
|
|
||||||
ex.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, 1000L, 1000L);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private IpsrsMaintenanceService ipsrsMaintenanceService;
|
|
||||||
|
|
||||||
public void getAlertlMaintenance(){
|
|
||||||
try{
|
|
||||||
if (ipsrsMaintenanceService != null){
|
|
||||||
Map<String, Object> jadwalMaintenance = ipsrsMaintenanceService.getAlertMaintenance();
|
|
||||||
if(CommonUtil.isNotNullOrEmpty(jadwalMaintenance)){
|
|
||||||
BroadcastMessageOther("jadwalMaintenance", jadwalMaintenance);
|
|
||||||
System.out.println(DateUtil.now()+" task scheduler :");
|
|
||||||
System.out.println(new Gson().toJson(jadwalMaintenance));
|
|
||||||
} else{
|
|
||||||
System.out.println(DateUtil.now()+" task scheduler : tidak ada jadwal maintenance");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}catch (Exception ex){
|
|
||||||
ex.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private PegawaiMutasiSanksiResignService pegawaiMutasiSanksiResignService;
|
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
public void getDataPlanningByDate(){
|
|
||||||
try{
|
|
||||||
if (pegawaiMutasiSanksiResignService != null) {
|
|
||||||
Map<String, Object> mapData = pegawaiMutasiSanksiResignService.getDataPlanningByDate(DateUtil.now());
|
|
||||||
if(CommonUtil.isNotNullOrEmpty(mapData)){
|
|
||||||
for(Map<String, Object> data : (List<Map<String, Object>>) mapData.get("listData")){
|
|
||||||
Map<String, Object> dataResult = pegawaiMutasiSanksiResignService.updateExecPegawai(data);
|
|
||||||
System.out.println(DateUtil.now()+" task scheduler : update pegawai "+new Gson().toJson(dataResult));
|
|
||||||
}
|
|
||||||
} else{
|
|
||||||
System.out.println(DateUtil.now()+" task scheduler : tidak ada update data pegawai musare");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}catch(Exception ex){
|
|
||||||
ex.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
@ -1,186 +0,0 @@
|
|||||||
package com.jasamedika.medifirst2000.asynctask;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.scheduling.annotation.Scheduled;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import com.jasamedika.medifirst2000.controller.base.LocaleController;
|
|
||||||
import com.jasamedika.medifirst2000.dao.PegawaiDao;
|
|
||||||
import com.jasamedika.medifirst2000.dao.RuanganDao;
|
|
||||||
import com.jasamedika.medifirst2000.entities.Pegawai;
|
|
||||||
import com.jasamedika.medifirst2000.entities.Ruangan;
|
|
||||||
import com.jasamedika.medifirst2000.notification.MessagePublisher;
|
|
||||||
import com.jasamedika.medifirst2000.service.NotifMessagingSchedulerService;
|
|
||||||
import com.jasamedika.medifirst2000.service.NotifMessagingService;
|
|
||||||
import com.jasamedika.medifirst2000.service.NotifikasiMessageObjekModulService;
|
|
||||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
|
||||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
|
||||||
import com.jasamedika.medifirst2000.vo.NotifMessagingSchedulerVO;
|
|
||||||
import com.jasamedika.medifirst2000.vo.NotifMessagingVO;
|
|
||||||
import com.jasamedika.medifirst2000.vo.NotifikasiMessageObjekModulVO;
|
|
||||||
|
|
||||||
@Component
|
|
||||||
public class NotificationSchedulerMaintenanceTask extends LocaleController<NotifMessagingSchedulerVO>{
|
|
||||||
/*
|
|
||||||
private final Logger LOG = LoggerFactory.getLogger(NotificationSchedulerMaintenanceTask.class);
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
NotifMessagingSchedulerService<NotifMessagingSchedulerVO> notifMessagingSchedulerService;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
NotifMessagingService<NotifMessagingVO> notifMessagingService;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
NotifikasiMessageObjekModulService<NotifikasiMessageObjekModulVO> notifikasiMessageObjekModulService;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
MessagePublisher<String, Object> messagePublisher;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
PegawaiDao pegawaiDao;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
RuanganDao ruanganDao;
|
|
||||||
|
|
||||||
@Scheduled(cron = "0 30 7 * * *")
|
|
||||||
public void NotificationNormalMaintenanceEvery730AM(){
|
|
||||||
try{
|
|
||||||
MessagePublisher.RabbitHole rabbitHole = messagePublisher.getRabbitHole();
|
|
||||||
|
|
||||||
List<NotifMessagingSchedulerVO> lNotif = notifMessagingSchedulerService.allNotifBelumTerkirim(new Date());
|
|
||||||
|
|
||||||
if (CommonUtil.isNullOrEmpty(lNotif)){
|
|
||||||
LOG.info(DateUtil.now()+" task scheduler : tidak ada jadwal maintenance");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Map<Integer, Integer> pegawaiRuangaAsal = new HashMap<>();
|
|
||||||
|
|
||||||
Map<Integer, List<Integer>> ruanganAsalAll = new HashMap<>();
|
|
||||||
Map<Integer, List<Integer>> notifMapAllRuanganTujuan = new HashMap<>();
|
|
||||||
List<Integer> notifsId = new ArrayList<>();
|
|
||||||
List<Integer> ruanganTujuansId = new ArrayList<>();
|
|
||||||
|
|
||||||
Integer oldNotifId = 0;
|
|
||||||
Integer oldRuanganIdTujuan = 0;
|
|
||||||
|
|
||||||
for (NotifMessagingSchedulerVO notif:lNotif){
|
|
||||||
|
|
||||||
if (notif.getRuanganIdTujuan().intValue() != oldRuanganIdTujuan.intValue()){
|
|
||||||
ruanganTujuansId = new ArrayList<>();
|
|
||||||
oldRuanganIdTujuan = notif.getRuanganIdTujuan();
|
|
||||||
}
|
|
||||||
ruanganTujuansId.add(notif.getRuanganIdTujuan());
|
|
||||||
notifMapAllRuanganTujuan.put(notif.getNotifMessagingId(), ruanganTujuansId);
|
|
||||||
|
|
||||||
if (notif.getNotifMessagingId().intValue() != oldNotifId.intValue()){
|
|
||||||
notifsId = new ArrayList<>();
|
|
||||||
oldNotifId = notif.getNotifMessagingId();
|
|
||||||
}
|
|
||||||
|
|
||||||
notifsId.add(notif.getNotifMessagingId());
|
|
||||||
ruanganAsalAll.put(notif.getRuanganIdAsal(), notifsId);
|
|
||||||
|
|
||||||
pegawaiRuangaAsal.put(notif.getRuanganIdAsal(), notif.getPegawaiId());
|
|
||||||
}
|
|
||||||
|
|
||||||
Set<Integer> ruanganAsalIds = ruanganAsalAll.keySet();
|
|
||||||
|
|
||||||
for(Integer ruanganAsalId:ruanganAsalIds){
|
|
||||||
|
|
||||||
Integer pegawaiId = pegawaiRuangaAsal.get(ruanganAsalId);
|
|
||||||
Pegawai pegawai = pegawaiDao.findById(pegawaiId);
|
|
||||||
Ruangan ruanganAsal = ruanganDao.findById(ruanganAsalId);
|
|
||||||
|
|
||||||
notifsId = ruanganAsalAll.get(ruanganAsalId);
|
|
||||||
|
|
||||||
for (Integer notifMessagingId:notifsId ){
|
|
||||||
|
|
||||||
ruanganTujuansId = notifMapAllRuanganTujuan.get(notifMessagingId);
|
|
||||||
|
|
||||||
try{
|
|
||||||
rabbitHole.sendNotif(rabbitHole, ruanganAsal, pegawai, notifikasiMessageObjekModulService, notifMessagingId, ruanganTujuansId);
|
|
||||||
}catch(Exception e){
|
|
||||||
LOG.info(DateUtil.now()+" task scheduler dari Ruangan {} dengan ruanganId {} pada notifMessageId {} ada masalah {}",
|
|
||||||
ruanganAsal.getNamaRuangan(), ruanganAsalId, notifMessagingId, e.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}catch(Exception e){
|
|
||||||
LOG.info(DateUtil.now() + "Task scheduler gagal penyebab, {} ", e.getMessage());
|
|
||||||
//e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//private void sendNotif(Gson gson, String urlSocket, MessagePublisher.RabbitHole rabbitHole, Integer pegawaiId, Integer ruanganId, Integer notifMessagingId, List<Integer> ruanganTujuansId) throws Exception{
|
|
||||||
//
|
|
||||||
//List<NotifikasiMessageObjekModulVO> notifikasiMessageObjekModulVOs = notifikasiMessageObjekModulService.findByNotifMessagingIdAndRuanganId(notifMessagingId, ruanganTujuansId);
|
|
||||||
//
|
|
||||||
//if (CommonUtil.isNullOrEmpty(notifikasiMessageObjekModulVOs)) {
|
|
||||||
// return;
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//Integer ruanganIdtemp = 0;
|
|
||||||
//boolean connect = false;
|
|
||||||
//
|
|
||||||
//PegawaiVO pegawai = pegawaiService.findById(pegawaiId);
|
|
||||||
//
|
|
||||||
//for (NotifikasiMessageObjekModulVO vo : notifikasiMessageObjekModulVOs){
|
|
||||||
// Ruangan ruangan = vo.getRuangan();
|
|
||||||
// ModulAplikasi modulAplikasi = vo.getModulAplikasi();
|
|
||||||
// ObjekModulAplikasi objekModulAplikasi = vo.getObjekModulAplikasi();
|
|
||||||
// String customURLObjekModul = vo.getCustomURLObjekModul();
|
|
||||||
// String titleNotifikasi = vo.getTitleNotifikasi();
|
|
||||||
// String pesanNotifikasi = vo.getPesanNotifikasi();
|
|
||||||
// String namaFungsiFrontEnd = vo.getNamaFungsiFrontEnd();
|
|
||||||
//
|
|
||||||
// if (ruangan.getId() == ruanganId){
|
|
||||||
// continue;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// RuanganVO dariRuangan = ruanganService.findById(ruanganId);
|
|
||||||
//
|
|
||||||
// if (ruanganIdtemp != ruangan.getId()){
|
|
||||||
// if (connect){
|
|
||||||
// rabbitHole.close();
|
|
||||||
// }
|
|
||||||
// rabbitHole.connect(urlSocket, String.valueOf(ruangan.getId()));
|
|
||||||
// connect = true;
|
|
||||||
// ruanganIdtemp = ruangan.getId();
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// Map<String, Object> map = new HashMap<>();
|
|
||||||
// map.put("title", titleNotifikasi);
|
|
||||||
// map.put("dariRuangan", dariRuangan);
|
|
||||||
// map.put("ruanganId", ruangan.getId());
|
|
||||||
// map.put("ruangan", ruangan);
|
|
||||||
// map.put("modulAplikasi", modulAplikasi);
|
|
||||||
// map.put("objekModulAplikasi", objekModulAplikasi);
|
|
||||||
// map.put("titleNotifikasi", titleNotifikasi);
|
|
||||||
// map.put("pesanNotifikasi", pesanNotifikasi);
|
|
||||||
// map.put("namaFungsiFrontEnd", namaFungsiFrontEnd);
|
|
||||||
// map.put("fromPegawai", pegawai);
|
|
||||||
// map.put("urlForm",CommonUtil.isNullOrEmpty(customURLObjekModul)? objekModulAplikasi.getAlamatUrlForm() : customURLObjekModul);
|
|
||||||
//
|
|
||||||
// rabbitHole.sendRabbitMQNotification(gson.toJson(map));
|
|
||||||
//
|
|
||||||
// //messagePublisher.BroadcastMessage(map);
|
|
||||||
//}
|
|
||||||
//if (connect){
|
|
||||||
// rabbitHole.close();
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//}
|
|
||||||
@ -1,115 +0,0 @@
|
|||||||
package com.jasamedika.medifirst2000.asynctask;
|
|
||||||
|
|
||||||
import java.text.SimpleDateFormat;
|
|
||||||
import java.util.Calendar;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Timer;
|
|
||||||
import java.util.TimerTask;
|
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
|
||||||
import com.jasamedika.medifirst2000.controller.base.LocaleController;
|
|
||||||
import com.jasamedika.medifirst2000.service.IpsrsMaintenanceService;
|
|
||||||
import com.jasamedika.medifirst2000.service.PegawaiMutasiSanksiResignService;
|
|
||||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
|
||||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
|
||||||
import com.jasamedika.medifirst2000.vo.IpsrsJadwalPemeliharaanVO;
|
|
||||||
|
|
||||||
@Component
|
|
||||||
public class IpsrsAlertMaintenance extends LocaleController<IpsrsJadwalPemeliharaanVO>{
|
|
||||||
/*
|
|
||||||
private Boolean flag =false;
|
|
||||||
private Integer pending = 0;
|
|
||||||
private String time = new SimpleDateFormat("HH:mm").format(Calendar.getInstance().getTime());
|
|
||||||
private SimpleDateFormat format = new SimpleDateFormat("HH:mm");
|
|
||||||
|
|
||||||
public IpsrsAlertMaintenance() {
|
|
||||||
if(!Thread.currentThread().isInterrupted()){
|
|
||||||
try {
|
|
||||||
new Thread(new RunningTask()).start();
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class RunningTask implements Runnable{
|
|
||||||
public void run() {
|
|
||||||
new Timer().schedule(new TimerTask(){
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
try{
|
|
||||||
Date timeNow = format.parse(time);
|
|
||||||
Date timeEnd = format.parse("18:00");
|
|
||||||
Date timeReset = format.parse("21:00");
|
|
||||||
|
|
||||||
if(pending==60*3){
|
|
||||||
if(timeNow.before(timeEnd)){
|
|
||||||
if(flag==false){
|
|
||||||
getAlertlMaintenance();
|
|
||||||
getDataPlanningByDate();
|
|
||||||
flag=true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
pending=0;
|
|
||||||
} else{
|
|
||||||
pending++;
|
|
||||||
if(timeNow.equals(timeReset)){
|
|
||||||
flag=false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}catch(Exception ex){
|
|
||||||
ex.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, 1000L, 1000L);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private IpsrsMaintenanceService ipsrsMaintenanceService;
|
|
||||||
|
|
||||||
public void getAlertlMaintenance(){
|
|
||||||
try{
|
|
||||||
if (ipsrsMaintenanceService != null){
|
|
||||||
Map<String, Object> jadwalMaintenance = ipsrsMaintenanceService.getAlertMaintenance();
|
|
||||||
if(CommonUtil.isNotNullOrEmpty(jadwalMaintenance)){
|
|
||||||
BroadcastMessageOther("jadwalMaintenance", jadwalMaintenance);
|
|
||||||
System.out.println(DateUtil.now()+" task scheduler :");
|
|
||||||
System.out.println(new Gson().toJson(jadwalMaintenance));
|
|
||||||
} else{
|
|
||||||
System.out.println(DateUtil.now()+" task scheduler : tidak ada jadwal maintenance");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}catch (Exception ex){
|
|
||||||
ex.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private PegawaiMutasiSanksiResignService pegawaiMutasiSanksiResignService;
|
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
public void getDataPlanningByDate(){
|
|
||||||
try{
|
|
||||||
if (pegawaiMutasiSanksiResignService != null) {
|
|
||||||
Map<String, Object> mapData = pegawaiMutasiSanksiResignService.getDataPlanningByDate(DateUtil.now());
|
|
||||||
if(CommonUtil.isNotNullOrEmpty(mapData)){
|
|
||||||
for(Map<String, Object> data : (List<Map<String, Object>>) mapData.get("listData")){
|
|
||||||
Map<String, Object> dataResult = pegawaiMutasiSanksiResignService.updateExecPegawai(data);
|
|
||||||
System.out.println(DateUtil.now()+" task scheduler : update pegawai "+new Gson().toJson(dataResult));
|
|
||||||
}
|
|
||||||
} else{
|
|
||||||
System.out.println(DateUtil.now()+" task scheduler : tidak ada update data pegawai musare");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}catch(Exception ex){
|
|
||||||
ex.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
@ -1,186 +0,0 @@
|
|||||||
package com.jasamedika.medifirst2000.asynctask;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.scheduling.annotation.Scheduled;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import com.jasamedika.medifirst2000.controller.base.LocaleController;
|
|
||||||
import com.jasamedika.medifirst2000.dao.PegawaiDao;
|
|
||||||
import com.jasamedika.medifirst2000.dao.RuanganDao;
|
|
||||||
import com.jasamedika.medifirst2000.entities.Pegawai;
|
|
||||||
import com.jasamedika.medifirst2000.entities.Ruangan;
|
|
||||||
import com.jasamedika.medifirst2000.notification.MessagePublisher;
|
|
||||||
import com.jasamedika.medifirst2000.service.NotifMessagingSchedulerService;
|
|
||||||
import com.jasamedika.medifirst2000.service.NotifMessagingService;
|
|
||||||
import com.jasamedika.medifirst2000.service.NotifikasiMessageObjekModulService;
|
|
||||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
|
||||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
|
||||||
import com.jasamedika.medifirst2000.vo.NotifMessagingSchedulerVO;
|
|
||||||
import com.jasamedika.medifirst2000.vo.NotifMessagingVO;
|
|
||||||
import com.jasamedika.medifirst2000.vo.NotifikasiMessageObjekModulVO;
|
|
||||||
|
|
||||||
@Component
|
|
||||||
public class NotificationSchedulerMaintenanceTask extends LocaleController<NotifMessagingSchedulerVO>{
|
|
||||||
/*
|
|
||||||
private final Logger LOG = LoggerFactory.getLogger(NotificationSchedulerMaintenanceTask.class);
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
NotifMessagingSchedulerService<NotifMessagingSchedulerVO> notifMessagingSchedulerService;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
NotifMessagingService<NotifMessagingVO> notifMessagingService;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
NotifikasiMessageObjekModulService<NotifikasiMessageObjekModulVO> notifikasiMessageObjekModulService;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
MessagePublisher<String, Object> messagePublisher;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
PegawaiDao pegawaiDao;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
RuanganDao ruanganDao;
|
|
||||||
|
|
||||||
@Scheduled(cron = "0 30 7 * * *")
|
|
||||||
public void NotificationNormalMaintenanceEvery730AM(){
|
|
||||||
try{
|
|
||||||
MessagePublisher.RabbitHole rabbitHole = messagePublisher.getRabbitHole();
|
|
||||||
|
|
||||||
List<NotifMessagingSchedulerVO> lNotif = notifMessagingSchedulerService.allNotifBelumTerkirim(new Date());
|
|
||||||
|
|
||||||
if (CommonUtil.isNullOrEmpty(lNotif)){
|
|
||||||
LOG.info(DateUtil.now()+" task scheduler : tidak ada jadwal maintenance");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Map<Integer, Integer> pegawaiRuangaAsal = new HashMap<>();
|
|
||||||
|
|
||||||
Map<Integer, List<Integer>> ruanganAsalAll = new HashMap<>();
|
|
||||||
Map<Integer, List<Integer>> notifMapAllRuanganTujuan = new HashMap<>();
|
|
||||||
List<Integer> notifsId = new ArrayList<>();
|
|
||||||
List<Integer> ruanganTujuansId = new ArrayList<>();
|
|
||||||
|
|
||||||
Integer oldNotifId = 0;
|
|
||||||
Integer oldRuanganIdTujuan = 0;
|
|
||||||
|
|
||||||
for (NotifMessagingSchedulerVO notif:lNotif){
|
|
||||||
|
|
||||||
if (notif.getRuanganIdTujuan().intValue() != oldRuanganIdTujuan.intValue()){
|
|
||||||
ruanganTujuansId = new ArrayList<>();
|
|
||||||
oldRuanganIdTujuan = notif.getRuanganIdTujuan();
|
|
||||||
}
|
|
||||||
ruanganTujuansId.add(notif.getRuanganIdTujuan());
|
|
||||||
notifMapAllRuanganTujuan.put(notif.getNotifMessagingId(), ruanganTujuansId);
|
|
||||||
|
|
||||||
if (notif.getNotifMessagingId().intValue() != oldNotifId.intValue()){
|
|
||||||
notifsId = new ArrayList<>();
|
|
||||||
oldNotifId = notif.getNotifMessagingId();
|
|
||||||
}
|
|
||||||
|
|
||||||
notifsId.add(notif.getNotifMessagingId());
|
|
||||||
ruanganAsalAll.put(notif.getRuanganIdAsal(), notifsId);
|
|
||||||
|
|
||||||
pegawaiRuangaAsal.put(notif.getRuanganIdAsal(), notif.getPegawaiId());
|
|
||||||
}
|
|
||||||
|
|
||||||
Set<Integer> ruanganAsalIds = ruanganAsalAll.keySet();
|
|
||||||
|
|
||||||
for(Integer ruanganAsalId:ruanganAsalIds){
|
|
||||||
|
|
||||||
Integer pegawaiId = pegawaiRuangaAsal.get(ruanganAsalId);
|
|
||||||
Pegawai pegawai = pegawaiDao.findById(pegawaiId);
|
|
||||||
Ruangan ruanganAsal = ruanganDao.findById(ruanganAsalId);
|
|
||||||
|
|
||||||
notifsId = ruanganAsalAll.get(ruanganAsalId);
|
|
||||||
|
|
||||||
for (Integer notifMessagingId:notifsId ){
|
|
||||||
|
|
||||||
ruanganTujuansId = notifMapAllRuanganTujuan.get(notifMessagingId);
|
|
||||||
|
|
||||||
try{
|
|
||||||
rabbitHole.sendNotif(rabbitHole, ruanganAsal, pegawai, notifikasiMessageObjekModulService, notifMessagingId, ruanganTujuansId);
|
|
||||||
}catch(Exception e){
|
|
||||||
LOG.info(DateUtil.now()+" task scheduler dari Ruangan {} dengan ruanganId {} pada notifMessageId {} ada masalah {}",
|
|
||||||
ruanganAsal.getNamaRuangan(), ruanganAsalId, notifMessagingId, e.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}catch(Exception e){
|
|
||||||
LOG.info(DateUtil.now() + "Task scheduler gagal penyebab, {} ", e.getMessage());
|
|
||||||
//e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//private void sendNotif(Gson gson, String urlSocket, MessagePublisher.RabbitHole rabbitHole, Integer pegawaiId, Integer ruanganId, Integer notifMessagingId, List<Integer> ruanganTujuansId) throws Exception{
|
|
||||||
//
|
|
||||||
//List<NotifikasiMessageObjekModulVO> notifikasiMessageObjekModulVOs = notifikasiMessageObjekModulService.findByNotifMessagingIdAndRuanganId(notifMessagingId, ruanganTujuansId);
|
|
||||||
//
|
|
||||||
//if (CommonUtil.isNullOrEmpty(notifikasiMessageObjekModulVOs)) {
|
|
||||||
// return;
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//Integer ruanganIdtemp = 0;
|
|
||||||
//boolean connect = false;
|
|
||||||
//
|
|
||||||
//PegawaiVO pegawai = pegawaiService.findById(pegawaiId);
|
|
||||||
//
|
|
||||||
//for (NotifikasiMessageObjekModulVO vo : notifikasiMessageObjekModulVOs){
|
|
||||||
// Ruangan ruangan = vo.getRuangan();
|
|
||||||
// ModulAplikasi modulAplikasi = vo.getModulAplikasi();
|
|
||||||
// ObjekModulAplikasi objekModulAplikasi = vo.getObjekModulAplikasi();
|
|
||||||
// String customURLObjekModul = vo.getCustomURLObjekModul();
|
|
||||||
// String titleNotifikasi = vo.getTitleNotifikasi();
|
|
||||||
// String pesanNotifikasi = vo.getPesanNotifikasi();
|
|
||||||
// String namaFungsiFrontEnd = vo.getNamaFungsiFrontEnd();
|
|
||||||
//
|
|
||||||
// if (ruangan.getId() == ruanganId){
|
|
||||||
// continue;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// RuanganVO dariRuangan = ruanganService.findById(ruanganId);
|
|
||||||
//
|
|
||||||
// if (ruanganIdtemp != ruangan.getId()){
|
|
||||||
// if (connect){
|
|
||||||
// rabbitHole.close();
|
|
||||||
// }
|
|
||||||
// rabbitHole.connect(urlSocket, String.valueOf(ruangan.getId()));
|
|
||||||
// connect = true;
|
|
||||||
// ruanganIdtemp = ruangan.getId();
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// Map<String, Object> map = new HashMap<>();
|
|
||||||
// map.put("title", titleNotifikasi);
|
|
||||||
// map.put("dariRuangan", dariRuangan);
|
|
||||||
// map.put("ruanganId", ruangan.getId());
|
|
||||||
// map.put("ruangan", ruangan);
|
|
||||||
// map.put("modulAplikasi", modulAplikasi);
|
|
||||||
// map.put("objekModulAplikasi", objekModulAplikasi);
|
|
||||||
// map.put("titleNotifikasi", titleNotifikasi);
|
|
||||||
// map.put("pesanNotifikasi", pesanNotifikasi);
|
|
||||||
// map.put("namaFungsiFrontEnd", namaFungsiFrontEnd);
|
|
||||||
// map.put("fromPegawai", pegawai);
|
|
||||||
// map.put("urlForm",CommonUtil.isNullOrEmpty(customURLObjekModul)? objekModulAplikasi.getAlamatUrlForm() : customURLObjekModul);
|
|
||||||
//
|
|
||||||
// rabbitHole.sendRabbitMQNotification(gson.toJson(map));
|
|
||||||
//
|
|
||||||
// //messagePublisher.BroadcastMessage(map);
|
|
||||||
//}
|
|
||||||
//if (connect){
|
|
||||||
// rabbitHole.close();
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//}
|
|
||||||
@ -1,115 +0,0 @@
|
|||||||
package com.jasamedika.medifirst2000.asynctask;
|
|
||||||
|
|
||||||
import java.text.SimpleDateFormat;
|
|
||||||
import java.util.Calendar;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Timer;
|
|
||||||
import java.util.TimerTask;
|
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
|
||||||
import com.jasamedika.medifirst2000.controller.base.LocaleController;
|
|
||||||
import com.jasamedika.medifirst2000.service.IpsrsMaintenanceService;
|
|
||||||
import com.jasamedika.medifirst2000.service.PegawaiMutasiSanksiResignService;
|
|
||||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
|
||||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
|
||||||
import com.jasamedika.medifirst2000.vo.IpsrsJadwalPemeliharaanVO;
|
|
||||||
|
|
||||||
@Component
|
|
||||||
public class IpsrsAlertMaintenance extends LocaleController<IpsrsJadwalPemeliharaanVO>{
|
|
||||||
/*
|
|
||||||
private Boolean flag =false;
|
|
||||||
private Integer pending = 0;
|
|
||||||
private String time = new SimpleDateFormat("HH:mm").format(Calendar.getInstance().getTime());
|
|
||||||
private SimpleDateFormat format = new SimpleDateFormat("HH:mm");
|
|
||||||
|
|
||||||
public IpsrsAlertMaintenance() {
|
|
||||||
if(!Thread.currentThread().isInterrupted()){
|
|
||||||
try {
|
|
||||||
// new Thread(new RunningTask()).start();
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class RunningTask implements Runnable{
|
|
||||||
public void run() {
|
|
||||||
new Timer().schedule(new TimerTask(){
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
try{
|
|
||||||
Date timeNow = format.parse(time);
|
|
||||||
Date timeEnd = format.parse("18:00");
|
|
||||||
Date timeReset = format.parse("21:00");
|
|
||||||
|
|
||||||
if(pending==60*3){
|
|
||||||
if(timeNow.before(timeEnd)){
|
|
||||||
if(flag==false){
|
|
||||||
// getAlertlMaintenance();
|
|
||||||
// getDataPlanningByDate();
|
|
||||||
flag=true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
pending=0;
|
|
||||||
} else{
|
|
||||||
pending++;
|
|
||||||
if(timeNow.equals(timeReset)){
|
|
||||||
flag=false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}catch(Exception ex){
|
|
||||||
ex.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, 1000L, 1000L);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private IpsrsMaintenanceService ipsrsMaintenanceService;
|
|
||||||
|
|
||||||
public void getAlertlMaintenance(){
|
|
||||||
try{
|
|
||||||
if (ipsrsMaintenanceService != null){
|
|
||||||
Map<String, Object> jadwalMaintenance = ipsrsMaintenanceService.getAlertMaintenance();
|
|
||||||
if(CommonUtil.isNotNullOrEmpty(jadwalMaintenance)){
|
|
||||||
BroadcastMessageOther("jadwalMaintenance", jadwalMaintenance);
|
|
||||||
System.out.println(DateUtil.now()+" task scheduler :");
|
|
||||||
System.out.println(new Gson().toJson(jadwalMaintenance));
|
|
||||||
} else{
|
|
||||||
System.out.println(DateUtil.now()+" task scheduler : tidak ada jadwal maintenance");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}catch (Exception ex){
|
|
||||||
ex.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private PegawaiMutasiSanksiResignService pegawaiMutasiSanksiResignService;
|
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
public void getDataPlanningByDate(){
|
|
||||||
try{
|
|
||||||
if (pegawaiMutasiSanksiResignService != null) {
|
|
||||||
Map<String, Object> mapData = pegawaiMutasiSanksiResignService.getDataPlanningByDate(DateUtil.now());
|
|
||||||
if(CommonUtil.isNotNullOrEmpty(mapData)){
|
|
||||||
for(Map<String, Object> data : (List<Map<String, Object>>) mapData.get("listData")){
|
|
||||||
Map<String, Object> dataResult = pegawaiMutasiSanksiResignService.updateExecPegawai(data);
|
|
||||||
System.out.println(DateUtil.now()+" task scheduler : update pegawai "+new Gson().toJson(dataResult));
|
|
||||||
}
|
|
||||||
} else{
|
|
||||||
System.out.println(DateUtil.now()+" task scheduler : tidak ada update data pegawai musare");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}catch(Exception ex){
|
|
||||||
ex.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
@ -1,173 +0,0 @@
|
|||||||
package com.jasamedika.medifirst2000.asynctask;
|
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import com.jasamedika.medifirst2000.controller.base.LocaleController;
|
|
||||||
import com.jasamedika.medifirst2000.dao.PegawaiDao;
|
|
||||||
import com.jasamedika.medifirst2000.dao.RuanganDao;
|
|
||||||
import com.jasamedika.medifirst2000.notification.MessagePublisher;
|
|
||||||
import com.jasamedika.medifirst2000.service.NotifMessagingSchedulerService;
|
|
||||||
import com.jasamedika.medifirst2000.service.NotifMessagingService;
|
|
||||||
import com.jasamedika.medifirst2000.service.NotifikasiMessageObjekModulService;
|
|
||||||
import com.jasamedika.medifirst2000.vo.NotifMessagingSchedulerVO;
|
|
||||||
import com.jasamedika.medifirst2000.vo.NotifMessagingVO;
|
|
||||||
import com.jasamedika.medifirst2000.vo.NotifikasiMessageObjekModulVO;
|
|
||||||
|
|
||||||
@Component
|
|
||||||
public class NotificationSchedulerMaintenanceTask extends LocaleController<NotifMessagingSchedulerVO>{
|
|
||||||
/*
|
|
||||||
private final Logger LOG = LoggerFactory.getLogger(NotificationSchedulerMaintenanceTask.class);
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
NotifMessagingSchedulerService<NotifMessagingSchedulerVO> notifMessagingSchedulerService;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
NotifMessagingService<NotifMessagingVO> notifMessagingService;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
NotifikasiMessageObjekModulService<NotifikasiMessageObjekModulVO> notifikasiMessageObjekModulService;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
MessagePublisher<String, Object> messagePublisher;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
PegawaiDao pegawaiDao;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
RuanganDao ruanganDao;
|
|
||||||
*/
|
|
||||||
// @Scheduled(cron = "0 30 7 * * *")
|
|
||||||
// public void NotificationNormalMaintenanceEvery730AM(){
|
|
||||||
// try{
|
|
||||||
// MessagePublisher.RabbitHole rabbitHole = messagePublisher.getRabbitHole();
|
|
||||||
//
|
|
||||||
// List<NotifMessagingSchedulerVO> lNotif = notifMessagingSchedulerService.allNotifBelumTerkirim(new Date());
|
|
||||||
//
|
|
||||||
// if (CommonUtil.isNullOrEmpty(lNotif)){
|
|
||||||
// LOG.info(DateUtil.now()+" task scheduler : tidak ada jadwal maintenance");
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// Map<Integer, Integer> pegawaiRuangaAsal = new HashMap<>();
|
|
||||||
//
|
|
||||||
// Map<Integer, List<Integer>> ruanganAsalAll = new HashMap<>();
|
|
||||||
// Map<Integer, List<Integer>> notifMapAllRuanganTujuan = new HashMap<>();
|
|
||||||
// List<Integer> notifsId = new ArrayList<>();
|
|
||||||
// List<Integer> ruanganTujuansId = new ArrayList<>();
|
|
||||||
//
|
|
||||||
// Integer oldNotifId = 0;
|
|
||||||
// Integer oldRuanganIdTujuan = 0;
|
|
||||||
//
|
|
||||||
// for (NotifMessagingSchedulerVO notif:lNotif){
|
|
||||||
//
|
|
||||||
// if (notif.getRuanganIdTujuan().intValue() != oldRuanganIdTujuan.intValue()){
|
|
||||||
// ruanganTujuansId = new ArrayList<>();
|
|
||||||
// oldRuanganIdTujuan = notif.getRuanganIdTujuan();
|
|
||||||
// }
|
|
||||||
// ruanganTujuansId.add(notif.getRuanganIdTujuan());
|
|
||||||
// notifMapAllRuanganTujuan.put(notif.getNotifMessagingId(), ruanganTujuansId);
|
|
||||||
//
|
|
||||||
// if (notif.getNotifMessagingId().intValue() != oldNotifId.intValue()){
|
|
||||||
// notifsId = new ArrayList<>();
|
|
||||||
// oldNotifId = notif.getNotifMessagingId();
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// notifsId.add(notif.getNotifMessagingId());
|
|
||||||
// ruanganAsalAll.put(notif.getRuanganIdAsal(), notifsId);
|
|
||||||
//
|
|
||||||
// pegawaiRuangaAsal.put(notif.getRuanganIdAsal(), notif.getPegawaiId());
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// Set<Integer> ruanganAsalIds = ruanganAsalAll.keySet();
|
|
||||||
//
|
|
||||||
// for(Integer ruanganAsalId:ruanganAsalIds){
|
|
||||||
//
|
|
||||||
// Integer pegawaiId = pegawaiRuangaAsal.get(ruanganAsalId);
|
|
||||||
// Pegawai pegawai = pegawaiDao.findById(pegawaiId);
|
|
||||||
// Ruangan ruanganAsal = ruanganDao.findById(ruanganAsalId);
|
|
||||||
//
|
|
||||||
// notifsId = ruanganAsalAll.get(ruanganAsalId);
|
|
||||||
//
|
|
||||||
// for (Integer notifMessagingId:notifsId ){
|
|
||||||
//
|
|
||||||
// ruanganTujuansId = notifMapAllRuanganTujuan.get(notifMessagingId);
|
|
||||||
//
|
|
||||||
// try{
|
|
||||||
// rabbitHole.sendNotif(rabbitHole, ruanganAsal, pegawai, notifikasiMessageObjekModulService, notifMessagingId, ruanganTujuansId);
|
|
||||||
// }catch(Exception e){
|
|
||||||
// LOG.info(DateUtil.now()+" task scheduler dari Ruangan {} dengan ruanganId {} pada notifMessageId {} ada masalah {}",
|
|
||||||
// ruanganAsal.getNamaRuangan(), ruanganAsalId, notifMessagingId, e.getMessage());
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }catch(Exception e){
|
|
||||||
// LOG.info(DateUtil.now() + "Task scheduler gagal penyebab, {} ", e.getMessage());
|
|
||||||
// //e.printStackTrace();
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//private void sendNotif(Gson gson, String urlSocket, MessagePublisher.RabbitHole rabbitHole, Integer pegawaiId, Integer ruanganId, Integer notifMessagingId, List<Integer> ruanganTujuansId) throws Exception{
|
|
||||||
//
|
|
||||||
//List<NotifikasiMessageObjekModulVO> notifikasiMessageObjekModulVOs = notifikasiMessageObjekModulService.findByNotifMessagingIdAndRuanganId(notifMessagingId, ruanganTujuansId);
|
|
||||||
//
|
|
||||||
//if (CommonUtil.isNullOrEmpty(notifikasiMessageObjekModulVOs)) {
|
|
||||||
// return;
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//Integer ruanganIdtemp = 0;
|
|
||||||
//boolean connect = false;
|
|
||||||
//
|
|
||||||
//PegawaiVO pegawai = pegawaiService.findById(pegawaiId);
|
|
||||||
//
|
|
||||||
//for (NotifikasiMessageObjekModulVO vo : notifikasiMessageObjekModulVOs){
|
|
||||||
// Ruangan ruangan = vo.getRuangan();
|
|
||||||
// ModulAplikasi modulAplikasi = vo.getModulAplikasi();
|
|
||||||
// ObjekModulAplikasi objekModulAplikasi = vo.getObjekModulAplikasi();
|
|
||||||
// String customURLObjekModul = vo.getCustomURLObjekModul();
|
|
||||||
// String titleNotifikasi = vo.getTitleNotifikasi();
|
|
||||||
// String pesanNotifikasi = vo.getPesanNotifikasi();
|
|
||||||
// String namaFungsiFrontEnd = vo.getNamaFungsiFrontEnd();
|
|
||||||
//
|
|
||||||
// if (ruangan.getId() == ruanganId){
|
|
||||||
// continue;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// RuanganVO dariRuangan = ruanganService.findById(ruanganId);
|
|
||||||
//
|
|
||||||
// if (ruanganIdtemp != ruangan.getId()){
|
|
||||||
// if (connect){
|
|
||||||
// rabbitHole.close();
|
|
||||||
// }
|
|
||||||
// rabbitHole.connect(urlSocket, String.valueOf(ruangan.getId()));
|
|
||||||
// connect = true;
|
|
||||||
// ruanganIdtemp = ruangan.getId();
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// Map<String, Object> map = new HashMap<>();
|
|
||||||
// map.put("title", titleNotifikasi);
|
|
||||||
// map.put("dariRuangan", dariRuangan);
|
|
||||||
// map.put("ruanganId", ruangan.getId());
|
|
||||||
// map.put("ruangan", ruangan);
|
|
||||||
// map.put("modulAplikasi", modulAplikasi);
|
|
||||||
// map.put("objekModulAplikasi", objekModulAplikasi);
|
|
||||||
// map.put("titleNotifikasi", titleNotifikasi);
|
|
||||||
// map.put("pesanNotifikasi", pesanNotifikasi);
|
|
||||||
// map.put("namaFungsiFrontEnd", namaFungsiFrontEnd);
|
|
||||||
// map.put("fromPegawai", pegawai);
|
|
||||||
// map.put("urlForm",CommonUtil.isNullOrEmpty(customURLObjekModul)? objekModulAplikasi.getAlamatUrlForm() : customURLObjekModul);
|
|
||||||
//
|
|
||||||
// rabbitHole.sendRabbitMQNotification(gson.toJson(map));
|
|
||||||
//
|
|
||||||
// //messagePublisher.BroadcastMessage(map);
|
|
||||||
//}
|
|
||||||
//if (connect){
|
|
||||||
// rabbitHole.close();
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//}
|
|
||||||
@ -1,69 +0,0 @@
|
|||||||
package com.jasamedika.medifirst2000.asynctask;
|
|
||||||
|
|
||||||
import java.util.Calendar;
|
|
||||||
|
|
||||||
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.KontrakVerificationTimer;
|
|
||||||
import com.jasamedika.medifirst2000.controller.base.LocaleController;
|
|
||||||
import com.jasamedika.medifirst2000.dao.SettingDataFixedDao;
|
|
||||||
import com.jasamedika.medifirst2000.service.LogbookKinerjaService;
|
|
||||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
|
||||||
import com.jasamedika.medifirst2000.vo.LogbookKinerjaVO;
|
|
||||||
|
|
||||||
@Component
|
|
||||||
public class AutoKontrakVerification extends LocaleController<LogbookKinerjaVO> {
|
|
||||||
private final static Logger LOGGER = LoggerFactory.getLogger(AutoKontrakVerification.class);
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private LogbookKinerjaService logbookKinerjaService;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private SettingDataFixedDao settingDataFixedDao;
|
|
||||||
|
|
||||||
public AutoKontrakVerification() {
|
|
||||||
// int day = 21;
|
|
||||||
// int hour = 0;
|
|
||||||
// int minute = 00;
|
|
||||||
// KontrakVerificationTimer.schedule(new Runnable() {
|
|
||||||
// @Override
|
|
||||||
// public void run() {
|
|
||||||
// try {
|
|
||||||
// LOGGER.info("Task Kontrak Verification : Running Task Kontrak Verification");
|
|
||||||
// autoKontrakVerification();
|
|
||||||
// } catch (Exception ex) {
|
|
||||||
// LOGGER.error("Task Kontrak Verification : Task Kontrak Verification " + ex.getMessage());
|
|
||||||
// } finally {
|
|
||||||
// LOGGER.info("Task Kontrak Verification : Finishing Task Kontrak Verification");
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }, day, hour, minute);
|
|
||||||
}
|
|
||||||
|
|
||||||
// @Async
|
|
||||||
public void autoKontrakVerification() {
|
|
||||||
try {
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(logbookKinerjaService)) {
|
|
||||||
LOGGER.info("Task Kontrak Verification : Running Automatic Kontrak Verification");
|
|
||||||
|
|
||||||
Calendar cal = Calendar.getInstance();
|
|
||||||
cal.add(Calendar.MONTH, +1);
|
|
||||||
if (Boolean.parseBoolean(
|
|
||||||
settingDataFixedDao.getSettingDataFixed("otomatisVerifikasiKontrakKinerjaDokter"))) {
|
|
||||||
logbookKinerjaService.autoVerifKontrakJamKerjaDokter(cal.getTime());
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
LOGGER.warn("Task Kontrak Verification : Undefined service");
|
|
||||||
}
|
|
||||||
} catch (Exception ex) {
|
|
||||||
LOGGER.error("Task Kontrak Verification : Automatic Kontrak Verification " + ex.getMessage());
|
|
||||||
} finally {
|
|
||||||
LOGGER.info("Task Kontrak Verification : Finishing Automatic Kontrak Verification");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,62 +0,0 @@
|
|||||||
package com.jasamedika.medifirst2000.asynctask;
|
|
||||||
|
|
||||||
import java.util.Calendar;
|
|
||||||
|
|
||||||
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.LogbookVerificationTimer;
|
|
||||||
import com.jasamedika.medifirst2000.controller.base.LocaleController;
|
|
||||||
import com.jasamedika.medifirst2000.service.LogbookKinerjaService;
|
|
||||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
|
||||||
import com.jasamedika.medifirst2000.vo.LogbookKinerjaVO;
|
|
||||||
|
|
||||||
@Component
|
|
||||||
public class AutoLogbookVerification extends LocaleController<LogbookKinerjaVO> {
|
|
||||||
private final static Logger LOGGER = LoggerFactory.getLogger(AutoLogbookVerification.class);
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private LogbookKinerjaService logbookKinerjaService;
|
|
||||||
|
|
||||||
public AutoLogbookVerification() {
|
|
||||||
// int day = 5;
|
|
||||||
// int hour = 0;
|
|
||||||
// int minute = 00;
|
|
||||||
// LogbookVerificationTimer.schedule(new Runnable() {
|
|
||||||
// @Override
|
|
||||||
// public void run() {
|
|
||||||
// try {
|
|
||||||
// LOGGER.info("Task Logbook Verification : Running Task Logbook Verification");
|
|
||||||
// autoLogbookVerification();
|
|
||||||
// } catch (Exception ex) {
|
|
||||||
// LOGGER.error("Task Logbook Verification : Task Logbook Verification " + ex.getMessage());
|
|
||||||
// } finally {
|
|
||||||
// LOGGER.info("Task Logbook Verification : Finishing Task Logbook Verification");
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }, day, hour, minute);
|
|
||||||
}
|
|
||||||
|
|
||||||
// @Async
|
|
||||||
public void autoLogbookVerification() {
|
|
||||||
try {
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(logbookKinerjaService)) {
|
|
||||||
LOGGER.info("Task Logbook Verification : Running Automatic Logbook Verification");
|
|
||||||
|
|
||||||
Calendar cal = Calendar.getInstance();
|
|
||||||
cal.add(Calendar.MONTH, -1);
|
|
||||||
logbookKinerjaService.autoVerifLogbookJamKerjaDokter(cal.getTime());
|
|
||||||
} else {
|
|
||||||
LOGGER.warn("Task Logbook Verification : Undefined service");
|
|
||||||
}
|
|
||||||
} catch (Exception ex) {
|
|
||||||
LOGGER.error("Task Logbook Verification : Automatic Logbook Verification " + ex.getMessage());
|
|
||||||
} finally {
|
|
||||||
LOGGER.info("Task Logbook Verification : Finishing Automatic Logbook Verification");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,50 +0,0 @@
|
|||||||
package com.jasamedika.medifirst2000.asynctask;
|
|
||||||
|
|
||||||
import com.jasamedika.medifirst2000.controller.base.LocaleController;
|
|
||||||
import com.jasamedika.medifirst2000.service.KalenderService;
|
|
||||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
|
||||||
import com.jasamedika.medifirst2000.vo.KalenderVO;
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
@Component
|
|
||||||
public class CalendarSystemGenerating extends LocaleController<KalenderVO> {
|
|
||||||
private final static Logger LOGGER = LoggerFactory.getLogger(CalendarSystemGenerating.class);
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private KalenderService kalenderService;
|
|
||||||
|
|
||||||
public CalendarSystemGenerating() {
|
|
||||||
// int the1st = 1;
|
|
||||||
// int at0hrs = 0;
|
|
||||||
// KalenderTimer.schedule(() -> {
|
|
||||||
// try {
|
|
||||||
// LOGGER.info("Task Sistem Kalender : Running Task Sistem Kalender");
|
|
||||||
// genSistemKalender();
|
|
||||||
// } catch (Exception ex) {
|
|
||||||
// LOGGER.error("Task Sistem Kalender : Task Sistem Kalender " + ex.getMessage());
|
|
||||||
// } finally {
|
|
||||||
// LOGGER.info("Task Sistem Kalender : Finishing Task Sistem Kalender");
|
|
||||||
// }
|
|
||||||
// }, the1st, at0hrs);
|
|
||||||
}
|
|
||||||
|
|
||||||
// @Async
|
|
||||||
public void genSistemKalender() {
|
|
||||||
try {
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(kalenderService)) {
|
|
||||||
LOGGER.info("Task Sistem Kalender : Running Check/Generate Sistem Kalender");
|
|
||||||
kalenderService.generateAndSaveKalender();
|
|
||||||
} else {
|
|
||||||
LOGGER.warn("Task Sistem Kalender : Undefined service");
|
|
||||||
}
|
|
||||||
} catch (Exception ex) {
|
|
||||||
LOGGER.error("Task Sistem Kalender : Check/Generate Sistem Kalender " + ex.getMessage());
|
|
||||||
} finally {
|
|
||||||
LOGGER.info("Task Sistem Kalender : Finishing Check/Generate Sistem Kalender");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,51 +0,0 @@
|
|||||||
package com.jasamedika.medifirst2000.asynctask;
|
|
||||||
|
|
||||||
import com.jasamedika.medifirst2000.service.SlipGajiService;
|
|
||||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Salman
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
@Component
|
|
||||||
public class InitiateSlipGaji {
|
|
||||||
private final static Logger LOGGER = LoggerFactory.getLogger(InitiateSlipGaji.class);
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private SlipGajiService slipGajiService;
|
|
||||||
|
|
||||||
public InitiateSlipGaji() {
|
|
||||||
// int the1st = 1;
|
|
||||||
// int at0hrs = 0;
|
|
||||||
// InitiateSlipGajiTimer.schedule(() -> {
|
|
||||||
// try {
|
|
||||||
// LOGGER.info("Slip Gaji : Call initiate data");
|
|
||||||
// initiateData();
|
|
||||||
// } catch (Exception ex) {
|
|
||||||
// LOGGER.error("Slip Gaji : Error when initiate data " + ex.getMessage());
|
|
||||||
// } finally {
|
|
||||||
// LOGGER.info("Slip Gaji : Finishing call initiate data");
|
|
||||||
// }
|
|
||||||
// }, the1st, at0hrs);
|
|
||||||
}
|
|
||||||
|
|
||||||
// @Async
|
|
||||||
public void initiateData() {
|
|
||||||
try {
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(slipGajiService)) {
|
|
||||||
LOGGER.info("Slip Gaji : Initiating");
|
|
||||||
slipGajiService.init();
|
|
||||||
} else {
|
|
||||||
LOGGER.warn("Slip Gaji : Undefined service");
|
|
||||||
}
|
|
||||||
} catch (Exception ex) {
|
|
||||||
LOGGER.error("Slip Gaji : Error when initiating " + ex.getMessage());
|
|
||||||
} finally {
|
|
||||||
LOGGER.info("Slip Gaji : Finish initiating");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,50 +0,0 @@
|
|||||||
package com.jasamedika.medifirst2000.asynctask;
|
|
||||||
|
|
||||||
import com.jasamedika.medifirst2000.controller.base.LocaleController;
|
|
||||||
import com.jasamedika.medifirst2000.service.PegawaiJadwalKerjaService;
|
|
||||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
|
||||||
import com.jasamedika.medifirst2000.vo.PegawaiJadwalKerjaVO;
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
@Component
|
|
||||||
public class PegawaiJadwalKerjaGenerating extends LocaleController<PegawaiJadwalKerjaVO> {
|
|
||||||
private final static Logger LOGGER = LoggerFactory.getLogger(PegawaiJadwalKerjaGenerating.class);
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private PegawaiJadwalKerjaService pegawaiJadwalKerjaService;
|
|
||||||
|
|
||||||
public PegawaiJadwalKerjaGenerating() {
|
|
||||||
// int the1st = 1;
|
|
||||||
// int at0hrs = 0;
|
|
||||||
// JadwalKerjaTimer.schedule(() -> {
|
|
||||||
// try {
|
|
||||||
// LOGGER.info("Task Jadwal Kerja : Running Task Jadwal Kerja");
|
|
||||||
// genJadwalKerja();
|
|
||||||
// } catch (Exception ex) {
|
|
||||||
// LOGGER.error("Task Jadwal Kerja : Task Jadwal Kerja " + ex.getMessage());
|
|
||||||
// } finally {
|
|
||||||
// LOGGER.info("Task Jadwal Kerja : Finishing Task Jadwal Kerja");
|
|
||||||
// }
|
|
||||||
// }, the1st, at0hrs);
|
|
||||||
}
|
|
||||||
|
|
||||||
// @Async
|
|
||||||
public void genJadwalKerja() {
|
|
||||||
try {
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(pegawaiJadwalKerjaService)) {
|
|
||||||
LOGGER.info("Task Jadwal Kerja : Running Generate Jadwal Kerja");
|
|
||||||
pegawaiJadwalKerjaService.scheduledSaveJadwalKerjaNonShift();
|
|
||||||
} else {
|
|
||||||
LOGGER.warn("Task Jadwal Kerja : Undefined service");
|
|
||||||
}
|
|
||||||
} catch (Exception ex) {
|
|
||||||
LOGGER.error("Task Jadwal Kerja : Generate Jadwal Kerja " + ex.getMessage());
|
|
||||||
} finally {
|
|
||||||
LOGGER.info("Task Jadwal Kerja : Finishing Generate Jadwal Kerja");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,84 +0,0 @@
|
|||||||
package com.jasamedika.medifirst2000.asynctask;
|
|
||||||
|
|
||||||
import java.text.SimpleDateFormat;
|
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
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.TargetLayananTimer;
|
|
||||||
import com.jasamedika.medifirst2000.controller.base.LocaleController;
|
|
||||||
import com.jasamedika.medifirst2000.service.IkiDanRemunerasiService;
|
|
||||||
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;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Disabled following update business rules
|
|
||||||
* @since 2022/08/28
|
|
||||||
*/
|
|
||||||
public TargetLayananGenerating() {
|
|
||||||
// int day = 4;
|
|
||||||
// int hour = 0;
|
|
||||||
// int minute = 00;
|
|
||||||
// TargetLayananTimer.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");
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }, day, hour, minute);
|
|
||||||
}
|
|
||||||
|
|
||||||
// @Async
|
|
||||||
public void genTargetLayanan() {
|
|
||||||
// Jam Kerja
|
|
||||||
try {
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(remunerasiService)) {
|
|
||||||
LOGGER.info("Task Target Layanan Jam Kerja : Running Generate Target Layanan Jam Kerja");
|
|
||||||
remunerasiService
|
|
||||||
.autoSaveTargetCapaianLayananJamKerja(new SimpleDateFormat("yyyy-MM").format(new Date()));
|
|
||||||
} else {
|
|
||||||
LOGGER.warn("Task Target Layanan Jam Kerja : Undefined service");
|
|
||||||
}
|
|
||||||
} catch (Exception ex) {
|
|
||||||
LOGGER.error("Task Target Layanan Jam Kerja : Generate Target Layanan Jam Kerja : " + ex.getMessage());
|
|
||||||
ex.printStackTrace();
|
|
||||||
} finally {
|
|
||||||
LOGGER.info("Task Target Layanan Jam Kerja : Finishing Generate Target Layanan Jam Kerja");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Luar Jam Kerja
|
|
||||||
try {
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(remunerasiService)) {
|
|
||||||
LOGGER.info("Task Target Layanan Luar Jam Kerja : Running Generate Target Layanan Luar Jam Kerja");
|
|
||||||
remunerasiService
|
|
||||||
.autoSaveTargetCapaianLayananLuarJamKerja(new SimpleDateFormat("yyyy-MM").format(new Date()));
|
|
||||||
} else {
|
|
||||||
LOGGER.warn("Task Target Layanan Luar Jam Kerja : Undefined service");
|
|
||||||
}
|
|
||||||
} catch (Exception ex) {
|
|
||||||
LOGGER.error(
|
|
||||||
"Task Target Layanan Luar Jam Kerja : Generate Target Layanan Luar Jam Kerja : " + ex.getMessage());
|
|
||||||
ex.printStackTrace();
|
|
||||||
} finally {
|
|
||||||
LOGGER.info("Task Target Layanan Luar Jam Kerja : Finishing Generate Target Layanan Luar Jam Kerja");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,62 +0,0 @@
|
|||||||
package com.jasamedika.medifirst2000.asynctask;
|
|
||||||
|
|
||||||
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.TargetSkorDokterTimer;
|
|
||||||
//import com.jasamedika.medifirst2000.asynctask.timer.TargetSkorDokterTimer;
|
|
||||||
import com.jasamedika.medifirst2000.controller.base.LocaleController;
|
|
||||||
import com.jasamedika.medifirst2000.service.IkiDanRemunerasiService;
|
|
||||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
|
||||||
import com.jasamedika.medifirst2000.vo.TargetSkorDokterVO;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author salmanoe
|
|
||||||
* @since Dec 29, 2021
|
|
||||||
*/
|
|
||||||
@Component
|
|
||||||
public class TargetSkorDokterGenerating extends LocaleController<TargetSkorDokterVO> {
|
|
||||||
|
|
||||||
private final static Logger LOGGER = LoggerFactory.getLogger(TargetSkorDokterGenerating.class);
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private IkiDanRemunerasiService remunerasiService;
|
|
||||||
|
|
||||||
public TargetSkorDokterGenerating() {
|
|
||||||
// int the1st = 1;
|
|
||||||
// int at0hrs = 0;
|
|
||||||
// TargetSkorDokterTimer.schedule(new Runnable() {
|
|
||||||
// @Override
|
|
||||||
// public void run() {
|
|
||||||
// try {
|
|
||||||
// LOGGER.info("Task Target Skor Dokter : Running Task Target Skor Dokter");
|
|
||||||
// generateTargetSkorDokter();
|
|
||||||
// } catch (Exception ex) {
|
|
||||||
// LOGGER.error("Task Target Skor Dokter : Task Target Skor Dokter " + ex.getMessage());
|
|
||||||
// } finally {
|
|
||||||
// LOGGER.info("Task Target Skor Dokter : Finishing Target Skor Dokter");
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }, the1st, at0hrs);
|
|
||||||
}
|
|
||||||
|
|
||||||
// @Async
|
|
||||||
public void generateTargetSkorDokter() {
|
|
||||||
try {
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(remunerasiService)) {
|
|
||||||
LOGGER.info("Task Target Skor Dokter : Running Check/Generate Target Skor Dokter");
|
|
||||||
remunerasiService.autoSaveTargetCapaianLayananJamKerja();
|
|
||||||
} else {
|
|
||||||
LOGGER.warn("Task Target Skor Dokter : Undefined service");
|
|
||||||
}
|
|
||||||
} catch (Exception ex) {
|
|
||||||
LOGGER.error("Task Target Skor Dokter : Check/Generate Target Skor Dokter " + ex.getMessage());
|
|
||||||
} finally {
|
|
||||||
LOGGER.info("Task Target Skor Dokter : Finishing Check/Generate Target Skor Dokter");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,81 +0,0 @@
|
|||||||
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;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Salman
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public class InitiateSlipGajiTimer {
|
|
||||||
private final static Logger LOGGER = LoggerFactory.getLogger(InitiateSlipGajiTimer.class);
|
|
||||||
|
|
||||||
// What to do
|
|
||||||
private final Runnable whatToDo;
|
|
||||||
|
|
||||||
// when
|
|
||||||
private final int dayOfMonth;
|
|
||||||
private final int hourOfDay;
|
|
||||||
|
|
||||||
// The current timer
|
|
||||||
private Timer current = new Timer();
|
|
||||||
|
|
||||||
public void cancelCurrent() {
|
|
||||||
LOGGER.info("SlipGajiTimer : Cancel current execution");
|
|
||||||
current.cancel();
|
|
||||||
|
|
||||||
LOGGER.info("SlipGajiTimer : Removes the timertask so it can be garbage collected");
|
|
||||||
current.purge();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static InitiateSlipGajiTimer schedule(Runnable runnable, int dayOfMonth, int hourOfDay) {
|
|
||||||
LOGGER.info("SlipGajiTimer : Create a new instance");
|
|
||||||
return new InitiateSlipGajiTimer(runnable, dayOfMonth, hourOfDay);
|
|
||||||
}
|
|
||||||
|
|
||||||
private InitiateSlipGajiTimer(Runnable runnable, int day, int hour) {
|
|
||||||
this.whatToDo = runnable;
|
|
||||||
this.dayOfMonth = day;
|
|
||||||
this.hourOfDay = hour;
|
|
||||||
|
|
||||||
schedule();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void schedule() {
|
|
||||||
cancelCurrent();
|
|
||||||
|
|
||||||
LOGGER.info(
|
|
||||||
"SlipGajiTimer : 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("SlipGajiTimer : Running schedule");
|
|
||||||
whatToDo.run();
|
|
||||||
} finally {
|
|
||||||
LOGGER.info("SlipGajiTimer : Schedule for the next month");
|
|
||||||
schedule();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, nextDate());
|
|
||||||
}
|
|
||||||
|
|
||||||
private Date nextDate() {
|
|
||||||
Calendar runDate = Calendar.getInstance();
|
|
||||||
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);
|
|
||||||
runDate.add(Calendar.MONTH, 1);
|
|
||||||
|
|
||||||
LOGGER.info("SlipGajiTimer : Set to next month " + runDate.getTime());
|
|
||||||
|
|
||||||
return runDate.getTime();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,77 +0,0 @@
|
|||||||
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 JadwalKerjaTimer {
|
|
||||||
private final static Logger LOGGER = LoggerFactory.getLogger(JadwalKerjaTimer.class);
|
|
||||||
|
|
||||||
// What to do
|
|
||||||
private final Runnable whatToDo;
|
|
||||||
|
|
||||||
// when
|
|
||||||
private final int dayOfMonth;
|
|
||||||
private final int hourOfDay;
|
|
||||||
|
|
||||||
// The current timer
|
|
||||||
private Timer current = new Timer();
|
|
||||||
|
|
||||||
public void cancelCurrent() {
|
|
||||||
LOGGER.info("JadwalKerjaTimer : Cancel current execution");
|
|
||||||
current.cancel();
|
|
||||||
|
|
||||||
LOGGER.info("JadwalKerjaTimer : Removes the timertask so it can be garbage collected");
|
|
||||||
current.purge();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static JadwalKerjaTimer schedule(Runnable runnable, int dayOfMonth, int hourOfDay) {
|
|
||||||
LOGGER.info("JadwalKerjaTimer : Create a new instance");
|
|
||||||
return new JadwalKerjaTimer(runnable, dayOfMonth, hourOfDay);
|
|
||||||
}
|
|
||||||
|
|
||||||
private JadwalKerjaTimer(Runnable runnable, int day, int hour) {
|
|
||||||
this.whatToDo = runnable;
|
|
||||||
this.dayOfMonth = day;
|
|
||||||
this.hourOfDay = hour;
|
|
||||||
|
|
||||||
schedule();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void schedule() {
|
|
||||||
cancelCurrent();
|
|
||||||
|
|
||||||
LOGGER.info(
|
|
||||||
"JadwalKerjaTimer : 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("JadwalKerjaTimer : Running schedule");
|
|
||||||
whatToDo.run();
|
|
||||||
} finally {
|
|
||||||
LOGGER.info("JadwalKerjaTimer : Schedule for the next month");
|
|
||||||
schedule();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, nextDate());
|
|
||||||
}
|
|
||||||
|
|
||||||
private Date nextDate() {
|
|
||||||
Calendar runDate = Calendar.getInstance();
|
|
||||||
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);
|
|
||||||
runDate.add(Calendar.MONTH, 1);
|
|
||||||
|
|
||||||
LOGGER.info("JadwalKerjaTimer : Set to next month " + runDate.getTime());
|
|
||||||
|
|
||||||
return runDate.getTime();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,78 +0,0 @@
|
|||||||
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 KalenderTimer {
|
|
||||||
private final static Logger LOGGER = LoggerFactory.getLogger(KalenderTimer.class);
|
|
||||||
|
|
||||||
// What to do
|
|
||||||
private final Runnable whatToDo;
|
|
||||||
|
|
||||||
// when
|
|
||||||
private final int dayOfMonth;
|
|
||||||
private final int hourOfDay;
|
|
||||||
|
|
||||||
// The current timer
|
|
||||||
private Timer current = new Timer();
|
|
||||||
|
|
||||||
public void cancelCurrent() {
|
|
||||||
LOGGER.info("KalenderTimer : Cancel current execution");
|
|
||||||
current.cancel();
|
|
||||||
|
|
||||||
LOGGER.info("KalenderTimer : Removes the timertask so it can be garbage collected");
|
|
||||||
current.purge();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static KalenderTimer schedule(Runnable runnable, int dayOfMonth, int hourOfDay) {
|
|
||||||
LOGGER.info("KalenderTimer : Create a new instance");
|
|
||||||
return new KalenderTimer(runnable, dayOfMonth, hourOfDay);
|
|
||||||
}
|
|
||||||
|
|
||||||
private KalenderTimer(Runnable runnable, int day, int hour) {
|
|
||||||
this.whatToDo = runnable;
|
|
||||||
this.dayOfMonth = day;
|
|
||||||
this.hourOfDay = hour;
|
|
||||||
|
|
||||||
schedule();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void schedule() {
|
|
||||||
cancelCurrent();
|
|
||||||
|
|
||||||
LOGGER.info(
|
|
||||||
"KalenderTimer : 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("KalenderTimer : Running schedule");
|
|
||||||
whatToDo.run();
|
|
||||||
} finally {
|
|
||||||
LOGGER.info("KalenderTimer : Schedule for the next year");
|
|
||||||
schedule();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, nextDate());
|
|
||||||
}
|
|
||||||
|
|
||||||
private Date nextDate() {
|
|
||||||
Calendar runDate = Calendar.getInstance();
|
|
||||||
runDate.set(Calendar.MONTH, 5);
|
|
||||||
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);
|
|
||||||
runDate.add(Calendar.YEAR, 1);
|
|
||||||
|
|
||||||
LOGGER.info("KalenderTimer : Set to next year " + runDate.getTime());
|
|
||||||
|
|
||||||
return runDate.getTime();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,90 +0,0 @@
|
|||||||
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 KontrakVerificationTimer {
|
|
||||||
private final static Logger LOGGER = LoggerFactory.getLogger(KontrakVerificationTimer.class);
|
|
||||||
|
|
||||||
// What to do
|
|
||||||
private final Runnable whatToDo;
|
|
||||||
|
|
||||||
// when
|
|
||||||
private final int dayOfMonth;
|
|
||||||
private final int hourOfDay;
|
|
||||||
private final int minuteOfHour;
|
|
||||||
|
|
||||||
// The current timer
|
|
||||||
private Timer current = new Timer();
|
|
||||||
|
|
||||||
public void cancelCurrent() {
|
|
||||||
LOGGER.info("KontrakVerificationTimer : Cancel current execution");
|
|
||||||
current.cancel();
|
|
||||||
|
|
||||||
LOGGER.info("KontrakVerificationTimer : Removes the timertask so it can be garbage collected");
|
|
||||||
current.purge();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static KontrakVerificationTimer schedule(Runnable runnable, int dayOfMonth, int hourOfDay, int minuteOfHour) {
|
|
||||||
LOGGER.info("KontrakVerificationTimer : Create a new instance");
|
|
||||||
return new KontrakVerificationTimer(runnable, dayOfMonth, hourOfDay, minuteOfHour);
|
|
||||||
}
|
|
||||||
|
|
||||||
private KontrakVerificationTimer(Runnable runnable, int day, int hour, int minute) {
|
|
||||||
this.whatToDo = runnable;
|
|
||||||
this.dayOfMonth = day;
|
|
||||||
this.hourOfDay = hour;
|
|
||||||
this.minuteOfHour = minute;
|
|
||||||
|
|
||||||
schedule();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void schedule() {
|
|
||||||
cancelCurrent();
|
|
||||||
|
|
||||||
LOGGER.info(
|
|
||||||
"KontrakVerificationTimer : 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("KontrakVerificationTimer : Running schedule");
|
|
||||||
whatToDo.run();
|
|
||||||
} finally {
|
|
||||||
LOGGER.info("KontrakVerificationTimer : Schedule for the next month");
|
|
||||||
schedule();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, nextDate());
|
|
||||||
}
|
|
||||||
|
|
||||||
private Date nextDate() {
|
|
||||||
Calendar curDate = Calendar.getInstance();
|
|
||||||
Calendar runDate = Calendar.getInstance();
|
|
||||||
|
|
||||||
// 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, minuteOfHour);
|
|
||||||
runDate.set(Calendar.SECOND, 0);
|
|
||||||
runDate.set(Calendar.MILLISECOND, 0);
|
|
||||||
runDate.add(Calendar.MONTH, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
LOGGER.info("KontrakVerificationTimer : Set to next month " + runDate.getTime());
|
|
||||||
|
|
||||||
return runDate.getTime();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,90 +0,0 @@
|
|||||||
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 LogbookVerificationTimer {
|
|
||||||
private final static Logger LOGGER = LoggerFactory.getLogger(LogbookVerificationTimer.class);
|
|
||||||
|
|
||||||
// What to do
|
|
||||||
private final Runnable whatToDo;
|
|
||||||
|
|
||||||
// when
|
|
||||||
private final int dayOfMonth;
|
|
||||||
private final int hourOfDay;
|
|
||||||
private final int minuteOfHour;
|
|
||||||
|
|
||||||
// The current timer
|
|
||||||
private Timer current = new Timer();
|
|
||||||
|
|
||||||
public void cancelCurrent() {
|
|
||||||
LOGGER.info("LogbookVerificationTimer : Cancel current execution");
|
|
||||||
current.cancel();
|
|
||||||
|
|
||||||
LOGGER.info("LogbookVerificationTimer : Removes the timertask so it can be garbage collected");
|
|
||||||
current.purge();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static LogbookVerificationTimer schedule(Runnable runnable, int dayOfMonth, int hourOfDay, int minuteOfHour) {
|
|
||||||
LOGGER.info("LogbookVerificationTimer : Create a new instance");
|
|
||||||
return new LogbookVerificationTimer(runnable, dayOfMonth, hourOfDay, minuteOfHour);
|
|
||||||
}
|
|
||||||
|
|
||||||
private LogbookVerificationTimer(Runnable runnable, int day, int hour, int minute) {
|
|
||||||
this.whatToDo = runnable;
|
|
||||||
this.dayOfMonth = day;
|
|
||||||
this.hourOfDay = hour;
|
|
||||||
this.minuteOfHour = minute;
|
|
||||||
|
|
||||||
schedule();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void schedule() {
|
|
||||||
cancelCurrent();
|
|
||||||
|
|
||||||
LOGGER.info(
|
|
||||||
"LogbookVerificationTimer : 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("LogbookVerificationTimer : Running schedule");
|
|
||||||
whatToDo.run();
|
|
||||||
} finally {
|
|
||||||
LOGGER.info("LogbookVerificationTimer : Schedule for the next month");
|
|
||||||
schedule();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, nextDate());
|
|
||||||
}
|
|
||||||
|
|
||||||
private Date nextDate() {
|
|
||||||
Calendar curDate = Calendar.getInstance();
|
|
||||||
Calendar runDate = Calendar.getInstance();
|
|
||||||
|
|
||||||
// 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, minuteOfHour);
|
|
||||||
runDate.set(Calendar.SECOND, 0);
|
|
||||||
runDate.set(Calendar.MILLISECOND, 0);
|
|
||||||
runDate.add(Calendar.MONTH, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
LOGGER.info("LogbookVerificationTimer : Set to next month " + runDate.getTime());
|
|
||||||
|
|
||||||
return runDate.getTime();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,90 +0,0 @@
|
|||||||
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 TargetLayananTimer {
|
|
||||||
private final static Logger LOGGER = LoggerFactory.getLogger(TargetLayananTimer.class);
|
|
||||||
|
|
||||||
// What to do
|
|
||||||
private final Runnable whatToDo;
|
|
||||||
|
|
||||||
// when
|
|
||||||
private final int dayOfMonth;
|
|
||||||
private final int hourOfDay;
|
|
||||||
private final int minuteOfHour;
|
|
||||||
|
|
||||||
// The current timer
|
|
||||||
private Timer current = new Timer();
|
|
||||||
|
|
||||||
public void cancelCurrent() {
|
|
||||||
LOGGER.info("TargetLayananTimer : Cancel current execution");
|
|
||||||
current.cancel();
|
|
||||||
|
|
||||||
LOGGER.info("TargetLayananTimer : Removes the timertask so it can be garbage collected");
|
|
||||||
current.purge();
|
|
||||||
}
|
|
||||||
|
|
||||||
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, minuteOfHour);
|
|
||||||
}
|
|
||||||
|
|
||||||
private TargetLayananTimer(Runnable runnable, int day, int hour, int minute) {
|
|
||||||
this.whatToDo = runnable;
|
|
||||||
this.dayOfMonth = day;
|
|
||||||
this.hourOfDay = hour;
|
|
||||||
this.minuteOfHour = minute;
|
|
||||||
|
|
||||||
schedule();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void schedule() {
|
|
||||||
cancelCurrent();
|
|
||||||
|
|
||||||
LOGGER.info(
|
|
||||||
"TargetLayananTimer : 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("TargetLayananTimer : Running schedule");
|
|
||||||
whatToDo.run();
|
|
||||||
} finally {
|
|
||||||
LOGGER.info("TargetLayananTimer : Schedule for the next month");
|
|
||||||
schedule();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, nextDate());
|
|
||||||
}
|
|
||||||
|
|
||||||
private Date nextDate() {
|
|
||||||
Calendar curDate = Calendar.getInstance();
|
|
||||||
Calendar runDate = Calendar.getInstance();
|
|
||||||
|
|
||||||
// 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, minuteOfHour);
|
|
||||||
runDate.set(Calendar.SECOND, 0);
|
|
||||||
runDate.set(Calendar.MILLISECOND, 0);
|
|
||||||
runDate.add(Calendar.MONTH, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
LOGGER.info("TargetLayananTimer : Set to next month " + runDate.getTime());
|
|
||||||
|
|
||||||
return runDate.getTime();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,84 +0,0 @@
|
|||||||
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;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author salmanoe
|
|
||||||
* @since Dec 29, 2021
|
|
||||||
*/
|
|
||||||
public class TargetSkorDokterTimer {
|
|
||||||
|
|
||||||
private final static Logger LOGGER = LoggerFactory.getLogger(TargetSkorDokterTimer.class);
|
|
||||||
|
|
||||||
// What to do
|
|
||||||
private final Runnable whatToDo;
|
|
||||||
|
|
||||||
// when
|
|
||||||
private final int dayOfMonth;
|
|
||||||
private final int hourOfDay;
|
|
||||||
|
|
||||||
// The current timer
|
|
||||||
private Timer current = new Timer();
|
|
||||||
|
|
||||||
public void cancelCurrent() {
|
|
||||||
LOGGER.info("TargetSkorDokterTimer : Cancel current execution");
|
|
||||||
current.cancel();
|
|
||||||
|
|
||||||
LOGGER.info("TargetSkorDokterTimer : Removes the timertask so it can be garbage collected");
|
|
||||||
current.purge();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static TargetSkorDokterTimer schedule(Runnable runnable, int dayOfMonth, int hourOfDay) {
|
|
||||||
LOGGER.info("TargetSkorDokterTimer : Create a new instance");
|
|
||||||
return new TargetSkorDokterTimer(runnable, dayOfMonth, hourOfDay);
|
|
||||||
}
|
|
||||||
|
|
||||||
private TargetSkorDokterTimer(Runnable runnable, int day, int hour) {
|
|
||||||
this.whatToDo = runnable;
|
|
||||||
this.dayOfMonth = day;
|
|
||||||
this.hourOfDay = hour;
|
|
||||||
|
|
||||||
schedule();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void schedule() {
|
|
||||||
cancelCurrent();
|
|
||||||
|
|
||||||
LOGGER.info(
|
|
||||||
"TargetSkorDokterTimer : 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("TargetSkorDokterTimer : Running schedule");
|
|
||||||
whatToDo.run();
|
|
||||||
} finally {
|
|
||||||
LOGGER.info("TargetSkorDokterTimer : Schedule for the next year");
|
|
||||||
schedule();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, nextDate());
|
|
||||||
}
|
|
||||||
|
|
||||||
private Date nextDate() {
|
|
||||||
Calendar runDate = Calendar.getInstance();
|
|
||||||
runDate.set(Calendar.MONTH, 0);
|
|
||||||
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);
|
|
||||||
runDate.add(Calendar.YEAR, 1);
|
|
||||||
|
|
||||||
LOGGER.info("TargetSkorDokterTimer : Set to next year " + runDate.getTime());
|
|
||||||
|
|
||||||
return runDate.getTime();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,49 +0,0 @@
|
|||||||
package com.jasamedika.medifirst2000.controller;
|
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.http.HttpStatus;
|
|
||||||
import org.springframework.http.ResponseEntity;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMethod;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
import com.jasamedika.medifirst2000.service.KalenderService;
|
|
||||||
import com.jasamedika.medifirst2000.service.PegawaiJadwalKerjaService;
|
|
||||||
import com.jasamedika.medifirst2000.service.SlipGajiService;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Salman
|
|
||||||
* @since 08/07/2023
|
|
||||||
*/
|
|
||||||
@RestController
|
|
||||||
@RequestMapping("/task")
|
|
||||||
public class TaskController {
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private KalenderService kalenderService;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private PegawaiJadwalKerjaService pegawaiJadwalKerjaService;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private SlipGajiService slipGajiService;
|
|
||||||
|
|
||||||
@RequestMapping(value = "/generate/kalender", method = RequestMethod.GET)
|
|
||||||
public ResponseEntity<String> generateKalender() {
|
|
||||||
kalenderService.generateAndSaveKalender();
|
|
||||||
return new ResponseEntity<>(HttpStatus.OK);
|
|
||||||
}
|
|
||||||
|
|
||||||
@RequestMapping(value = "/generate/pegawai/jadwal", method = RequestMethod.GET)
|
|
||||||
public ResponseEntity<String> generateJadwalPegawai() {
|
|
||||||
pegawaiJadwalKerjaService.scheduledSaveJadwalKerjaNonShift();
|
|
||||||
return new ResponseEntity<>(HttpStatus.OK);
|
|
||||||
}
|
|
||||||
|
|
||||||
@RequestMapping(value = "/initiate/pegawai/slip", method = RequestMethod.GET)
|
|
||||||
public ResponseEntity<String> initiateSlipGajiPegawai() {
|
|
||||||
slipGajiService.init();
|
|
||||||
return new ResponseEntity<>(HttpStatus.OK);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,115 +0,0 @@
|
|||||||
package com.jasamedika.medifirst2000.asynctask;
|
|
||||||
|
|
||||||
import java.text.SimpleDateFormat;
|
|
||||||
import java.util.Calendar;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Timer;
|
|
||||||
import java.util.TimerTask;
|
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
|
||||||
import com.jasamedika.medifirst2000.controller.base.LocaleController;
|
|
||||||
import com.jasamedika.medifirst2000.service.IpsrsMaintenanceService;
|
|
||||||
import com.jasamedika.medifirst2000.service.PegawaiMutasiSanksiResignService;
|
|
||||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
|
||||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
|
||||||
import com.jasamedika.medifirst2000.vo.IpsrsJadwalPemeliharaanVO;
|
|
||||||
|
|
||||||
@Component
|
|
||||||
public class IpsrsAlertMaintenance extends LocaleController<IpsrsJadwalPemeliharaanVO>{
|
|
||||||
/*
|
|
||||||
private Boolean flag =false;
|
|
||||||
private Integer pending = 0;
|
|
||||||
private String time = new SimpleDateFormat("HH:mm").format(Calendar.getInstance().getTime());
|
|
||||||
private SimpleDateFormat format = new SimpleDateFormat("HH:mm");
|
|
||||||
|
|
||||||
public IpsrsAlertMaintenance() {
|
|
||||||
// if(!Thread.currentThread().isInterrupted()){
|
|
||||||
// try {
|
|
||||||
// new Thread(new RunningTask()).start();
|
|
||||||
// } catch (Exception e) {
|
|
||||||
// e.printStackTrace();
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
|
|
||||||
class RunningTask implements Runnable{
|
|
||||||
public void run() {
|
|
||||||
new Timer().schedule(new TimerTask(){
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
try{
|
|
||||||
Date timeNow = format.parse(time);
|
|
||||||
Date timeEnd = format.parse("18:00");
|
|
||||||
Date timeReset = format.parse("21:00");
|
|
||||||
|
|
||||||
if(pending==60*3){
|
|
||||||
if(timeNow.before(timeEnd)){
|
|
||||||
if(flag==false){
|
|
||||||
// getAlertlMaintenance();
|
|
||||||
// getDataPlanningByDate();
|
|
||||||
flag=true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
pending=0;
|
|
||||||
} else{
|
|
||||||
pending++;
|
|
||||||
if(timeNow.equals(timeReset)){
|
|
||||||
flag=false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}catch(Exception ex){
|
|
||||||
ex.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, 1000L, 1000L);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// @Autowired
|
|
||||||
// private IpsrsMaintenanceService ipsrsMaintenanceService;
|
|
||||||
//
|
|
||||||
// public void getAlertlMaintenance(){
|
|
||||||
// try{
|
|
||||||
// if (ipsrsMaintenanceService != null){
|
|
||||||
// Map<String, Object> jadwalMaintenance = ipsrsMaintenanceService.getAlertMaintenance();
|
|
||||||
// if(CommonUtil.isNotNullOrEmpty(jadwalMaintenance)){
|
|
||||||
// BroadcastMessageOther("jadwalMaintenance", jadwalMaintenance);
|
|
||||||
// System.out.println(DateUtil.now()+" task scheduler :");
|
|
||||||
// System.out.println(new Gson().toJson(jadwalMaintenance));
|
|
||||||
// } else{
|
|
||||||
// System.out.println(DateUtil.now()+" task scheduler : tidak ada jadwal maintenance");
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }catch (Exception ex){
|
|
||||||
// ex.printStackTrace();
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// @Autowired
|
|
||||||
// private PegawaiMutasiSanksiResignService pegawaiMutasiSanksiResignService;
|
|
||||||
|
|
||||||
// @SuppressWarnings("unchecked")
|
|
||||||
// public void getDataPlanningByDate(){
|
|
||||||
// try{
|
|
||||||
// if (pegawaiMutasiSanksiResignService != null) {
|
|
||||||
// Map<String, Object> mapData = pegawaiMutasiSanksiResignService.getDataPlanningByDate(DateUtil.now());
|
|
||||||
// if(CommonUtil.isNotNullOrEmpty(mapData)){
|
|
||||||
// for(Map<String, Object> data : (List<Map<String, Object>>) mapData.get("listData")){
|
|
||||||
// Map<String, Object> dataResult = pegawaiMutasiSanksiResignService.updateExecPegawai(data);
|
|
||||||
// System.out.println(DateUtil.now()+" task scheduler : update pegawai "+new Gson().toJson(dataResult));
|
|
||||||
// }
|
|
||||||
// } else{
|
|
||||||
// System.out.println(DateUtil.now()+" task scheduler : tidak ada update data pegawai musare");
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }catch(Exception ex){
|
|
||||||
// ex.printStackTrace();
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
@ -1,187 +0,0 @@
|
|||||||
package com.jasamedika.medifirst2000.asynctask;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.scheduling.annotation.Scheduled;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import com.jasamedika.medifirst2000.controller.base.LocaleController;
|
|
||||||
import com.jasamedika.medifirst2000.dao.PegawaiDao;
|
|
||||||
import com.jasamedika.medifirst2000.dao.RuanganDao;
|
|
||||||
import com.jasamedika.medifirst2000.entities.Pegawai;
|
|
||||||
import com.jasamedika.medifirst2000.entities.Ruangan;
|
|
||||||
import com.jasamedika.medifirst2000.notification.MessagePublisher;
|
|
||||||
import com.jasamedika.medifirst2000.service.NotifMessagingSchedulerService;
|
|
||||||
import com.jasamedika.medifirst2000.service.NotifMessagingService;
|
|
||||||
import com.jasamedika.medifirst2000.service.NotifikasiMessageObjekModulService;
|
|
||||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
|
||||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
|
||||||
import com.jasamedika.medifirst2000.vo.NotifMessagingSchedulerVO;
|
|
||||||
import com.jasamedika.medifirst2000.vo.NotifMessagingVO;
|
|
||||||
import com.jasamedika.medifirst2000.vo.NotifikasiMessageObjekModulVO;
|
|
||||||
|
|
||||||
@Component
|
|
||||||
public class NotificationSchedulerMaintenanceTask extends LocaleController<NotifMessagingSchedulerVO>{
|
|
||||||
/*
|
|
||||||
private final Logger LOG = LoggerFactory.getLogger(NotificationSchedulerMaintenanceTask.class);
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
NotifMessagingSchedulerService<NotifMessagingSchedulerVO> notifMessagingSchedulerService;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
NotifMessagingService<NotifMessagingVO> notifMessagingService;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
NotifikasiMessageObjekModulService<NotifikasiMessageObjekModulVO> notifikasiMessageObjekModulService;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
MessagePublisher<String, Object> messagePublisher;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
PegawaiDao pegawaiDao;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
RuanganDao ruanganDao;
|
|
||||||
|
|
||||||
@Scheduled(cron = "0 30 7 * * *")
|
|
||||||
public void NotificationNormalMaintenanceEvery730AM(){
|
|
||||||
|
|
||||||
// try{
|
|
||||||
// MessagePublisher.RabbitHole rabbitHole = messagePublisher.getRabbitHole();
|
|
||||||
//
|
|
||||||
// List<NotifMessagingSchedulerVO> lNotif = notifMessagingSchedulerService.allNotifBelumTerkirim(new Date());
|
|
||||||
//
|
|
||||||
// if (CommonUtil.isNullOrEmpty(lNotif)){
|
|
||||||
// LOG.info(DateUtil.now()+" task scheduler : tidak ada jadwal maintenance");
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// Map<Integer, Integer> pegawaiRuangaAsal = new HashMap<>();
|
|
||||||
//
|
|
||||||
// Map<Integer, List<Integer>> ruanganAsalAll = new HashMap<>();
|
|
||||||
// Map<Integer, List<Integer>> notifMapAllRuanganTujuan = new HashMap<>();
|
|
||||||
// List<Integer> notifsId = new ArrayList<>();
|
|
||||||
// List<Integer> ruanganTujuansId = new ArrayList<>();
|
|
||||||
//
|
|
||||||
// Integer oldNotifId = 0;
|
|
||||||
// Integer oldRuanganIdTujuan = 0;
|
|
||||||
//
|
|
||||||
// for (NotifMessagingSchedulerVO notif:lNotif){
|
|
||||||
//
|
|
||||||
// if (notif.getRuanganIdTujuan().intValue() != oldRuanganIdTujuan.intValue()){
|
|
||||||
// ruanganTujuansId = new ArrayList<>();
|
|
||||||
// oldRuanganIdTujuan = notif.getRuanganIdTujuan();
|
|
||||||
// }
|
|
||||||
// ruanganTujuansId.add(notif.getRuanganIdTujuan());
|
|
||||||
// notifMapAllRuanganTujuan.put(notif.getNotifMessagingId(), ruanganTujuansId);
|
|
||||||
//
|
|
||||||
// if (notif.getNotifMessagingId().intValue() != oldNotifId.intValue()){
|
|
||||||
// notifsId = new ArrayList<>();
|
|
||||||
// oldNotifId = notif.getNotifMessagingId();
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// notifsId.add(notif.getNotifMessagingId());
|
|
||||||
// ruanganAsalAll.put(notif.getRuanganIdAsal(), notifsId);
|
|
||||||
//
|
|
||||||
// pegawaiRuangaAsal.put(notif.getRuanganIdAsal(), notif.getPegawaiId());
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// Set<Integer> ruanganAsalIds = ruanganAsalAll.keySet();
|
|
||||||
//
|
|
||||||
// for(Integer ruanganAsalId:ruanganAsalIds){
|
|
||||||
//
|
|
||||||
// Integer pegawaiId = pegawaiRuangaAsal.get(ruanganAsalId);
|
|
||||||
// Pegawai pegawai = pegawaiDao.findById(pegawaiId);
|
|
||||||
// Ruangan ruanganAsal = ruanganDao.findById(ruanganAsalId);
|
|
||||||
//
|
|
||||||
// notifsId = ruanganAsalAll.get(ruanganAsalId);
|
|
||||||
//
|
|
||||||
// for (Integer notifMessagingId:notifsId ){
|
|
||||||
//
|
|
||||||
// ruanganTujuansId = notifMapAllRuanganTujuan.get(notifMessagingId);
|
|
||||||
//
|
|
||||||
// try{
|
|
||||||
// rabbitHole.sendNotif(rabbitHole, ruanganAsal, pegawai, notifikasiMessageObjekModulService, notifMessagingId, ruanganTujuansId);
|
|
||||||
// }catch(Exception e){
|
|
||||||
// LOG.info(DateUtil.now()+" task scheduler dari Ruangan {} dengan ruanganId {} pada notifMessageId {} ada masalah {}",
|
|
||||||
// ruanganAsal.getNamaRuangan(), ruanganAsalId, notifMessagingId, e.getMessage());
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }catch(Exception e){
|
|
||||||
// LOG.info(DateUtil.now() + "Task scheduler gagal penyebab, {} ", e.getMessage());
|
|
||||||
// //e.printStackTrace();
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//private void sendNotif(Gson gson, String urlSocket, MessagePublisher.RabbitHole rabbitHole, Integer pegawaiId, Integer ruanganId, Integer notifMessagingId, List<Integer> ruanganTujuansId) throws Exception{
|
|
||||||
//
|
|
||||||
//List<NotifikasiMessageObjekModulVO> notifikasiMessageObjekModulVOs = notifikasiMessageObjekModulService.findByNotifMessagingIdAndRuanganId(notifMessagingId, ruanganTujuansId);
|
|
||||||
//
|
|
||||||
//if (CommonUtil.isNullOrEmpty(notifikasiMessageObjekModulVOs)) {
|
|
||||||
// return;
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//Integer ruanganIdtemp = 0;
|
|
||||||
//boolean connect = false;
|
|
||||||
//
|
|
||||||
//PegawaiVO pegawai = pegawaiService.findById(pegawaiId);
|
|
||||||
//
|
|
||||||
//for (NotifikasiMessageObjekModulVO vo : notifikasiMessageObjekModulVOs){
|
|
||||||
// Ruangan ruangan = vo.getRuangan();
|
|
||||||
// ModulAplikasi modulAplikasi = vo.getModulAplikasi();
|
|
||||||
// ObjekModulAplikasi objekModulAplikasi = vo.getObjekModulAplikasi();
|
|
||||||
// String customURLObjekModul = vo.getCustomURLObjekModul();
|
|
||||||
// String titleNotifikasi = vo.getTitleNotifikasi();
|
|
||||||
// String pesanNotifikasi = vo.getPesanNotifikasi();
|
|
||||||
// String namaFungsiFrontEnd = vo.getNamaFungsiFrontEnd();
|
|
||||||
//
|
|
||||||
// if (ruangan.getId() == ruanganId){
|
|
||||||
// continue;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// RuanganVO dariRuangan = ruanganService.findById(ruanganId);
|
|
||||||
//
|
|
||||||
// if (ruanganIdtemp != ruangan.getId()){
|
|
||||||
// if (connect){
|
|
||||||
// rabbitHole.close();
|
|
||||||
// }
|
|
||||||
// rabbitHole.connect(urlSocket, String.valueOf(ruangan.getId()));
|
|
||||||
// connect = true;
|
|
||||||
// ruanganIdtemp = ruangan.getId();
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// Map<String, Object> map = new HashMap<>();
|
|
||||||
// map.put("title", titleNotifikasi);
|
|
||||||
// map.put("dariRuangan", dariRuangan);
|
|
||||||
// map.put("ruanganId", ruangan.getId());
|
|
||||||
// map.put("ruangan", ruangan);
|
|
||||||
// map.put("modulAplikasi", modulAplikasi);
|
|
||||||
// map.put("objekModulAplikasi", objekModulAplikasi);
|
|
||||||
// map.put("titleNotifikasi", titleNotifikasi);
|
|
||||||
// map.put("pesanNotifikasi", pesanNotifikasi);
|
|
||||||
// map.put("namaFungsiFrontEnd", namaFungsiFrontEnd);
|
|
||||||
// map.put("fromPegawai", pegawai);
|
|
||||||
// map.put("urlForm",CommonUtil.isNullOrEmpty(customURLObjekModul)? objekModulAplikasi.getAlamatUrlForm() : customURLObjekModul);
|
|
||||||
//
|
|
||||||
// rabbitHole.sendRabbitMQNotification(gson.toJson(map));
|
|
||||||
//
|
|
||||||
// //messagePublisher.BroadcastMessage(map);
|
|
||||||
//}
|
|
||||||
//if (connect){
|
|
||||||
// rabbitHole.close();
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//}
|
|
||||||
Loading…
x
Reference in New Issue
Block a user