feat: 新增编码分段配置DTO(Jackson多态)

This commit is contained in:
zhouz
2026-07-15 16:53:54 +08:00
parent cadd4659c5
commit d0ac7a730b
4 changed files with 106 additions and 0 deletions

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}