计划编号生成工具类
parent
e9cad25945
commit
3fc7ca3321
@ -0,0 +1,72 @@
|
||||
package com.aucma.common.utils.uuid;
|
||||
|
||||
import com.aucma.common.core.redis.RedisCache;
|
||||
import com.aucma.common.utils.StringUtils;
|
||||
import com.aucma.common.utils.spring.SpringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.Calendar;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
* @ClassName : PlanCodeUtils
|
||||
* @Description : zhouhy
|
||||
* @Author :生产计划-计划编号生成
|
||||
* @Date: 2023-10-07 09:46
|
||||
*/
|
||||
@Component
|
||||
public class PlanCodeUtils {
|
||||
|
||||
|
||||
|
||||
public String getPlanCode(){
|
||||
LocalDate date = LocalDate.now();
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyMMdd");
|
||||
String format = date.format(formatter);
|
||||
Boolean flag=SpringUtils.getBean(RedisCache.class).hasKey(format);
|
||||
|
||||
System.out.println(flag);
|
||||
//以当日日期作为key
|
||||
if (!flag) {
|
||||
SpringUtils.getBean(RedisCache.class).setCacheObject(format,1);
|
||||
SpringUtils.getBean(RedisCache.class).expire(format,getSecondsNextEarlyMorning(), TimeUnit.SECONDS);
|
||||
}
|
||||
else{
|
||||
//获取当前的value在+1
|
||||
Object cacheObject = SpringUtils.getBean(RedisCache.class).getCacheObject(format);
|
||||
String s = String.valueOf(cacheObject);
|
||||
Integer integer = Integer.valueOf(s);
|
||||
integer = integer+1;
|
||||
SpringUtils.getBean(RedisCache.class).setCacheObject(format,integer);
|
||||
}
|
||||
Object cacheObject = SpringUtils.getBean(RedisCache.class).getCacheObject(format);
|
||||
//转成string在转成int
|
||||
String code = String.format("%04d",Integer.valueOf(String.valueOf(cacheObject)));
|
||||
|
||||
return date.format(formatter)+code;
|
||||
}
|
||||
|
||||
//判断当前时间距离第二天0点时间的秒数
|
||||
public Long getSecondsNextEarlyMorning() {
|
||||
Calendar cal = Calendar.getInstance();
|
||||
cal.add(Calendar.DAY_OF_YEAR, 1);
|
||||
cal.set(Calendar.HOUR_OF_DAY, 0);
|
||||
cal.set(Calendar.SECOND, 0);
|
||||
cal.set(Calendar.MINUTE, 0);
|
||||
cal.set(Calendar.MILLISECOND, 0);
|
||||
return (cal.getTimeInMillis() - System.currentTimeMillis()) / 1000;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
Loading…
Reference in New Issue