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.scheduling.TaskScheduler;
|
||||
import org.springframework.stereotype.Service;
|
||||
import ru.clearing.classes.statics.data.scheduler.ClearingCalendar;
|
||||
import ru.clearing.classes.statics.data.scheduler.PlannerAllToday;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
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.service.QueueConsumer;
|
||||
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.Task;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
|
|
@ -52,6 +54,7 @@ public class TaskManager extends QueueConsumer implements InitializingBean {
|
|||
private final TaskScheduler taskScheduler;
|
||||
private final ImdgProvider imdgProvider;
|
||||
private Imdg<PlannerAllToday> plannerAllTodayMap;
|
||||
private Imdg<ClearingCalendar> clearingCalendarMap;
|
||||
private ConcurrentHashMap<LocalTime, ScheduledFuture> scheduledJobs;
|
||||
private Producer<String, Object> kafkaProducer;
|
||||
|
||||
|
|
@ -70,6 +73,7 @@ public class TaskManager extends QueueConsumer implements InitializingBean {
|
|||
@Override
|
||||
public void afterPropertiesSet() throws Exception {
|
||||
plannerAllTodayMap = imdgProvider.getImdg(IMDGDistributedNames.Map_PlannerAllToday, PlannerAllToday.class);
|
||||
clearingCalendarMap = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingMemberCategory, ClearingCalendar.class);
|
||||
scheduledJobs = new ConcurrentHashMap<>();
|
||||
updateScheduler();
|
||||
callback(PlannerNewRequest.class)
|
||||
|
|
@ -128,7 +132,7 @@ public class TaskManager extends QueueConsumer implements InitializingBean {
|
|||
plannerAllToday.setParent("PLNR");
|
||||
plannerAllToday.setParentId(request.getParentId());
|
||||
|
||||
processTask(plannerAllToday);
|
||||
newEntry(plannerAllToday);
|
||||
|
||||
return requestInfoUpdate;
|
||||
}
|
||||
|
|
@ -146,24 +150,69 @@ public class TaskManager extends QueueConsumer implements InitializingBean {
|
|||
plannerAllToday.setSecurityId(request.getSecurityId());
|
||||
plannerAllToday.setParent("PLNR");
|
||||
plannerAllToday.setParentId(request.getParentId());
|
||||
|
||||
updateEntry(plannerAllToday);
|
||||
return requestInfoUpdate;
|
||||
|
||||
}
|
||||
|
||||
protected RequestInfoUpdate deletePlanner(BaseRequest<CommonDeleteRequest> userRequest) {
|
||||
RequestInfoUpdate requestInfoUpdate = new RequestInfoUpdate();
|
||||
return requestInfoUpdate;
|
||||
//fixme
|
||||
|
||||
return requestInfoUpdate;
|
||||
}
|
||||
|
||||
protected RequestInfoUpdate newPlannerTemplate(BaseRequest<PlannerTemplateNewRequest> userRequest) {
|
||||
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) {
|
||||
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;
|
||||
|
||||
}
|
||||
|
|
@ -203,8 +252,10 @@ public class TaskManager extends QueueConsumer implements InitializingBean {
|
|||
log.warn("Task skipped, {} task type not recognized", task.getTask());
|
||||
return;
|
||||
}
|
||||
plannerAllTodayMap.insert(task);
|
||||
|
||||
processTask(task);
|
||||
if (task.getTaskTime().equals(LocalTime.now()))
|
||||
plannerAllTodayMap.insert(task);
|
||||
}
|
||||
|
||||
private void updateEntry(PlannerAllToday plannerAllToday) {
|
||||
|
|
@ -239,8 +290,8 @@ public class TaskManager extends QueueConsumer implements InitializingBean {
|
|||
} else {
|
||||
log.debug("task with type {}, time {} execution cancelled, adding altered task...", task.getTask(), oldTime.toString());
|
||||
}
|
||||
plannerAllTodayMap.update(task);
|
||||
processTask(task);
|
||||
plannerAllTodayMap.update(task);
|
||||
} else if (Cancel.equalsByKey(oldTask.getTaskStatus())) { //&& TaskStatuses.CANCEL.equalsById(task.getTaskStatusId())
|
||||
restorePreviouslyRemovedTask(oldTime, oldTask);
|
||||
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) {
|
||||
for (PlannerAllToday x : plannerAllTodayMap.getAllValues()) {
|
||||
if (x.getTaskTime().equals(taskTime) && x.getTask().equalsIgnoreCase(task)) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue