Scheduling update
This commit is contained in:
parent
7383662c61
commit
0156a498a7
1 changed files with 56 additions and 9 deletions
|
|
@ -10,6 +10,7 @@ import org.springframework.beans.factory.InitializingBean;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.scheduling.TaskScheduler;
|
import org.springframework.scheduling.TaskScheduler;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import ru.clearing.classes.statics.data.scheduler.ClearingCalendar;
|
||||||
import ru.clearing.classes.statics.data.scheduler.PlannerAllToday;
|
import ru.clearing.classes.statics.data.scheduler.PlannerAllToday;
|
||||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
|
import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
|
||||||
|
|
@ -18,6 +19,7 @@ import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteReques
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.schedule.*;
|
import ru.spcex.clearing.platform.messaging.domain.cud.schedule.*;
|
||||||
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
|
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
|
||||||
import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate;
|
import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate;
|
||||||
|
import ru.spcex.platform.enumeration.DayStatus;
|
||||||
import ru.spcex.platform.enumeration.Status;
|
import ru.spcex.platform.enumeration.Status;
|
||||||
import ru.spcex.platform.enumeration.Task;
|
import ru.spcex.platform.enumeration.Task;
|
||||||
import ru.spcex.platform.imdg.api.Imdg;
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
|
|
@ -52,6 +54,7 @@ public class TaskManager extends QueueConsumer implements InitializingBean {
|
||||||
private final TaskScheduler taskScheduler;
|
private final TaskScheduler taskScheduler;
|
||||||
private final ImdgProvider imdgProvider;
|
private final ImdgProvider imdgProvider;
|
||||||
private Imdg<PlannerAllToday> plannerAllTodayMap;
|
private Imdg<PlannerAllToday> plannerAllTodayMap;
|
||||||
|
private Imdg<ClearingCalendar> clearingCalendarMap;
|
||||||
private ConcurrentHashMap<LocalTime, ScheduledFuture> scheduledJobs;
|
private ConcurrentHashMap<LocalTime, ScheduledFuture> scheduledJobs;
|
||||||
private Producer<String, Object> kafkaProducer;
|
private Producer<String, Object> kafkaProducer;
|
||||||
|
|
||||||
|
|
@ -70,6 +73,7 @@ public class TaskManager extends QueueConsumer implements InitializingBean {
|
||||||
@Override
|
@Override
|
||||||
public void afterPropertiesSet() throws Exception {
|
public void afterPropertiesSet() throws Exception {
|
||||||
plannerAllTodayMap = imdgProvider.getImdg(IMDGDistributedNames.Map_PlannerAllToday, PlannerAllToday.class);
|
plannerAllTodayMap = imdgProvider.getImdg(IMDGDistributedNames.Map_PlannerAllToday, PlannerAllToday.class);
|
||||||
|
clearingCalendarMap = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingMemberCategory, ClearingCalendar.class);
|
||||||
scheduledJobs = new ConcurrentHashMap<>();
|
scheduledJobs = new ConcurrentHashMap<>();
|
||||||
updateScheduler();
|
updateScheduler();
|
||||||
callback(PlannerNewRequest.class)
|
callback(PlannerNewRequest.class)
|
||||||
|
|
@ -128,7 +132,7 @@ public class TaskManager extends QueueConsumer implements InitializingBean {
|
||||||
plannerAllToday.setParent("PLNR");
|
plannerAllToday.setParent("PLNR");
|
||||||
plannerAllToday.setParentId(request.getParentId());
|
plannerAllToday.setParentId(request.getParentId());
|
||||||
|
|
||||||
processTask(plannerAllToday);
|
newEntry(plannerAllToday);
|
||||||
|
|
||||||
return requestInfoUpdate;
|
return requestInfoUpdate;
|
||||||
}
|
}
|
||||||
|
|
@ -146,24 +150,69 @@ public class TaskManager extends QueueConsumer implements InitializingBean {
|
||||||
plannerAllToday.setSecurityId(request.getSecurityId());
|
plannerAllToday.setSecurityId(request.getSecurityId());
|
||||||
plannerAllToday.setParent("PLNR");
|
plannerAllToday.setParent("PLNR");
|
||||||
plannerAllToday.setParentId(request.getParentId());
|
plannerAllToday.setParentId(request.getParentId());
|
||||||
|
|
||||||
|
updateEntry(plannerAllToday);
|
||||||
return requestInfoUpdate;
|
return requestInfoUpdate;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected RequestInfoUpdate deletePlanner(BaseRequest<CommonDeleteRequest> userRequest) {
|
protected RequestInfoUpdate deletePlanner(BaseRequest<CommonDeleteRequest> userRequest) {
|
||||||
RequestInfoUpdate requestInfoUpdate = new RequestInfoUpdate();
|
RequestInfoUpdate requestInfoUpdate = new RequestInfoUpdate();
|
||||||
return requestInfoUpdate;
|
//fixme
|
||||||
|
|
||||||
|
return requestInfoUpdate;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected RequestInfoUpdate newPlannerTemplate(BaseRequest<PlannerTemplateNewRequest> userRequest) {
|
protected RequestInfoUpdate newPlannerTemplate(BaseRequest<PlannerTemplateNewRequest> userRequest) {
|
||||||
RequestInfoUpdate requestInfoUpdate = new RequestInfoUpdate();
|
RequestInfoUpdate requestInfoUpdate = new RequestInfoUpdate();
|
||||||
return requestInfoUpdate;
|
PlannerTemplateNewRequest request = userRequest.getRequestPayload();
|
||||||
|
PlannerAllToday plannerAllToday = new PlannerAllToday();
|
||||||
|
plannerAllToday.setTask(request.getTask());
|
||||||
|
plannerAllToday.setTaskTime(request.getTaskTime());
|
||||||
|
plannerAllToday.setTaskStatus(request.getTaskStatus());
|
||||||
|
plannerAllToday.setCompanyId(request.getCompanyId());
|
||||||
|
plannerAllToday.setSecurityId(request.getSecurityId());
|
||||||
|
plannerAllToday.setParent("TMPL");
|
||||||
|
plannerAllToday.setParentId(0L);//FIXME
|
||||||
|
|
||||||
|
Optional<ClearingCalendar> clearingCalendarOptional = clearingCalendarMap.getAllValues().stream()
|
||||||
|
.filter((calendar) -> calendar.getClearingDate().isEqual(LocalDate.now()))
|
||||||
|
.findFirst();
|
||||||
|
if (clearingCalendarOptional.isPresent()) {
|
||||||
|
ClearingCalendar calendar = clearingCalendarOptional.get();
|
||||||
|
if (calendar.getDayStatus().equalsIgnoreCase(DayStatus.Workday.getKey())) {
|
||||||
|
if (calendar.getCompanyId() != null && calendar.getCompanyId() != 0) {
|
||||||
|
newEntry(plannerAllToday);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return requestInfoUpdate;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected RequestInfoUpdate updatePlannerTemplate(BaseRequest<PlannerTemplateUpdateRequest> userRequest) {
|
protected RequestInfoUpdate updatePlannerTemplate(BaseRequest<PlannerTemplateUpdateRequest> userRequest) {
|
||||||
RequestInfoUpdate requestInfoUpdate = new RequestInfoUpdate();
|
RequestInfoUpdate requestInfoUpdate = new RequestInfoUpdate();
|
||||||
|
PlannerTemplateUpdateRequest request = userRequest.getRequestPayload();
|
||||||
|
Optional<ClearingCalendar> clearingCalendarOptional = clearingCalendarMap.getAllValues().stream()
|
||||||
|
.filter((calendar) -> calendar.getClearingDate().isEqual(LocalDate.now()))
|
||||||
|
.findFirst();
|
||||||
|
if (clearingCalendarOptional.isPresent()) {
|
||||||
|
ClearingCalendar calendar = clearingCalendarOptional.get();
|
||||||
|
if (calendar.getDayStatus().equalsIgnoreCase(DayStatus.Workday.getKey())) {
|
||||||
|
if (calendar.getCompanyId() != null && calendar.getCompanyId() != 0) {
|
||||||
|
Optional<PlannerAllToday> plannerAllTodayOptional = plannerAllTodayMap.getAllValues().stream().filter((x) -> {
|
||||||
|
if (x.getTaskTime().equals(request.getTaskTime()) && x.getTask().equalsIgnoreCase(request.getTask())) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}).findFirst();
|
||||||
|
PlannerAllToday planner;
|
||||||
|
if (plannerAllTodayOptional.isPresent()) {
|
||||||
|
planner = plannerAllTodayOptional.get();
|
||||||
|
updateEntry(planner);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
return requestInfoUpdate;
|
return requestInfoUpdate;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -203,8 +252,10 @@ public class TaskManager extends QueueConsumer implements InitializingBean {
|
||||||
log.warn("Task skipped, {} task type not recognized", task.getTask());
|
log.warn("Task skipped, {} task type not recognized", task.getTask());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
plannerAllTodayMap.insert(task);
|
|
||||||
processTask(task);
|
processTask(task);
|
||||||
|
if (task.getTaskTime().equals(LocalTime.now()))
|
||||||
|
plannerAllTodayMap.insert(task);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateEntry(PlannerAllToday plannerAllToday) {
|
private void updateEntry(PlannerAllToday plannerAllToday) {
|
||||||
|
|
@ -239,8 +290,8 @@ public class TaskManager extends QueueConsumer implements InitializingBean {
|
||||||
} else {
|
} else {
|
||||||
log.debug("task with type {}, time {} execution cancelled, adding altered task...", task.getTask(), oldTime.toString());
|
log.debug("task with type {}, time {} execution cancelled, adding altered task...", task.getTask(), oldTime.toString());
|
||||||
}
|
}
|
||||||
plannerAllTodayMap.update(task);
|
|
||||||
processTask(task);
|
processTask(task);
|
||||||
|
plannerAllTodayMap.update(task);
|
||||||
} else if (Cancel.equalsByKey(oldTask.getTaskStatus())) { //&& TaskStatuses.CANCEL.equalsById(task.getTaskStatusId())
|
} else if (Cancel.equalsByKey(oldTask.getTaskStatus())) { //&& TaskStatuses.CANCEL.equalsById(task.getTaskStatusId())
|
||||||
restorePreviouslyRemovedTask(oldTime, oldTask);
|
restorePreviouslyRemovedTask(oldTime, oldTask);
|
||||||
plannerAllTodayMap.update(task);
|
plannerAllTodayMap.update(task);
|
||||||
|
|
@ -264,10 +315,6 @@ public class TaskManager extends QueueConsumer implements InitializingBean {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void removePlannerAllToday(PlannerAllToday plannerAllToday) {
|
|
||||||
removePlannerAllToday(plannerAllToday.getTask(), plannerAllToday.getTaskTime());
|
|
||||||
}
|
|
||||||
|
|
||||||
private void removePlannerAllToday(String task, LocalTime taskTime) {
|
private void removePlannerAllToday(String task, LocalTime taskTime) {
|
||||||
for (PlannerAllToday x : plannerAllTodayMap.getAllValues()) {
|
for (PlannerAllToday x : plannerAllTodayMap.getAllValues()) {
|
||||||
if (x.getTaskTime().equals(taskTime) && x.getTask().equalsIgnoreCase(task)) {
|
if (x.getTaskTime().equals(taskTime) && x.getTask().equalsIgnoreCase(task)) {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue