Java生成递增流水号:编号+时间+流水号

这篇具有很好参考价值的文章主要介绍了Java生成递增流水号:编号+时间+流水号。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Java编写一个流水号,要求格式【编号】【时间】【流水号】。编号和时间比较简单,直接获取拼接就可以,流水号使用类型转换来实现。

  1. 获取车间编号,变量为workCenter(例子A1、B2、C3);

  1. 使用simpleDateFormat获取时间格式:20230112。变量为dateNo;

  1. 初始化一个流水号markNo1,使用join拼接:A120230112001;

  1. 使用编号与时间拼接,用于模糊查询的参数,DESC取到最新一条数据(这里是第一条);

  1. 判断初始流水号是否存在数据库,如果不存在,则返回初始化流水号;

  1. 若存在,取最新一条数据,截取后3位字符串,转换为数字number1;

  1. 在number1的基础上+1,得到number2,再将number2转换成格式化字符串“00X”;

  1. 最后将字符串与编号、时间拼接一起,返回。OK!文章来源地址https://www.toymoban.com/news/detail-528490.html


            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的后面三位数
                String str1 = mark1.substring(mark1.length()-3);
                int number1 = Integer.valueOf(str1).intValue();
                if (number1>999)throw new Exception("流水号超过规定!");
                int number2 = number1+1;
                //实例化format,格式为“000”
                DecimalFormat formatCount = new DecimalFormat("000");
                //一般都是将累加的数字当做一些单号的一部分,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;

到了这里,关于Java生成递增流水号:编号+时间+流水号的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java订单编号生成

    开发过程当中可能会遇见生成订单编号,那么订单编号分为有序的,也分为无序的编号,今天本文介绍有序的订单编号,根据时间戳来生成订单编号。 订单编号代表该单据在一个系统当中独一无二的存在,不可能会有第二个订单编号的存在,在平时购物的时候,吃饭的时候等

    2024年02月04日
    浏览(24)
  • JAVA生成唯一订单编号方案(两种方式)

    参考博客: ​​​​​​fhttp://t.csdn.cn/lCQ47​​​​​​​

    2024年02月07日
    浏览(30)
  • java生成自增编号数字的问题教程方法

    java生成自增编号数字 最近有业务需求,编号自增。 1、查询数据最大编号,该字段为字符串 2、编号+1,递增后按格式补齐 %nd 输出的整型宽度至少为n位,右对齐,%8d即宽度至少为8位,位数大于8则输出实际位数,0表示用0补齐 java生成一定规则递增编号 项目需求中有时需要生

    2024年02月12日
    浏览(30)
  • java和sql生成时间维度数据

    JAVA: POM依赖:   代码: SQL:

    2024年02月11日
    浏览(33)
  • Maven 生成编译时间和版本Java类

    本文使用Maven插件来自动生成一个 Version.java 类,可以在Java代码中使用里面对应的常量,获取当前版本号和构建时间。 Maven编译后自动生成的 Version.java 文件内容如下所示: pom.xml 中插件的使用示例如下所示: 你也可用这种方法生成普通的版本配置文件,例如 version.properties,

    2024年02月12日
    浏览(32)
  • java时间解析生成定时Cron表达式工具类

    构建Cron表达式 生成计划的详细描述 构建Cron表达式 枚举类 测试

    2024年02月08日
    浏览(35)
  • Java【算法 05】通过时间获取8位验证码(每两个小时生成一个)源码分享

    要求是很简单的,每个验证码的有效时间是 2小时 ,这个并不是收到验证码开始计时的,而是每个两小时的时间段使用的是相同的验证码。 将 2个小时处理为相同的值 : 很简单的算法分享。优点: 不需要将生成的验证码缓存。 时间入参,能够重复获取相同的值。

    2024年02月05日
    浏览(23)
  • Java精品项目源码爱心捐赠平台网站(编号V65)

    大家好,小辰今天给大家介绍一个爱心捐赠平台网站(编号V65),演示视频公众号(小辰哥的Java)对号查询观看即可 难度指数(中高等) 提示:小伙伴有问题记得下方评论留言啦,本项目难度中等。 一、项目运行 1.运行环境 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也

    2024年02月07日
    浏览(47)
  • leetcode300. 最长递增子序列(动态规划-java)

    来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/longest-increasing-subsequence 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序

    2024年02月15日
    浏览(34)
  • 力扣300:最长递增子序列(Java动态规划+双指针)

    给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。   示例 1: 输入:nums = [10,9,2,5,3,7,101,18] 输出:4 解释:最长递增子序

    2024年02月12日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包