java生成申請(qǐng)單序列號(hào)的實(shí)現(xiàn)方法
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.commons.lang3.StringUtils;
/**
* 產(chǎn)生流水號(hào)工具類
* @version V1.0
* @date: 2013-11-16 下午5:21:37
*/
public class SerialNum {
private static String count = "000";
private static String dateValue = "20131115";
/**
* 產(chǎn)生流水號(hào)
*/
public synchronized static String getMoveOrderNo() {
long No = 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;
return num;
}
/**
* 獲取撤展單序列號(hào)
*/
public synchronized static String getMoveOrderNo(String serialNum) {
String nyr = StringUtils.substring(serialNum, 2, 10); // 獲取年月日字符串
String countV = StringUtils.substring(serialNum, 10); // 獲取流水號(hào)
if (Integer.valueOf(countV) > Integer.valueOf(count)) {
dateValue = nyr;
count = String.valueOf(countV);
}
return getMoveOrderNo();
}
/**
* 返回當(dāng)天的訂單數(shù)+1
*/
public static String getNo(String s) {
String rs = s;
int i = Integer.parseInt(rs);
i += 1;
rs = "" + i;
for (int j = rs.length(); j < 3; j++) {
rs = "0" + rs;
}
count = rs;
return rs;
}
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
System.out.println(getMoveOrderNo());
}
}
}
注意:上面的程序如果服務(wù)器一直能夠正常運(yùn)行就不會(huì)出什么問題,要是重啟服務(wù)器或者中間出現(xiàn)什么故障需要重啟服務(wù)都可能造成重復(fù)序列號(hào)的產(chǎn)生,為了能夠保證唯一,我們需要配合上數(shù)據(jù)庫(kù)的查詢,查詢最后一條記錄,然后拿出序列號(hào)在調(diào)用getMoveOrderNo(String serialNum)這個(gè)方法,就能夠保證什么情況下生成的序列號(hào)都是正確唯一的。
- SQL Server自動(dòng)生成日期加數(shù)字的序列號(hào)
- .net獲取硬件信息_CPU序列號(hào)
- C#獲得MAC地址(網(wǎng)卡序列號(hào))的實(shí)現(xiàn)代碼
- C#利用win32 Api 修改本地系統(tǒng)時(shí)間、獲取硬盤序列號(hào)
- mysql簡(jiǎn)單實(shí)現(xiàn)查詢結(jié)果添加序列號(hào)的方法
- PowerShell中獲取Windows系統(tǒng)序列號(hào)的腳本分享
- 安裝完成后如何找回SQL Server實(shí)例安裝時(shí)的序列號(hào)
- C#獲取U盤序列號(hào)的方法
- C#實(shí)現(xiàn)讀取指定盤符硬盤序列號(hào)的方法
- ORACLE實(shí)現(xiàn)自定義序列號(hào)生成的方法
相關(guān)文章
Spring?Boot?MQTT?Too?many?publishes?in?progress錯(cuò)誤的解決方
本文介紹Spring?Boot?MQTT?Too?many?publishes?in?progress錯(cuò)誤的解決方案,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下2022-07-07
Java8實(shí)現(xiàn)優(yōu)雅的獲取重復(fù)字符與次數(shù)
這篇文章主要為大家詳細(xì)介紹了在Java8中,我們應(yīng)該如何進(jìn)行字符及字符串的去重,以及計(jì)算去重次數(shù),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下2023-12-12
springboot整合mybatis的超詳細(xì)過程(配置模式+注解模式)
這篇文章主要介紹了springboot整合mybatis的詳細(xì)過程(配置模式+注解模式),這里我使用的是配置模式+注解模式所以需要配置全局文件,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04
淺談springboot一個(gè)service內(nèi)組件的加載順序
這篇文章主要介紹了springboot一個(gè)service內(nèi)組件的加載順序,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家2021-08-08
springboot項(xiàng)目不輸出nohup.out日志的解決
這篇文章主要介紹了springboot項(xiàng)目不輸出nohup.out日志的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
java使用randomaccessfile在文件任意位置寫入數(shù)據(jù)
Java在文件任意位置寫入數(shù)據(jù)可以使用RandomAccessFile方法來完成,下面看一個(gè)簡(jiǎn)單的示例就明白了2014-01-01
Java模擬QQ實(shí)現(xiàn)聊天互動(dòng)程序
這篇文章主要介紹了如何利用Java語(yǔ)言模擬QQ實(shí)現(xiàn)一個(gè)簡(jiǎn)易的聊天互動(dòng)程序,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-06-06
Spring如何消除代碼中的if-else/switch-case
這篇文章主要給大家介紹了關(guān)于Spring如何消除代碼中if-else/switch-case的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Spring具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
Java實(shí)現(xiàn)文件批量重命名具體實(shí)例
這篇文章主要介紹了Java實(shí)現(xiàn)文件批量重命名具體實(shí)例,需要的朋友可以參考下2014-02-02

