Исправил создание plannerAllToday если тек.день=ПН-ПТ и не задан clearingCalendar (т.е. нет записи).
This commit is contained in:
psemenkov 2023-05-19 19:41:05 +03:00
parent 8755f3e1ca
commit 2a8bda41e9

View file

@ -21,7 +21,7 @@ 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.clearing.scheduler.PlannerAllTodayBuilder; import ru.spcex.clearing.scheduler.PlannerAllTodayBuilder;
import ru.spcex.clearing.util.security.UserRoleVerification; import ru.spcex.clearing.util.security.UserRoleVerification;
import ru.spcex.platform.enumeration.DayStatus; import ru.spcex.platform.enumeration.Status;
import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.api.ImdgProvider;
import ru.spcex.platform.utils.enumeration.IMessageResolver; import ru.spcex.platform.utils.enumeration.IMessageResolver;
@ -106,7 +106,7 @@ public class PlannerTemplateService extends QueueConsumer implements Initializin
plannerTemplate.setSecurityId(req.getSecurityId()); plannerTemplate.setSecurityId(req.getSecurityId());
plannerTemplateMap.insert(plannerTemplate); plannerTemplateMap.insert(plannerTemplate);
if (todayWorkDay()) { if (todayWorkDay() && Status.Active.equalsByKey(plannerTemplate.getTaskStatus())) {
PlannerAllToday plannerAllToday = PlannerAllTodayBuilder.builder().append(plannerTemplate).build(); PlannerAllToday plannerAllToday = PlannerAllTodayBuilder.builder().append(plannerTemplate).build();
plannerAllTodayMap.insert(plannerAllToday); plannerAllTodayMap.insert(plannerAllToday);
addToPlannerQueue(TaskManager.Process.add, plannerAllToday); addToPlannerQueue(TaskManager.Process.add, plannerAllToday);
@ -143,7 +143,7 @@ public class PlannerTemplateService extends QueueConsumer implements Initializin
plannerAllToday.setId(oldPlannerAllToday.getId()); plannerAllToday.setId(oldPlannerAllToday.getId());
plannerAllTodayMap.insert(plannerAllToday); plannerAllTodayMap.insert(plannerAllToday);
addToPlannerQueue(TaskManager.Process.update, oldPlannerAllToday); addToPlannerQueue(TaskManager.Process.update, oldPlannerAllToday);
}else { } else if (Status.Active.equalsByKey(plannerTemplate.getTaskStatus())) {
plannerAllTodayMap.insert(plannerAllToday); plannerAllTodayMap.insert(plannerAllToday);
addToPlannerQueue(TaskManager.Process.add, plannerAllToday); addToPlannerQueue(TaskManager.Process.add, plannerAllToday);
} }
@ -165,7 +165,7 @@ public class PlannerTemplateService extends QueueConsumer implements Initializin
if (todayWorkDay()) { if (todayWorkDay()) {
PlannerAllToday plannerAllToday = plannerAllTodayMap.getSingleObjectBySQL(String.format("parentId = %s", plannerTemplate.getId())); PlannerAllToday plannerAllToday = plannerAllTodayMap.getSingleObjectBySQL(String.format("parentId = %s", plannerTemplate.getId()));
if (plannerAllToday != null){ if (plannerAllToday != null) {
plannerAllTodayMap.delete(plannerAllToday); plannerAllTodayMap.delete(plannerAllToday);
addToPlannerQueue(TaskManager.Process.delete, plannerAllToday); addToPlannerQueue(TaskManager.Process.delete, plannerAllToday);
} }
@ -178,13 +178,12 @@ public class PlannerTemplateService extends QueueConsumer implements Initializin
LocalDate currentDate = LocalDate.now(); LocalDate currentDate = LocalDate.now();
boolean isWeekend = Arrays.asList(DayOfWeek.SATURDAY, DayOfWeek.SUNDAY).contains(currentDate.getDayOfWeek()); boolean isWeekend = Arrays.asList(DayOfWeek.SATURDAY, DayOfWeek.SUNDAY).contains(currentDate.getDayOfWeek());
//проверим есть ли другие записи clearingCalendar с таким же clearingDate, если они актуальные ничего не удаляем //проверим есть ли другие записи clearingCalendar с таким же clearingDate, если они актуальные ничего не удаляем
Collection<ClearingCalendar> clearingCalendars = clearingCalendarMap.getCollectionObjectsByFieldValues(Map.of("dayStatus", DayStatus.Workday.getKey(), Collection<ClearingCalendar> clearingCalendars = clearingCalendarMap.getCollectionObjectsByFieldValues(Map.of("clearingDate", currentDate));
"clearingDate", currentDate));
if (clearingCalendars != null && !clearingCalendars.isEmpty()) { if (clearingCalendars != null && !clearingCalendars.isEmpty()) {
for (ClearingCalendar calendar : clearingCalendars) { for (ClearingCalendar calendar : clearingCalendars) {
if (isValidWorkday(calendar, isWeekend)) return true; if (isValidWorkday(calendar, isWeekend)) return true;
} }
} } else return !isWeekend;
return false; return false;
} }
} }