common: RedisSequenceUtil添加 getComplexDiseaseNo功能

dev_2.1.0
xueqingkun 1 year ago
parent 1fd02b71b3
commit d01999fe4c

@ -1,16 +1,26 @@
package com.supervision.util;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.ApplicationContext;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import java.util.Date;
import java.util.Map;
@Slf4j
public class RedisSequenceUtil {
private volatile static RedisTemplate<String, String> redisTemplate = null;
/**
*
* @return a000001-a999999 b000001-b999999 ...
*/
public static String getProcessNo(){
// 从零开始计算
long processNoSeq = getIncrement("process_no_seq") -1;
@ -21,28 +31,54 @@ public class RedisSequenceUtil {
}
/**
* YYYMMDD+320240104001
* @return
*/
public static String getComplexDiseaseNo(){
String nowDay = DateUtil.format(new Date(), "YYYYMMdd");
return nowDay + String.format("%03d", getIncrement("complex_disease_no_seq_"+nowDay));
}
/**
* 1
* @param key redis key
* @return
*/
public static Long getIncrement(String key){
ValueOperations<String, String> operations = getRedisTemplate().opsForValue();
return operations.increment( key,1L);
}
/**
* redisTemplate
* @return redisTemplate
*/
public static RedisTemplate<String, String> getRedisTemplate() {
if (redisTemplate == null) {
synchronized (RedisSequenceUtil.class){
if (null == redisTemplate){
redisTemplate = createRedisTemplate();
redisTemplate = getRedisTemplateInContext();
}
}
}
return redisTemplate;
}
private static RedisTemplate<String, String> createRedisTemplate() {
private static RedisTemplate<String, String> getRedisTemplateInContext() {
ApplicationContext applicationContext = SpringBeanUtil.getApplicationContext();
if (null == applicationContext){
return null;
}
return applicationContext.getBean(RedisTemplate.class);
// 优先选择stringRedisTemplate
if (applicationContext.containsBean("stringRedisTemplate")){
return applicationContext.getBean("stringRedisTemplate",StringRedisTemplate.class);
}
Map<String, RedisTemplate> redisTemplateMap = applicationContext.getBeansOfType(RedisTemplate.class);
if (CollUtil.isNotEmpty(redisTemplateMap)){
return CollUtil.getFirst(redisTemplateMap.values());
}
return null;
}
}

Loading…
Cancel
Save