码迷,mamicode.com
首页 > 编程语言 > 详细

java生成条码号的源码

时间:2015-05-07 10:26:19      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:java   生成条码号   

在实际业务中会有很多通过和流水号拼接,形成一个用户唯一id的标识。由于本次用的是和oracle数据库结合,所以会用到oracle的序列,为了演示方便,所以把动态得到的序列号写成了静态的了。具体源码如下:

package com.evan.string;

import java.text.SimpleDateFormat;

public class BarcodeGenerateTest {

    public static void main(String[] args) {
        String dept = "0001";//分院id号
        int max = 202;//当前序列的下一个序列
        SimpleDateFormat sd = new SimpleDateFormat("yyMMdd");

        String day = sd.format(new java.util.Date());
        String spk = String.format("%05d", max);

        //条码号生成规则: 分院id号+999+当前日期+当前序列的下一个序列
        String barcode = dept + "999" + day + spk;

        System.out.println(barcode);//000199915050700202

        /**前面补零 将条码号强制补齐为十八位,在Excel导入时,可能会遇到,因为excel条码显示为000199915050700202
        但是传递到后台后就变成199915050700202,三个零自动就没了。可以用强制补零来解决。*/
        String sglCheckId = "123456789";
        String result = String.format("%018d", Integer.valueOf(sglCheckId));
        System.out.println(result);
    }

}

但是这样做可能会有一个问题,就是在同一天当序列增长到最大值时,序列会从最小值重新开始,这样会导致条码重复。
解决办法目前可能有两个个:
1、要求业务部门,当前最多可导入10万条数据 。(目前真是这样做的)
2、将条码号的生成规则改变,增加两个数量级。

java生成条码号的源码

标签:java   生成条码号   

原文地址:http://blog.csdn.net/zl544434558/article/details/45556815

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!