Скопируйте код кода следующим образом:
импортировать java.text.SimpleDateFormat;
импортировать java.util.Date;
импортировать org.apache.commons.lang3.StringUtils;
/**
* Создать класс инструмента с серийным номером
* @версия V1.0
* @date: 16.11.2013, 17:21:37
*/
общественный класс SerialNum {
частный статический счетчик строк = «000»;
частная статическая строка dateValue = "20131115";
/**
* Создать серийный номер
*/
общедоступная синхронизированная статическая строка getMoveOrderNo() {
длинный Нет = 0;
SimpleDateFormat sdf = новый SimpleDateFormat("ггггММдд");
Строка nowdate = sdf.format(новая дата());
Нет = Long.parseLong(nowdate);
if (!(String.valueOf(No)).equals(dateValue)) {
счет = «000»;
dateValue = String.valueOf(Нет);
}
Строка номер = String.valueOf(Нет);
число += getNo(счет);
число = «CB» + число;
вернуть число;
}
/**
* Получите серийный номер приказа о выезде
*/
общедоступная синхронизированная статическая строка getMoveOrderNo(String SerialNum) {
String nyr = StringUtils.substring(serialNum, 2, 10 // Получаем строку года, месяца и дня);
String countV = StringUtils.substring(serialNum, 10 // Получаем серийный номер);
if (Integer.valueOf(countV) > Integer.valueOf(count)) {
dateValue = год;
count = String.valueOf(countV);
}
вернуть getMoveOrderNo();
}
/**
* Возвращает количество заказов за день +1
*/
public static String getNo(String s) {
Строка rs = с;
int я = Integer.parseInt(rs);
я += 1;
рс = "" + я;
for (int j = rs.length(); j <3; j++) {
рс = "0" + рс;
}
количество = рс;
вернуть рупий;
}
public static void main(String[] args) {
для (int я = 0; я <10; я++) {
System.out.println(getMoveOrderNo());
}
}
}
Примечание. Вышеуказанная программа не вызовет никаких проблем, если сервер всегда может работать нормально. Если сервер перезапускается или в процессе возникает какой-либо сбой и необходимо перезапустить службу, это может привести к созданию повторяющихся серийных номеров. Чтобы обеспечить уникальность, нам нужно выполнить запрос к базе данных, запросить последнюю запись, а затем извлечь серийный номер и вызвать метод getMoveOrderNo(String SerialNum), чтобы гарантировать, что сгенерированный серийный номер является правильным и уникальным при любых обстоятельствах. .