添加统计(汇总和各县统计)
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
package com.ruoyi.cms.util;
|
||||
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.time.format.DateTimeParseException;
|
||||
@@ -12,6 +14,8 @@ public class DateValidateUtil {
|
||||
private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||
private static final String ERROR_MSG = "生日格式错误!不为空时必须填写 yyyy-MM-dd 完整格式(如 1991-09-01)";
|
||||
|
||||
private static final String DEFAULT_DATE_FORMAT_TIP = "请使用 yyyy-MM-dd 格式";
|
||||
|
||||
// 改为校验 String 类型
|
||||
public static String validateBirthDate(String birthDateStr) {
|
||||
if (birthDateStr == null || birthDateStr.trim().isEmpty()) {
|
||||
@@ -26,4 +30,73 @@ public class DateValidateUtil {
|
||||
return ERROR_MSG; // 格式错误返回提示
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验开始时间和结束时间的合法性
|
||||
* @param startTime 开始时间字符串
|
||||
* @param endTime 结束时间字符串
|
||||
* @return 校验不通过返回错误信息,校验通过返回null
|
||||
*/
|
||||
public static String validateStartAndEndTime(String startTime, String endTime) {
|
||||
StringBuilder errorMsg = new StringBuilder();
|
||||
|
||||
if (StringUtils.isBlank(startTime)) {
|
||||
errorMsg.append("开始时间不能为空!");
|
||||
} else {
|
||||
if (!isValidDate(startTime)) {
|
||||
errorMsg.append(StringUtils.isNotBlank(errorMsg.toString()) ? " " : "")
|
||||
.append("开始时间格式错误,").append(DEFAULT_DATE_FORMAT_TIP);
|
||||
}
|
||||
}
|
||||
|
||||
if (StringUtils.isBlank(endTime)) {
|
||||
errorMsg.append(StringUtils.isNotBlank(errorMsg.toString()) ? " " : "")
|
||||
.append("结束时间不能为空!");
|
||||
} else {
|
||||
if (!isValidDate(endTime)) {
|
||||
errorMsg.append(StringUtils.isNotBlank(errorMsg.toString()) ? " " : "")
|
||||
.append("结束时间格式错误,").append(DEFAULT_DATE_FORMAT_TIP);
|
||||
} else if (StringUtils.isNotBlank(startTime) && isValidDate(startTime)) {
|
||||
if (!isEndTimeAfterStartTime(startTime, endTime)) {
|
||||
errorMsg.append(StringUtils.isNotBlank(errorMsg.toString()) ? " " : "")
|
||||
.append("结束时间不能早于开始时间!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return errorMsg.length() > 0 ? errorMsg.toString() : null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验单个日期字符串是否符合 yyyy-MM-dd 格式
|
||||
* @param dateStr 日期字符串
|
||||
* @return 合法返回true,否则false
|
||||
*/
|
||||
public static boolean isValidDate(String dateStr) {
|
||||
if (StringUtils.isBlank(dateStr)) {
|
||||
return false;
|
||||
}
|
||||
try {
|
||||
LocalDate.parse(dateStr); // 默认解析 yyyy-MM-dd 格式
|
||||
return true;
|
||||
} catch (DateTimeParseException e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验结束时间是否晚于开始时间(前提:两个时间格式都合法)
|
||||
* @param startTime 开始时间
|
||||
* @param endTime 结束时间
|
||||
* @return 结束时间晚于开始时间返回true,否则false
|
||||
*/
|
||||
public static boolean isEndTimeAfterStartTime(String startTime, String endTime) {
|
||||
try {
|
||||
LocalDate startDate = LocalDate.parse(startTime);
|
||||
LocalDate endDate = LocalDate.parse(endTime);
|
||||
return !endDate.isBefore(startDate); // 结束时间 >= 开始时间 返回true
|
||||
} catch (DateTimeParseException e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user