首页 > 基础资料 博客日记

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

2023-07-24 10:16:48基础资料围观279

本篇文章分享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!


            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;


文章来源:https://blog.csdn.net/chen_ying__/article/details/128936974
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!

标签:

相关文章

本站推荐

标签云