支付流水号生成算法

要求是查到最新的一笔流水号在此基础上按照固定规则+1生成新的流水号

		String sql="select nvl(max(SERIAL_NO),'0') as \"serialNo\" from XXX ";//从数据库中查出最近的一笔流水号
        SQLQuery query = session.createSQLQuery(sql);
        query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP)
        List list = query.list();
        String listSerialNo;
        String temp4;
        if (list[0].serialNo=="0" || list[0].serialNo==null){//如果表中没有值
            temp4="00000000"
        }else {
            //计算流水号的算法  实现2018121400000000 → 2018121400000001 (每次的流水号变化)
            listSerialNo=list[0].serialNo
            String temp1=listSerialNo.substring(listSerialNo.length()-8)
            Long temp2=(Long.valueOf(temp1)+1)%100000000
            String temp3="00000000"+String.valueOf(temp2)
            temp4=temp3.substring(temp3.length()-8)
        }

        Date date=new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
        String serialNo=sdf.format(date)+temp4
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值