feat: 新增编码分段配置DTO(Jackson多态)
This commit is contained in:
@@ -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;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user