可以直接复制使用,代码已经尽可能封装成了公共方法,主需要根据自己的业务传入对应参数就可以,当前对应的最大的单号需要自己查询传入,然后根据自己传入的参数会生成唯一的新的流水单号,单号格式“TYD20231216001”,其中TYD是前缀,中间是当前时间,001是流水号,如果001已存在就会生成002......
先看效果:
1、封装公共方法(直接复制使用,跑起来再看原理)文章来源:https://www.toymoban.com/news/detail-847716.html
/**
* str:单号前缀,maxNum:当前最大单号(流水号)
*/
public class GetNumberUtils {
public static String getNumber(String str,String maxNum,String prefix) {
String newNum = "";
int beginIndex = str.length();
if (StringUtils.isNotBlank(maxNum)) {
maxNum = maxNum.substring(beginIndex);
newNum = prefix + String.format("%03d",(Integer.parseInt(maxNum.substring(8)) + 1));
}else {
newNum = prefix + "001";
}
return str + newNum ;
}
/**
*
* @return
*/
public static String getDateNum(){
// 获取当前时间
LocalDate now = LocalDate.now();
// 格式化当前时间
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
String prefix = now.format(formatter);
return prefix;
}
}
2、业务模块调用,生成唯一流水号文章来源地址https://www.toymoban.com/news/detail-847716.html
//str:单号前缀
//流水号:prefix
//result:最终结果,需要的流水号
public String getNumber() {
String str = "PZD";
String prefix = GetNumberUtils.getDateNum();
String maxNum = this.stowageDaoImpl.selectMaxNumber(prefix);
String result = GetNumberUtils.getNumber(str,maxNum,prefix);
return result;
}
到了这里,关于java生成流水单号,带日期带流水号,唯一不重复的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!