这个问题需要考虑以下几个方面:
1、获取到当前的年月份;
2、要去数据库查询是否存在流水号数据;
3、存在就获取最大的那个流水号,实现自增加1的效果;
4、不存在就要生成新的流水号,并且存入数据库;
实现的代码:
public String generateOddNumber() {
String newOddNum = null;
// 获取当前时间
LocalDate now = LocalDate.now();
// 格式化当前时间
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
String prefix = now.format(formatter);
// 获取当前最大的订单号
String maxOddNum = findMaxOrderNo(prefix);
if (maxOddNum != null) {
// 这里需要将自增后的数字按照“xxx”的格式,格式化成例如“001”这种
newOddNum = prefix + String.format("%03d",(Integer.parseInt(maxOddNum.substring(8)) + 1));
}else {
newOddNum = prefix + "001";
}
return newOddNum ;
}