代码提交
This commit is contained in:
parent
6507a7d11f
commit
7ad60c3b16
|
|
@ -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<ArchivedSettingDto> dto) {
|
||||
try {
|
||||
return service.updateArchivedSetting(dto);
|
||||
return AjaxResult.success(service.updateArchivedSetting(dto));
|
||||
} catch (Exception e) {
|
||||
log.error(e.toString(), e);
|
||||
return AjaxResult.error("请求出错了");
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,5 +14,5 @@ public interface ArchivedSettingService {
|
|||
|
||||
AjaxResult addArchivedSetting(ArchivedSettingDto dto);
|
||||
|
||||
AjaxResult updateArchivedSetting(ArchivedSettingDto dto);
|
||||
Integer updateArchivedSetting(List<ArchivedSettingDto> dto);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<ArchivedSettingDto> 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue