From 0c11ee7a39defc0d1f0a032d6f688748b9629ecf Mon Sep 17 00:00:00 2001 From: carey Date: Wed, 4 Jun 2025 10:15:08 +0800 Subject: [PATCH] =?UTF-8?q?update:=E5=BC=83=E7=94=A8java.util.Date?= =?UTF-8?q?=E6=94=B9=E4=B8=BAjava8=20java.time.Instant?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/web/service/SysLoginService.java | 6 +- .../core/domain/dto/TaskAssigneeDTO.java | 6 +- .../common/core/domain/dto/UserDTO.java | 4 +- .../dromara/common/core/utils/Date8Utils.java | 75 +++++++++++++++++++ .../dromara/common/core/utils/DateUtils.java | 1 + .../common/json/config/JacksonConfig.java | 6 +- .../handler/CustomInstantDeserializer.java | 41 ++++++++++ .../common/log/event/OperLogEvent.java | 4 +- .../mybatis/core/domain/BaseEntity.java | 6 +- .../handler/InjectionMetaObjectHandler.java | 14 ++-- .../dromara/common/oss/core/OssClient.java | 4 +- .../dromara/demo/domain/vo/TestDemoVo.java | 6 +- .../dromara/demo/domain/vo/TestTreeVo.java | 4 +- .../generator/constant/GenConstants.java | 2 +- .../service/GenTableServiceImpl.java | 9 ++- .../dromara/generator/util/VelocityUtils.java | 6 +- .../src/main/resources/vm/java/vo.java.vm | 2 +- .../dromara/system/domain/SysLogininfor.java | 4 +- .../org/dromara/system/domain/SysOperLog.java | 4 +- .../org/dromara/system/domain/SysTenant.java | 4 +- .../org/dromara/system/domain/SysUser.java | 4 +- .../system/domain/bo/SysLogininforBo.java | 4 +- .../system/domain/bo/SysOperLogBo.java | 4 +- .../dromara/system/domain/bo/SysTenantBo.java | 4 +- .../dromara/system/domain/vo/SysConfigVo.java | 4 +- .../dromara/system/domain/vo/SysDeptVo.java | 4 +- .../system/domain/vo/SysDictDataVo.java | 4 +- .../system/domain/vo/SysDictTypeVo.java | 4 +- .../system/domain/vo/SysLogininforVo.java | 4 +- .../dromara/system/domain/vo/SysMenuVo.java | 4 +- .../dromara/system/domain/vo/SysNoticeVo.java | 4 +- .../system/domain/vo/SysOperLogVo.java | 4 +- .../dromara/system/domain/vo/SysOssVo.java | 4 +- .../dromara/system/domain/vo/SysPostVo.java | 4 +- .../dromara/system/domain/vo/SysRoleVo.java | 4 +- .../dromara/system/domain/vo/SysSocialVo.java | 4 +- .../dromara/system/domain/vo/SysTenantVo.java | 4 +- .../system/domain/vo/SysUserExportVo.java | 4 +- .../dromara/system/domain/vo/SysUserVo.java | 6 +- .../impl/SysLogininforServiceImpl.java | 4 +- .../service/impl/SysOperLogServiceImpl.java | 4 +- .../service/impl/SysTenantServiceImpl.java | 4 +- .../dromara/workflow/domain/TestLeave.java | 6 +- .../workflow/domain/bo/TestLeaveBo.java | 14 ++-- .../workflow/domain/vo/FlowCategoryVo.java | 4 +- .../workflow/domain/vo/FlowDefinitionVo.java | 6 +- .../workflow/domain/vo/FlowHisTaskVo.java | 14 ++-- .../workflow/domain/vo/FlowInstanceVo.java | 6 +- .../workflow/domain/vo/FlowTaskVo.java | 6 +- .../workflow/domain/vo/TestLeaveVo.java | 6 +- .../impl/FlwTaskAssigneeServiceImpl.java | 4 +- .../service/impl/FlwTaskServiceImpl.java | 7 +- .../service/impl/TestLeaveServiceImpl.java | 4 +- 53 files changed, 248 insertions(+), 127 deletions(-) create mode 100644 ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/Date8Utils.java create mode 100644 ruoyi-common/ruoyi-common-json/src/main/java/org/dromara/common/json/handler/CustomInstantDeserializer.java diff --git a/ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java b/ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java index 41a802b44..525ec15f4 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java @@ -36,7 +36,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.time.Duration; -import java.util.Date; +import java.time.Instant; import java.util.List; import java.util.function.Supplier; @@ -180,7 +180,7 @@ public class SysLoginService { SysUser sysUser = new SysUser(); sysUser.setUserId(userId); sysUser.setLoginIp(ip); - sysUser.setLoginDate(DateUtils.getNowDate()); + sysUser.setLoginDate(Instant.now()); sysUser.setUpdateBy(userId); DataPermissionHelper.ignore(() -> userMapper.updateById(sysUser)); } @@ -242,7 +242,7 @@ public class SysLoginService { log.info("登录租户:{} 已被停用.", tenantId); throw new TenantException("tenant.blocked"); } else if (ObjectUtil.isNotNull(tenant.getExpireTime()) - && new Date().after(tenant.getExpireTime())) { + && Instant.now().isAfter(tenant.getExpireTime())) { log.info("登录租户:{} 已超过有效期.", tenantId); throw new TenantException("tenant.expired"); } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/dto/TaskAssigneeDTO.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/dto/TaskAssigneeDTO.java index 85893e1dc..0bfd84e04 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/dto/TaskAssigneeDTO.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/dto/TaskAssigneeDTO.java @@ -6,7 +6,7 @@ import lombok.NoArgsConstructor; import java.io.Serial; import java.io.Serializable; -import java.util.Date; +import java.time.Instant; import java.util.List; import java.util.function.Function; import java.util.stream.Collectors; @@ -56,7 +56,7 @@ public class TaskAssigneeDTO implements Serializable { Function handlerCode, Function handlerName, Function groupName, - Function createTimeMapper) { + Function createTimeMapper) { return sourceList.stream() .map(item -> new TaskHandler( String.valueOf(storageId.apply(item)), @@ -95,7 +95,7 @@ public class TaskAssigneeDTO implements Serializable { /** * 创建时间 */ - private Date createTime; + private Instant createTime; } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/dto/UserDTO.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/dto/UserDTO.java index cb5def9a9..2777c1208 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/dto/UserDTO.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/dto/UserDTO.java @@ -5,7 +5,7 @@ import lombok.NoArgsConstructor; import java.io.Serial; import java.io.Serializable; -import java.util.Date; +import java.time.Instant; /** @@ -68,6 +68,6 @@ public class UserDTO implements Serializable { /** * 创建时间 */ - private Date createTime; + private Instant createTime; } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/Date8Utils.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/Date8Utils.java new file mode 100644 index 000000000..3758c3e3a --- /dev/null +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/Date8Utils.java @@ -0,0 +1,75 @@ +package org.dromara.common.core.utils; + +import org.dromara.common.core.enums.FormatsType; + +import java.text.SimpleDateFormat; +import java.time.Duration; +import java.time.Instant; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.concurrent.TimeUnit; + +public class Date8Utils { + + /** + * 获取当前日期的路径格式字符串,格式为"yyyy/MM/dd" + * + * @return 当前日期的路径格式字符串 + */ + public static String datePath() { + //Instant now = Instant.now(); + LocalDateTime localDateTime = LocalDateTime.now(); + return DateTimeFormatter.ofPattern(FormatsType.YYYY_MM_DD_SLASH.getTimeFormat()).format(localDateTime); + } + + /** + * 获取当前日期的字符串表示,格式为YYYY-MM-DD + * + * @return 当前日期的字符串表示 + */ + public static String getDate() { + LocalDateTime localDateTime = LocalDateTime.now(); + return DateTimeFormatter.ofPattern(FormatsType.YYYY_MM_DD.getTimeFormat()).format(localDateTime); + } + + /** + * 计算两个时间点的差值(天、小时、分钟、秒),当值为0时不显示该单位 + * + * @param endInstant 结束时间 + * @param nowInstant 当前时间 + * @return 时间差字符串,格式为 "x天 x小时 x分钟 x秒",若为 0 则不显示 + */ + public static String getTimeDifference(Instant endInstant, Instant nowInstant) { + long diffInMillis = Duration.between(endInstant, nowInstant).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; + // 构建时间差字符串,条件是值不为0才显示 + 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.length() > 0 ? result.toString().trim() : "0秒"; + } + + /** + * 将指定日期按照指定格式进行格式化 + * + * @param format 要使用的日期时间格式,例如"YYYY-MM-DD HH:MM:SS" + * @param instant 要格式化的日期对象 + * @return 格式化后的日期时间字符串 + */ + public static String parseDateToStr(final FormatsType format, final Instant instant) { + return DateTimeFormatter.ofPattern(format.getTimeFormat()).format(instant); + } +} diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/DateUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/DateUtils.java index b52d95e16..d0aec9868 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/DateUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/DateUtils.java @@ -16,6 +16,7 @@ import java.util.concurrent.TimeUnit; * * @author ruoyi */ +@Deprecated public class DateUtils extends org.apache.commons.lang3.time.DateUtils { private static final String[] PARSE_PATTERNS = { "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM", diff --git a/ruoyi-common/ruoyi-common-json/src/main/java/org/dromara/common/json/config/JacksonConfig.java b/ruoyi-common/ruoyi-common-json/src/main/java/org/dromara/common/json/config/JacksonConfig.java index 77cf83381..97e530125 100644 --- a/ruoyi-common/ruoyi-common-json/src/main/java/org/dromara/common/json/config/JacksonConfig.java +++ b/ruoyi-common/ruoyi-common-json/src/main/java/org/dromara/common/json/config/JacksonConfig.java @@ -6,7 +6,7 @@ import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; import lombok.extern.slf4j.Slf4j; import org.dromara.common.json.handler.BigNumberSerializer; -import org.dromara.common.json.handler.CustomDateDeserializer; +import org.dromara.common.json.handler.CustomInstantDeserializer; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer; import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration; @@ -16,7 +16,7 @@ import java.math.BigDecimal; import java.math.BigInteger; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; -import java.util.Date; +import java.time.Instant; import java.util.TimeZone; /** @@ -40,7 +40,7 @@ public class JacksonConfig { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); javaTimeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(formatter)); javaTimeModule.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(formatter)); - javaTimeModule.addDeserializer(Date.class, new CustomDateDeserializer()); + javaTimeModule.addDeserializer(Instant.class, new CustomInstantDeserializer()); builder.modules(javaTimeModule); builder.timeZone(TimeZone.getDefault()); log.info("初始化 jackson 配置"); diff --git a/ruoyi-common/ruoyi-common-json/src/main/java/org/dromara/common/json/handler/CustomInstantDeserializer.java b/ruoyi-common/ruoyi-common-json/src/main/java/org/dromara/common/json/handler/CustomInstantDeserializer.java new file mode 100644 index 000000000..c78b59556 --- /dev/null +++ b/ruoyi-common/ruoyi-common-json/src/main/java/org/dromara/common/json/handler/CustomInstantDeserializer.java @@ -0,0 +1,41 @@ +package org.dromara.common.json.handler; + +import cn.hutool.core.util.StrUtil; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; + +import java.io.IOException; +import java.time.Instant; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; +import java.time.format.DateTimeParseException; + +/** + * 自定义 Instant 类型反序列化处理器(支持多种格式) + * + * @author AprilWind + */ +public class CustomInstantDeserializer extends JsonDeserializer { + + private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + + /** + * 反序列化逻辑:将字符串转换为 Date 对象 + * + * @param p JSON 解析器,用于获取字符串值 + * @param ctxt 上下文环境(可用于获取更多配置) + * @return 转换后的 Instant 对象,若为空字符串返回 null + * @throws IOException,DateTimeParseException 当字符串格式非法或转换失败时抛出 + */ + @Override + public Instant deserialize(JsonParser p, DeserializationContext ctxt) throws IOException,DateTimeParseException { + String text = p.getText(); + if(StrUtil.isBlank(text)){ + return null; + } + LocalDateTime ldt = LocalDateTime.parse(text, FORMATTER); + return ldt.atZone(ZoneId.systemDefault()).toInstant(); + } +} diff --git a/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/event/OperLogEvent.java b/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/event/OperLogEvent.java index 03861929c..69ed47619 100644 --- a/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/event/OperLogEvent.java +++ b/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/event/OperLogEvent.java @@ -4,7 +4,7 @@ import lombok.Data; import java.io.Serial; import java.io.Serializable; -import java.util.Date; +import java.time.Instant; /** * 操作日志事件 @@ -106,7 +106,7 @@ public class OperLogEvent implements Serializable { /** * 操作时间 */ - private Date operTime; + private Instant operTime; /** * 消耗时间 diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/core/domain/BaseEntity.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/core/domain/BaseEntity.java index 13a794162..5595c5212 100644 --- a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/core/domain/BaseEntity.java +++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/core/domain/BaseEntity.java @@ -8,7 +8,7 @@ import lombok.Data; import java.io.Serial; import java.io.Serializable; -import java.util.Date; +import java.time.Instant; import java.util.HashMap; import java.util.Map; @@ -46,7 +46,7 @@ public class BaseEntity implements Serializable { * 创建时间 */ @TableField(fill = FieldFill.INSERT) - private Date createTime; + private Instant createTime; /** * 更新者 @@ -58,7 +58,7 @@ public class BaseEntity implements Serializable { * 更新时间 */ @TableField(fill = FieldFill.INSERT_UPDATE) - private Date updateTime; + private Instant updateTime; /** * 请求参数 diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/handler/InjectionMetaObjectHandler.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/handler/InjectionMetaObjectHandler.java index fec25792a..639413dc7 100644 --- a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/handler/InjectionMetaObjectHandler.java +++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/handler/InjectionMetaObjectHandler.java @@ -11,7 +11,7 @@ import org.dromara.common.core.utils.ObjectUtils; import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.satoken.utils.LoginHelper; -import java.util.Date; +import java.time.Instant; /** * MP注入处理器 @@ -32,7 +32,7 @@ public class InjectionMetaObjectHandler implements MetaObjectHandler { try { if (ObjectUtil.isNotNull(metaObject) && metaObject.getOriginalObject() instanceof BaseEntity baseEntity) { // 获取当前时间作为创建时间和更新时间,如果创建时间不为空,则使用创建时间,否则使用当前时间 - Date current = ObjectUtils.notNull(baseEntity.getCreateTime(), new Date()); + Instant current = ObjectUtils.notNull(baseEntity.getCreateTime(), Instant.now()); baseEntity.setCreateTime(current); baseEntity.setUpdateTime(current); @@ -48,9 +48,9 @@ public class InjectionMetaObjectHandler implements MetaObjectHandler { } } } else { - Date date = new Date(); - this.strictInsertFill(metaObject, "createTime", Date.class, date); - this.strictInsertFill(metaObject, "updateTime", Date.class, date); + Instant now = Instant.now(); + this.strictInsertFill(metaObject, "createTime", Instant.class, now); + this.strictInsertFill(metaObject, "updateTime", Instant.class, now); } } catch (Exception e) { throw new ServiceException("自动注入异常 => " + e.getMessage(), HttpStatus.HTTP_UNAUTHORIZED); @@ -67,7 +67,7 @@ public class InjectionMetaObjectHandler implements MetaObjectHandler { try { if (ObjectUtil.isNotNull(metaObject) && metaObject.getOriginalObject() instanceof BaseEntity baseEntity) { // 获取当前时间作为更新时间,无论原始对象中的更新时间是否为空都填充 - Date current = new Date(); + Instant current = Instant.now(); baseEntity.setUpdateTime(current); // 获取当前登录用户的ID,并填充更新人信息 @@ -76,7 +76,7 @@ public class InjectionMetaObjectHandler implements MetaObjectHandler { baseEntity.setUpdateBy(userId); } } else { - this.strictUpdateFill(metaObject, "updateTime", Date.class, new Date()); + this.strictUpdateFill(metaObject, "updateTime", Instant.class, Instant.now()); } } catch (Exception e) { throw new ServiceException("自动注入异常 => " + e.getMessage(), HttpStatus.HTTP_UNAUTHORIZED); diff --git a/ruoyi-common/ruoyi-common-oss/src/main/java/org/dromara/common/oss/core/OssClient.java b/ruoyi-common/ruoyi-common-oss/src/main/java/org/dromara/common/oss/core/OssClient.java index de5119e91..734cbcdad 100644 --- a/ruoyi-common/ruoyi-common-oss/src/main/java/org/dromara/common/oss/core/OssClient.java +++ b/ruoyi-common/ruoyi-common-oss/src/main/java/org/dromara/common/oss/core/OssClient.java @@ -3,7 +3,7 @@ package org.dromara.common.oss.core; import cn.hutool.core.io.IoUtil; import cn.hutool.core.util.IdUtil; import org.dromara.common.core.constant.Constants; -import org.dromara.common.core.utils.DateUtils; +import org.dromara.common.core.utils.Date8Utils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.file.FileUtils; import org.dromara.common.oss.constant.OssConstant; @@ -439,7 +439,7 @@ public class OssClient { // 生成uuid String uuid = IdUtil.fastSimpleUUID(); // 生成日期路径 - String datePath = DateUtils.datePath(); + String datePath = Date8Utils.datePath(); // 拼接路径 String path = StringUtils.isNotEmpty(prefix) ? prefix + StringUtils.SLASH + datePath + StringUtils.SLASH + uuid : datePath + StringUtils.SLASH + uuid; diff --git a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/TestDemoVo.java b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/TestDemoVo.java index e757221c3..6c2b79f24 100644 --- a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/TestDemoVo.java +++ b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/TestDemoVo.java @@ -12,7 +12,7 @@ import lombok.Data; import java.io.Serial; import java.io.Serializable; -import java.util.Date; +import java.time.Instant; /** @@ -74,7 +74,7 @@ public class TestDemoVo implements Serializable { * 创建时间 */ @ExcelProperty(value = "创建时间") - private Date createTime; + private Instant createTime; /** * 创建人 @@ -93,7 +93,7 @@ public class TestDemoVo implements Serializable { * 更新时间 */ @ExcelProperty(value = "更新时间") - private Date updateTime; + private Instant updateTime; /** * 更新人 diff --git a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/TestTreeVo.java b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/TestTreeVo.java index ee2336ac5..9e18d9b6d 100644 --- a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/TestTreeVo.java +++ b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/TestTreeVo.java @@ -8,7 +8,7 @@ import lombok.Data; import java.io.Serial; import java.io.Serializable; -import java.util.Date; +import java.time.Instant; /** @@ -58,7 +58,7 @@ public class TestTreeVo implements Serializable { * 创建时间 */ @ExcelProperty(value = "创建时间") - private Date createTime; + private Instant createTime; } diff --git a/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/constant/GenConstants.java b/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/constant/GenConstants.java index b9888fb63..ad66270a9 100644 --- a/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/constant/GenConstants.java +++ b/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/constant/GenConstants.java @@ -167,7 +167,7 @@ public interface GenConstants { /** * 时间类型 */ - String TYPE_DATE = "Date"; + String TYPE_DATE = "Instant"; /** * 模糊查询 diff --git a/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/service/GenTableServiceImpl.java b/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/service/GenTableServiceImpl.java index b397f37f4..bc52dc029 100644 --- a/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/service/GenTableServiceImpl.java +++ b/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/service/GenTableServiceImpl.java @@ -44,6 +44,7 @@ import java.io.File; import java.io.IOException; import java.io.StringWriter; import java.nio.charset.StandardCharsets; +import java.time.Instant; import java.util.*; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; @@ -162,8 +163,8 @@ public class GenTableServiceImpl implements IGenTableService { gen.setTableName(x.getName()); gen.setTableComment(x.getComment()); // postgresql的表元数据没有创建时间这个东西(好奇葩) 只能new Date代替 - gen.setCreateTime(ObjectUtil.defaultIfNull(x.getCreateTime(), new Date())); - gen.setUpdateTime(x.getUpdateTime()); + gen.setCreateTime(x.getCreateTime() != null ? x.getCreateTime().toInstant() : Instant.now()); + gen.setUpdateTime(x.getUpdateTime() != null ? x.getUpdateTime().toInstant() : Instant.now()); return gen; }).sorted(Comparator.comparing(GenTable::getCreateTime).reversed()) .toList(); @@ -199,8 +200,8 @@ public class GenTableServiceImpl implements IGenTableService { gen.setDataName(dataName); gen.setTableName(x.getName()); gen.setTableComment(x.getComment()); - gen.setCreateTime(x.getCreateTime()); - gen.setUpdateTime(x.getUpdateTime()); + gen.setCreateTime(x.getCreateTime() != null ? x.getCreateTime().toInstant() : Instant.now()); + gen.setUpdateTime(x.getUpdateTime() != null ? x.getUpdateTime().toInstant() : Instant.now()); return gen; }).toList(); } diff --git a/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/util/VelocityUtils.java b/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/util/VelocityUtils.java index 6e111e3a8..0f5ce7740 100644 --- a/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/util/VelocityUtils.java +++ b/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/util/VelocityUtils.java @@ -3,8 +3,8 @@ package org.dromara.generator.util; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.lang.Dict; +import org.dromara.common.core.utils.Date8Utils; import org.dromara.generator.constant.GenConstants; -import org.dromara.common.core.utils.DateUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.json.utils.JsonUtils; import org.dromara.common.mybatis.helper.DataBaseHelper; @@ -63,7 +63,7 @@ public class VelocityUtils { velocityContext.put("basePackage", getPackagePrefix(packageName)); velocityContext.put("packageName", packageName); velocityContext.put("author", genTable.getFunctionAuthor()); - velocityContext.put("datetime", DateUtils.getDate()); + velocityContext.put("datetime", Date8Utils.getDate()); velocityContext.put("pkColumn", genTable.getPkColumn()); velocityContext.put("importList", getImportList(genTable)); velocityContext.put("permissionPrefix", getPermissionPrefix(moduleName, businessName)); @@ -211,7 +211,7 @@ public class VelocityUtils { HashSet importList = new HashSet<>(); for (GenTableColumn column : columns) { if (!column.isSuperColumn() && GenConstants.TYPE_DATE.equals(column.getJavaType())) { - importList.add("java.util.Date"); + importList.add("java.time.Instant"); importList.add("com.fasterxml.jackson.annotation.JsonFormat"); } else if (!column.isSuperColumn() && GenConstants.TYPE_BIGDECIMAL.equals(column.getJavaType())) { importList.add("java.math.BigDecimal"); diff --git a/ruoyi-modules/ruoyi-generator/src/main/resources/vm/java/vo.java.vm b/ruoyi-modules/ruoyi-generator/src/main/resources/vm/java/vo.java.vm index 480394c72..f456a6f63 100644 --- a/ruoyi-modules/ruoyi-generator/src/main/resources/vm/java/vo.java.vm +++ b/ruoyi-modules/ruoyi-generator/src/main/resources/vm/java/vo.java.vm @@ -13,7 +13,7 @@ import lombok.Data; import java.io.Serial; import java.io.Serializable; -import java.util.Date; +import java.time.Instant; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysLogininfor.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysLogininfor.java index c57dc0a52..7a5d89790 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysLogininfor.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysLogininfor.java @@ -6,7 +6,7 @@ import lombok.Data; import java.io.Serial; import java.io.Serializable; -import java.util.Date; +import java.time.Instant; /** * 系统访问记录表 sys_logininfor @@ -80,6 +80,6 @@ public class SysLogininfor implements Serializable { /** * 访问时间 */ - private Date loginTime; + private Instant loginTime; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysOperLog.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysOperLog.java index 41a8c59fa..d64400afc 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysOperLog.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysOperLog.java @@ -6,7 +6,7 @@ import lombok.Data; import java.io.Serial; import java.io.Serializable; -import java.util.Date; +import java.time.Instant; /** * 操作日志记录表 oper_log @@ -105,7 +105,7 @@ public class SysOperLog implements Serializable { /** * 操作时间 */ - private Date operTime; + private Instant operTime; /** * 消耗时间 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysTenant.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysTenant.java index 9800c3075..fd380dbd4 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysTenant.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysTenant.java @@ -8,7 +8,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import java.io.Serial; -import java.util.Date; +import java.time.Instant; /** * 租户对象 sys_tenant @@ -82,7 +82,7 @@ public class SysTenant extends BaseEntity { /** * 过期时间 */ - private Date expireTime; + private Instant expireTime; /** * 用户数量(-1不限制) diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysUser.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysUser.java index 3712f805f..4354ca9ac 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysUser.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysUser.java @@ -7,7 +7,7 @@ import lombok.NoArgsConstructor; import org.dromara.common.core.constant.SystemConstants; import org.dromara.common.tenant.core.TenantEntity; -import java.util.Date; +import java.time.Instant; /** * 用户对象 sys_user @@ -96,7 +96,7 @@ public class SysUser extends TenantEntity { /** * 最后登录时间 */ - private Date loginDate; + private Instant loginDate; /** * 备注 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysLogininforBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysLogininforBo.java index 464616278..9a7286435 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysLogininforBo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysLogininforBo.java @@ -4,7 +4,7 @@ import org.dromara.system.domain.SysLogininfor; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; -import java.util.Date; +import java.time.Instant; import java.util.HashMap; import java.util.Map; @@ -76,7 +76,7 @@ public class SysLogininforBo { /** * 访问时间 */ - private Date loginTime; + private Instant loginTime; /** * 请求参数 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysOperLogBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysOperLogBo.java index f16400a2f..4197cb2ec 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysOperLogBo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysOperLogBo.java @@ -6,7 +6,7 @@ import io.github.linpeilie.annotations.AutoMapper; import io.github.linpeilie.annotations.AutoMappers; import lombok.Data; -import java.util.Date; +import java.time.Instant; import java.util.HashMap; import java.util.Map; @@ -112,7 +112,7 @@ public class SysOperLogBo { /** * 操作时间 */ - private Date operTime; + private Instant operTime; /** * 消耗时间 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysTenantBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysTenantBo.java index e3ac6428f..0d5e46176 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysTenantBo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysTenantBo.java @@ -8,7 +8,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import jakarta.validation.constraints.*; -import java.util.Date; +import java.time.Instant; import org.dromara.common.mybatis.core.domain.BaseEntity; @@ -98,7 +98,7 @@ public class SysTenantBo extends BaseEntity { /** * 过期时间 */ - private Date expireTime; + private Instant expireTime; /** * 用户数量(-1不限制) diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysConfigVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysConfigVo.java index a35e1323c..b167c22ed 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysConfigVo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysConfigVo.java @@ -10,7 +10,7 @@ import lombok.Data; import java.io.Serial; import java.io.Serializable; -import java.util.Date; +import java.time.Instant; /** @@ -67,6 +67,6 @@ public class SysConfigVo implements Serializable { * 创建时间 */ @ExcelProperty(value = "创建时间") - private Date createTime; + private Instant createTime; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDeptVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDeptVo.java index c9f5a1faf..01d93e88e 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDeptVo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDeptVo.java @@ -11,7 +11,7 @@ import org.dromara.system.domain.SysDept; import java.io.Serial; import java.io.Serializable; import java.util.ArrayList; -import java.util.Date; +import java.time.Instant; import java.util.List; /** @@ -99,7 +99,7 @@ public class SysDeptVo implements Serializable { * 创建时间 */ @ExcelProperty(value = "创建时间") - private Date createTime; + private Instant createTime; /** * 子部门 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDictDataVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDictDataVo.java index d97c00d1b..2a1022662 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDictDataVo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDictDataVo.java @@ -10,7 +10,7 @@ import lombok.Data; import java.io.Serial; import java.io.Serializable; -import java.util.Date; +import java.time.Instant; /** @@ -83,6 +83,6 @@ public class SysDictDataVo implements Serializable { * 创建时间 */ @ExcelProperty(value = "创建时间") - private Date createTime; + private Instant createTime; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDictTypeVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDictTypeVo.java index 4b62226e2..b23eade7a 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDictTypeVo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDictTypeVo.java @@ -10,7 +10,7 @@ import lombok.Data; import java.io.Serial; import java.io.Serializable; -import java.util.Date; +import java.time.Instant; /** @@ -54,6 +54,6 @@ public class SysDictTypeVo implements Serializable { * 创建时间 */ @ExcelProperty(value = "创建时间") - private Date createTime; + private Instant createTime; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysLogininforVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysLogininforVo.java index 3086aa74a..828191c15 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysLogininforVo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysLogininforVo.java @@ -1,6 +1,6 @@ package org.dromara.system.domain.vo; -import java.util.Date; +import java.time.Instant; import cn.idev.excel.annotation.ExcelIgnoreUnannotated; import cn.idev.excel.annotation.ExcelProperty; import org.dromara.common.excel.annotation.ExcelDictFormat; @@ -100,7 +100,7 @@ public class SysLogininforVo implements Serializable { * 访问时间 */ @ExcelProperty(value = "访问时间") - private Date loginTime; + private Instant loginTime; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysMenuVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysMenuVo.java index 5214a336b..174f773a9 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysMenuVo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysMenuVo.java @@ -7,7 +7,7 @@ import lombok.Data; import java.io.Serial; import java.io.Serializable; import java.util.ArrayList; -import java.util.Date; +import java.time.Instant; import java.util.List; @@ -106,7 +106,7 @@ public class SysMenuVo implements Serializable { /** * 创建时间 */ - private Date createTime; + private Instant createTime; /** * 子菜单 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysNoticeVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysNoticeVo.java index afe73674f..50235781a 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysNoticeVo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysNoticeVo.java @@ -8,7 +8,7 @@ import lombok.Data; import java.io.Serial; import java.io.Serializable; -import java.util.Date; +import java.time.Instant; @@ -68,6 +68,6 @@ public class SysNoticeVo implements Serializable { /** * 创建时间 */ - private Date createTime; + private Instant createTime; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysOperLogVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysOperLogVo.java index 00b334432..5076e5835 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysOperLogVo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysOperLogVo.java @@ -10,7 +10,7 @@ import lombok.Data; import java.io.Serial; import java.io.Serializable; -import java.util.Date; +import java.time.Instant; /** @@ -134,7 +134,7 @@ public class SysOperLogVo implements Serializable { * 操作时间 */ @ExcelProperty(value = "操作时间") - private Date operTime; + private Instant operTime; /** * 消耗时间 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysOssVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysOssVo.java index fe0565182..e232e1353 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysOssVo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysOssVo.java @@ -8,7 +8,7 @@ import lombok.Data; import java.io.Serial; import java.io.Serializable; -import java.util.Date; +import java.time.Instant; /** * OSS对象存储视图对象 sys_oss @@ -55,7 +55,7 @@ public class SysOssVo implements Serializable { /** * 创建时间 */ - private Date createTime; + private Instant createTime; /** * 上传人 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysPostVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysPostVo.java index 50140b6f1..c9beb724c 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysPostVo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysPostVo.java @@ -12,7 +12,7 @@ import org.dromara.system.domain.SysPost; import java.io.Serial; import java.io.Serializable; -import java.util.Date; +import java.time.Instant; /** * 岗位信息视图对象 sys_post @@ -80,7 +80,7 @@ public class SysPostVo implements Serializable { * 创建时间 */ @ExcelProperty(value = "创建时间") - private Date createTime; + private Instant createTime; /** * 部门名 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysRoleVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysRoleVo.java index 1a205cc74..36fdfe74d 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysRoleVo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysRoleVo.java @@ -11,7 +11,7 @@ import org.dromara.system.domain.SysRole; import java.io.Serial; import java.io.Serializable; -import java.util.Date; +import java.time.Instant; /** * 角色信息视图对象 sys_role @@ -86,7 +86,7 @@ public class SysRoleVo implements Serializable { * 创建时间 */ @ExcelProperty(value = "创建时间") - private Date createTime; + private Instant createTime; /** * 用户是否存在此角色标识 默认不存在 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysSocialVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysSocialVo.java index 948dbcc7b..95577581e 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysSocialVo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysSocialVo.java @@ -6,7 +6,7 @@ import org.dromara.system.domain.SysSocial; import java.io.Serial; import java.io.Serializable; -import java.util.Date; +import java.time.Instant; /** @@ -140,5 +140,5 @@ public class SysSocialVo implements Serializable { /** * 创建时间 */ - private Date createTime; + private Instant createTime; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysTenantVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysTenantVo.java index 021c66488..c22e96590 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysTenantVo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysTenantVo.java @@ -1,6 +1,6 @@ package org.dromara.system.domain.vo; -import java.util.Date; +import java.time.Instant; import cn.idev.excel.annotation.ExcelIgnoreUnannotated; import cn.idev.excel.annotation.ExcelProperty; import org.dromara.common.excel.annotation.ExcelDictFormat; @@ -96,7 +96,7 @@ public class SysTenantVo implements Serializable { * 过期时间 */ @ExcelProperty(value = "过期时间") - private Date expireTime; + private Instant expireTime; /** * 用户数量(-1不限制) diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysUserExportVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysUserExportVo.java index 913ab2001..f9d0f7a40 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysUserExportVo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysUserExportVo.java @@ -10,7 +10,7 @@ import lombok.NoArgsConstructor; import java.io.Serial; import java.io.Serializable; -import java.util.Date; +import java.time.Instant; /** * 用户对象导出VO @@ -79,7 +79,7 @@ public class SysUserExportVo implements Serializable { * 最后登录时间 */ @ExcelProperty(value = "最后登录时间") - private Date loginDate; + private Instant loginDate; /** * 部门名称 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysUserVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysUserVo.java index 86249d20e..6a167190e 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysUserVo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysUserVo.java @@ -12,7 +12,7 @@ import lombok.Data; import java.io.Serial; import java.io.Serializable; -import java.util.Date; +import java.time.Instant; import java.util.List; @@ -101,7 +101,7 @@ public class SysUserVo implements Serializable { /** * 最后登录时间 */ - private Date loginDate; + private Instant loginDate; /** * 备注 @@ -111,7 +111,7 @@ public class SysUserVo implements Serializable { /** * 创建时间 */ - private Date createTime; + private Instant createTime; /** * 部门名 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysLogininforServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysLogininforServiceImpl.java index 72b497eca..1ad03c89f 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysLogininforServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysLogininforServiceImpl.java @@ -29,7 +29,7 @@ import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import java.util.Arrays; -import java.util.Date; +import java.time.Instant; import java.util.List; import java.util.Map; @@ -132,7 +132,7 @@ public class SysLogininforServiceImpl implements ISysLogininforService { @Override public void insertLogininfor(SysLogininforBo bo) { SysLogininfor logininfor = MapstructUtils.convert(bo, SysLogininfor.class); - logininfor.setLoginTime(new Date()); + logininfor.setLoginTime(Instant.now()); baseMapper.insert(logininfor); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOperLogServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOperLogServiceImpl.java index 27c2f32d5..4587098a7 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOperLogServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOperLogServiceImpl.java @@ -20,7 +20,7 @@ import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import java.util.Arrays; -import java.util.Date; +import java.time.Instant; import java.util.List; import java.util.Map; @@ -86,7 +86,7 @@ public class SysOperLogServiceImpl implements ISysOperLogService { @Override public void insertOperlog(SysOperLogBo bo) { SysOperLog operLog = MapstructUtils.convert(bo, SysOperLog.class); - operLog.setOperTime(new Date()); + operLog.setOperTime(Instant.now()); baseMapper.insert(operLog); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTenantServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTenantServiceImpl.java index ca088607b..7897cd753 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTenantServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTenantServiceImpl.java @@ -34,7 +34,7 @@ import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; - +import java.time.Instant; import java.util.*; /** @@ -365,7 +365,7 @@ public class SysTenantServiceImpl implements ISysTenantService { return true; } // 如果当前时间在过期时间之前则通过 - return new Date().before(tenant.getExpireTime()); + return Instant.now().isBefore(tenant.getExpireTime()); } /** diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/TestLeave.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/TestLeave.java index 7d42a9b5f..c3bc02d32 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/TestLeave.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/TestLeave.java @@ -7,7 +7,7 @@ import lombok.EqualsAndHashCode; import org.dromara.common.mybatis.core.domain.BaseEntity; import java.io.Serial; -import java.util.Date; +import java.time.Instant; /** * 请假对象 test_leave @@ -37,12 +37,12 @@ public class TestLeave extends BaseEntity { /** * 开始时间 */ - private Date startDate; + private Instant startDate; /** * 结束时间 */ - private Date endDate; + private Instant endDate; /** * 请假天数 diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/TestLeaveBo.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/TestLeaveBo.java index 395f71d95..23464138a 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/TestLeaveBo.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/TestLeaveBo.java @@ -12,7 +12,7 @@ import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.workflow.domain.TestLeave; import org.springframework.format.annotation.DateTimeFormat; -import java.util.Date; +import java.time.Instant; /** * 请假业务对象 test_leave @@ -41,17 +41,17 @@ public class TestLeaveBo extends BaseEntity { * 开始时间 */ @NotNull(message = "开始时间不能为空", groups = {AddGroup.class, EditGroup.class}) - @DateTimeFormat(pattern = "yyyy-MM-dd") - @JsonFormat(pattern = "yyyy-MM-dd") - private Date startDate; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Instant startDate; /** * 结束时间 */ @NotNull(message = "结束时间不能为空", groups = {AddGroup.class, EditGroup.class}) - @DateTimeFormat(pattern = "yyyy-MM-dd") - @JsonFormat(pattern = "yyyy-MM-dd") - private Date endDate; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Instant endDate; /** * 请假天数 diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowCategoryVo.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowCategoryVo.java index db236c2df..4dc3daa60 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowCategoryVo.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowCategoryVo.java @@ -9,7 +9,7 @@ import org.dromara.workflow.domain.FlowCategory; import java.io.Serial; import java.io.Serializable; import java.util.ArrayList; -import java.util.Date; +import java.time.Instant; import java.util.List; @@ -64,7 +64,7 @@ public class FlowCategoryVo implements Serializable { * 创建时间 */ @ExcelProperty(value = "创建时间") - private Date createTime; + private Instant createTime; /** * 子菜单 diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowDefinitionVo.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowDefinitionVo.java index aef75739a..ebc18c25b 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowDefinitionVo.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowDefinitionVo.java @@ -6,7 +6,7 @@ import org.dromara.workflow.common.constant.FlowConstant; import java.io.Serial; import java.io.Serializable; -import java.util.Date; +import java.time.Instant; /** * 流程定义视图 @@ -24,12 +24,12 @@ public class FlowDefinitionVo implements Serializable { /** * 创建时间 */ - private Date createTime; + private Instant createTime; /** * 更新时间 */ - private Date updateTime; + private Instant updateTime; /** * 租户ID diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowHisTaskVo.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowHisTaskVo.java index 8776a76b8..606bbf146 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowHisTaskVo.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowHisTaskVo.java @@ -1,7 +1,7 @@ package org.dromara.workflow.domain.vo; import lombok.Data; -import org.dromara.common.core.utils.DateUtils; +import org.dromara.common.core.utils.Date8Utils; import org.dromara.common.translation.annotation.Translation; import org.dromara.common.translation.constant.TransConstant; import org.dromara.warm.flow.core.enums.CooperateType; @@ -9,7 +9,7 @@ import org.dromara.workflow.common.constant.FlowConstant; import java.io.Serial; import java.io.Serializable; -import java.util.Date; +import java.time.Instant; import java.util.List; /** @@ -28,12 +28,12 @@ public class FlowHisTaskVo implements Serializable { /** * 创建时间 */ - private Date createTime; + private Instant createTime; /** * 更新时间 */ - private Date updateTime; + private Instant updateTime; /** * 租户ID @@ -208,7 +208,7 @@ public class FlowHisTaskVo implements Serializable { * * @param createTime 创建时间 */ - public void setCreateTime(Date createTime) { + public void setCreateTime(Instant createTime) { this.createTime = createTime; updateRunDuration(); } @@ -218,7 +218,7 @@ public class FlowHisTaskVo implements Serializable { * * @param updateTime 更新时间 */ - public void setUpdateTime(Date updateTime) { + public void setUpdateTime(Instant updateTime) { this.updateTime = updateTime; updateRunDuration(); } @@ -229,7 +229,7 @@ public class FlowHisTaskVo implements Serializable { private void updateRunDuration() { // 如果创建时间和更新时间均不为空,计算它们之间的时长 if (this.updateTime != null && this.createTime != null) { - this.runDuration = DateUtils.getTimeDifference(this.updateTime, this.createTime); + this.runDuration = Date8Utils.getTimeDifference(this.updateTime, this.createTime); } } diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowInstanceVo.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowInstanceVo.java index 75543f419..eb55a1cfb 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowInstanceVo.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowInstanceVo.java @@ -5,7 +5,7 @@ import org.dromara.common.translation.annotation.Translation; import org.dromara.common.translation.constant.TransConstant; import org.dromara.workflow.common.constant.FlowConstant; -import java.util.Date; +import java.time.Instant; /** * 流程实例视图 @@ -20,12 +20,12 @@ public class FlowInstanceVo { /** * 创建时间 */ - private Date createTime; + private Instant createTime; /** * 更新时间 */ - private Date updateTime; + private Instant updateTime; /** * 租户ID diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowTaskVo.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowTaskVo.java index 07a22c4f3..42e1cdf67 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowTaskVo.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/FlowTaskVo.java @@ -9,7 +9,7 @@ import org.dromara.workflow.common.constant.FlowConstant; import java.io.Serial; import java.io.Serializable; import java.math.BigDecimal; -import java.util.Date; +import java.time.Instant; import java.util.List; /** @@ -28,12 +28,12 @@ public class FlowTaskVo implements Serializable { /** * 创建时间 */ - private Date createTime; + private Instant createTime; /** * 更新时间 */ - private Date updateTime; + private Instant updateTime; /** * 租户ID diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/TestLeaveVo.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/TestLeaveVo.java index 57777edde..7c4599038 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/TestLeaveVo.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/TestLeaveVo.java @@ -9,7 +9,7 @@ import org.dromara.workflow.domain.TestLeave; import java.io.Serial; import java.io.Serializable; -import java.util.Date; +import java.time.Instant; /** @@ -43,14 +43,14 @@ public class TestLeaveVo implements Serializable { */ @ExcelProperty(value = "开始时间") @JsonFormat(pattern = "yyyy-MM-dd") - private Date startDate; + private Instant startDate; /** * 结束时间 */ @ExcelProperty(value = "结束时间") @JsonFormat(pattern = "yyyy-MM-dd") - private Date endDate; + private Instant endDate; /** * 请假天数 diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskAssigneeServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskAssigneeServiceImpl.java index 3009e0a1d..abc04717c 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskAssigneeServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskAssigneeServiceImpl.java @@ -14,7 +14,7 @@ import org.dromara.common.core.enums.FormatsType; import org.dromara.common.core.service.DeptService; import org.dromara.common.core.service.TaskAssigneeService; import org.dromara.common.core.service.UserService; -import org.dromara.common.core.utils.DateUtils; +import org.dromara.common.core.utils.Date8Utils; import org.dromara.common.core.utils.StringUtils; import org.dromara.warm.flow.ui.dto.HandlerFunDto; import org.dromara.warm.flow.ui.dto.HandlerQuery; @@ -162,7 +162,7 @@ public class FlwTaskAssigneeServiceImpl implements IFlwTaskAssigneeService, Hand Optional.ofNullable(assignee.getGroupName()) .map(deptService::selectDeptNameByIds) .orElse(DEFAULT_GROUP_NAME), DEFAULT_GROUP_NAME)) - .setCreateTime(assignee -> DateUtils.parseDateToStr(FormatsType.YYYY_MM_DD_HH_MM_SS, assignee.getCreateTime())); + .setCreateTime(assignee -> Date8Utils.parseDateToStr(FormatsType.YYYY_MM_DD_HH_MM_SS, assignee.getCreateTime())); } /** diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java index 8a2f72380..b277b295a 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java @@ -54,6 +54,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; +import java.time.Instant; import java.util.*; import java.util.stream.Collectors; @@ -243,14 +244,14 @@ public class FlwTaskServiceImpl implements IFlwTaskService { long taskId = identifierGenerator.nextId(null).longValue(); task.setId(taskId); task.setNodeName("【抄送】" + task.getNodeName()); - Date updateTime = new Date(flowHisTask.getUpdateTime().getTime() - 1000); + Instant updateTime = flowHisTask.getUpdateTime().toInstant().plusSeconds(-1); FlowParams flowParams = FlowParams.build() .skipType(SkipType.NONE.getKey()) .hisStatus(TaskStatusEnum.COPY.getStatus()) .message("【抄送给】" + StreamUtils.join(flowCopyList, FlowCopyBo::getUserName)); HisTask hisTask = hisTaskService.setSkipHisTask(task, flowNode, flowParams); - hisTask.setCreateTime(updateTime); - hisTask.setUpdateTime(updateTime); + hisTask.setCreateTime(Date.from(updateTime)); + hisTask.setUpdateTime(Date.from(updateTime)); hisTaskService.save(hisTask); List userList = flowCopyList.stream() .map(flowCopy -> { diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/TestLeaveServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/TestLeaveServiceImpl.java index 3a773345d..5301632f4 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/TestLeaveServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/TestLeaveServiceImpl.java @@ -29,6 +29,7 @@ import org.springframework.context.event.EventListener; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.time.Duration; import java.util.List; import java.util.Map; @@ -101,7 +102,8 @@ public class TestLeaveServiceImpl implements ITestLeaveService { */ @Override public TestLeaveVo insertByBo(TestLeaveBo bo) { - long day = DateUtil.betweenDay(bo.getStartDate(), bo.getEndDate(), true); + Duration duration = Duration.between(bo.getStartDate(),bo.getEndDate()); + long day = duration.toDays(); // 截止日期也算一天 bo.setLeaveDays((int) day + 1); TestLeave add = MapstructUtils.convert(bo, TestLeave.class);