From ce136a4e35d8f4e563f6a82d7527e9209effd59f Mon Sep 17 00:00:00 2001 From: wangxiang <1827945911@qq.com> Date: Thu, 28 Sep 2023 11:28:38 +0800 Subject: [PATCH] chore: support version time --- .../workflow/api/entity/WorkflowModel.java | 10 ++-- .../workflow/KiccWorkflowApplication.java | 2 - .../kicc/workflow/config/JacksonConfig.java | 46 +++++++++++++++++++ .../controller/WorkflowModelController.java | 4 +- .../jackson2/ModelRepresentationMixin.java | 28 +++++++++++ 5 files changed, 81 insertions(+), 9 deletions(-) create mode 100644 kicc-platform/kicc-platform-biz/kicc-workflow-biz/src/main/java/com/cloud/kicc/workflow/config/JacksonConfig.java create mode 100644 kicc-platform/kicc-platform-biz/kicc-workflow-biz/src/main/java/com/cloud/kicc/workflow/override/jackson2/ModelRepresentationMixin.java diff --git a/kicc-platform/kicc-platform-api/kicc-workflow-api/src/main/java/com/cloud/kicc/workflow/api/entity/WorkflowModel.java b/kicc-platform/kicc-platform-api/kicc-workflow-api/src/main/java/com/cloud/kicc/workflow/api/entity/WorkflowModel.java index c4410c69..429b1296 100644 --- a/kicc-platform/kicc-platform-api/kicc-workflow-api/src/main/java/com/cloud/kicc/workflow/api/entity/WorkflowModel.java +++ b/kicc-platform/kicc-platform-api/kicc-workflow-api/src/main/java/com/cloud/kicc/workflow/api/entity/WorkflowModel.java @@ -9,7 +9,7 @@ import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import java.io.Serializable; -import java.time.LocalDateTime; +import java.util.Date; /** *
@@ -44,16 +44,16 @@ public class WorkflowModel implements Serializable { private String modelComment; /** 创建时间 */ - private LocalDateTime createTime; + private Date created; /** 创建人 */ - private String createById; + private String createdBy; /** 最后更新时间 */ - private LocalDateTime updateTime; + private Date lastUpdated; /** 最后更新人 */ - private String updateById; + private String lastUpdatedBy; /** 模型版本 */ private int version; diff --git a/kicc-platform/kicc-platform-biz/kicc-workflow-biz/src/main/java/com/cloud/kicc/workflow/KiccWorkflowApplication.java b/kicc-platform/kicc-platform-biz/kicc-workflow-biz/src/main/java/com/cloud/kicc/workflow/KiccWorkflowApplication.java index 76732c35..2b95a157 100644 --- a/kicc-platform/kicc-platform-biz/kicc-workflow-biz/src/main/java/com/cloud/kicc/workflow/KiccWorkflowApplication.java +++ b/kicc-platform/kicc-platform-biz/kicc-workflow-biz/src/main/java/com/cloud/kicc/workflow/KiccWorkflowApplication.java @@ -1,6 +1,5 @@ package com.cloud.kicc.workflow; -import com.cloud.kicc.common.core.annotation.EnableKiccJacksonAutoConvert; import com.cloud.kicc.common.data.annotation.EnableKiccDataRepository; import com.cloud.kicc.common.feign.annotation.EnableKiccFeignClients; import com.cloud.kicc.common.security.annotation.EnableKiccResourceServer; @@ -20,7 +19,6 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; @EnableKiccResourceServer @EnableKiccFeignClients @SpringBootApplication -@EnableKiccJacksonAutoConvert @EnableKiccDataRepository public class KiccWorkflowApplication { diff --git a/kicc-platform/kicc-platform-biz/kicc-workflow-biz/src/main/java/com/cloud/kicc/workflow/config/JacksonConfig.java b/kicc-platform/kicc-platform-biz/kicc-workflow-biz/src/main/java/com/cloud/kicc/workflow/config/JacksonConfig.java new file mode 100644 index 00000000..b7fdeeae --- /dev/null +++ b/kicc-platform/kicc-platform-biz/kicc-workflow-biz/src/main/java/com/cloud/kicc/workflow/config/JacksonConfig.java @@ -0,0 +1,46 @@ +package com.cloud.kicc.workflow.config; + +import cn.hutool.core.date.DatePattern; +import com.cloud.kicc.common.core.jackson.KiccJavaTimeModule; +import com.cloud.kicc.workflow.override.jackson2.ModelRepresentationMixin; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import org.flowable.ui.modeler.model.ModelRepresentation; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.time.ZoneId; +import java.util.Locale; +import java.util.TimeZone; + +/** + *
+ * 配置Jackson + *
+ * + * @Author: wangxiang4 + * @Since: 2023/9/28 + */ +@Configuration +@ConditionalOnClass(ObjectMapper.class) +public class JacksonConfig { + + @Bean + public Jackson2ObjectMapperBuilderCustomizer customizer() { + return builder -> { + builder.locale(Locale.CHINA); + builder.timeZone(TimeZone.getTimeZone(ZoneId.systemDefault())); + // 针对于Date类型,文本格式化,已经实现前端返回时间戳 + builder.simpleDateFormat(DatePattern.NORM_DATETIME_PATTERN); + // 解决返回给前端的Long类型数据失去精度,将Long转换为String + builder.serializerByType(Long.class, ToStringSerializer.instance); + // 设置自定义的 Mixin 类 + builder.mixIn(ModelRepresentation.class, ModelRepresentationMixin.class); + // 针对于JDK新时间类,序列化时带有T的问题,自定义格式化字符串 + builder.modules(new KiccJavaTimeModule()); + }; + } + +} diff --git a/kicc-platform/kicc-platform-biz/kicc-workflow-biz/src/main/java/com/cloud/kicc/workflow/controller/WorkflowModelController.java b/kicc-platform/kicc-platform-biz/kicc-workflow-biz/src/main/java/com/cloud/kicc/workflow/controller/WorkflowModelController.java index 2420c00e..5562b53e 100644 --- a/kicc-platform/kicc-platform-biz/kicc-workflow-biz/src/main/java/com/cloud/kicc/workflow/controller/WorkflowModelController.java +++ b/kicc-platform/kicc-platform-biz/kicc-workflow-biz/src/main/java/com/cloud/kicc/workflow/controller/WorkflowModelController.java @@ -73,7 +73,7 @@ public class WorkflowModelController { private LambdaQueryWrapper+ * 序列化模型版本冲突修改时间戳 + *
+ * + * @Author: wangxiang4 + * @Since: 2023/9/28 + */ +@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.PUBLIC_ONLY, + isGetterVisibility = JsonAutoDetect.Visibility.NONE) +@JsonIgnoreProperties(ignoreUnknown = true) +public abstract class ModelRepresentationMixin { + + @JsonFormat(shape = JsonFormat.Shape.NUMBER) + abstract Date getLastUpdated(); + +}