Browse Source

chore: workflow design compose

master
wangxiang 2 years ago
parent
commit
b046c68e42
No known key found for this signature in database
GPG Key ID: 1BA7946AB6B232E4
  1. 7
      kicc-platform/kicc-platform-biz/kicc-workflow-biz/src/main/java/com/cloud/kicc/workflow/config/JacksonConfig.java
  2. 5
      kicc-platform/kicc-platform-biz/kicc-workflow-biz/src/main/java/com/cloud/kicc/workflow/controller/WorkflowModelController.java
  3. 28
      kicc-platform/kicc-platform-biz/kicc-workflow-biz/src/main/java/com/cloud/kicc/workflow/override/jackson2/ModelRepresentationMixin.java

7
kicc-platform/kicc-platform-biz/kicc-workflow-biz/src/main/java/com/cloud/kicc/workflow/config/JacksonConfig.java

@ -1,8 +1,11 @@ @@ -1,8 +1,11 @@
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;
@ -29,8 +32,12 @@ public class JacksonConfig { @@ -29,8 +32,12 @@ public class JacksonConfig {
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);
// 设置自定义的ModelRepresentationMixin序列Mixin类
builder.mixIn(ModelRepresentation.class, ModelRepresentationMixin.class);
// 针对于JDK新时间类,序列化时带有T的问题,自定义格式化字符串
builder.modules(new KiccJavaTimeModule());
};

5
kicc-platform/kicc-platform-biz/kicc-workflow-biz/src/main/java/com/cloud/kicc/workflow/controller/WorkflowModelController.java

@ -164,9 +164,8 @@ public class WorkflowModelController { @@ -164,9 +164,8 @@ public class WorkflowModelController {
throw new BadRequestException("不存在上次更新日期");
} else {
try {
Date readValue = this.objectMapper.getDeserializationConfig().getDateFormat().parse(lastUpdatedString);
lastUpdated = readValue.getTime();
} catch (ParseException e) {
lastUpdated = Long.parseLong(lastUpdatedString);
} catch (NumberFormatException e) {
throw new BadRequestException("无效的上次更新日期: '" + e + "'");
}

28
kicc-platform/kicc-platform-biz/kicc-workflow-biz/src/main/java/com/cloud/kicc/workflow/override/jackson2/ModelRepresentationMixin.java

@ -0,0 +1,28 @@ @@ -0,0 +1,28 @@
package com.cloud.kicc.workflow.override.jackson2;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import java.util.Date;
/**
*<p>
* 序列化模型版本冲突修改时间戳
*</p>
*
* @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();
}
Loading…
Cancel
Save