Создание бизнес-календаря
Вы можете создавать бизнес-календари как во время выполнения с помощью специального визуального редактора, так и во время разработки с использованием аннотированных Java-интерфейсов.
Создание бизнес-календаря во время выполнения
После установки дополнения используйте главное меню, чтобы открыть экран списка Business calendars.
Нажмите Create, чтобы открыть редактор Business calendar.
Укажите следующие параметры:
-
Name – понятное пользователю описание данного календаря.
-
Code – уникальный идентификатор данного календаря.
Используйте вкладки редактора для настройки рабочих дней и часов, исключая нерабочее время, такое как праздники, отпуска и другое время вне работы.
Каждая запись календаря может включать метку (Mark) — значение, которое может использоваться для категоризации или указания причины, по которой день или время имеют нестандартные рабочие часы. Значение mark возвращается методами getDayInfo().
|
Выходные
На вкладке Holidays нажмите Create, чтобы добавить праздники и выходные дни.
Выберите подходящий тип выходного:
-
Day of week – отмечает выбранные дни недели как выходные. Например, субботу и воскресенье можно установить как выходные.
-
Specific date holiday – отмечает конкретную дату как праздничный день.
-
Annual holiday – отмечает праздник, который повторяется ежегодно в одну и ту же дату, например Новый год.
-
Cron-based holiday – определяет праздники с использованием формата Quartz CRON. Это полезно для более сложных правил, таких как третья пятница каждого месяца или первый понедельник июля.
Создание бизнес-календаря во время разработки
Используйте аннотированный Java-интерфейс для создания бизнес-календаря во время разработки. Например:
@BusinessCalendar(name = "Sample Business Calendar",
code = "sample-business-calendar" ) (1)
public interface SampleBusinessCalendar {
@CronHoliday(expression = "* * * 1-2 MAY ?", mark = "spring-holiday",
description = "Early May public holidays") (2)
@CronHoliday(expression = "* * * ? * 6#3", mark = "monthly-maintenance",
description = "Scheduled maintenance on the third Saturday of each month")
void cronHoliday();
@WeeklyHoliday(value = DayOfWeek.SATURDAY, mark = "weekend",
description = "Standard weekend day")
@WeeklyHoliday(value = DayOfWeek.SUNDAY, mark = "weekend",
description = "Standard weekend day") (3)
void weeklyHolidays();
@FixedDayHoliday(fixedDate = "2026-01-02", mark = "maintenance", description = "Scheduled maintenance") (4)
@FixedDayHoliday(fixedDate = "2026-03-04", mark = "company-holiday", description = "Company day off")
void fixedHoliday();
@FixedYearlyHoliday(month = Month.NOVEMBER, dayOfMonth = 4, mark = "regional", description = "Annual regional holiday") (5)
@FixedYearlyHoliday(month = Month.JUNE, dayOfMonth = 8, mark = "regional", description = "Annual regional holiday")
void fixedYearlyHoliday();
@ScheduledBusinessDay(dayOfWeek = DayOfWeek.MONDAY,
startTime = "08:00", endTime = "17:00", mark = "regular-hours") (6)
@ScheduledBusinessDay(dayOfWeek = DayOfWeek.WEDNESDAY,
startTime = "09:00", endTime = "17:00", mark = "late-start")
@ScheduledBusinessDay(dayOfWeek = DayOfWeek.FRIDAY,
startTime = "10:00", endTime = "15:00", mark = "short-day")
void scheduledBD();
@AdditionalBusinessDay(fixedDate = "2026-05-06",
startTime = "10:00", endTime = "16:30", mark = "holiday-shift") (7)
@AdditionalBusinessDay(fixedDate = "2026-07-08",
startTime = "10:00", endTime = "16:30", mark = "extra-workday")
void additionalBD();
}
| 1 | Бизнес-календарь определенные во время разработки — это Java-интерфейс, аннотированный @BusinessCalendar. Эта аннотация требует два параметра:
|
| 2 | @CronHoliday устанавливает праздники с использованием выражений Quartz CRON. Полезно для сложных или повторяющихся шаблонов. Используйте mark как короткий тег. Добавьте description для подробного описания. |
| 3 | @WeeklyHoliday задает определенные дни недели в качестве выходных. Используйте mark как короткий тег. Добавьте description для подробного описания. |
| 4 | @FixedDayHoliday задает праздники для конкретных дат. Используйте mark как короткий тег. Добавьте description для подробного описания. |
| 5 | @FixedYearlyHoliday задает праздники, которые повторяются ежегодно в одну и ту же дату. Используйте mark как короткий тег. Добавьте description для подробного описания. |
| 6 | @ScheduledBusinessDay устанавливает регулярные рабочие дни, включая время начала и окончания. Используйте mark как короткий тег. |
| 7 | AdditionalBusinessDay устанавливает рабочие дни вне обычного расписания (например, перенесённые рабочие дни). Используйте mark как короткий тег. |
| Бизнес-календарь, созданный во время разработки, отображается в списке всех бизнес-календарей но доступен только для просмотра. |