mirror of
https://gitee.com/dromara/RuoYi-Vue-Plus.git
synced 2026-09-18 17:38:48 +08:00
Pre Merge pull request !696 from root/date-replace-to-instant
This commit is contained in:
commit
25a7b79105
@ -36,7 +36,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.util.Date;
|
import java.time.Instant;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
@ -180,7 +180,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(Instant.now());
|
||||||
sysUser.setUpdateBy(userId);
|
sysUser.setUpdateBy(userId);
|
||||||
DataPermissionHelper.ignore(() -> userMapper.updateById(sysUser));
|
DataPermissionHelper.ignore(() -> userMapper.updateById(sysUser));
|
||||||
}
|
}
|
||||||
@ -242,7 +242,7 @@ public class SysLoginService {
|
|||||||
log.info("登录租户:{} 已被停用.", tenantId);
|
log.info("登录租户:{} 已被停用.", tenantId);
|
||||||
throw new TenantException("tenant.blocked");
|
throw new TenantException("tenant.blocked");
|
||||||
} else if (ObjectUtil.isNotNull(tenant.getExpireTime())
|
} else if (ObjectUtil.isNotNull(tenant.getExpireTime())
|
||||||
&& new Date().after(tenant.getExpireTime())) {
|
&& Instant.now().isAfter(tenant.getExpireTime())) {
|
||||||
log.info("登录租户:{} 已超过有效期.", tenantId);
|
log.info("登录租户:{} 已超过有效期.", tenantId);
|
||||||
throw new TenantException("tenant.expired");
|
throw new TenantException("tenant.expired");
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,7 +6,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.Instant;
|
||||||
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;
|
||||||
@ -56,7 +56,7 @@ public class TaskAssigneeDTO implements Serializable {
|
|||||||
Function<T, String> handlerCode,
|
Function<T, String> handlerCode,
|
||||||
Function<T, String> handlerName,
|
Function<T, String> handlerName,
|
||||||
Function<T, Long> groupName,
|
Function<T, Long> groupName,
|
||||||
Function<T, Date> createTimeMapper) {
|
Function<T, Instant> createTimeMapper) {
|
||||||
return sourceList.stream()
|
return sourceList.stream()
|
||||||
.map(item -> new TaskHandler(
|
.map(item -> new TaskHandler(
|
||||||
String.valueOf(storageId.apply(item)),
|
String.valueOf(storageId.apply(item)),
|
||||||
@ -95,7 +95,7 @@ public class TaskAssigneeDTO implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 创建时间
|
* 创建时间
|
||||||
*/
|
*/
|
||||||
private Date createTime;
|
private Instant createTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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.Instant;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -68,6 +68,6 @@ public class UserDTO implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 创建时间
|
* 创建时间
|
||||||
*/
|
*/
|
||||||
private Date createTime;
|
private Instant createTime;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -16,6 +16,7 @@ import java.util.concurrent.TimeUnit;
|
|||||||
*
|
*
|
||||||
* @author ruoyi
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
||||||
private static final String[] PARSE_PATTERNS = {
|
private static final String[] PARSE_PATTERNS = {
|
||||||
"yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM",
|
"yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM",
|
||||||
|
|||||||
@ -6,7 +6,7 @@ import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
|
|||||||
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
|
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.dromara.common.json.handler.BigNumberSerializer;
|
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.AutoConfiguration;
|
||||||
import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
|
import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
|
||||||
import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration;
|
import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration;
|
||||||
@ -16,7 +16,7 @@ import java.math.BigDecimal;
|
|||||||
import java.math.BigInteger;
|
import java.math.BigInteger;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.Date;
|
import java.time.Instant;
|
||||||
import java.util.TimeZone;
|
import java.util.TimeZone;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -40,7 +40,7 @@ public class JacksonConfig {
|
|||||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||||
javaTimeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(formatter));
|
javaTimeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(formatter));
|
||||||
javaTimeModule.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(formatter));
|
javaTimeModule.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(formatter));
|
||||||
javaTimeModule.addDeserializer(Date.class, new CustomDateDeserializer());
|
javaTimeModule.addDeserializer(Instant.class, new CustomInstantDeserializer());
|
||||||
builder.modules(javaTimeModule);
|
builder.modules(javaTimeModule);
|
||||||
builder.timeZone(TimeZone.getDefault());
|
builder.timeZone(TimeZone.getDefault());
|
||||||
log.info("初始化 jackson 配置");
|
log.info("初始化 jackson 配置");
|
||||||
|
|||||||
@ -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<Instant> {
|
||||||
|
|
||||||
|
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();
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -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.Instant;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 操作日志事件
|
* 操作日志事件
|
||||||
@ -106,7 +106,7 @@ public class OperLogEvent implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 操作时间
|
* 操作时间
|
||||||
*/
|
*/
|
||||||
private Date operTime;
|
private Instant operTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 消耗时间
|
* 消耗时间
|
||||||
|
|||||||
@ -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.Instant;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -46,7 +46,7 @@ public class BaseEntity implements Serializable {
|
|||||||
* 创建时间
|
* 创建时间
|
||||||
*/
|
*/
|
||||||
@TableField(fill = FieldFill.INSERT)
|
@TableField(fill = FieldFill.INSERT)
|
||||||
private Date createTime;
|
private Instant createTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新者
|
* 更新者
|
||||||
@ -58,7 +58,7 @@ public class BaseEntity implements Serializable {
|
|||||||
* 更新时间
|
* 更新时间
|
||||||
*/
|
*/
|
||||||
@TableField(fill = FieldFill.INSERT_UPDATE)
|
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||||
private Date updateTime;
|
private Instant updateTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 请求参数
|
* 请求参数
|
||||||
|
|||||||
@ -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.Instant;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* MP注入处理器
|
* MP注入处理器
|
||||||
@ -32,7 +32,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());
|
Instant current = ObjectUtils.notNull(baseEntity.getCreateTime(), Instant.now());
|
||||||
baseEntity.setCreateTime(current);
|
baseEntity.setCreateTime(current);
|
||||||
baseEntity.setUpdateTime(current);
|
baseEntity.setUpdateTime(current);
|
||||||
|
|
||||||
@ -48,9 +48,9 @@ public class InjectionMetaObjectHandler implements MetaObjectHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Date date = new Date();
|
Instant now = Instant.now();
|
||||||
this.strictInsertFill(metaObject, "createTime", Date.class, date);
|
this.strictInsertFill(metaObject, "createTime", Instant.class, now);
|
||||||
this.strictInsertFill(metaObject, "updateTime", Date.class, date);
|
this.strictInsertFill(metaObject, "updateTime", Instant.class, now);
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new ServiceException("自动注入异常 => " + e.getMessage(), HttpStatus.HTTP_UNAUTHORIZED);
|
throw new ServiceException("自动注入异常 => " + e.getMessage(), HttpStatus.HTTP_UNAUTHORIZED);
|
||||||
@ -67,7 +67,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();
|
Instant current = Instant.now();
|
||||||
baseEntity.setUpdateTime(current);
|
baseEntity.setUpdateTime(current);
|
||||||
|
|
||||||
// 获取当前登录用户的ID,并填充更新人信息
|
// 获取当前登录用户的ID,并填充更新人信息
|
||||||
@ -76,7 +76,7 @@ public class InjectionMetaObjectHandler implements MetaObjectHandler {
|
|||||||
baseEntity.setUpdateBy(userId);
|
baseEntity.setUpdateBy(userId);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
this.strictUpdateFill(metaObject, "updateTime", Date.class, new Date());
|
this.strictUpdateFill(metaObject, "updateTime", Instant.class, Instant.now());
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new ServiceException("自动注入异常 => " + e.getMessage(), HttpStatus.HTTP_UNAUTHORIZED);
|
throw new ServiceException("自动注入异常 => " + e.getMessage(), HttpStatus.HTTP_UNAUTHORIZED);
|
||||||
|
|||||||
@ -3,7 +3,7 @@ package org.dromara.common.oss.core;
|
|||||||
import cn.hutool.core.io.IoUtil;
|
import cn.hutool.core.io.IoUtil;
|
||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
import org.dromara.common.core.constant.Constants;
|
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.StringUtils;
|
||||||
import org.dromara.common.core.utils.file.FileUtils;
|
import org.dromara.common.core.utils.file.FileUtils;
|
||||||
import org.dromara.common.oss.constant.OssConstant;
|
import org.dromara.common.oss.constant.OssConstant;
|
||||||
@ -439,7 +439,7 @@ public class OssClient {
|
|||||||
// 生成uuid
|
// 生成uuid
|
||||||
String uuid = IdUtil.fastSimpleUUID();
|
String uuid = IdUtil.fastSimpleUUID();
|
||||||
// 生成日期路径
|
// 生成日期路径
|
||||||
String datePath = DateUtils.datePath();
|
String datePath = Date8Utils.datePath();
|
||||||
// 拼接路径
|
// 拼接路径
|
||||||
String path = StringUtils.isNotEmpty(prefix) ?
|
String path = StringUtils.isNotEmpty(prefix) ?
|
||||||
prefix + StringUtils.SLASH + datePath + StringUtils.SLASH + uuid : datePath + StringUtils.SLASH + uuid;
|
prefix + StringUtils.SLASH + datePath + StringUtils.SLASH + uuid : datePath + StringUtils.SLASH + uuid;
|
||||||
|
|||||||
@ -12,7 +12,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.Instant;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -74,7 +74,7 @@ public class TestDemoVo implements Serializable {
|
|||||||
* 创建时间
|
* 创建时间
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "创建时间")
|
@ExcelProperty(value = "创建时间")
|
||||||
private Date createTime;
|
private Instant createTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建人
|
* 创建人
|
||||||
@ -93,7 +93,7 @@ public class TestDemoVo implements Serializable {
|
|||||||
* 更新时间
|
* 更新时间
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "更新时间")
|
@ExcelProperty(value = "更新时间")
|
||||||
private Date updateTime;
|
private Instant updateTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新人
|
* 更新人
|
||||||
|
|||||||
@ -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.Instant;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -58,7 +58,7 @@ public class TestTreeVo implements Serializable {
|
|||||||
* 创建时间
|
* 创建时间
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "创建时间")
|
@ExcelProperty(value = "创建时间")
|
||||||
private Date createTime;
|
private Instant createTime;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -167,7 +167,7 @@ public interface GenConstants {
|
|||||||
/**
|
/**
|
||||||
* 时间类型
|
* 时间类型
|
||||||
*/
|
*/
|
||||||
String TYPE_DATE = "Date";
|
String TYPE_DATE = "Instant";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 模糊查询
|
* 模糊查询
|
||||||
|
|||||||
@ -44,6 +44,7 @@ import java.io.File;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.StringWriter;
|
import java.io.StringWriter;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.time.Instant;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.zip.ZipEntry;
|
import java.util.zip.ZipEntry;
|
||||||
import java.util.zip.ZipOutputStream;
|
import java.util.zip.ZipOutputStream;
|
||||||
@ -162,8 +163,8 @@ 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()));
|
gen.setCreateTime(x.getCreateTime() != null ? x.getCreateTime().toInstant() : Instant.now());
|
||||||
gen.setUpdateTime(x.getUpdateTime());
|
gen.setUpdateTime(x.getUpdateTime() != null ? x.getUpdateTime().toInstant() : Instant.now());
|
||||||
return gen;
|
return gen;
|
||||||
}).sorted(Comparator.comparing(GenTable::getCreateTime).reversed())
|
}).sorted(Comparator.comparing(GenTable::getCreateTime).reversed())
|
||||||
.toList();
|
.toList();
|
||||||
@ -199,8 +200,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(x.getCreateTime() != null ? x.getCreateTime().toInstant() : Instant.now());
|
||||||
gen.setUpdateTime(x.getUpdateTime());
|
gen.setUpdateTime(x.getUpdateTime() != null ? x.getUpdateTime().toInstant() : Instant.now());
|
||||||
return gen;
|
return gen;
|
||||||
}).toList();
|
}).toList();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,8 +3,8 @@ package org.dromara.generator.util;
|
|||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.convert.Convert;
|
import cn.hutool.core.convert.Convert;
|
||||||
import cn.hutool.core.lang.Dict;
|
import cn.hutool.core.lang.Dict;
|
||||||
|
import org.dromara.common.core.utils.Date8Utils;
|
||||||
import org.dromara.generator.constant.GenConstants;
|
import org.dromara.generator.constant.GenConstants;
|
||||||
import org.dromara.common.core.utils.DateUtils;
|
|
||||||
import org.dromara.common.core.utils.StringUtils;
|
import org.dromara.common.core.utils.StringUtils;
|
||||||
import org.dromara.common.json.utils.JsonUtils;
|
import org.dromara.common.json.utils.JsonUtils;
|
||||||
import org.dromara.common.mybatis.helper.DataBaseHelper;
|
import org.dromara.common.mybatis.helper.DataBaseHelper;
|
||||||
@ -63,7 +63,7 @@ public class VelocityUtils {
|
|||||||
velocityContext.put("basePackage", getPackagePrefix(packageName));
|
velocityContext.put("basePackage", getPackagePrefix(packageName));
|
||||||
velocityContext.put("packageName", packageName);
|
velocityContext.put("packageName", packageName);
|
||||||
velocityContext.put("author", genTable.getFunctionAuthor());
|
velocityContext.put("author", genTable.getFunctionAuthor());
|
||||||
velocityContext.put("datetime", DateUtils.getDate());
|
velocityContext.put("datetime", Date8Utils.getDate());
|
||||||
velocityContext.put("pkColumn", genTable.getPkColumn());
|
velocityContext.put("pkColumn", genTable.getPkColumn());
|
||||||
velocityContext.put("importList", getImportList(genTable));
|
velocityContext.put("importList", getImportList(genTable));
|
||||||
velocityContext.put("permissionPrefix", getPermissionPrefix(moduleName, businessName));
|
velocityContext.put("permissionPrefix", getPermissionPrefix(moduleName, businessName));
|
||||||
@ -211,7 +211,7 @@ public class VelocityUtils {
|
|||||||
HashSet<String> importList = new HashSet<>();
|
HashSet<String> importList = new HashSet<>();
|
||||||
for (GenTableColumn column : columns) {
|
for (GenTableColumn column : columns) {
|
||||||
if (!column.isSuperColumn() && GenConstants.TYPE_DATE.equals(column.getJavaType())) {
|
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");
|
importList.add("com.fasterxml.jackson.annotation.JsonFormat");
|
||||||
} else if (!column.isSuperColumn() && GenConstants.TYPE_BIGDECIMAL.equals(column.getJavaType())) {
|
} else if (!column.isSuperColumn() && GenConstants.TYPE_BIGDECIMAL.equals(column.getJavaType())) {
|
||||||
importList.add("java.math.BigDecimal");
|
importList.add("java.math.BigDecimal");
|
||||||
|
|||||||
@ -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.Instant;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -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.Instant;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 系统访问记录表 sys_logininfor
|
* 系统访问记录表 sys_logininfor
|
||||||
@ -80,6 +80,6 @@ public class SysLogininfor implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 访问时间
|
* 访问时间
|
||||||
*/
|
*/
|
||||||
private Date loginTime;
|
private Instant loginTime;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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.Instant;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 操作日志记录表 oper_log
|
* 操作日志记录表 oper_log
|
||||||
@ -105,7 +105,7 @@ public class SysOperLog implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 操作时间
|
* 操作时间
|
||||||
*/
|
*/
|
||||||
private Date operTime;
|
private Instant operTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 消耗时间
|
* 消耗时间
|
||||||
|
|||||||
@ -8,7 +8,7 @@ import lombok.Data;
|
|||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
import java.util.Date;
|
import java.time.Instant;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 租户对象 sys_tenant
|
* 租户对象 sys_tenant
|
||||||
@ -82,7 +82,7 @@ public class SysTenant extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 过期时间
|
* 过期时间
|
||||||
*/
|
*/
|
||||||
private Date expireTime;
|
private Instant expireTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户数量(-1不限制)
|
* 用户数量(-1不限制)
|
||||||
|
|||||||
@ -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.tenant.core.TenantEntity;
|
import org.dromara.common.tenant.core.TenantEntity;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.time.Instant;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户对象 sys_user
|
* 用户对象 sys_user
|
||||||
@ -96,7 +96,7 @@ public class SysUser extends TenantEntity {
|
|||||||
/**
|
/**
|
||||||
* 最后登录时间
|
* 最后登录时间
|
||||||
*/
|
*/
|
||||||
private Date loginDate;
|
private Instant loginDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 备注
|
* 备注
|
||||||
|
|||||||
@ -4,7 +4,7 @@ import org.dromara.system.domain.SysLogininfor;
|
|||||||
import io.github.linpeilie.annotations.AutoMapper;
|
import io.github.linpeilie.annotations.AutoMapper;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.time.Instant;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -76,7 +76,7 @@ public class SysLogininforBo {
|
|||||||
/**
|
/**
|
||||||
* 访问时间
|
* 访问时间
|
||||||
*/
|
*/
|
||||||
private Date loginTime;
|
private Instant loginTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 请求参数
|
* 请求参数
|
||||||
|
|||||||
@ -6,7 +6,7 @@ import io.github.linpeilie.annotations.AutoMapper;
|
|||||||
import io.github.linpeilie.annotations.AutoMappers;
|
import io.github.linpeilie.annotations.AutoMappers;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.time.Instant;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -112,7 +112,7 @@ public class SysOperLogBo {
|
|||||||
/**
|
/**
|
||||||
* 操作时间
|
* 操作时间
|
||||||
*/
|
*/
|
||||||
private Date operTime;
|
private Instant operTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 消耗时间
|
* 消耗时间
|
||||||
|
|||||||
@ -8,7 +8,7 @@ import lombok.Data;
|
|||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import jakarta.validation.constraints.*;
|
import jakarta.validation.constraints.*;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.time.Instant;
|
||||||
|
|
||||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||||
|
|
||||||
@ -98,7 +98,7 @@ public class SysTenantBo extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 过期时间
|
* 过期时间
|
||||||
*/
|
*/
|
||||||
private Date expireTime;
|
private Instant expireTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户数量(-1不限制)
|
* 用户数量(-1不限制)
|
||||||
|
|||||||
@ -10,7 +10,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.Instant;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -67,6 +67,6 @@ public class SysConfigVo implements Serializable {
|
|||||||
* 创建时间
|
* 创建时间
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "创建时间")
|
@ExcelProperty(value = "创建时间")
|
||||||
private Date createTime;
|
private Instant createTime;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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.Instant;
|
||||||
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 Instant createTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 子部门
|
* 子部门
|
||||||
|
|||||||
@ -10,7 +10,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.Instant;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -83,6 +83,6 @@ public class SysDictDataVo implements Serializable {
|
|||||||
* 创建时间
|
* 创建时间
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "创建时间")
|
@ExcelProperty(value = "创建时间")
|
||||||
private Date createTime;
|
private Instant createTime;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -10,7 +10,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.Instant;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -54,6 +54,6 @@ public class SysDictTypeVo implements Serializable {
|
|||||||
* 创建时间
|
* 创建时间
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "创建时间")
|
@ExcelProperty(value = "创建时间")
|
||||||
private Date createTime;
|
private Instant createTime;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
package org.dromara.system.domain.vo;
|
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.ExcelIgnoreUnannotated;
|
||||||
import cn.idev.excel.annotation.ExcelProperty;
|
import cn.idev.excel.annotation.ExcelProperty;
|
||||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||||
@ -100,7 +100,7 @@ public class SysLogininforVo implements Serializable {
|
|||||||
* 访问时间
|
* 访问时间
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "访问时间")
|
@ExcelProperty(value = "访问时间")
|
||||||
private Date loginTime;
|
private Instant loginTime;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,7 +7,7 @@ import lombok.Data;
|
|||||||
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.Instant;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
@ -106,7 +106,7 @@ public class SysMenuVo implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 创建时间
|
* 创建时间
|
||||||
*/
|
*/
|
||||||
private Date createTime;
|
private Instant createTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 子菜单
|
* 子菜单
|
||||||
|
|||||||
@ -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.Instant;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -68,6 +68,6 @@ public class SysNoticeVo implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 创建时间
|
* 创建时间
|
||||||
*/
|
*/
|
||||||
private Date createTime;
|
private Instant createTime;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -10,7 +10,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.Instant;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -134,7 +134,7 @@ public class SysOperLogVo implements Serializable {
|
|||||||
* 操作时间
|
* 操作时间
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "操作时间")
|
@ExcelProperty(value = "操作时间")
|
||||||
private Date operTime;
|
private Instant operTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 消耗时间
|
* 消耗时间
|
||||||
|
|||||||
@ -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.Instant;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* OSS对象存储视图对象 sys_oss
|
* OSS对象存储视图对象 sys_oss
|
||||||
@ -55,7 +55,7 @@ public class SysOssVo implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 创建时间
|
* 创建时间
|
||||||
*/
|
*/
|
||||||
private Date createTime;
|
private Instant createTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 上传人
|
* 上传人
|
||||||
|
|||||||
@ -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.Instant;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 岗位信息视图对象 sys_post
|
* 岗位信息视图对象 sys_post
|
||||||
@ -80,7 +80,7 @@ public class SysPostVo implements Serializable {
|
|||||||
* 创建时间
|
* 创建时间
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "创建时间")
|
@ExcelProperty(value = "创建时间")
|
||||||
private Date createTime;
|
private Instant createTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 部门名
|
* 部门名
|
||||||
|
|||||||
@ -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.Instant;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 角色信息视图对象 sys_role
|
* 角色信息视图对象 sys_role
|
||||||
@ -86,7 +86,7 @@ public class SysRoleVo implements Serializable {
|
|||||||
* 创建时间
|
* 创建时间
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "创建时间")
|
@ExcelProperty(value = "创建时间")
|
||||||
private Date createTime;
|
private Instant createTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户是否存在此角色标识 默认不存在
|
* 用户是否存在此角色标识 默认不存在
|
||||||
|
|||||||
@ -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.Instant;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -140,5 +140,5 @@ public class SysSocialVo implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 创建时间
|
* 创建时间
|
||||||
*/
|
*/
|
||||||
private Date createTime;
|
private Instant createTime;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
package org.dromara.system.domain.vo;
|
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.ExcelIgnoreUnannotated;
|
||||||
import cn.idev.excel.annotation.ExcelProperty;
|
import cn.idev.excel.annotation.ExcelProperty;
|
||||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||||
@ -96,7 +96,7 @@ public class SysTenantVo implements Serializable {
|
|||||||
* 过期时间
|
* 过期时间
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "过期时间")
|
@ExcelProperty(value = "过期时间")
|
||||||
private Date expireTime;
|
private Instant expireTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户数量(-1不限制)
|
* 用户数量(-1不限制)
|
||||||
|
|||||||
@ -10,7 +10,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.Instant;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户对象导出VO
|
* 用户对象导出VO
|
||||||
@ -79,7 +79,7 @@ public class SysUserExportVo implements Serializable {
|
|||||||
* 最后登录时间
|
* 最后登录时间
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "最后登录时间")
|
@ExcelProperty(value = "最后登录时间")
|
||||||
private Date loginDate;
|
private Instant loginDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 部门名称
|
* 部门名称
|
||||||
|
|||||||
@ -12,7 +12,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.Instant;
|
||||||
import java.util.List;
|
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;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 部门名
|
* 部门名
|
||||||
|
|||||||
@ -29,7 +29,7 @@ import org.springframework.scheduling.annotation.Async;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Date;
|
import java.time.Instant;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -132,7 +132,7 @@ public class SysLogininforServiceImpl implements ISysLogininforService {
|
|||||||
@Override
|
@Override
|
||||||
public void insertLogininfor(SysLogininforBo bo) {
|
public void insertLogininfor(SysLogininforBo bo) {
|
||||||
SysLogininfor logininfor = MapstructUtils.convert(bo, SysLogininfor.class);
|
SysLogininfor logininfor = MapstructUtils.convert(bo, SysLogininfor.class);
|
||||||
logininfor.setLoginTime(new Date());
|
logininfor.setLoginTime(Instant.now());
|
||||||
baseMapper.insert(logininfor);
|
baseMapper.insert(logininfor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -20,7 +20,7 @@ import org.springframework.scheduling.annotation.Async;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Date;
|
import java.time.Instant;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -86,7 +86,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(Instant.now());
|
||||||
baseMapper.insert(operLog);
|
baseMapper.insert(operLog);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -34,7 +34,7 @@ import org.springframework.cache.annotation.CacheEvict;
|
|||||||
import org.springframework.cache.annotation.Cacheable;
|
import org.springframework.cache.annotation.Cacheable;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import java.time.Instant;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -365,7 +365,7 @@ public class SysTenantServiceImpl implements ISysTenantService {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
// 如果当前时间在过期时间之前则通过
|
// 如果当前时间在过期时间之前则通过
|
||||||
return new Date().before(tenant.getExpireTime());
|
return Instant.now().isBefore(tenant.getExpireTime());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -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.Instant;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 请假对象 test_leave
|
* 请假对象 test_leave
|
||||||
@ -37,12 +37,12 @@ public class TestLeave extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 开始时间
|
* 开始时间
|
||||||
*/
|
*/
|
||||||
private Date startDate;
|
private Instant startDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 结束时间
|
* 结束时间
|
||||||
*/
|
*/
|
||||||
private Date endDate;
|
private Instant endDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 请假天数
|
* 请假天数
|
||||||
|
|||||||
@ -12,7 +12,7 @@ import org.dromara.common.mybatis.core.domain.BaseEntity;
|
|||||||
import org.dromara.workflow.domain.TestLeave;
|
import org.dromara.workflow.domain.TestLeave;
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.time.Instant;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 请假业务对象 test_leave
|
* 请假业务对象 test_leave
|
||||||
@ -41,17 +41,17 @@ public class TestLeaveBo extends BaseEntity {
|
|||||||
* 开始时间
|
* 开始时间
|
||||||
*/
|
*/
|
||||||
@NotNull(message = "开始时间不能为空", groups = {AddGroup.class, EditGroup.class})
|
@NotNull(message = "开始时间不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
private Date startDate;
|
private Instant startDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 结束时间
|
* 结束时间
|
||||||
*/
|
*/
|
||||||
@NotNull(message = "结束时间不能为空", groups = {AddGroup.class, EditGroup.class})
|
@NotNull(message = "结束时间不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
private Date endDate;
|
private Instant endDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 请假天数
|
* 请假天数
|
||||||
|
|||||||
@ -9,7 +9,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.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.time.Instant;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
@ -64,7 +64,7 @@ public class FlowCategoryVo implements Serializable {
|
|||||||
* 创建时间
|
* 创建时间
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "创建时间")
|
@ExcelProperty(value = "创建时间")
|
||||||
private Date createTime;
|
private Instant createTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 子菜单
|
* 子菜单
|
||||||
|
|||||||
@ -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.Instant;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 流程定义视图
|
* 流程定义视图
|
||||||
@ -24,12 +24,12 @@ public class FlowDefinitionVo implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 创建时间
|
* 创建时间
|
||||||
*/
|
*/
|
||||||
private Date createTime;
|
private Instant createTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新时间
|
* 更新时间
|
||||||
*/
|
*/
|
||||||
private Date updateTime;
|
private Instant updateTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 租户ID
|
* 租户ID
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
package org.dromara.workflow.domain.vo;
|
package org.dromara.workflow.domain.vo;
|
||||||
|
|
||||||
import lombok.Data;
|
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.annotation.Translation;
|
||||||
import org.dromara.common.translation.constant.TransConstant;
|
import org.dromara.common.translation.constant.TransConstant;
|
||||||
import org.dromara.warm.flow.core.enums.CooperateType;
|
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.Serial;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.Date;
|
import java.time.Instant;
|
||||||
import java.util.List;
|
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
|
* 租户ID
|
||||||
@ -208,7 +208,7 @@ public class FlowHisTaskVo implements Serializable {
|
|||||||
*
|
*
|
||||||
* @param createTime 创建时间
|
* @param createTime 创建时间
|
||||||
*/
|
*/
|
||||||
public void setCreateTime(Date createTime) {
|
public void setCreateTime(Instant createTime) {
|
||||||
this.createTime = createTime;
|
this.createTime = createTime;
|
||||||
updateRunDuration();
|
updateRunDuration();
|
||||||
}
|
}
|
||||||
@ -218,7 +218,7 @@ public class FlowHisTaskVo implements Serializable {
|
|||||||
*
|
*
|
||||||
* @param updateTime 更新时间
|
* @param updateTime 更新时间
|
||||||
*/
|
*/
|
||||||
public void setUpdateTime(Date updateTime) {
|
public void setUpdateTime(Instant updateTime) {
|
||||||
this.updateTime = updateTime;
|
this.updateTime = updateTime;
|
||||||
updateRunDuration();
|
updateRunDuration();
|
||||||
}
|
}
|
||||||
@ -229,7 +229,7 @@ public class FlowHisTaskVo implements Serializable {
|
|||||||
private void updateRunDuration() {
|
private void updateRunDuration() {
|
||||||
// 如果创建时间和更新时间均不为空,计算它们之间的时长
|
// 如果创建时间和更新时间均不为空,计算它们之间的时长
|
||||||
if (this.updateTime != null && this.createTime != null) {
|
if (this.updateTime != null && this.createTime != null) {
|
||||||
this.runDuration = DateUtils.getTimeDifference(this.updateTime, this.createTime);
|
this.runDuration = Date8Utils.getTimeDifference(this.updateTime, this.createTime);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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.Instant;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 流程实例视图
|
* 流程实例视图
|
||||||
@ -20,12 +20,12 @@ public class FlowInstanceVo {
|
|||||||
/**
|
/**
|
||||||
* 创建时间
|
* 创建时间
|
||||||
*/
|
*/
|
||||||
private Date createTime;
|
private Instant createTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新时间
|
* 更新时间
|
||||||
*/
|
*/
|
||||||
private Date updateTime;
|
private Instant updateTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 租户ID
|
* 租户ID
|
||||||
|
|||||||
@ -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.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.time.Instant;
|
||||||
import java.util.List;
|
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
|
* 租户ID
|
||||||
|
|||||||
@ -9,7 +9,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.Instant;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -43,14 +43,14 @@ public class TestLeaveVo implements Serializable {
|
|||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "开始时间")
|
@ExcelProperty(value = "开始时间")
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
private Date startDate;
|
private Instant startDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 结束时间
|
* 结束时间
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "结束时间")
|
@ExcelProperty(value = "结束时间")
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
private Date endDate;
|
private Instant endDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 请假天数
|
* 请假天数
|
||||||
|
|||||||
@ -14,7 +14,7 @@ import org.dromara.common.core.enums.FormatsType;
|
|||||||
import org.dromara.common.core.service.DeptService;
|
import org.dromara.common.core.service.DeptService;
|
||||||
import org.dromara.common.core.service.TaskAssigneeService;
|
import org.dromara.common.core.service.TaskAssigneeService;
|
||||||
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.Date8Utils;
|
||||||
import org.dromara.common.core.utils.StringUtils;
|
import org.dromara.common.core.utils.StringUtils;
|
||||||
import org.dromara.warm.flow.ui.dto.HandlerFunDto;
|
import org.dromara.warm.flow.ui.dto.HandlerFunDto;
|
||||||
import org.dromara.warm.flow.ui.dto.HandlerQuery;
|
import org.dromara.warm.flow.ui.dto.HandlerQuery;
|
||||||
@ -162,7 +162,7 @@ public class FlwTaskAssigneeServiceImpl implements IFlwTaskAssigneeService, Hand
|
|||||||
Optional.ofNullable(assignee.getGroupName())
|
Optional.ofNullable(assignee.getGroupName())
|
||||||
.map(deptService::selectDeptNameByIds)
|
.map(deptService::selectDeptNameByIds)
|
||||||
.orElse(DEFAULT_GROUP_NAME), DEFAULT_GROUP_NAME))
|
.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()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -54,6 +54,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.time.Instant;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
|||||||
@ -29,6 +29,7 @@ import org.springframework.context.event.EventListener;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.time.Duration;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -101,7 +102,8 @@ 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);
|
Duration duration = Duration.between(bo.getStartDate(),bo.getEndDate());
|
||||||
|
long day = duration.toDays();
|
||||||
// 截止日期也算一天
|
// 截止日期也算一天
|
||||||
bo.setLeaveDays((int) day + 1);
|
bo.setLeaveDays((int) day + 1);
|
||||||
TestLeave add = MapstructUtils.convert(bo, TestLeave.class);
|
TestLeave add = MapstructUtils.convert(bo, TestLeave.class);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user