From d0ac7a730b33d413fbdb132e5230e99d12bec505 Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Wed, 15 Jul 2026 16:53:54 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E7=BC=96=E7=A0=81?= =?UTF-8?q?=E5=88=86=E6=AE=B5=E9=85=8D=E7=BD=AEDTO=EF=BC=88Jackson?= =?UTF-8?q?=E5=A4=9A=E6=80=81=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/service/codegen/dto/DateSegment.java | 20 ++++++++++ .../service/codegen/dto/PrefixSegment.java | 20 ++++++++++ .../service/codegen/dto/SegmentConfig.java | 26 ++++++++++++ .../service/codegen/dto/SequenceSegment.java | 40 +++++++++++++++++++ 4 files changed, 106 insertions(+) create mode 100644 nl-module-base/nl-module-base-server/src/main/java/cn/code/nl/module/base/service/codegen/dto/DateSegment.java create mode 100644 nl-module-base/nl-module-base-server/src/main/java/cn/code/nl/module/base/service/codegen/dto/PrefixSegment.java create mode 100644 nl-module-base/nl-module-base-server/src/main/java/cn/code/nl/module/base/service/codegen/dto/SegmentConfig.java create mode 100644 nl-module-base/nl-module-base-server/src/main/java/cn/code/nl/module/base/service/codegen/dto/SequenceSegment.java diff --git a/nl-module-base/nl-module-base-server/src/main/java/cn/code/nl/module/base/service/codegen/dto/DateSegment.java b/nl-module-base/nl-module-base-server/src/main/java/cn/code/nl/module/base/service/codegen/dto/DateSegment.java new file mode 100644 index 00000000..382fd548 --- /dev/null +++ b/nl-module-base/nl-module-base-server/src/main/java/cn/code/nl/module/base/service/codegen/dto/DateSegment.java @@ -0,0 +1,20 @@ +package cn.code.nl.module.base.service.codegen.dto; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 日期段配置 + * + * @author zhouz + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class DateSegment extends SegmentConfig { + + /** + * 日期格式,如 "yyyyMMdd"、"yyyyMM"、"yyyy" + */ + private String format; + +} diff --git a/nl-module-base/nl-module-base-server/src/main/java/cn/code/nl/module/base/service/codegen/dto/PrefixSegment.java b/nl-module-base/nl-module-base-server/src/main/java/cn/code/nl/module/base/service/codegen/dto/PrefixSegment.java new file mode 100644 index 00000000..cd61a833 --- /dev/null +++ b/nl-module-base/nl-module-base-server/src/main/java/cn/code/nl/module/base/service/codegen/dto/PrefixSegment.java @@ -0,0 +1,20 @@ +package cn.code.nl.module.base.service.codegen.dto; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 固定前缀段配置 + * + * @author zhouz + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class PrefixSegment extends SegmentConfig { + + /** + * 固定前缀值,如 "ORD" + */ + private String value; + +} diff --git a/nl-module-base/nl-module-base-server/src/main/java/cn/code/nl/module/base/service/codegen/dto/SegmentConfig.java b/nl-module-base/nl-module-base-server/src/main/java/cn/code/nl/module/base/service/codegen/dto/SegmentConfig.java new file mode 100644 index 00000000..495bbf56 --- /dev/null +++ b/nl-module-base/nl-module-base-server/src/main/java/cn/code/nl/module/base/service/codegen/dto/SegmentConfig.java @@ -0,0 +1,26 @@ +package cn.code.nl.module.base.service.codegen.dto; + +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.Data; + +/** + * 分段配置基类,使用 Jackson 多态序列化/反序列化 + * + * @author zhouz + */ +@Data +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "type") +@JsonSubTypes({ + @JsonSubTypes.Type(value = PrefixSegment.class, name = "PREFIX"), + @JsonSubTypes.Type(value = DateSegment.class, name = "DATE"), + @JsonSubTypes.Type(value = SequenceSegment.class, name = "SEQUENCE") +}) +public abstract class SegmentConfig { + + /** + * 段类型:PREFIX / DATE / SEQUENCE + */ + private String type; + +} diff --git a/nl-module-base/nl-module-base-server/src/main/java/cn/code/nl/module/base/service/codegen/dto/SequenceSegment.java b/nl-module-base/nl-module-base-server/src/main/java/cn/code/nl/module/base/service/codegen/dto/SequenceSegment.java new file mode 100644 index 00000000..0b0d6057 --- /dev/null +++ b/nl-module-base/nl-module-base-server/src/main/java/cn/code/nl/module/base/service/codegen/dto/SequenceSegment.java @@ -0,0 +1,40 @@ +package cn.code.nl.module.base.service.codegen.dto; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 流水序号段配置 + * + * @author zhouz + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class SequenceSegment extends SegmentConfig { + + /** + * 重置维度:DAY / MONTH / YEAR / GLOBAL + */ + private String resetBy; + + /** + * 起始值,默认 1 + */ + private Long startAt; + + /** + * 补位后的总长度,如 4 → 0001 + */ + private Integer paddingLen; + + /** + * 补位字符,默认 "0" + */ + private String paddingChar; + + /** + * 序号最大值上限 + */ + private Long maxValue; + +}