1. 新增统一的业务编码生成功能

This commit is contained in:
chenbowen
2025-08-12 14:09:36 +08:00
parent 8673aee281
commit fe28760a49
30 changed files with 1329 additions and 90 deletions

View File

@@ -1,13 +1,30 @@
package cn.iocoder.yudao.module.system.api.sequence;
import cn.iocoder.yudao.framework.common.biz.system.sequence.SequenceCommonApi;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.module.system.enums.ApiConstants;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
* @author chenbowen
*/
@FeignClient(name = ApiConstants.NAME)
@Tag(name = "序列管理 Api")
public interface SequenceApi {
@FeignClient(name = ApiConstants.NAME, primary = false) // TODO 芋艿fallbackFactory =
@Tag(name = "RPC 服务 - 序列号")
public interface SequenceApi extends SequenceCommonApi {
String PREFIX = ApiConstants.PREFIX + "/sequence";
@PostMapping(PREFIX + "/next-sequence")
@Operation(summary = "获取下一个序列号")
@Override
CommonResult<String> getNextSequence(@RequestParam("sequenceCode") String sequenceCode,
@RequestParam(value = "circulationValue", required = false) String circulationValue,
@RequestParam(value = "inputStrs", required = false) List<String> inputStrs);
}

View File

@@ -0,0 +1,20 @@
package cn.iocoder.yudao.module.system.enums.sequence;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 序列号分段规则类型枚举
*/
@Getter
@AllArgsConstructor
public enum SequenceDetailRuleEnum {
// 示例规则类型
FIXED("FIXED", "固定值"),
DATE("DATE", "日期格式"),
NUMBER("NUMBER", "数字格式"),
CUSTOM("CUSTOM", "自定义格式");
private final String code;
private final String name;
}

View File

@@ -0,0 +1,39 @@
package cn.iocoder.yudao.module.system.enums.sequence;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 序列号分段类型枚举
*/
@Getter
@AllArgsConstructor
public enum SequenceDetailTypeEnum {
// 默认字符分段
SEQ_DETAIL_TYPE_STR("STR", "默认字符分段"),
// 给定字符分段
SEQ_DETAIL_TYPE_INPUT("INPUT", "给定字符分段"),
// 日期分段
SEQ_DETAIL_TYPE_DATE("DATE", "日期分段"),
// 流水号分段
SEQ_DETAIL_TYPE_SEQ("SEQ", "流水号分段");
/**
* 类型编码
*/
private final String code;
private final String name;
public static SequenceDetailTypeEnum getByCode(String code) {
if (code == null) {
return null;
}
for (SequenceDetailTypeEnum value : SequenceDetailTypeEnum.values()) {
if (value.getCode().equals(code)) {
return value;
}
}
return null;
}
}