Java生成遞增流水號(hào)(編號(hào)+時(shí)間+流水號(hào))簡單示例
Java編寫一個(gè)流水號(hào),要求格式【編號(hào)】【時(shí)間】【流水號(hào)】。編號(hào)和時(shí)間比較簡單,直接獲取拼接就可以,流水號(hào)使用類型轉(zhuǎn)換來實(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ù)庫,如果不存在,則返回初始化流水號(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)文章
換了最新的idea如何將原來舊版本的idea設(shè)置導(dǎo)進(jìn)新的idea中
這篇文章主要介紹了換了最新的idea如何將原來舊版本的idea設(shè)置導(dǎo)進(jìn)新的idea中,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11解決IDEA springboot"spring-boot-maven-plugin"報(bào)紅問題
這篇文章主要介紹了解決IDEA springboot"spring-boot-maven-plugin"報(bào)紅問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04mybatis多數(shù)據(jù)源動(dòng)態(tài)切換的完整步驟
這篇文章主要給大家介紹了關(guān)于mybatis多數(shù)據(jù)源動(dòng)態(tài)切換的完整步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11Lombok之@AllArgsConstructor的使用方式
這篇文章主要介紹了Lombok之@AllArgsConstructor的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09Spring Boot 各種回滾操作實(shí)戰(zhàn)教程(自動(dòng)回滾、手動(dòng)回滾、部分回滾)
這篇文章主要介紹了Spring Boot 各種回滾操作實(shí)戰(zhàn)教程(自動(dòng)回滾、手動(dòng)回滾、部分回滾),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07java定時(shí)任務(wù)Timer和TimerTask使用詳解
這篇文章主要為大家詳細(xì)介紹了java定時(shí)任務(wù)Timer和TimerTask使用方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02Java中的字節(jié)流InputStream和OutputStream詳解
這篇文章主要介紹了Java中的字節(jié)流InputStream和OutputStream詳解,繼承自InputStream的流都是用于向程序中輸入數(shù)據(jù),且數(shù)據(jù)的單位為字節(jié)8bit,我們看到的具體的某一些管道,凡是以InputStream結(jié)尾的管道,都是以字節(jié)的形式向我們的程序輸入數(shù)據(jù),需要的朋友可以參考下2023-10-10