欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java如何根據(jù)日期生成單號(hào)

 更新時(shí)間:2024年09月04日 09:46:25   作者:200.YING  
這篇文章主要介紹了java如何根據(jù)日期生成單號(hào)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

java根據(jù)日期生成單號(hào)

1.查詢出創(chuàng)建時(shí)間等于當(dāng)天的訂單,按照時(shí)間倒序排序去一條數(shù)據(jù)。

 select a.* from t_solid_waste_production a
 WHERE deleted = 0 and TO_DAYS(create_time) = TO_DAYS(NOW())
order by create_time desc limit 1

2.編寫編碼生成規(guī)則

SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");
String date = df.format(new Date());
String recordNumber = "CF" + date + "001";

3.判斷最新一天是否有數(shù)據(jù),如果沒(méi)有則執(zhí)行疊加

if (lastData != null){
   Format f1=new DecimalFormat("000");
   recordNumber = "CF" + date + f1.format((Integer.parseInt(lastData.getRecordNumber().substring(lastData.getRecordNumber().length() - 3)) + 1));
   }

java根據(jù)日期生成一定規(guī)則的單號(hào)

由于業(yè)務(wù)需求,需要根據(jù)一定的規(guī)則生成有規(guī)則的單號(hào)比如:YC-20231203-001

該規(guī)則單號(hào)前面部分 "YC-" 為異常的拼音縮寫,中間部分 “20231203” 為時(shí)間,后面為遞增的數(shù)字。

我的代碼實(shí)現(xiàn):

@ApiOperation("異常單號(hào)生成")
    @GetMapping("getCode")
    public Response<Object> getCode(){
        return new Response<>().success().data(exceptionItemService.getCode());
    }

@Override
    public String getCode() {
        //前綴
        String prefix = "YC-";
        //后綴
        String lastIndex;
        //獲取最大三位數(shù)
        Integer maxCode = exceptionItemMapper.selectMaxCode(prefix);
        //查詢出數(shù)據(jù)庫(kù)中當(dāng)前最大的單號(hào),如果沒(méi)有則說(shuō)明今天還未添加一條數(shù)據(jù),有的話則將最大的查出來(lái) +1
        if (maxCode != null && maxCode <= 8) {
            maxCode += 1;
            //Integer轉(zhuǎn)換為字符串
            String i = String.valueOf(maxCode);
            lastIndex = "00" + i;
        } else if (maxCode != null && maxCode <= 98) {
            maxCode += 1;
            String i = String.valueOf(maxCode);
            lastIndex = "0" + i;
        } else if (maxCode != null) {
            maxCode += 1;
            lastIndex = String.valueOf(maxCode);
        } else {
            lastIndex = "001";
        }
        // 中間部分 “20231211”
        String middle = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
        //設(shè)置新的異常單號(hào) YC-20231203-001
        return prefix + middle + "-" + lastIndex;
    }

代碼中

Integer maxCode = exceptionItemMapper.selectMaxCode(prefix) 

是通過(guò)查詢數(shù)據(jù)庫(kù)來(lái)得出單號(hào)后三位最大的數(shù)字,sql實(shí)現(xiàn)如下(本人用的postgres數(shù)據(jù)庫(kù)):

<select id="selectMaxCode" resultType="java.lang.Integer">
        SELECT MAX(CAST(SUBSTRING(exception_code, LENGTH(exception_code) - 2) AS INTEGER))
        FROM qc_exception_item
        WHERE exception_code LIKE CONCAT(#{prefix}, TO_CHAR(NOW(), 'YYYYMMDD'),'-%','%');
</select>

如果是mysql數(shù)據(jù)庫(kù)的話,上面代碼中的:

WHERE exception_code LIKE CONCAT(#{prefix}, TO_CHAR(NOW(), 'YYYYMMDD'),'-%','%')  

中的

TO_CHAR(NOW(), 'YYYYMMDD') 

改為

DATE_FORMAT(NOW(), '%Y%m%d')   

即可。

本人現(xiàn)在代碼未考慮多線程的情況,如果需要的話可以自己看情況修改。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • feign GET請(qǐng)求不支持對(duì)象傳參的坑及解決

    feign GET請(qǐng)求不支持對(duì)象傳參的坑及解決

    這篇文章主要介紹了feign GET請(qǐng)求不支持對(duì)象傳參的坑及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Sping中如何處理@Bean注解bean同名的問(wèn)題

    Sping中如何處理@Bean注解bean同名的問(wèn)題

    這篇文章主要介紹了Sping中如何處理@Bean注解bean同名的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Mybatis深度整合Mysql的Json字段問(wèn)題

    Mybatis深度整合Mysql的Json字段問(wèn)題

    這篇文章主要介紹了Mybatis深度整合Mysql的Json字段問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • 解決mybatis plus報(bào)錯(cuò)com.microsoft.sqlserver.jdbc.SQLServerException:必須執(zhí)行該語(yǔ)句才能獲得結(jié)果

    解決mybatis plus報(bào)錯(cuò)com.microsoft.sqlserver.jdbc.SQLServerE

    這篇文章主要介紹了解決mybatis plus報(bào)錯(cuò)com.microsoft.sqlserver.jdbc.SQLServerException:必須執(zhí)行該語(yǔ)句才能獲得結(jié)果,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • SpringBoot Druid配置過(guò)程圖解

    SpringBoot Druid配置過(guò)程圖解

    這篇文章主要介紹了SpringBoot Druid配置過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • 在springboot中如何給mybatis加攔截器

    在springboot中如何給mybatis加攔截器

    這篇文章主要介紹了在springboot中如何給mybatis加攔截器,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Java整合mybatis實(shí)現(xiàn)過(guò)濾數(shù)據(jù)

    Java整合mybatis實(shí)現(xiàn)過(guò)濾數(shù)據(jù)

    這篇文章主要介紹了Java整合mybatis實(shí)現(xiàn)過(guò)濾數(shù)據(jù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2023-01-01
  • 詳談ServiceLoader實(shí)現(xiàn)原理

    詳談ServiceLoader實(shí)現(xiàn)原理

    下面小編就為大家?guī)?lái)一篇詳談ServiceLoader實(shí)現(xiàn)原理。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-02-02
  • IntelliJ IDEA修改內(nèi)存大小,使得idea運(yùn)行更流暢

    IntelliJ IDEA修改內(nèi)存大小,使得idea運(yùn)行更流暢

    今天小編就為大家分享一篇關(guān)于IntelliJ IDEA修改內(nèi)存大小,使得idea運(yùn)行更流暢的文章,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-10-10
  • Java函數(shù)式編程(七):MapReduce

    Java函數(shù)式編程(七):MapReduce

    這篇文章主要介紹了Java函數(shù)式編程(七):MapReduce,本文是系列文章的第7篇,其它文章請(qǐng)參閱本文底部的相關(guān)文章,需要的朋友可以參考下
    2014-09-09

最新評(píng)論