代码栗子
Calendar cal = Calendar.getInstance();
//获取今天的日期
cal.setTime(new Date());
//int year = cal.get(Calendar.YEAR);
//int month = cal.get(Calendar.MONTH)+1;
//int day = cal.get(Calendar.DAY_OF_MONTH);
//int hour = cal.get(Calendar.HOUR_OF_DAY);
// StringUtils.leftPad() 左侧补齐 第一个参数:原始字符串,第二个参数:字符串的长度,第三个是补充的字符串
String yearLast = new SimpleDateFormat("yy", Locale.CHINESE).format(Calendar.getInstance().getTime());
String normalizeMonth = StringUtils.leftPad(String.valueOf(cal.get(Calendar.MONTH) + 1), 2, '0');
String normalizeDay = StringUtils.leftPad(String.valueOf(cal.get(Calendar.DAY_OF_MONTH)), 2, '0');
String newEquipmentNo = "";
if (lotsMapper.selectCount(new QueryWrapper<Lots>(null))==0){//数据为空是时 设置一个默认值
newEquipmentNo = LotsServiceImpl.getNewEquipmentNo("0");
}else {//不为空时
//按创建时间倒序查询拍品信息
List<Lots> LotsList = lotsMapper.selectList(new QueryWrapper<Lots>(null).orderByDesc("create_time"));
if(LotsList.size()>0){
Lots lots = LotsList.get(0);//获取最新一条记录
String number = lots.getNumber();
//取最后一个(-)后面的字符
String substring = number.substring(number.lastIndexOf("-") + 1);
//生成自增编号
newEquipmentNo = LotsServiceImpl.getNewEquipmentNo(substring);
}
}
log.info(yearLast + " - " + normalizeMonth + normalizeDay + " - "+newEquipmentNo);//编码格式栗子: 21-0112-1
getNewEquipmentNo方法
/**
* 拍品编码生成一定规则递增编号
* @param equipmentNo
* @return
*/
public static String getNewEquipmentNo(String equipmentNo){
//默认了一个初始设备编号,当传入方法的最新设备编号为null或是空时将使用
String newEquipmentNo = "1";
//如果传入了数据库中最新设备编号
if(equipmentNo != null){
//Integer的parseInt()方法返回十进制整数
int no = Integer.parseInt(equipmentNo);
//自增1
int newEquipment = ++no;
//字符串格式化返回
newEquipmentNo = String.format("%d", newEquipment);
}
return newEquipmentNo;
}