【代码评审】BPM:ID 编码器

This commit is contained in:
YunaiV 2025-02-09 07:04:06 +08:00
parent 3cbe59ace3
commit 129e9868fb
1 changed files with 3 additions and 5 deletions

View File

@ -1,6 +1,7 @@
package cn.iocoder.yudao.module.bpm.dal.redis;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model.BpmModelMetaInfoVO;
import jakarta.annotation.Resource;
import org.springframework.data.redis.core.StringRedisTemplate;
@ -29,7 +30,6 @@ public class BpmProcessIdRedisDAO {
public String generate(BpmModelMetaInfoVO.ProcessIdRule processIdRule) {
// 生成日期前缀
String infix = "";
boolean expireEnable = true;
switch (processIdRule.getInfix()) {
case "DAY":
infix = DateUtil.format(LocalDateTime.now(), "yyyyMMDD");
@ -43,16 +43,14 @@ public class BpmProcessIdRedisDAO {
case "SECOND":
infix = DateUtil.format(LocalDateTime.now(), "yyyyMMDDHHmmss");
break;
default:
expireEnable = false;
break;
}
// 生成序号
String noPrefix = processIdRule.getPrefix() + infix + processIdRule.getPostfix();
String key = RedisKeyConstants.BPM_PROCESS_ID + noPrefix;
Long no = stringRedisTemplate.opsForValue().increment(key);
if (Boolean.TRUE.equals(expireEnable)) {
if (StrUtil.isEmpty(infix)) {
// 特殊没有前缀则不能过期不能每次都是从 0 开始
stringRedisTemplate.expire(key, Duration.ofDays(1L));
}
return noPrefix + String.format("%0" + processIdRule.getLength() + "d", no);