diff --git a/bonus-admin/src/main/java/com/bonus/web/controller/archive/ArchivedSettingController.java b/bonus-admin/src/main/java/com/bonus/web/controller/archive/ArchivedSettingController.java index 4dc34e7..b8ca6b2 100644 --- a/bonus-admin/src/main/java/com/bonus/web/controller/archive/ArchivedSettingController.java +++ b/bonus-admin/src/main/java/com/bonus/web/controller/archive/ArchivedSettingController.java @@ -60,9 +60,9 @@ public class ArchivedSettingController extends BaseController { @PostMapping("edit") @SysLog(title = "修改归档配置", module = "数据/档案移交->归档配置", businessType = OperaType.UPDATE, details = "修改归档配置", logType = 1) @RequiresPermissions("archived:setting:edit") - public AjaxResult updateArchivedSetting(ArchivedSettingDto dto) { + public AjaxResult updateArchivedSetting(List dto) { try { - return service.updateArchivedSetting(dto); + return AjaxResult.success(service.updateArchivedSetting(dto)); } catch (Exception e) { log.error(e.toString(), e); return AjaxResult.error("请求出错了"); diff --git a/bonus-admin/src/main/java/com/bonus/web/core/config/CronExpressionGenerator.java b/bonus-admin/src/main/java/com/bonus/web/core/config/CronExpressionGenerator.java index 587a9ae..6c7487e 100644 --- a/bonus-admin/src/main/java/com/bonus/web/core/config/CronExpressionGenerator.java +++ b/bonus-admin/src/main/java/com/bonus/web/core/config/CronExpressionGenerator.java @@ -13,8 +13,8 @@ import java.util.stream.Collectors; public class CronExpressionGenerator { - private static final DateTimeFormatter TIME_FORMATTER = DateTimeFormatter.ofPattern("HH:mm:ss"); - private static final DateTimeFormatter DATETIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + private static final DateTimeFormatter TIME_FORMATTER = DateTimeFormatter.ofPattern("HH:mm"); + private static final DateTimeFormatter DATETIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); public static String generateCron(String archivedType, String cycle, String time, String weekOfDay, String monthDay) { if (archivedType == null || time == null || time.trim().isEmpty()) { @@ -24,7 +24,9 @@ public class CronExpressionGenerator { try { if ("2".equals(archivedType)) { // ---- 不定期归档:一次性执行 ---- - LocalDateTime dateTime = LocalDateTime.parse(time.trim(), DATETIME_FORMATTER); + LocalDateTime parsed = LocalDateTime.parse(time.trim(), DATETIME_FORMATTER); + // 再设置秒为 0(即使输入带秒,也统一归零) + LocalDateTime dateTime = parsed.withSecond(0).withNano(0); return String.format("%d %d %d %d %d ? %d", dateTime.getSecond(), dateTime.getMinute(), @@ -37,7 +39,9 @@ public class CronExpressionGenerator { // ---- 定期归档:周期性执行 ---- if (cycle == null) return null; - LocalTime localTime = LocalTime.parse(time.trim(), TIME_FORMATTER); + LocalTime parsed = LocalTime.parse(time.trim(), TIME_FORMATTER); + // 再设置秒为 0(即使输入带秒,也统一归零) + LocalTime localTime = parsed.withSecond(0).withNano(0); int second = localTime.getSecond(); int minute = localTime.getMinute(); int hour = localTime.getHour(); @@ -115,18 +119,18 @@ public class CronExpressionGenerator { public static void main(String[] args) { // 定期归档:精确到秒 System.out.println("【定期归档】"); - System.out.println(generateCron("1", "1", "02:30:15", null, null)); + System.out.println(generateCron("1", "daily", "02:30", null, null)); // 输出:15 30 2 * * ? - System.out.println(generateCron("1", "2", "03:45:30", "1,5", null)); + System.out.println(generateCron("1", "weekly", "03:45", "1,5", null)); // 输出:30 45 3 ? * MON,FRI - System.out.println(generateCron("1", "3", "01:15:00", null, "1,15")); + System.out.println(generateCron("1", "monthly", "01:15", null, "1,15")); // 输出:0 15 1 1,15 * ? // 不定期归档 System.out.println("【不定期归档】"); - System.out.println(generateCron("2", null, "2025-09-15 10:30:45", null, null)); + System.out.println(generateCron("2", null, "2025-09-15 10:30", null, null)); // 输出:45 30 10 15 9 ? 2025 } } diff --git a/bonus-admin/src/main/java/com/bonus/web/service/ArchivedSettingService.java b/bonus-admin/src/main/java/com/bonus/web/service/ArchivedSettingService.java index 545ea47..212ec45 100644 --- a/bonus-admin/src/main/java/com/bonus/web/service/ArchivedSettingService.java +++ b/bonus-admin/src/main/java/com/bonus/web/service/ArchivedSettingService.java @@ -14,5 +14,5 @@ public interface ArchivedSettingService { AjaxResult addArchivedSetting(ArchivedSettingDto dto); - AjaxResult updateArchivedSetting(ArchivedSettingDto dto); + Integer updateArchivedSetting(List dto); } diff --git a/bonus-admin/src/main/java/com/bonus/web/service/impl/ArchivedSettingServiceImpl.java b/bonus-admin/src/main/java/com/bonus/web/service/impl/ArchivedSettingServiceImpl.java index b2f9b84..e7e00f6 100644 --- a/bonus-admin/src/main/java/com/bonus/web/service/impl/ArchivedSettingServiceImpl.java +++ b/bonus-admin/src/main/java/com/bonus/web/service/impl/ArchivedSettingServiceImpl.java @@ -44,16 +44,16 @@ public class ArchivedSettingServiceImpl implements ArchivedSettingService { } @Override - public AjaxResult updateArchivedSetting(ArchivedSettingDto dto) { - String cronStr = CronExpressionGenerator.generateCron(dto.getArchivedType(), dto.getCycle(), dto.getTime(), dto.getWeekOfDay(), dto.getMonthDay()); - dto.setCronStr(cronStr); - Integer i = archivedSettingMapper.updateArchivedSetting(dto); - archivedSettingMapper.updatecronExpression(dto); - if (i > 0) { - return AjaxResult.success("修改成功"); - } else { - return AjaxResult.error("修改失败"); + public Integer updateArchivedSetting(List dtos) { + int num = 0; + for (ArchivedSettingDto dto : dtos) { + String cronStr = CronExpressionGenerator.generateCron(dto.getArchivedType(), dto.getCycle(), dto.getTime(), dto.getWeekOfDay(), dto.getMonthDay()); + dto.setCronStr(cronStr); + Integer i = archivedSettingMapper.updateArchivedSetting(dto); + num += i; + archivedSettingMapper.updatecronExpression(dto); } + return num; } }