Java生成遞增流水號(hào)(編號(hào)+時(shí)間+流水號(hào))簡(jiǎn)單示例
Java編寫一個(gè)流水號(hào),要求格式【編號(hào)】【時(shí)間】【流水號(hào)】。編號(hào)和時(shí)間比較簡(jiǎn)單,直接獲取拼接就可以,流水號(hào)使用類型轉(zhuǎn)換來(lái)實(shí)現(xiàn)。
獲取車間編號(hào),變量為workCenter(例子A1、B2、C3);
使用simpleDateFormat獲取時(shí)間格式:20230112。變量為dateNo;
初始化一個(gè)流水號(hào)markNo1,使用join拼接:A120230112001;
使用編號(hào)與時(shí)間拼接,用于模糊查詢的參數(shù),DESC取到最新一條數(shù)據(jù)(這里是第一條);
判斷初始流水號(hào)是否存在數(shù)據(jù)庫(kù),如果不存在,則返回初始化流水號(hào);
若存在,取最新一條數(shù)據(jù),截取后3位字符串,轉(zhuǎn)換為數(shù)字number1;
在number1的基礎(chǔ)上+1,得到number2,再將number2轉(zhuǎn)換成格式化字符串“00X”;
最后將字符串與編號(hào)、時(shí)間拼接一起,返回。OK!
JSONObject jsonObject = new JSONObject();
//獲取車間編號(hào)
String workCenter = workCenterNo.substring(0,2);
//獲取時(shí)間編號(hào)
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
String dateNo = sdf.format(new Date()); // 格式化日期 date: 20230112
//初始化隔離編號(hào)
String markNo1 = String.join("",workCenter,dateNo,"001");
//模糊查找用
String workDate = String.join("",workCenter,dateNo);
//模糊查詢隔離編號(hào)
String markSQL = "SELECT MARK_NO FROM BP_MARKING WHERE MARK_NO LIKE ? order by CREATE_DATE DESC";
List<Map<String, Object>> maps = this.getJdbcTemplate().queryForList(markSQL,workDate+"%");
//判斷模糊查找的隔離編號(hào)是否存在
if (maps.size()>0){
Map<String, Object> m=maps.get(0);
String mark1=m.get("MARK_NO").toString();
//取出mark1的后面三位數(shù)
String str1 = mark1.substring(mark1.length()-3);
int number1 = Integer.valueOf(str1).intValue();
if (number1>999)throw new Exception("流水號(hào)超過規(guī)定!");
int number2 = number1+1;
//實(shí)例化format,格式為“000”
DecimalFormat formatCount = new DecimalFormat("000");
//一般都是將累加的數(shù)字當(dāng)做一些單號(hào)的一部分,format要求string
String str2 = formatCount.format(number2);
//再用number2拼接workDate
String markNo2 =String.join("",workDate,str2);
jsonObject.put("markNo",markNo2);
array.add(jsonObject);
}else if (maps.size()==0){
//如果maps為零,取markNo1
jsonObject.put("markNo",markNo1);
array.add(jsonObject);
}
return array;總結(jié)
到此這篇關(guān)于Java生成遞增流水號(hào)(編號(hào)+時(shí)間+流水號(hào))的文章就介紹到這了,更多相關(guān)Java生成遞增流水號(hào)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java中compareTo()和compare()方法使用及區(qū)別詳解
這篇文章主要介紹了Java中compareTo()和compare()方法使用及區(qū)別的相關(guān)資料,compareTo()方法用于定義類的自然排序,適用于具有單一、固定排序方式的場(chǎng)景,compare()方法提供自定義排序的靈活性,適用于需要根據(jù)不同規(guī)則對(duì)對(duì)象進(jìn)行排序的場(chǎng)景,需要的朋友可以參考下2025-01-01
后端返回各種圖片形式在前端的轉(zhuǎn)換及展示方法對(duì)比
這篇文章主要給大家介紹了關(guān)于后端返回各種圖片形式在前端的轉(zhuǎn)換及展示方法對(duì)比的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-06-06
kibana中ES修改某個(gè)字段類型問題小結(jié)
這篇文章主要介紹了kibana中ES修改某個(gè)字段類型問題,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-06-06
springmvc級(jí)聯(lián)屬性處理無(wú)法轉(zhuǎn)換異常問題解決
這篇文章主要介紹了springmvc級(jí)聯(lián)屬性處理無(wú)法轉(zhuǎn)換異常問題解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
Java設(shè)計(jì)模塊系列之書店管理系統(tǒng)單機(jī)版(三)
這篇文章主要為大家詳細(xì)介紹了Java單機(jī)版的書店管理系統(tǒng)設(shè)計(jì)模塊和思想第三章,感興趣的小伙伴們可以參考一下2016-08-08
Java實(shí)戰(zhàn)之實(shí)現(xiàn)物流配送系統(tǒng)示例詳解
這篇文章主要介紹了一個(gè)java實(shí)戰(zhàn)項(xiàng)目:通過java、SSM、JSP、mysql和redis實(shí)現(xiàn)一個(gè)物流配送系統(tǒng)。文中的示例代碼非常詳細(xì),需要的朋友可以參考一下2021-12-12
MyBatis-Plus+Druid配置及應(yīng)用詳解
這篇文章主要介紹了MyBatis-Plus+Druid配置及應(yīng)用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
Spring Boot示例分析講解自動(dòng)化裝配機(jī)制核心注解
這篇文章主要分析了Spring Boot 自動(dòng)化裝配機(jī)制核心注解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2022-07-07

