废话不多说上代码~
@Resource
private StringRedisTemplate stringRedisTemplate;
private String generateCode() {
String sourceCode = mdmAssetCard.getSourceCode();
String prefix = BcTypeEnum.getValueByName("AAA");
String redisKey = RedisConstants.FSSC_CODE_KEY;
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, NumberConstants.TWENTY_THREE);
calendar.set(Calendar.MINUTE, NumberConstants.FIFTY_NINE);
calendar.set(Calendar.SECOND, NumberConstants.FIFTY_NINE);
calendar.set(Calendar.MILLISECOND, NumberConstants.NINE_HUNDRED_AND_NINETY_NINE);
RedisAtomicLong counter = new RedisAtomicLong(redisKey, stringRedisTemplate.getConnectionFactory());
//数据清零
counter.expire(0, TimeUnit.MILLISECONDS);
Long increment = counter.incrementAndGet();
String sequence = StringUtils.leftPad(increment.toString(), NumberConstants.SIX, String.valueOf(NumberConstants.ZERO));
StringBuilder code = new StringBuilder(sourceCode);
if (StringUtils.isNotBlank(prefix)) {
code.append(prefix);
}
code.append(sequence);
return code.toString();
}