Создание бизнес-календаря

Вы можете создавать бизнес-календари как во время выполнения с помощью специального визуального редактора, так и во время разработки с использованием аннотированных Java-интерфейсов.

Создание бизнес-календаря во время выполнения

После установки дополнения используйте главное меню, чтобы открыть экран списка Business calendars.

business calendar list

Находясь на этой странице, нажмите кнопку Create, чтобы открыть редактор Business calendar.

business calendar editor

Укажите следующие параметры:

  • Name – понятное пользователю описание данного календаря.

  • Code – уникальный идентификатор данного календаря.

Следующий шаг - определение рабочих дней и часов с исключением нерабочего времени, такого как праздники, отпуска или любое другое время вне работы. Для этого используйте вкладки редактора, описанные ниже.

Праздничные дни

На вкладке Holidays нажмите Create, чтобы добавить праздники и выходные дни.

business calendar holidays

Дополнение поддерживает следующие типы праздничных дней:

  • Day of week (День недели) - позволяет устанавливать праздничные дни на определенные дни недели. Например, для многих людей стандартные выходные - это суббота и воскресенье:

    business calendar day of week
  • Specific date holiday (праздник с конкретной датой) - позволяет установить праздник на точную дату. Например, некоторые праздники выпадают на разные дни каждый год, чтобы обеспечить людям длинные выходные:

    business calendar specific date holiday
  • Annual holiday (ежегодный праздник) - позволяет планировать повторяющиеся праздники, которые отмечаются в один и тот же день каждый год, такие как Новый год.

    business calendar annual holiday
  • Cron-based holiday (праздник на основе Cron) - позволяет указывать праздники в формате quartz CRON. Подробнее смотрите руководство по Cron-триггерам.

    business calendar cron holiday

    Это может помочь добавить нетривиальные праздники, такие как Третья пятница каждого месяца или Первый понедельник июля и т.д.

Рабочее расписание

На вкладке Working schedule вы можете указать рабочие часы для каждого дня недели. В день может быть несколько рабочих периодов, но они не должны пересекаться.

working schedule editor

Дополнительные рабочие дни

На вкладке Additional business days вы можете установить дни, которые должны всегда считаться рабочими. Если такая дата совпадает с праздником, она все равно будет рабочим днем. Есть возможность установить различные рабочие часы.

additional business day editor

Создание бизнес-календаря во время разработки

Используйте аннотированный Java-интерфейс для создания бизнес-календаря во время разработки. Например:

@BusinessCalendar(name = "Sample Business Calendar",
        code = "sample-business-calendar") (1)
public interface SampleBusinessCalendar {

    @CronHoliday(expression = "* * * 1-2 MAY ?") (2)
    @CronHoliday(expression = "* * * ? * 6#3")
    void cronHoliday();

    @WeeklyHoliday(DayOfWeek.SATURDAY)
    @WeeklyHoliday(value = DayOfWeek.SUNDAY,
            description = "Sunday is a day for family") (3)
    void weeklyHolidays();

    @FixedDayHoliday(fixedDate = "2024-05-08") (4)
    @FixedDayHoliday(fixedDate = "2024-05-09")
    void fixedHoliday();

    @FixedYearlyHoliday(month = Month.NOVEMBER, dayOfMonth = 4) (5)
    @FixedYearlyHoliday(month = Month.JUNE, dayOfMonth = 12)
    void fixedYearlyHoliday();

    @ScheduledBusinessDay(dayOfWeek = DayOfWeek.MONDAY,
            startTime = "08:00", endTime = "17:00") (6)
    @ScheduledBusinessDay(dayOfWeek = DayOfWeek.WEDNESDAY,
            startTime = "09:00", endTime = "17:00")
    @ScheduledBusinessDay(dayOfWeek = DayOfWeek.FRIDAY,
            startTime = "10:00", endTime = "15:00")
    void scheduledBD();

    @AdditionalBusinessDay(fixedDate = "2024-05-06",
            startTime = "10:00", endTime = "16:30") (7)
    @AdditionalBusinessDay(fixedDate = "2024-05-07",
            startTime = "10:00", endTime = "16:30")
    void additionalBD();
}
1 Аннотированный бизнес-календарь - это интерфейс, аннотированный аннотацией @BusinessCalendar. Вы должны указать следующие параметры для аннотации @BusinessCalendar:
  • name – понятное пользователю описание данного календаря;

  • code – уникальный идентификатор данного календаря.

2 Укажите праздник в формате quartz CRON.
3 Укажите праздник для дней недели.
4 Укажите праздник для конкретной даты.
5 Укажите праздник для ежегодно повторяющейся даты.
6 Укажите запланированные рабочие дни.
7 Укажите дополнительные рабочие дни.

Бизнес-календарь, созданный во время разработки, отображается в списке всех бизнес-календарей и доступен только для просмотра.

business calendars