Java生成遞增流水號(編號+時間+流水號)簡單示例
Java編寫一個流水號,要求格式【編號】【時間】【流水號】。編號和時間比較簡單,直接獲取拼接就可以,流水號使用類型轉(zhuǎn)換來實現(xiàn)。
獲取車間編號,變量為workCenter(例子A1、B2、C3);
使用simpleDateFormat獲取時間格式:20230112。變量為dateNo;
初始化一個流水號markNo1,使用join拼接:A120230112001;
使用編號與時間拼接,用于模糊查詢的參數(shù),DESC取到最新一條數(shù)據(jù)(這里是第一條);
判斷初始流水號是否存在數(shù)據(jù)庫,如果不存在,則返回初始化流水號;
若存在,取最新一條數(shù)據(jù),截取后3位字符串,轉(zhuǎn)換為數(shù)字number1;
在number1的基礎上+1,得到number2,再將number2轉(zhuǎn)換成格式化字符串“00X”;
最后將字符串與編號、時間拼接一起,返回。OK!
JSONObject jsonObject = new JSONObject(); //獲取車間編號 String workCenter = workCenterNo.substring(0,2); //獲取時間編號 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); String dateNo = sdf.format(new Date()); // 格式化日期 date: 20230112 //初始化隔離編號 String markNo1 = String.join("",workCenter,dateNo,"001"); //模糊查找用 String workDate = String.join("",workCenter,dateNo); //模糊查詢隔離編號 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+"%"); //判斷模糊查找的隔離編號是否存在 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("流水號超過規(guī)定!"); int number2 = number1+1; //實例化format,格式為“000” DecimalFormat formatCount = new DecimalFormat("000"); //一般都是將累加的數(shù)字當做一些單號的一部分,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生成遞增流水號(編號+時間+流水號)的文章就介紹到這了,更多相關(guān)Java生成遞增流水號內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
換了最新的idea如何將原來舊版本的idea設置導進新的idea中
這篇文章主要介紹了換了最新的idea如何將原來舊版本的idea設置導進新的idea中,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11解決IDEA springboot"spring-boot-maven-plugin"報紅問題
這篇文章主要介紹了解決IDEA springboot"spring-boot-maven-plugin"報紅問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-04-04mybatis多數(shù)據(jù)源動態(tài)切換的完整步驟
這篇文章主要給大家介紹了關(guān)于mybatis多數(shù)據(jù)源動態(tài)切換的完整步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-11-11Lombok之@AllArgsConstructor的使用方式
這篇文章主要介紹了Lombok之@AllArgsConstructor的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09Spring Boot 各種回滾操作實戰(zhàn)教程(自動回滾、手動回滾、部分回滾)
這篇文章主要介紹了Spring Boot 各種回滾操作實戰(zhàn)教程(自動回滾、手動回滾、部分回滾),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-07-07Java中的字節(jié)流InputStream和OutputStream詳解
這篇文章主要介紹了Java中的字節(jié)流InputStream和OutputStream詳解,繼承自InputStream的流都是用于向程序中輸入數(shù)據(jù),且數(shù)據(jù)的單位為字節(jié)8bit,我們看到的具體的某一些管道,凡是以InputStream結(jié)尾的管道,都是以字節(jié)的形式向我們的程序輸入數(shù)據(jù),需要的朋友可以參考下2023-10-10