| | |
| | | // 使用switch确保条件互斥 |
| | | String frequencyType = task.getFrequencyType().toUpperCase(); // 统一转为大写比较 |
| | | switch (frequencyType) { |
| | | case "YEARLY": |
| | | return convertYearlyToCron(task.getFrequencyDetail()); |
| | | case "DAILY": |
| | | return convertDailyToCron(task.getFrequencyDetail()); |
| | | case "WEEKLY": |
| | |
| | | } |
| | | } |
| | | |
| | | // 每年任务转换(frequencyDetail 格式为 "月,日",默认 07:00 执行) |
| | | private String convertYearlyToCron(String frequencyDetail) { |
| | | String[] parts = validateAndSplit(frequencyDetail, ",", 2); |
| | | int month = validateMonth(parts[0]); |
| | | int day = validateDayOfMonth(parts[1]); |
| | | return String.format("0 0 7 %d %d ? *", day, month); |
| | | } |
| | | |
| | | // 每日任务转换 |
| | | private String convertDailyToCron(String frequencyDetail) { |
| | | LocalTime time = parseTime(frequencyDetail); |