[重大更新] 应广大用户要求 将Date换成LocalDateTime

This commit is contained in:
疯狂的狮子Li
2026-04-03 10:59:04 +08:00
parent e20e31b5f8
commit b9489d7406
47 changed files with 170 additions and 112 deletions

View File

@@ -32,6 +32,7 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.Duration; import java.time.Duration;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import java.util.function.Supplier; import java.util.function.Supplier;
@@ -178,7 +179,7 @@ public class SysLoginService {
SysUser sysUser = new SysUser(); SysUser sysUser = new SysUser();
sysUser.setUserId(userId); sysUser.setUserId(userId);
sysUser.setLoginIp(ip); sysUser.setLoginIp(ip);
sysUser.setLoginDate(DateUtils.getNowDate()); sysUser.setLoginDate(LocalDateTime.now());
sysUser.setUpdateBy(userId); sysUser.setUpdateBy(userId);
DataPermissionHelper.ignore(() -> userMapper.updateById(sysUser)); DataPermissionHelper.ignore(() -> userMapper.updateById(sysUser));
} }

View File

@@ -7,7 +7,7 @@ import lombok.NoArgsConstructor;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Collection; import java.util.Collection;
import java.util.Date; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -57,7 +57,7 @@ public class TaskAssigneeDTO implements Serializable {
Function<T, String> handlerCode, Function<T, String> handlerCode,
Function<T, String> handlerName, Function<T, String> handlerName,
Function<T, String> groupName, Function<T, String> groupName,
Function<T, Date> createTimeMapper) { Function<T, LocalDateTime> createTimeMapper) {
return sourceCollection.stream() return sourceCollection.stream()
.map(item -> new TaskHandler( .map(item -> new TaskHandler(
storageId.apply(item), storageId.apply(item),
@@ -99,7 +99,7 @@ public class TaskAssigneeDTO implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private Date createTime; private LocalDateTime createTime;
} }
} }

View File

@@ -5,7 +5,7 @@ import lombok.NoArgsConstructor;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.time.LocalDateTime;
/** /**
@@ -68,6 +68,6 @@ public class UserDTO implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private Date createTime; private LocalDateTime createTime;
} }

View File

@@ -10,6 +10,7 @@ import java.lang.management.ManagementFactory;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.*; import java.time.*;
import java.time.format.DateTimeFormatter;
import java.util.Date; import java.util.Date;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@@ -122,6 +123,16 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
return parseDateToStr(FormatsType.YYYY_MM_DD_HH_MM_SS, date); return parseDateToStr(FormatsType.YYYY_MM_DD_HH_MM_SS, date);
} }
/**
* 将 LocalDateTime 格式化为 YYYY-MM-DD HH:MM:SS 格式的字符串
*
* @param dateTime 要格式化的 LocalDateTime 对象
* @return 格式化后的日期时间字符串
*/
public static String formatDateTime(final LocalDateTime dateTime) {
return dateTime.format(DateTimeFormatter.ofPattern(FormatsType.YYYY_MM_DD_HH_MM_SS.getTimeFormat()));
}
/** /**
* 将指定日期按照指定格式进行格式化 * 将指定日期按照指定格式进行格式化
* *
@@ -242,7 +253,36 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
if (sec > 0) { if (sec > 0) {
result.append(String.format("%d秒", sec)); result.append(String.format("%d秒", sec));
} }
return result.length() > 0 ? result.toString().trim() : "0秒"; return !result.isEmpty() ? result.toString().trim() : "0秒";
}
/**
* 计算两个 LocalDateTime 时间点的差值天、小时、分钟、秒当值为0时不显示该单位
*
* @param endDate 结束时间
* @param nowDate 当前时间
* @return 时间差字符串,格式为 "x天 x小时 x分钟 x秒",若为 0 则不显示
*/
public static String getTimeDifference(LocalDateTime endDate, LocalDateTime nowDate) {
long diffInMillis = java.time.Duration.between(nowDate, endDate).toMillis();
long day = TimeUnit.MILLISECONDS.toDays(diffInMillis);
long hour = TimeUnit.MILLISECONDS.toHours(diffInMillis) % 24;
long min = TimeUnit.MILLISECONDS.toMinutes(diffInMillis) % 60;
long sec = TimeUnit.MILLISECONDS.toSeconds(diffInMillis) % 60;
StringBuilder result = new StringBuilder();
if (day > 0) {
result.append(String.format("%d天 ", day));
}
if (hour > 0) {
result.append(String.format("%d小时 ", hour));
}
if (min > 0) {
result.append(String.format("%d分钟 ", min));
}
if (sec > 0) {
result.append(String.format("%d秒", sec));
}
return !result.isEmpty() ? result.toString().trim() : "0秒";
} }
/** /**

View File

@@ -1,6 +1,7 @@
package org.dromara.common.core.utils; package org.dromara.common.core.utils;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.extra.servlet.JakartaServletUtil; import cn.hutool.extra.servlet.JakartaServletUtil;
import cn.hutool.http.HttpStatus; import cn.hutool.http.HttpStatus;
import jakarta.servlet.ServletRequest; import jakarta.servlet.ServletRequest;
@@ -266,6 +267,21 @@ public class ServletUtils extends JakartaServletUtil {
return getClientIP(getRequest()); return getClientIP(getRequest());
} }
/**
* 获取客户端 IP 地址
*
* @return 客户端 IP 地址
*/
public static String getClientIP(HttpServletRequest request, String... otherHeaderNames) {
String[] headers = {"X-Forwarded-For", "X-Real-IP", "Proxy-Client-IP", "WL-Proxy-Client-IP", "HTTP_CLIENT_IP", "HTTP_X_FORWARDED_FOR"};
if (ArrayUtil.isNotEmpty(otherHeaderNames)) {
headers = ArrayUtil.addAll(otherHeaderNames, headers);
}
String ip = getClientIPByHeader(request, headers);
return StringUtils.strip(ip, "[]");
}
/** /**
* 对内容进行 URL 编码 * 对内容进行 URL 编码
* *

View File

@@ -4,7 +4,7 @@ import lombok.Data;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.time.LocalDateTime;
/** /**
* 操作日志事件 * 操作日志事件
@@ -101,7 +101,7 @@ public class OperLogEvent implements Serializable {
/** /**
* 操作时间 * 操作时间
*/ */
private Date operTime; private LocalDateTime operTime;
/** /**
* 消耗时间 * 消耗时间

View File

@@ -6,7 +6,7 @@ import lombok.Data;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.time.LocalDateTime;
/** /**
* Entity基类 * Entity基类
@@ -35,7 +35,7 @@ public class BaseEntity implements Serializable {
* 创建时间 * 创建时间
*/ */
@TableField(fill = FieldFill.INSERT) @TableField(fill = FieldFill.INSERT)
private Date createTime; private LocalDateTime createTime;
/** /**
* 更新者 * 更新者
@@ -47,6 +47,6 @@ public class BaseEntity implements Serializable {
* 更新时间 * 更新时间
*/ */
@TableField(fill = FieldFill.INSERT_UPDATE) @TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime; private LocalDateTime updateTime;
} }

View File

@@ -11,7 +11,7 @@ import org.dromara.common.core.utils.ObjectUtils;
import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.satoken.utils.LoginHelper;
import java.util.Date; import java.time.LocalDateTime;
/** /**
* MP注入处理器 * MP注入处理器
@@ -37,7 +37,7 @@ public class InjectionMetaObjectHandler implements MetaObjectHandler {
try { try {
if (ObjectUtil.isNotNull(metaObject) && metaObject.getOriginalObject() instanceof BaseEntity baseEntity) { if (ObjectUtil.isNotNull(metaObject) && metaObject.getOriginalObject() instanceof BaseEntity baseEntity) {
// 获取当前时间作为创建时间和更新时间,如果创建时间不为空,则使用创建时间,否则使用当前时间 // 获取当前时间作为创建时间和更新时间,如果创建时间不为空,则使用创建时间,否则使用当前时间
Date current = ObjectUtils.notNull(baseEntity.getCreateTime(), new Date()); LocalDateTime current = ObjectUtils.notNull(baseEntity.getCreateTime(), LocalDateTime.now());
baseEntity.setCreateTime(current); baseEntity.setCreateTime(current);
baseEntity.setUpdateTime(current); baseEntity.setUpdateTime(current);
@@ -58,9 +58,9 @@ public class InjectionMetaObjectHandler implements MetaObjectHandler {
} }
} }
} else { } else {
Date date = new Date(); LocalDateTime date = LocalDateTime.now();
this.strictInsertFill(metaObject, "createTime", Date.class, date); this.strictInsertFill(metaObject, "createTime", LocalDateTime.class, date);
this.strictInsertFill(metaObject, "updateTime", Date.class, date); this.strictInsertFill(metaObject, "updateTime", LocalDateTime.class, date);
} }
} catch (Exception e) { } catch (Exception e) {
throw new ServiceException("自动注入异常 => " + e.getMessage(), HttpStatus.HTTP_INTERNAL_ERROR); throw new ServiceException("自动注入异常 => " + e.getMessage(), HttpStatus.HTTP_INTERNAL_ERROR);
@@ -77,7 +77,7 @@ public class InjectionMetaObjectHandler implements MetaObjectHandler {
try { try {
if (ObjectUtil.isNotNull(metaObject) && metaObject.getOriginalObject() instanceof BaseEntity baseEntity) { if (ObjectUtil.isNotNull(metaObject) && metaObject.getOriginalObject() instanceof BaseEntity baseEntity) {
// 获取当前时间作为更新时间,无论原始对象中的更新时间是否为空都填充 // 获取当前时间作为更新时间,无论原始对象中的更新时间是否为空都填充
Date current = new Date(); LocalDateTime current = LocalDateTime.now();
baseEntity.setUpdateTime(current); baseEntity.setUpdateTime(current);
// 获取当前登录用户的ID并填充更新人信息 // 获取当前登录用户的ID并填充更新人信息
@@ -85,7 +85,7 @@ public class InjectionMetaObjectHandler implements MetaObjectHandler {
Long userId = ObjectUtil.isNotNull(loginUser) ? loginUser.getUserId() : DEFAULT_USER_ID; Long userId = ObjectUtil.isNotNull(loginUser) ? loginUser.getUserId() : DEFAULT_USER_ID;
baseEntity.setUpdateBy(userId); baseEntity.setUpdateBy(userId);
} else { } else {
this.strictUpdateFill(metaObject, "updateTime", Date.class, new Date()); this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now());
} }
} catch (Exception e) { } catch (Exception e) {
throw new ServiceException("自动注入异常 => " + e.getMessage(), HttpStatus.HTTP_INTERNAL_ERROR); throw new ServiceException("自动注入异常 => " + e.getMessage(), HttpStatus.HTTP_INTERNAL_ERROR);

View File

@@ -13,7 +13,7 @@ import lombok.Data;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.time.LocalDateTime;
/** /**
@@ -77,7 +77,7 @@ public class TestDemoVo implements Serializable {
@ExcelRequired @ExcelRequired
@DateTimeFormat("yyyy-MM-dd HH:mm:ss") @DateTimeFormat("yyyy-MM-dd HH:mm:ss")
@ExcelProperty(value = "创建时间") @ExcelProperty(value = "创建时间")
private Date createTime; private LocalDateTime createTime;
/** /**
* 创建人 * 创建人
@@ -96,7 +96,7 @@ public class TestDemoVo implements Serializable {
* 更新时间 * 更新时间
*/ */
@ExcelProperty(value = "更新时间") @ExcelProperty(value = "更新时间")
private Date updateTime; private LocalDateTime updateTime;
/** /**
* 更新人 * 更新人

View File

@@ -8,7 +8,7 @@ import lombok.Data;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.time.LocalDateTime;
/** /**
@@ -58,7 +58,7 @@ public class TestTreeVo implements Serializable {
* 创建时间 * 创建时间
*/ */
@ExcelProperty(value = "创建时间") @ExcelProperty(value = "创建时间")
private Date createTime; private LocalDateTime createTime;
} }

View File

@@ -1,6 +1,7 @@
package org.dromara.gen.service; package org.dromara.gen.service;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.io.IoUtil; import cn.hutool.core.io.IoUtil;
import cn.hutool.core.lang.Dict; import cn.hutool.core.lang.Dict;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
@@ -169,8 +170,9 @@ public class GenTableServiceImpl implements IGenTableService {
gen.setTableName(x.getName()); gen.setTableName(x.getName());
gen.setTableComment(x.getComment()); gen.setTableComment(x.getComment());
// postgresql的表元数据没有创建时间这个东西(好奇葩) 只能new Date代替 // postgresql的表元数据没有创建时间这个东西(好奇葩) 只能new Date代替
gen.setCreateTime(ObjectUtil.defaultIfNull(x.getCreateTime(), new Date())); Date createDate = ObjectUtil.defaultIfNull(x.getCreateTime(), new Date());
gen.setUpdateTime(x.getUpdateTime()); gen.setCreateTime(LocalDateTimeUtil.of(createDate));
gen.setUpdateTime(x.getUpdateTime() != null ? LocalDateTimeUtil.of(x.getUpdateTime()) : null);
return gen; return gen;
}).sorted(Comparator.comparing(GenTable::getCreateTime).reversed()) }).sorted(Comparator.comparing(GenTable::getCreateTime).reversed())
.toList(); .toList();
@@ -212,8 +214,8 @@ public class GenTableServiceImpl implements IGenTableService {
gen.setDataName(dataName); gen.setDataName(dataName);
gen.setTableName(x.getName()); gen.setTableName(x.getName());
gen.setTableComment(x.getComment()); gen.setTableComment(x.getComment());
gen.setCreateTime(x.getCreateTime()); gen.setCreateTime(LocalDateTimeUtil.of(x.getCreateTime()));
gen.setUpdateTime(x.getUpdateTime()); gen.setUpdateTime(LocalDateTimeUtil.of(x.getUpdateTime()));
return gen; return gen;
}).toList(); }).toList();
} }

View File

@@ -6,7 +6,7 @@ import lombok.Data;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.time.LocalDateTime;
/** /**
* 系统访问记录表 sys_login_info * 系统访问记录表 sys_login_info
@@ -75,6 +75,6 @@ public class SysLoginInfo implements Serializable {
/** /**
* 访问时间 * 访问时间
*/ */
private Date loginTime; private LocalDateTime loginTime;
} }

View File

@@ -6,7 +6,7 @@ import lombok.Data;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.time.LocalDateTime;
/** /**
* 操作日志记录表 oper_log * 操作日志记录表 oper_log
@@ -100,7 +100,7 @@ public class SysOperLog implements Serializable {
/** /**
* 操作时间 * 操作时间
*/ */
private Date operTime; private LocalDateTime operTime;
/** /**
* 消耗时间 * 消耗时间

View File

@@ -7,7 +7,7 @@ import lombok.NoArgsConstructor;
import org.dromara.common.core.constant.SystemConstants; import org.dromara.common.core.constant.SystemConstants;
import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.mybatis.core.domain.BaseEntity;
import java.util.Date; import java.time.LocalDateTime;
/** /**
* 用户对象 sys_user * 用户对象 sys_user
@@ -96,7 +96,7 @@ public class SysUser extends BaseEntity {
/** /**
* 最后登录时间 * 最后登录时间
*/ */
private Date loginDate; private LocalDateTime loginDate;
/** /**
* 备注 * 备注

View File

@@ -6,7 +6,7 @@ import org.dromara.system.domain.SysLoginInfo;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.time.LocalDateTime;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@@ -76,7 +76,7 @@ public class SysLoginInfoBo implements Serializable {
/** /**
* 访问时间 * 访问时间
*/ */
private Date loginTime; private LocalDateTime loginTime;
/** /**
* 请求参数 * 请求参数

View File

@@ -8,7 +8,7 @@ import org.dromara.system.domain.SysOperLog;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.time.LocalDateTime;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@@ -112,7 +112,7 @@ public class SysOperLogBo implements Serializable {
/** /**
* 操作时间 * 操作时间
*/ */
private Date operTime; private LocalDateTime operTime;
/** /**
* 消耗时间 * 消耗时间

View File

@@ -6,7 +6,7 @@ import org.dromara.common.translation.constant.TransConstant;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.time.LocalDateTime;
/** /**
@@ -74,7 +74,7 @@ public class ProfileUserVo implements Serializable {
/** /**
* 最后登录时间 * 最后登录时间
*/ */
private Date loginDate; private LocalDateTime loginDate;
/** /**
* 部门名 * 部门名

View File

@@ -10,7 +10,7 @@ import org.dromara.system.domain.SysConfig;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.time.LocalDateTime;
/** /**
@@ -67,6 +67,6 @@ public class SysConfigVo implements Serializable {
* 创建时间 * 创建时间
*/ */
@ExcelProperty(value = "创建时间") @ExcelProperty(value = "创建时间")
private Date createTime; private LocalDateTime createTime;
} }

View File

@@ -11,7 +11,7 @@ import org.dromara.system.domain.SysDept;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
/** /**
@@ -99,7 +99,7 @@ public class SysDeptVo implements Serializable {
* 创建时间 * 创建时间
*/ */
@ExcelProperty(value = "创建时间") @ExcelProperty(value = "创建时间")
private Date createTime; private LocalDateTime createTime;
/** /**
* 子部门 * 子部门

View File

@@ -10,7 +10,7 @@ import org.dromara.system.domain.SysDictData;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.time.LocalDateTime;
/** /**
@@ -83,6 +83,6 @@ public class SysDictDataVo implements Serializable {
* 创建时间 * 创建时间
*/ */
@ExcelProperty(value = "创建时间") @ExcelProperty(value = "创建时间")
private Date createTime; private LocalDateTime createTime;
} }

View File

@@ -8,7 +8,7 @@ import org.dromara.system.domain.SysDictType;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.time.LocalDateTime;
/** /**
@@ -52,6 +52,6 @@ public class SysDictTypeVo implements Serializable {
* 创建时间 * 创建时间
*/ */
@ExcelProperty(value = "创建时间") @ExcelProperty(value = "创建时间")
private Date createTime; private LocalDateTime createTime;
} }

View File

@@ -10,7 +10,7 @@ import org.dromara.system.domain.SysLoginInfo;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.time.LocalDateTime;
@@ -95,7 +95,7 @@ public class SysLoginInfoVo implements Serializable {
* 访问时间 * 访问时间
*/ */
@ExcelProperty(value = "访问时间") @ExcelProperty(value = "访问时间")
private Date loginTime; private LocalDateTime loginTime;
} }

View File

@@ -7,7 +7,7 @@ import org.dromara.system.domain.SysMenu;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
@@ -106,7 +106,7 @@ public class SysMenuVo implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private Date createTime; private LocalDateTime createTime;
/** /**
* 子菜单 * 子菜单

View File

@@ -6,7 +6,7 @@ import org.dromara.system.domain.SysMessage;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.time.LocalDateTime;
/** /**
* 消息记录视图对象 sys_message * 消息记录视图对象 sys_message
@@ -68,5 +68,5 @@ public class SysMessageVo implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private Date createTime; private LocalDateTime createTime;
} }

View File

@@ -8,7 +8,7 @@ import org.dromara.system.domain.SysNotice;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.time.LocalDateTime;
@@ -68,6 +68,6 @@ public class SysNoticeVo implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private Date createTime; private LocalDateTime createTime;
} }

View File

@@ -10,7 +10,7 @@ import org.dromara.system.domain.SysOperLog;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.time.LocalDateTime;
/** /**
@@ -129,7 +129,7 @@ public class SysOperLogVo implements Serializable {
* 操作时间 * 操作时间
*/ */
@ExcelProperty(value = "操作时间") @ExcelProperty(value = "操作时间")
private Date operTime; private LocalDateTime operTime;
/** /**
* 消耗时间 * 消耗时间

View File

@@ -8,7 +8,7 @@ import org.dromara.system.domain.SysOss;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.time.LocalDateTime;
/** /**
* OSS对象存储视图对象 sys_oss * OSS对象存储视图对象 sys_oss
@@ -55,7 +55,7 @@ public class SysOssVo implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private Date createTime; private LocalDateTime createTime;
/** /**
* 上传人 * 上传人

View File

@@ -12,7 +12,7 @@ import org.dromara.system.domain.SysPost;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.time.LocalDateTime;
/** /**
* 岗位信息视图对象 sys_post * 岗位信息视图对象 sys_post
@@ -80,7 +80,7 @@ public class SysPostVo implements Serializable {
* 创建时间 * 创建时间
*/ */
@ExcelProperty(value = "创建时间") @ExcelProperty(value = "创建时间")
private Date createTime; private LocalDateTime createTime;
/** /**
* 部门名 * 部门名

View File

@@ -11,7 +11,7 @@ import org.dromara.system.domain.SysRole;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.time.LocalDateTime;
/** /**
* 角色信息视图对象 sys_role * 角色信息视图对象 sys_role
@@ -86,7 +86,7 @@ public class SysRoleVo implements Serializable {
* 创建时间 * 创建时间
*/ */
@ExcelProperty(value = "创建时间") @ExcelProperty(value = "创建时间")
private Date createTime; private LocalDateTime createTime;
/** /**
* 用户是否存在此角色标识 默认不存在 * 用户是否存在此角色标识 默认不存在

View File

@@ -6,7 +6,7 @@ import org.dromara.system.domain.SysSocial;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.time.LocalDateTime;
/** /**
@@ -135,5 +135,5 @@ public class SysSocialVo implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private Date createTime; private LocalDateTime createTime;
} }

View File

@@ -9,7 +9,7 @@ import org.dromara.system.listener.DeptExcelConverter;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.time.LocalDateTime;
/** /**
* 用户对象导出VO * 用户对象导出VO
@@ -83,7 +83,7 @@ public class SysUserExportVo implements Serializable {
* 最后登录时间 * 最后登录时间
*/ */
@ExcelProperty(value = "最后登录时间") @ExcelProperty(value = "最后登录时间")
private Date loginDate; private LocalDateTime loginDate;
/** /**
* 负责人 * 负责人

View File

@@ -12,7 +12,7 @@ import org.dromara.system.domain.SysUser;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
@@ -96,7 +96,7 @@ public class SysUserVo implements Serializable {
/** /**
* 最后登录时间 * 最后登录时间
*/ */
private Date loginDate; private LocalDateTime loginDate;
/** /**
* 备注 * 备注
@@ -106,7 +106,7 @@ public class SysUserVo implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private Date createTime; private LocalDateTime createTime;
/** /**
* 部门名 * 部门名

View File

@@ -28,8 +28,8 @@ import org.springframework.context.event.EventListener;
import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@@ -56,8 +56,8 @@ public class SysLoginInfoServiceImpl implements ISysLoginInfoService {
@EventListener @EventListener
public void recordLoginInfo(LoginInfoEvent loginInfoEvent) { public void recordLoginInfo(LoginInfoEvent loginInfoEvent) {
HttpServletRequest request = loginInfoEvent.getRequest(); HttpServletRequest request = loginInfoEvent.getRequest();
final UserAgent userAgent = UserAgentUtil.parse(request.getHeader("User-Agent")); UserAgent userAgent = UserAgentUtil.parse(request.getHeader("User-Agent"));
final String ip = ServletUtils.getClientIP(request); String ip = ServletUtils.getClientIP(request);
// 客户端信息 // 客户端信息
String clientId = request.getHeader(LoginHelper.CLIENT_KEY); String clientId = request.getHeader(LoginHelper.CLIENT_KEY);
SysClientVo client = null; SysClientVo client = null;
@@ -144,7 +144,7 @@ public class SysLoginInfoServiceImpl implements ISysLoginInfoService {
@Override @Override
public void insertLoginInfo(SysLoginInfoBo bo) { public void insertLoginInfo(SysLoginInfoBo bo) {
SysLoginInfo loginInfo = MapstructUtils.convert(bo, SysLoginInfo.class); SysLoginInfo loginInfo = MapstructUtils.convert(bo, SysLoginInfo.class);
loginInfo.setLoginTime(new Date()); loginInfo.setLoginTime(LocalDateTime.now());
baseMapper.insert(loginInfo); baseMapper.insert(loginInfo);
} }

View File

@@ -23,10 +23,9 @@ import org.dromara.system.mapper.SysMessageMapper;
import org.dromara.system.service.ISysMessageService; import org.dromara.system.service.ISysMessageService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Date; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.TimeUnit;
/** /**
* 消息记录服务实现 * 消息记录服务实现
@@ -212,7 +211,7 @@ public class SysMessageServiceImpl implements ISysMessageService, MessageService
// 分类匹配 // 分类匹配
lqw.eq(SysMessage::getCategory, category); lqw.eq(SysMessage::getCategory, category);
// 仅查询30天内消息 // 仅查询30天内消息
lqw.ge(SysMessage::getCreateTime, new Date(System.currentTimeMillis() - TimeUnit.DAYS.toMillis(BOX_DAYS))); lqw.ge(SysMessage::getCreateTime, LocalDateTime.now().minusDays(BOX_DAYS));
// 全局消息 或 当前用户在接收人范围内 // 全局消息 或 当前用户在接收人范围内
lqw.and(wrapper -> wrapper.eq(SysMessage::getSendUserIds, GLOBAL_USER_IDS) lqw.and(wrapper -> wrapper.eq(SysMessage::getSendUserIds, GLOBAL_USER_IDS)
.or() .or()

View File

@@ -19,8 +19,8 @@ import org.springframework.context.event.EventListener;
import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@@ -99,7 +99,7 @@ public class SysOperLogServiceImpl implements ISysOperLogService {
@Override @Override
public void insertOperlog(SysOperLogBo bo) { public void insertOperlog(SysOperLogBo bo) {
SysOperLog operLog = MapstructUtils.convert(bo, SysOperLog.class); SysOperLog operLog = MapstructUtils.convert(bo, SysOperLog.class);
operLog.setOperTime(new Date()); operLog.setOperTime(LocalDateTime.now());
baseMapper.insert(operLog); baseMapper.insert(operLog);
} }

View File

@@ -7,7 +7,7 @@ import lombok.EqualsAndHashCode;
import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.mybatis.core.domain.BaseEntity;
import java.io.Serial; import java.io.Serial;
import java.util.Date; import java.time.LocalDateTime;
/** /**
* 请假对象 test_leave * 请假对象 test_leave
@@ -42,12 +42,12 @@ public class TestLeave extends BaseEntity {
/** /**
* 开始时间 * 开始时间
*/ */
private Date startDate; private LocalDateTime startDate;
/** /**
* 结束时间 * 结束时间
*/ */
private Date endDate; private LocalDateTime endDate;
/** /**
* 请假天数 * 请假天数

View File

@@ -12,7 +12,7 @@ import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.time.LocalDateTime;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@@ -57,7 +57,7 @@ public class TestLeaveBo implements Serializable {
@NotNull(message = "开始时间不能为空", groups = {AddGroup.class, EditGroup.class}) @NotNull(message = "开始时间不能为空", groups = {AddGroup.class, EditGroup.class})
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd")
private Date startDate; private LocalDateTime startDate;
/** /**
* 结束时间 * 结束时间
@@ -65,7 +65,7 @@ public class TestLeaveBo implements Serializable {
@NotNull(message = "结束时间不能为空", groups = {AddGroup.class, EditGroup.class}) @NotNull(message = "结束时间不能为空", groups = {AddGroup.class, EditGroup.class})
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd")
private Date endDate; private LocalDateTime endDate;
/** /**
* 请假天数 * 请假天数

View File

@@ -10,7 +10,7 @@ import org.dromara.workflow.domain.FlowCategory;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.time.LocalDateTime;
/** /**
* 流程分类视图对象 wf_category * 流程分类视图对象 wf_category
@@ -64,6 +64,6 @@ public class FlowCategoryVo implements Serializable {
* 创建时间 * 创建时间
*/ */
@ExcelProperty(value = "创建时间") @ExcelProperty(value = "创建时间")
private Date createTime; private LocalDateTime createTime;
} }

View File

@@ -6,7 +6,7 @@ import org.dromara.workflow.common.constant.FlowConstant;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.time.LocalDateTime;
/** /**
* 流程定义视图 * 流程定义视图
@@ -24,12 +24,12 @@ public class FlowDefinitionVo implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private Date createTime; private LocalDateTime createTime;
/** /**
* 更新时间 * 更新时间
*/ */
private Date updateTime; private LocalDateTime updateTime;
/** /**
* 删除标记 * 删除标记

View File

@@ -9,7 +9,7 @@ import org.dromara.workflow.common.constant.FlowConstant;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
/** /**
@@ -28,12 +28,12 @@ public class FlowHisTaskVo implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private Date createTime; private LocalDateTime createTime;
/** /**
* 更新时间 * 更新时间
*/ */
private Date updateTime; private LocalDateTime updateTime;
/** /**
* 删除标记 * 删除标记
@@ -215,7 +215,7 @@ public class FlowHisTaskVo implements Serializable {
* *
* @param createTime 创建时间 * @param createTime 创建时间
*/ */
public void setCreateTime(Date createTime) { public void setCreateTime(LocalDateTime createTime) {
this.createTime = createTime; this.createTime = createTime;
updateRunDuration(); updateRunDuration();
} }
@@ -225,7 +225,7 @@ public class FlowHisTaskVo implements Serializable {
* *
* @param updateTime 更新时间 * @param updateTime 更新时间
*/ */
public void setUpdateTime(Date updateTime) { public void setUpdateTime(LocalDateTime updateTime) {
this.updateTime = updateTime; this.updateTime = updateTime;
updateRunDuration(); updateRunDuration();
} }

View File

@@ -5,7 +5,7 @@ import org.dromara.common.translation.annotation.Translation;
import org.dromara.common.translation.constant.TransConstant; import org.dromara.common.translation.constant.TransConstant;
import org.dromara.workflow.common.constant.FlowConstant; import org.dromara.workflow.common.constant.FlowConstant;
import java.util.Date; import java.time.LocalDateTime;
/** /**
* 流程实例视图对象。 * 流程实例视图对象。
@@ -23,12 +23,12 @@ public class FlowInstanceVo {
/** /**
* 创建时间 * 创建时间
*/ */
private Date createTime; private LocalDateTime createTime;
/** /**
* 更新时间 * 更新时间
*/ */
private Date updateTime; private LocalDateTime updateTime;
/** /**
* 删除标记 * 删除标记

View File

@@ -10,7 +10,7 @@ import org.dromara.workflow.domain.FlowSpel;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.time.LocalDateTime;
/** /**
@@ -74,6 +74,6 @@ public class FlowSpelVo implements Serializable {
* 创建时间 * 创建时间
*/ */
@ExcelProperty(value = "创建时间") @ExcelProperty(value = "创建时间")
private Date createTime; private LocalDateTime createTime;
} }

View File

@@ -9,7 +9,7 @@ import org.dromara.workflow.common.constant.FlowConstant;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@@ -32,12 +32,12 @@ public class FlowTaskVo implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private Date createTime; private LocalDateTime createTime;
/** /**
* 更新时间 * 更新时间
*/ */
private Date updateTime; private LocalDateTime updateTime;
/** /**
* 删除标记 * 删除标记

View File

@@ -8,7 +8,7 @@ import org.dromara.workflow.domain.TestLeave;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.time.LocalDateTime;
/** /**
@@ -47,13 +47,13 @@ public class TestLeaveVo implements Serializable {
* 开始时间 * 开始时间
*/ */
@ExcelProperty(value = "开始时间") @ExcelProperty(value = "开始时间")
private Date startDate; private LocalDateTime startDate;
/** /**
* 结束时间 * 结束时间
*/ */
@ExcelProperty(value = "结束时间") @ExcelProperty(value = "结束时间")
private Date endDate; private LocalDateTime endDate;
/** /**
* 请假天数 * 请假天数

View File

@@ -12,7 +12,6 @@ import org.dromara.common.core.domain.dto.DeptDTO;
import org.dromara.common.core.domain.dto.TaskAssigneeDTO; import org.dromara.common.core.domain.dto.TaskAssigneeDTO;
import org.dromara.common.core.domain.dto.UserDTO; import org.dromara.common.core.domain.dto.UserDTO;
import org.dromara.common.core.domain.model.TaskAssigneeBody; import org.dromara.common.core.domain.model.TaskAssigneeBody;
import org.dromara.common.core.enums.FormatsType;
import org.dromara.common.core.service.*; import org.dromara.common.core.service.*;
import org.dromara.common.core.utils.DateUtils; import org.dromara.common.core.utils.DateUtils;
import org.dromara.common.core.utils.StreamUtils; import org.dromara.common.core.utils.StreamUtils;
@@ -191,7 +190,7 @@ public class FlwTaskAssigneeServiceImpl implements IFlwTaskAssigneeService, Hand
.setHandlerCode(assignee -> StringUtils.blankToDefault(assignee.getHandlerCode(), "")) .setHandlerCode(assignee -> StringUtils.blankToDefault(assignee.getHandlerCode(), ""))
.setHandlerName(assignee -> StringUtils.blankToDefault(assignee.getHandlerName(), "")) .setHandlerName(assignee -> StringUtils.blankToDefault(assignee.getHandlerName(), ""))
.setGroupName(assignee -> this.getGroupName(type, assignee.getGroupName())) .setGroupName(assignee -> this.getGroupName(type, assignee.getGroupName()))
.setCreateTime(assignee -> DateUtils.parseDateToStr(FormatsType.YYYY_MM_DD_HH_MM_SS, assignee.getCreateTime())); .setCreateTime(assignee -> DateUtils.formatDateTime(assignee.getCreateTime()));
} }
/** /**

View File

@@ -17,6 +17,7 @@ import org.dromara.common.core.domain.dto.UserDTO;
import org.dromara.common.core.enums.BusinessStatusEnum; import org.dromara.common.core.enums.BusinessStatusEnum;
import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.service.UserService; import org.dromara.common.core.service.UserService;
import org.dromara.common.core.utils.DateUtils;
import org.dromara.common.core.utils.StreamUtils; import org.dromara.common.core.utils.StreamUtils;
import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.core.utils.ValidatorUtils; import org.dromara.common.core.utils.ValidatorUtils;

View File

@@ -1,7 +1,7 @@
package org.dromara.workflow.service.impl; package org.dromara.workflow.service.impl;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateUtil; import java.time.temporal.ChronoUnit;
import cn.hutool.core.map.MapUtil; import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
@@ -126,7 +126,7 @@ public class TestLeaveServiceImpl implements ITestLeaveService {
*/ */
@Override @Override
public TestLeaveVo insertByBo(TestLeaveBo bo) { public TestLeaveVo insertByBo(TestLeaveBo bo) {
long day = DateUtil.betweenDay(bo.getStartDate(), bo.getEndDate(), true); long day = ChronoUnit.DAYS.between(bo.getStartDate(), bo.getEndDate());
// 截止日期也算一天 // 截止日期也算一天
bo.setLeaveDays((int) day + 1); bo.setLeaveDays((int) day + 1);
bo.setApplyCode(System.currentTimeMillis() + StrUtil.EMPTY); bo.setApplyCode(System.currentTimeMillis() + StrUtil.EMPTY);
@@ -150,7 +150,7 @@ public class TestLeaveServiceImpl implements ITestLeaveService {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public TestLeaveVo submitAndFlowStart(TestLeaveBo bo) { public TestLeaveVo submitAndFlowStart(TestLeaveBo bo) {
long day = DateUtil.betweenDay(bo.getStartDate(), bo.getEndDate(), true); long day = ChronoUnit.DAYS.between(bo.getStartDate(), bo.getEndDate());
// 截止日期也算一天 // 截止日期也算一天
bo.setLeaveDays((int) day + 1); bo.setLeaveDays((int) day + 1);
if (ObjectUtil.isNull(bo.getId())) { if (ObjectUtil.isNull(bo.getId())) {