Kopieren Sie den Codecode wie folgt:
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.commons.lang3.StringUtils;
/**
* Generieren Sie eine Werkzeugklasse mit Seriennummern
* @Version V1.0
* @date: 16.11.2013 17:21:37 Uhr
*/
öffentliche Klasse SerialNum {
private static String count = „000“;
privater statischer String dateValue = "20131115";
/**
* Seriennummer generieren
*/
öffentlicher synchronisierter statischer String getMoveOrderNo() {
lange Nein = 0;
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
String nowdate = sdf.format(new Date());
No = Long.parseLong(nowdate);
if (!(String.valueOf(No)).equals(dateValue)) {
count = „000“;
dateValue = String.valueOf(No);
}
String num = String.valueOf(No);
num += getNo(count);
num = „CB“ + num;
Rückgabenummer;
}
/**
* Besorgen Sie sich die Seriennummer des Auszugsauftrags
*/
öffentlicher synchronisierter statischer String getMoveOrderNo(String serialNum) {
String nyr = StringUtils.substring(serialNum, 2, 10); // Jahres-, Monats- und Tageszeichenfolge abrufen
String countV = StringUtils.substring(serialNum, 10); // Seriennummer abrufen
if (Integer.valueOf(countV) > Integer.valueOf(count)) {
dateValue = nyr;
count = String.valueOf(countV);
}
return getMoveOrderNo();
}
/**
* Gibt die Anzahl der Bestellungen für den Tag +1 zurück
*/
öffentlicher statischer String getNo(String s) {
Zeichenfolge rs = s;
int i = Integer.parseInt(rs);
ich += 1;
rs = "" + i;
for (int j = rs.length(); j < 3; j++) {
rs = „0“ + rs;
}
count = rs;
rs zurückgeben;
}
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
System.out.println(getMoveOrderNo());
}
}
}
Hinweis: Das obige Programm verursacht keine Probleme, wenn der Server immer normal ausgeführt werden kann oder ein Fehler im Prozess auftritt und der Dienst neu gestartet werden muss, kann dies dazu führen, dass doppelte Seriennummern generiert werden Um die Eindeutigkeit sicherzustellen, müssen wir mit der Datenbankabfrage zusammenarbeiten, den letzten Datensatz abfragen, dann die Seriennummer herausnehmen und die Methode getMoveOrderNo(String serialNum) aufrufen, um sicherzustellen, dass die generierte Seriennummer unter allen Umständen korrekt und eindeutig ist .