创建工作日历
工作日历可以使用带注解的 Java 接口在设计时创建,或者通过 Administration(管理) → Business calendars(工作日历) UI 界面在运行时创建。
运行时创建工作日历
打开 Administration → Business calendars 应用程序界面,点击 Create 按钮,打开 Business calendar editor(工作日历编辑器) 界面。
输入下列参数:
-
Name - 日历的可读描述。
-
Code - 日历的唯一标识符。
在 Holidays(假日) 标签页,点击 Create 添加假日和周末。
该组件支持下列类型的假日:
-
Day of week(星期) - 允许指定每周的假日;例如,星期六和星期日。
-
Specific date holiday(特定日期假日) - 允许设置某一日期的特定假日,例如,
2022-08-03
。 -
Annual holiday(年固定假日) - 每年重复的假日,例如,
1 月 1 日
。 -
Cron-based holiday(基于 Cron 的假日) - 允许用 quartz CRON 格式指定特殊的假日。参阅 Cron 入门 了解更多信息。
它可以用来指定一些重要的假期,例如,每个月的第三个星期五 或 7月的第一个星期一 等。
在 Working schedule(工作日计划) 标签页,可以为一周的每天设置工作小时数。每天可以有多个工作时段,但是这些时段不能相互覆盖。
还可以在 Additional business days(额外工作日) 标签页将某些假日定义为工作日。如果这样的配置的某一天属于假日,也会按照工作日考虑。
设计时创建工作日历
设计时可以用带注解的 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 always a day for family") (3)
void weeklyHolidays();
@FixedDayHoliday(fixedDate = "2021-05-08") (4)
@FixedDayHoliday(fixedDate = "2021-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 = "2021-05-06",
startTime = "10:00", endTime = "16:30") (7)
@AdditionalBusinessDay(fixedDate = "2021-05-07",
startTime = "10:00", endTime = "16:30")
void additionalBD();
}
1 | 带注解的工作日历是一个使用 @BusinessCalendar 注解的接口。你需要为该注解指定下列参数:
|
2 | 指定假日 - 以 quartz CRON 格式 |
3 | 指定假日 - 每周固定假日。 |
4 | 指定假日 - 特定日期假日。 |
5 | 指定假日 - 每年一次的假日。 |
6 | 指定工作日 - 计划工作日。 |
7 | 指定工作日 - 额外工作日。 |
设计时创建的工作日历与其他日历一起在列表展示,但是只能查看,不能修改。